]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/config/arm/arm_neon.h
Update copyright years.
[thirdparty/gcc.git] / gcc / config / arm / arm_neon.h
1 /* ARM NEON intrinsics include file.
2
3 Copyright (C) 2006-2020 Free Software Foundation, Inc.
4 Contributed by CodeSourcery.
5
6 This file is part of GCC.
7
8 GCC is free software; you can redistribute it and/or modify it
9 under the terms of the GNU General Public License as published
10 by the Free Software Foundation; either version 3, or (at your
11 option) any later version.
12
13 GCC is distributed in the hope that it will be useful, but WITHOUT
14 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
15 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
16 License for more details.
17
18 Under Section 7 of GPL version 3, you are granted additional
19 permissions described in the GCC Runtime Library Exception, version
20 3.1, as published by the Free Software Foundation.
21
22 You should have received a copy of the GNU General Public License and
23 a copy of the GCC Runtime Library Exception along with this program;
24 see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
25 <http://www.gnu.org/licenses/>. */
26
27 #ifndef _GCC_ARM_NEON_H
28 #define _GCC_ARM_NEON_H 1
29
30 #ifndef __ARM_FP
31 #error "NEON intrinsics not available with the soft-float ABI. Please use -mfloat-abi=softfp or -mfloat-abi=hard"
32 #else
33
34 #pragma GCC push_options
35 #pragma GCC target ("fpu=neon")
36
37 #ifdef __cplusplus
38 extern "C" {
39 #endif
40
41 #include <arm_fp16.h>
42 #include <stdint.h>
43
44 typedef __simd64_int8_t int8x8_t;
45 typedef __simd64_int16_t int16x4_t;
46 typedef __simd64_int32_t int32x2_t;
47 typedef __builtin_neon_di int64x1_t;
48 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
49 typedef __fp16 float16_t;
50 typedef __simd64_float16_t float16x4_t;
51 #endif
52 typedef __simd64_float32_t float32x2_t;
53 typedef __simd64_poly8_t poly8x8_t;
54 typedef __simd64_poly16_t poly16x4_t;
55 #pragma GCC push_options
56 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
57 typedef __builtin_neon_poly64 poly64x1_t;
58 #pragma GCC pop_options
59 typedef __simd64_uint8_t uint8x8_t;
60 typedef __simd64_uint16_t uint16x4_t;
61 typedef __simd64_uint32_t uint32x2_t;
62 typedef __builtin_neon_udi uint64x1_t;
63
64 typedef __simd128_int8_t int8x16_t;
65 typedef __simd128_int16_t int16x8_t;
66 typedef __simd128_int32_t int32x4_t;
67 typedef __simd128_int64_t int64x2_t;
68 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
69 typedef __simd128_float16_t float16x8_t;
70 #endif
71 typedef __simd128_float32_t float32x4_t;
72 typedef __simd128_poly8_t poly8x16_t;
73 typedef __simd128_poly16_t poly16x8_t;
74 #pragma GCC push_options
75 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
76 typedef __builtin_neon_poly64 poly64x2_t __attribute__ ((__vector_size__ (16)));
77 #pragma GCC pop_options
78
79 typedef __simd128_uint8_t uint8x16_t;
80 typedef __simd128_uint16_t uint16x8_t;
81 typedef __simd128_uint32_t uint32x4_t;
82 typedef __simd128_uint64_t uint64x2_t;
83
84 typedef float float32_t;
85
86 /* The Poly types are user visible and live in their own world,
87 keep them that way. */
88 typedef __builtin_neon_poly8 poly8_t;
89 typedef __builtin_neon_poly16 poly16_t;
90 #pragma GCC push_options
91 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
92 typedef __builtin_neon_poly64 poly64_t;
93 typedef __builtin_neon_poly128 poly128_t;
94 #pragma GCC pop_options
95
96 typedef struct int8x8x2_t
97 {
98 int8x8_t val[2];
99 } int8x8x2_t;
100
101 typedef struct int8x16x2_t
102 {
103 int8x16_t val[2];
104 } int8x16x2_t;
105
106 typedef struct int16x4x2_t
107 {
108 int16x4_t val[2];
109 } int16x4x2_t;
110
111 typedef struct int16x8x2_t
112 {
113 int16x8_t val[2];
114 } int16x8x2_t;
115
116 typedef struct int32x2x2_t
117 {
118 int32x2_t val[2];
119 } int32x2x2_t;
120
121 typedef struct int32x4x2_t
122 {
123 int32x4_t val[2];
124 } int32x4x2_t;
125
126 typedef struct int64x1x2_t
127 {
128 int64x1_t val[2];
129 } int64x1x2_t;
130
131 typedef struct int64x2x2_t
132 {
133 int64x2_t val[2];
134 } int64x2x2_t;
135
136 typedef struct uint8x8x2_t
137 {
138 uint8x8_t val[2];
139 } uint8x8x2_t;
140
141 typedef struct uint8x16x2_t
142 {
143 uint8x16_t val[2];
144 } uint8x16x2_t;
145
146 typedef struct uint16x4x2_t
147 {
148 uint16x4_t val[2];
149 } uint16x4x2_t;
150
151 typedef struct uint16x8x2_t
152 {
153 uint16x8_t val[2];
154 } uint16x8x2_t;
155
156 typedef struct uint32x2x2_t
157 {
158 uint32x2_t val[2];
159 } uint32x2x2_t;
160
161 typedef struct uint32x4x2_t
162 {
163 uint32x4_t val[2];
164 } uint32x4x2_t;
165
166 typedef struct uint64x1x2_t
167 {
168 uint64x1_t val[2];
169 } uint64x1x2_t;
170
171 typedef struct uint64x2x2_t
172 {
173 uint64x2_t val[2];
174 } uint64x2x2_t;
175
176 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
177 typedef struct float16x4x2_t
178 {
179 float16x4_t val[2];
180 } float16x4x2_t;
181 #endif
182
183 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
184 typedef struct float16x8x2_t
185 {
186 float16x8_t val[2];
187 } float16x8x2_t;
188 #endif
189
190 typedef struct float32x2x2_t
191 {
192 float32x2_t val[2];
193 } float32x2x2_t;
194
195 typedef struct float32x4x2_t
196 {
197 float32x4_t val[2];
198 } float32x4x2_t;
199
200 typedef struct poly8x8x2_t
201 {
202 poly8x8_t val[2];
203 } poly8x8x2_t;
204
205 typedef struct poly8x16x2_t
206 {
207 poly8x16_t val[2];
208 } poly8x16x2_t;
209
210 typedef struct poly16x4x2_t
211 {
212 poly16x4_t val[2];
213 } poly16x4x2_t;
214
215 typedef struct poly16x8x2_t
216 {
217 poly16x8_t val[2];
218 } poly16x8x2_t;
219
220 #pragma GCC push_options
221 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
222 typedef struct poly64x1x2_t
223 {
224 poly64x1_t val[2];
225 } poly64x1x2_t;
226
227
228 typedef struct poly64x2x2_t
229 {
230 poly64x2_t val[2];
231 } poly64x2x2_t;
232 #pragma GCC pop_options
233
234
235 typedef struct int8x8x3_t
236 {
237 int8x8_t val[3];
238 } int8x8x3_t;
239
240 typedef struct int8x16x3_t
241 {
242 int8x16_t val[3];
243 } int8x16x3_t;
244
245 typedef struct int16x4x3_t
246 {
247 int16x4_t val[3];
248 } int16x4x3_t;
249
250 typedef struct int16x8x3_t
251 {
252 int16x8_t val[3];
253 } int16x8x3_t;
254
255 typedef struct int32x2x3_t
256 {
257 int32x2_t val[3];
258 } int32x2x3_t;
259
260 typedef struct int32x4x3_t
261 {
262 int32x4_t val[3];
263 } int32x4x3_t;
264
265 typedef struct int64x1x3_t
266 {
267 int64x1_t val[3];
268 } int64x1x3_t;
269
270 typedef struct int64x2x3_t
271 {
272 int64x2_t val[3];
273 } int64x2x3_t;
274
275 typedef struct uint8x8x3_t
276 {
277 uint8x8_t val[3];
278 } uint8x8x3_t;
279
280 typedef struct uint8x16x3_t
281 {
282 uint8x16_t val[3];
283 } uint8x16x3_t;
284
285 typedef struct uint16x4x3_t
286 {
287 uint16x4_t val[3];
288 } uint16x4x3_t;
289
290 typedef struct uint16x8x3_t
291 {
292 uint16x8_t val[3];
293 } uint16x8x3_t;
294
295 typedef struct uint32x2x3_t
296 {
297 uint32x2_t val[3];
298 } uint32x2x3_t;
299
300 typedef struct uint32x4x3_t
301 {
302 uint32x4_t val[3];
303 } uint32x4x3_t;
304
305 typedef struct uint64x1x3_t
306 {
307 uint64x1_t val[3];
308 } uint64x1x3_t;
309
310 typedef struct uint64x2x3_t
311 {
312 uint64x2_t val[3];
313 } uint64x2x3_t;
314
315 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
316 typedef struct float16x4x3_t
317 {
318 float16x4_t val[3];
319 } float16x4x3_t;
320 #endif
321
322 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
323 typedef struct float16x8x3_t
324 {
325 float16x8_t val[3];
326 } float16x8x3_t;
327 #endif
328
329 typedef struct float32x2x3_t
330 {
331 float32x2_t val[3];
332 } float32x2x3_t;
333
334 typedef struct float32x4x3_t
335 {
336 float32x4_t val[3];
337 } float32x4x3_t;
338
339 typedef struct poly8x8x3_t
340 {
341 poly8x8_t val[3];
342 } poly8x8x3_t;
343
344 typedef struct poly8x16x3_t
345 {
346 poly8x16_t val[3];
347 } poly8x16x3_t;
348
349 typedef struct poly16x4x3_t
350 {
351 poly16x4_t val[3];
352 } poly16x4x3_t;
353
354 typedef struct poly16x8x3_t
355 {
356 poly16x8_t val[3];
357 } poly16x8x3_t;
358
359 #pragma GCC push_options
360 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
361 typedef struct poly64x1x3_t
362 {
363 poly64x1_t val[3];
364 } poly64x1x3_t;
365
366
367 typedef struct poly64x2x3_t
368 {
369 poly64x2_t val[3];
370 } poly64x2x3_t;
371 #pragma GCC pop_options
372
373
374 typedef struct int8x8x4_t
375 {
376 int8x8_t val[4];
377 } int8x8x4_t;
378
379 typedef struct int8x16x4_t
380 {
381 int8x16_t val[4];
382 } int8x16x4_t;
383
384 typedef struct int16x4x4_t
385 {
386 int16x4_t val[4];
387 } int16x4x4_t;
388
389 typedef struct int16x8x4_t
390 {
391 int16x8_t val[4];
392 } int16x8x4_t;
393
394 typedef struct int32x2x4_t
395 {
396 int32x2_t val[4];
397 } int32x2x4_t;
398
399 typedef struct int32x4x4_t
400 {
401 int32x4_t val[4];
402 } int32x4x4_t;
403
404 typedef struct int64x1x4_t
405 {
406 int64x1_t val[4];
407 } int64x1x4_t;
408
409 typedef struct int64x2x4_t
410 {
411 int64x2_t val[4];
412 } int64x2x4_t;
413
414 typedef struct uint8x8x4_t
415 {
416 uint8x8_t val[4];
417 } uint8x8x4_t;
418
419 typedef struct uint8x16x4_t
420 {
421 uint8x16_t val[4];
422 } uint8x16x4_t;
423
424 typedef struct uint16x4x4_t
425 {
426 uint16x4_t val[4];
427 } uint16x4x4_t;
428
429 typedef struct uint16x8x4_t
430 {
431 uint16x8_t val[4];
432 } uint16x8x4_t;
433
434 typedef struct uint32x2x4_t
435 {
436 uint32x2_t val[4];
437 } uint32x2x4_t;
438
439 typedef struct uint32x4x4_t
440 {
441 uint32x4_t val[4];
442 } uint32x4x4_t;
443
444 typedef struct uint64x1x4_t
445 {
446 uint64x1_t val[4];
447 } uint64x1x4_t;
448
449 typedef struct uint64x2x4_t
450 {
451 uint64x2_t val[4];
452 } uint64x2x4_t;
453
454 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
455 typedef struct float16x4x4_t
456 {
457 float16x4_t val[4];
458 } float16x4x4_t;
459 #endif
460
461 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
462 typedef struct float16x8x4_t
463 {
464 float16x8_t val[4];
465 } float16x8x4_t;
466 #endif
467
468 typedef struct float32x2x4_t
469 {
470 float32x2_t val[4];
471 } float32x2x4_t;
472
473 typedef struct float32x4x4_t
474 {
475 float32x4_t val[4];
476 } float32x4x4_t;
477
478 typedef struct poly8x8x4_t
479 {
480 poly8x8_t val[4];
481 } poly8x8x4_t;
482
483 typedef struct poly8x16x4_t
484 {
485 poly8x16_t val[4];
486 } poly8x16x4_t;
487
488 typedef struct poly16x4x4_t
489 {
490 poly16x4_t val[4];
491 } poly16x4x4_t;
492
493 typedef struct poly16x8x4_t
494 {
495 poly16x8_t val[4];
496 } poly16x8x4_t;
497
498 #pragma GCC push_options
499 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
500 typedef struct poly64x1x4_t
501 {
502 poly64x1_t val[4];
503 } poly64x1x4_t;
504
505
506 typedef struct poly64x2x4_t
507 {
508 poly64x2_t val[4];
509 } poly64x2x4_t;
510 #pragma GCC pop_options
511
512 /* vadd */
513 __extension__ extern __inline int8x8_t
514 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
515 vadd_s8 (int8x8_t __a, int8x8_t __b)
516 {
517 return __a + __b;
518 }
519
520 __extension__ extern __inline int16x4_t
521 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
522 vadd_s16 (int16x4_t __a, int16x4_t __b)
523 {
524 return __a + __b;
525 }
526
527 __extension__ extern __inline int32x2_t
528 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
529 vadd_s32 (int32x2_t __a, int32x2_t __b)
530 {
531 return __a + __b;
532 }
533
534 __extension__ extern __inline float32x2_t
535 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
536 vadd_f32 (float32x2_t __a, float32x2_t __b)
537 {
538 #ifdef __FAST_MATH__
539 return __a + __b;
540 #else
541 return (float32x2_t) __builtin_neon_vaddv2sf (__a, __b);
542 #endif
543 }
544
545 __extension__ extern __inline uint8x8_t
546 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
547 vadd_u8 (uint8x8_t __a, uint8x8_t __b)
548 {
549 return __a + __b;
550 }
551
552 __extension__ extern __inline uint16x4_t
553 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
554 vadd_u16 (uint16x4_t __a, uint16x4_t __b)
555 {
556 return __a + __b;
557 }
558
559 __extension__ extern __inline uint32x2_t
560 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
561 vadd_u32 (uint32x2_t __a, uint32x2_t __b)
562 {
563 return __a + __b;
564 }
565
566 __extension__ extern __inline int64x1_t
567 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
568 vadd_s64 (int64x1_t __a, int64x1_t __b)
569 {
570 return __a + __b;
571 }
572
573 __extension__ extern __inline uint64x1_t
574 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
575 vadd_u64 (uint64x1_t __a, uint64x1_t __b)
576 {
577 return __a + __b;
578 }
579
580 __extension__ extern __inline int8x16_t
581 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
582 vaddq_s8 (int8x16_t __a, int8x16_t __b)
583 {
584 return __a + __b;
585 }
586
587 __extension__ extern __inline int16x8_t
588 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
589 vaddq_s16 (int16x8_t __a, int16x8_t __b)
590 {
591 return __a + __b;
592 }
593
594 __extension__ extern __inline int32x4_t
595 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
596 vaddq_s32 (int32x4_t __a, int32x4_t __b)
597 {
598 return __a + __b;
599 }
600
601 __extension__ extern __inline int64x2_t
602 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
603 vaddq_s64 (int64x2_t __a, int64x2_t __b)
604 {
605 return __a + __b;
606 }
607
608 __extension__ extern __inline float32x4_t
609 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
610 vaddq_f32 (float32x4_t __a, float32x4_t __b)
611 {
612 #ifdef __FAST_MATH__
613 return __a + __b;
614 #else
615 return (float32x4_t) __builtin_neon_vaddv4sf (__a, __b);
616 #endif
617 }
618
619 __extension__ extern __inline uint8x16_t
620 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
621 vaddq_u8 (uint8x16_t __a, uint8x16_t __b)
622 {
623 return __a + __b;
624 }
625
626 __extension__ extern __inline uint16x8_t
627 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
628 vaddq_u16 (uint16x8_t __a, uint16x8_t __b)
629 {
630 return __a + __b;
631 }
632
633 __extension__ extern __inline uint32x4_t
634 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
635 vaddq_u32 (uint32x4_t __a, uint32x4_t __b)
636 {
637 return __a + __b;
638 }
639
640 __extension__ extern __inline uint64x2_t
641 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
642 vaddq_u64 (uint64x2_t __a, uint64x2_t __b)
643 {
644 return __a + __b;
645 }
646
647 __extension__ extern __inline int16x8_t
648 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
649 vaddl_s8 (int8x8_t __a, int8x8_t __b)
650 {
651 return (int16x8_t)__builtin_neon_vaddlsv8qi (__a, __b);
652 }
653
654 __extension__ extern __inline int32x4_t
655 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
656 vaddl_s16 (int16x4_t __a, int16x4_t __b)
657 {
658 return (int32x4_t)__builtin_neon_vaddlsv4hi (__a, __b);
659 }
660
661 __extension__ extern __inline int64x2_t
662 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
663 vaddl_s32 (int32x2_t __a, int32x2_t __b)
664 {
665 return (int64x2_t)__builtin_neon_vaddlsv2si (__a, __b);
666 }
667
668 __extension__ extern __inline uint16x8_t
669 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
670 vaddl_u8 (uint8x8_t __a, uint8x8_t __b)
671 {
672 return (uint16x8_t)__builtin_neon_vaddluv8qi ((int8x8_t) __a, (int8x8_t) __b);
673 }
674
675 __extension__ extern __inline uint32x4_t
676 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
677 vaddl_u16 (uint16x4_t __a, uint16x4_t __b)
678 {
679 return (uint32x4_t)__builtin_neon_vaddluv4hi ((int16x4_t) __a, (int16x4_t) __b);
680 }
681
682 __extension__ extern __inline uint64x2_t
683 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
684 vaddl_u32 (uint32x2_t __a, uint32x2_t __b)
685 {
686 return (uint64x2_t)__builtin_neon_vaddluv2si ((int32x2_t) __a, (int32x2_t) __b);
687 }
688
689 __extension__ extern __inline int16x8_t
690 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
691 vaddw_s8 (int16x8_t __a, int8x8_t __b)
692 {
693 return (int16x8_t)__builtin_neon_vaddwsv8qi (__a, __b);
694 }
695
696 __extension__ extern __inline int32x4_t
697 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
698 vaddw_s16 (int32x4_t __a, int16x4_t __b)
699 {
700 return (int32x4_t)__builtin_neon_vaddwsv4hi (__a, __b);
701 }
702
703 __extension__ extern __inline int64x2_t
704 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
705 vaddw_s32 (int64x2_t __a, int32x2_t __b)
706 {
707 return (int64x2_t)__builtin_neon_vaddwsv2si (__a, __b);
708 }
709
710 __extension__ extern __inline uint16x8_t
711 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
712 vaddw_u8 (uint16x8_t __a, uint8x8_t __b)
713 {
714 return (uint16x8_t)__builtin_neon_vaddwuv8qi ((int16x8_t) __a, (int8x8_t) __b);
715 }
716
717 __extension__ extern __inline uint32x4_t
718 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
719 vaddw_u16 (uint32x4_t __a, uint16x4_t __b)
720 {
721 return (uint32x4_t)__builtin_neon_vaddwuv4hi ((int32x4_t) __a, (int16x4_t) __b);
722 }
723
724 __extension__ extern __inline uint64x2_t
725 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
726 vaddw_u32 (uint64x2_t __a, uint32x2_t __b)
727 {
728 return (uint64x2_t)__builtin_neon_vaddwuv2si ((int64x2_t) __a, (int32x2_t) __b);
729 }
730
731 __extension__ extern __inline int8x8_t
732 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
733 vhadd_s8 (int8x8_t __a, int8x8_t __b)
734 {
735 return (int8x8_t)__builtin_neon_vhaddsv8qi (__a, __b);
736 }
737
738 __extension__ extern __inline int16x4_t
739 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
740 vhadd_s16 (int16x4_t __a, int16x4_t __b)
741 {
742 return (int16x4_t)__builtin_neon_vhaddsv4hi (__a, __b);
743 }
744
745 __extension__ extern __inline int32x2_t
746 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
747 vhadd_s32 (int32x2_t __a, int32x2_t __b)
748 {
749 return (int32x2_t)__builtin_neon_vhaddsv2si (__a, __b);
750 }
751
752 __extension__ extern __inline uint8x8_t
753 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
754 vhadd_u8 (uint8x8_t __a, uint8x8_t __b)
755 {
756 return (uint8x8_t)__builtin_neon_vhadduv8qi ((int8x8_t) __a, (int8x8_t) __b);
757 }
758
759 __extension__ extern __inline uint16x4_t
760 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
761 vhadd_u16 (uint16x4_t __a, uint16x4_t __b)
762 {
763 return (uint16x4_t)__builtin_neon_vhadduv4hi ((int16x4_t) __a, (int16x4_t) __b);
764 }
765
766 __extension__ extern __inline uint32x2_t
767 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
768 vhadd_u32 (uint32x2_t __a, uint32x2_t __b)
769 {
770 return (uint32x2_t)__builtin_neon_vhadduv2si ((int32x2_t) __a, (int32x2_t) __b);
771 }
772
773 __extension__ extern __inline int8x16_t
774 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
775 vhaddq_s8 (int8x16_t __a, int8x16_t __b)
776 {
777 return (int8x16_t)__builtin_neon_vhaddsv16qi (__a, __b);
778 }
779
780 __extension__ extern __inline int16x8_t
781 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
782 vhaddq_s16 (int16x8_t __a, int16x8_t __b)
783 {
784 return (int16x8_t)__builtin_neon_vhaddsv8hi (__a, __b);
785 }
786
787 __extension__ extern __inline int32x4_t
788 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
789 vhaddq_s32 (int32x4_t __a, int32x4_t __b)
790 {
791 return (int32x4_t)__builtin_neon_vhaddsv4si (__a, __b);
792 }
793
794 __extension__ extern __inline uint8x16_t
795 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
796 vhaddq_u8 (uint8x16_t __a, uint8x16_t __b)
797 {
798 return (uint8x16_t)__builtin_neon_vhadduv16qi ((int8x16_t) __a, (int8x16_t) __b);
799 }
800
801 __extension__ extern __inline uint16x8_t
802 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
803 vhaddq_u16 (uint16x8_t __a, uint16x8_t __b)
804 {
805 return (uint16x8_t)__builtin_neon_vhadduv8hi ((int16x8_t) __a, (int16x8_t) __b);
806 }
807
808 __extension__ extern __inline uint32x4_t
809 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
810 vhaddq_u32 (uint32x4_t __a, uint32x4_t __b)
811 {
812 return (uint32x4_t)__builtin_neon_vhadduv4si ((int32x4_t) __a, (int32x4_t) __b);
813 }
814
815 __extension__ extern __inline int8x8_t
816 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
817 vrhadd_s8 (int8x8_t __a, int8x8_t __b)
818 {
819 return (int8x8_t)__builtin_neon_vrhaddsv8qi (__a, __b);
820 }
821
822 __extension__ extern __inline int16x4_t
823 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
824 vrhadd_s16 (int16x4_t __a, int16x4_t __b)
825 {
826 return (int16x4_t)__builtin_neon_vrhaddsv4hi (__a, __b);
827 }
828
829 __extension__ extern __inline int32x2_t
830 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
831 vrhadd_s32 (int32x2_t __a, int32x2_t __b)
832 {
833 return (int32x2_t)__builtin_neon_vrhaddsv2si (__a, __b);
834 }
835
836 __extension__ extern __inline uint8x8_t
837 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
838 vrhadd_u8 (uint8x8_t __a, uint8x8_t __b)
839 {
840 return (uint8x8_t)__builtin_neon_vrhadduv8qi ((int8x8_t) __a, (int8x8_t) __b);
841 }
842
843 __extension__ extern __inline uint16x4_t
844 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
845 vrhadd_u16 (uint16x4_t __a, uint16x4_t __b)
846 {
847 return (uint16x4_t)__builtin_neon_vrhadduv4hi ((int16x4_t) __a, (int16x4_t) __b);
848 }
849
850 __extension__ extern __inline uint32x2_t
851 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
852 vrhadd_u32 (uint32x2_t __a, uint32x2_t __b)
853 {
854 return (uint32x2_t)__builtin_neon_vrhadduv2si ((int32x2_t) __a, (int32x2_t) __b);
855 }
856
857 __extension__ extern __inline int8x16_t
858 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
859 vrhaddq_s8 (int8x16_t __a, int8x16_t __b)
860 {
861 return (int8x16_t)__builtin_neon_vrhaddsv16qi (__a, __b);
862 }
863
864 __extension__ extern __inline int16x8_t
865 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
866 vrhaddq_s16 (int16x8_t __a, int16x8_t __b)
867 {
868 return (int16x8_t)__builtin_neon_vrhaddsv8hi (__a, __b);
869 }
870
871 __extension__ extern __inline int32x4_t
872 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
873 vrhaddq_s32 (int32x4_t __a, int32x4_t __b)
874 {
875 return (int32x4_t)__builtin_neon_vrhaddsv4si (__a, __b);
876 }
877
878 __extension__ extern __inline uint8x16_t
879 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
880 vrhaddq_u8 (uint8x16_t __a, uint8x16_t __b)
881 {
882 return (uint8x16_t)__builtin_neon_vrhadduv16qi ((int8x16_t) __a, (int8x16_t) __b);
883 }
884
885 __extension__ extern __inline uint16x8_t
886 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
887 vrhaddq_u16 (uint16x8_t __a, uint16x8_t __b)
888 {
889 return (uint16x8_t)__builtin_neon_vrhadduv8hi ((int16x8_t) __a, (int16x8_t) __b);
890 }
891
892 __extension__ extern __inline uint32x4_t
893 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
894 vrhaddq_u32 (uint32x4_t __a, uint32x4_t __b)
895 {
896 return (uint32x4_t)__builtin_neon_vrhadduv4si ((int32x4_t) __a, (int32x4_t) __b);
897 }
898
899 __extension__ extern __inline int8x8_t
900 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
901 vqadd_s8 (int8x8_t __a, int8x8_t __b)
902 {
903 return (int8x8_t)__builtin_neon_vqaddsv8qi (__a, __b);
904 }
905
906 __extension__ extern __inline int16x4_t
907 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
908 vqadd_s16 (int16x4_t __a, int16x4_t __b)
909 {
910 return (int16x4_t)__builtin_neon_vqaddsv4hi (__a, __b);
911 }
912
913 __extension__ extern __inline int32x2_t
914 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
915 vqadd_s32 (int32x2_t __a, int32x2_t __b)
916 {
917 return (int32x2_t)__builtin_neon_vqaddsv2si (__a, __b);
918 }
919
920 __extension__ extern __inline int64x1_t
921 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
922 vqadd_s64 (int64x1_t __a, int64x1_t __b)
923 {
924 return (int64x1_t)__builtin_neon_vqaddsdi (__a, __b);
925 }
926
927 __extension__ extern __inline uint8x8_t
928 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
929 vqadd_u8 (uint8x8_t __a, uint8x8_t __b)
930 {
931 return (uint8x8_t)__builtin_neon_vqadduv8qi ((int8x8_t) __a, (int8x8_t) __b);
932 }
933
934 __extension__ extern __inline uint16x4_t
935 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
936 vqadd_u16 (uint16x4_t __a, uint16x4_t __b)
937 {
938 return (uint16x4_t)__builtin_neon_vqadduv4hi ((int16x4_t) __a, (int16x4_t) __b);
939 }
940
941 __extension__ extern __inline uint32x2_t
942 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
943 vqadd_u32 (uint32x2_t __a, uint32x2_t __b)
944 {
945 return (uint32x2_t)__builtin_neon_vqadduv2si ((int32x2_t) __a, (int32x2_t) __b);
946 }
947
948 __extension__ extern __inline uint64x1_t
949 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
950 vqadd_u64 (uint64x1_t __a, uint64x1_t __b)
951 {
952 return (uint64x1_t)__builtin_neon_vqaddudi ((int64x1_t) __a, (int64x1_t) __b);
953 }
954
955 __extension__ extern __inline int8x16_t
956 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
957 vqaddq_s8 (int8x16_t __a, int8x16_t __b)
958 {
959 return (int8x16_t)__builtin_neon_vqaddsv16qi (__a, __b);
960 }
961
962 __extension__ extern __inline int16x8_t
963 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
964 vqaddq_s16 (int16x8_t __a, int16x8_t __b)
965 {
966 return (int16x8_t)__builtin_neon_vqaddsv8hi (__a, __b);
967 }
968
969 __extension__ extern __inline int32x4_t
970 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
971 vqaddq_s32 (int32x4_t __a, int32x4_t __b)
972 {
973 return (int32x4_t)__builtin_neon_vqaddsv4si (__a, __b);
974 }
975
976 __extension__ extern __inline int64x2_t
977 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
978 vqaddq_s64 (int64x2_t __a, int64x2_t __b)
979 {
980 return (int64x2_t)__builtin_neon_vqaddsv2di (__a, __b);
981 }
982
983 __extension__ extern __inline uint8x16_t
984 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
985 vqaddq_u8 (uint8x16_t __a, uint8x16_t __b)
986 {
987 return (uint8x16_t)__builtin_neon_vqadduv16qi ((int8x16_t) __a, (int8x16_t) __b);
988 }
989
990 __extension__ extern __inline uint16x8_t
991 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
992 vqaddq_u16 (uint16x8_t __a, uint16x8_t __b)
993 {
994 return (uint16x8_t)__builtin_neon_vqadduv8hi ((int16x8_t) __a, (int16x8_t) __b);
995 }
996
997 __extension__ extern __inline uint32x4_t
998 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
999 vqaddq_u32 (uint32x4_t __a, uint32x4_t __b)
1000 {
1001 return (uint32x4_t)__builtin_neon_vqadduv4si ((int32x4_t) __a, (int32x4_t) __b);
1002 }
1003
1004 __extension__ extern __inline uint64x2_t
1005 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1006 vqaddq_u64 (uint64x2_t __a, uint64x2_t __b)
1007 {
1008 return (uint64x2_t)__builtin_neon_vqadduv2di ((int64x2_t) __a, (int64x2_t) __b);
1009 }
1010
1011 __extension__ extern __inline int8x8_t
1012 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1013 vaddhn_s16 (int16x8_t __a, int16x8_t __b)
1014 {
1015 return (int8x8_t)__builtin_neon_vaddhnv8hi (__a, __b);
1016 }
1017
1018 __extension__ extern __inline int16x4_t
1019 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1020 vaddhn_s32 (int32x4_t __a, int32x4_t __b)
1021 {
1022 return (int16x4_t)__builtin_neon_vaddhnv4si (__a, __b);
1023 }
1024
1025 __extension__ extern __inline int32x2_t
1026 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1027 vaddhn_s64 (int64x2_t __a, int64x2_t __b)
1028 {
1029 return (int32x2_t)__builtin_neon_vaddhnv2di (__a, __b);
1030 }
1031
1032 __extension__ extern __inline uint8x8_t
1033 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1034 vaddhn_u16 (uint16x8_t __a, uint16x8_t __b)
1035 {
1036 return (uint8x8_t)__builtin_neon_vaddhnv8hi ((int16x8_t) __a, (int16x8_t) __b);
1037 }
1038
1039 __extension__ extern __inline uint16x4_t
1040 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1041 vaddhn_u32 (uint32x4_t __a, uint32x4_t __b)
1042 {
1043 return (uint16x4_t)__builtin_neon_vaddhnv4si ((int32x4_t) __a, (int32x4_t) __b);
1044 }
1045
1046 __extension__ extern __inline uint32x2_t
1047 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1048 vaddhn_u64 (uint64x2_t __a, uint64x2_t __b)
1049 {
1050 return (uint32x2_t)__builtin_neon_vaddhnv2di ((int64x2_t) __a, (int64x2_t) __b);
1051 }
1052
1053 __extension__ extern __inline int8x8_t
1054 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1055 vraddhn_s16 (int16x8_t __a, int16x8_t __b)
1056 {
1057 return (int8x8_t)__builtin_neon_vraddhnv8hi (__a, __b);
1058 }
1059
1060 __extension__ extern __inline int16x4_t
1061 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1062 vraddhn_s32 (int32x4_t __a, int32x4_t __b)
1063 {
1064 return (int16x4_t)__builtin_neon_vraddhnv4si (__a, __b);
1065 }
1066
1067 __extension__ extern __inline int32x2_t
1068 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1069 vraddhn_s64 (int64x2_t __a, int64x2_t __b)
1070 {
1071 return (int32x2_t)__builtin_neon_vraddhnv2di (__a, __b);
1072 }
1073
1074 __extension__ extern __inline uint8x8_t
1075 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1076 vraddhn_u16 (uint16x8_t __a, uint16x8_t __b)
1077 {
1078 return (uint8x8_t)__builtin_neon_vraddhnv8hi ((int16x8_t) __a, (int16x8_t) __b);
1079 }
1080
1081 __extension__ extern __inline uint16x4_t
1082 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1083 vraddhn_u32 (uint32x4_t __a, uint32x4_t __b)
1084 {
1085 return (uint16x4_t)__builtin_neon_vraddhnv4si ((int32x4_t) __a, (int32x4_t) __b);
1086 }
1087
1088 __extension__ extern __inline uint32x2_t
1089 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1090 vraddhn_u64 (uint64x2_t __a, uint64x2_t __b)
1091 {
1092 return (uint32x2_t)__builtin_neon_vraddhnv2di ((int64x2_t) __a, (int64x2_t) __b);
1093 }
1094
1095 __extension__ extern __inline int8x8_t
1096 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1097 vmul_s8 (int8x8_t __a, int8x8_t __b)
1098 {
1099 return __a * __b;
1100 }
1101
1102 __extension__ extern __inline int16x4_t
1103 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1104 vmul_s16 (int16x4_t __a, int16x4_t __b)
1105 {
1106 return __a * __b;
1107 }
1108
1109 __extension__ extern __inline int32x2_t
1110 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1111 vmul_s32 (int32x2_t __a, int32x2_t __b)
1112 {
1113 return __a * __b;
1114 }
1115
1116 __extension__ extern __inline float32x2_t
1117 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1118 vmul_f32 (float32x2_t __a, float32x2_t __b)
1119 {
1120 #ifdef __FAST_MATH__
1121 return __a * __b;
1122 #else
1123 return (float32x2_t) __builtin_neon_vmulfv2sf (__a, __b);
1124 #endif
1125
1126 }
1127
1128 __extension__ extern __inline uint8x8_t
1129 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1130 vmul_u8 (uint8x8_t __a, uint8x8_t __b)
1131 {
1132 return __a * __b;
1133 }
1134
1135 __extension__ extern __inline uint16x4_t
1136 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1137 vmul_u16 (uint16x4_t __a, uint16x4_t __b)
1138 {
1139 return __a * __b;
1140 }
1141
1142 __extension__ extern __inline uint32x2_t
1143 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1144 vmul_u32 (uint32x2_t __a, uint32x2_t __b)
1145 {
1146 return __a * __b;
1147 }
1148
1149 __extension__ extern __inline int8x16_t
1150 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1151 vmulq_s8 (int8x16_t __a, int8x16_t __b)
1152 {
1153 return __a * __b;
1154 }
1155
1156 __extension__ extern __inline int16x8_t
1157 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1158 vmulq_s16 (int16x8_t __a, int16x8_t __b)
1159 {
1160 return __a * __b;
1161 }
1162
1163 __extension__ extern __inline int32x4_t
1164 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1165 vmulq_s32 (int32x4_t __a, int32x4_t __b)
1166 {
1167 return __a * __b;
1168 }
1169
1170 __extension__ extern __inline float32x4_t
1171 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1172 vmulq_f32 (float32x4_t __a, float32x4_t __b)
1173 {
1174 #ifdef __FAST_MATH__
1175 return __a * __b;
1176 #else
1177 return (float32x4_t) __builtin_neon_vmulfv4sf (__a, __b);
1178 #endif
1179 }
1180
1181 __extension__ extern __inline uint8x16_t
1182 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1183 vmulq_u8 (uint8x16_t __a, uint8x16_t __b)
1184 {
1185 return __a * __b;
1186 }
1187
1188 __extension__ extern __inline uint16x8_t
1189 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1190 vmulq_u16 (uint16x8_t __a, uint16x8_t __b)
1191 {
1192 return __a * __b;
1193 }
1194
1195 __extension__ extern __inline uint32x4_t
1196 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1197 vmulq_u32 (uint32x4_t __a, uint32x4_t __b)
1198 {
1199 return __a * __b;
1200 }
1201
1202 __extension__ extern __inline poly8x8_t
1203 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1204 vmul_p8 (poly8x8_t __a, poly8x8_t __b)
1205 {
1206 return (poly8x8_t)__builtin_neon_vmulpv8qi ((int8x8_t) __a, (int8x8_t) __b);
1207 }
1208
1209 __extension__ extern __inline poly8x16_t
1210 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1211 vmulq_p8 (poly8x16_t __a, poly8x16_t __b)
1212 {
1213 return (poly8x16_t)__builtin_neon_vmulpv16qi ((int8x16_t) __a, (int8x16_t) __b);
1214 }
1215
1216 __extension__ extern __inline int16x4_t
1217 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1218 vqdmulh_s16 (int16x4_t __a, int16x4_t __b)
1219 {
1220 return (int16x4_t)__builtin_neon_vqdmulhv4hi (__a, __b);
1221 }
1222
1223 __extension__ extern __inline int32x2_t
1224 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1225 vqdmulh_s32 (int32x2_t __a, int32x2_t __b)
1226 {
1227 return (int32x2_t)__builtin_neon_vqdmulhv2si (__a, __b);
1228 }
1229
1230 __extension__ extern __inline int16x8_t
1231 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1232 vqdmulhq_s16 (int16x8_t __a, int16x8_t __b)
1233 {
1234 return (int16x8_t)__builtin_neon_vqdmulhv8hi (__a, __b);
1235 }
1236
1237 __extension__ extern __inline int32x4_t
1238 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1239 vqdmulhq_s32 (int32x4_t __a, int32x4_t __b)
1240 {
1241 return (int32x4_t)__builtin_neon_vqdmulhv4si (__a, __b);
1242 }
1243
1244 __extension__ extern __inline int16x4_t
1245 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1246 vqrdmulh_s16 (int16x4_t __a, int16x4_t __b)
1247 {
1248 return (int16x4_t)__builtin_neon_vqrdmulhv4hi (__a, __b);
1249 }
1250
1251 __extension__ extern __inline int32x2_t
1252 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1253 vqrdmulh_s32 (int32x2_t __a, int32x2_t __b)
1254 {
1255 return (int32x2_t)__builtin_neon_vqrdmulhv2si (__a, __b);
1256 }
1257
1258 __extension__ extern __inline int16x8_t
1259 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1260 vqrdmulhq_s16 (int16x8_t __a, int16x8_t __b)
1261 {
1262 return (int16x8_t)__builtin_neon_vqrdmulhv8hi (__a, __b);
1263 }
1264
1265 __extension__ extern __inline int32x4_t
1266 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1267 vqrdmulhq_s32 (int32x4_t __a, int32x4_t __b)
1268 {
1269 return (int32x4_t)__builtin_neon_vqrdmulhv4si (__a, __b);
1270 }
1271
1272 #ifdef __ARM_FEATURE_QRDMX
1273 __extension__ extern __inline int16x4_t
1274 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1275 vqrdmlah_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c)
1276 {
1277 return (int16x4_t)__builtin_neon_vqrdmlahv4hi (__a, __b, __c);
1278 }
1279
1280 __extension__ extern __inline int32x2_t
1281 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1282 vqrdmlah_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c)
1283 {
1284 return (int32x2_t)__builtin_neon_vqrdmlahv2si (__a, __b, __c);
1285 }
1286
1287 __extension__ extern __inline int16x8_t
1288 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1289 vqrdmlahq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
1290 {
1291 return (int16x8_t)__builtin_neon_vqrdmlahv8hi (__a, __b, __c);
1292 }
1293
1294 __extension__ extern __inline int32x4_t
1295 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1296 vqrdmlahq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
1297 {
1298 return (int32x4_t)__builtin_neon_vqrdmlahv4si (__a, __b, __c);
1299 }
1300
1301 __extension__ extern __inline int16x4_t
1302 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1303 vqrdmlsh_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c)
1304 {
1305 return (int16x4_t)__builtin_neon_vqrdmlshv4hi (__a, __b, __c);
1306 }
1307
1308 __extension__ extern __inline int32x2_t
1309 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1310 vqrdmlsh_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c)
1311 {
1312 return (int32x2_t)__builtin_neon_vqrdmlshv2si (__a, __b, __c);
1313 }
1314
1315 __extension__ extern __inline int16x8_t
1316 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1317 vqrdmlshq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
1318 {
1319 return (int16x8_t)__builtin_neon_vqrdmlshv8hi (__a, __b, __c);
1320 }
1321
1322 __extension__ extern __inline int32x4_t
1323 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1324 vqrdmlshq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
1325 {
1326 return (int32x4_t)__builtin_neon_vqrdmlshv4si (__a, __b, __c);
1327 }
1328 #endif
1329
1330 __extension__ extern __inline int16x8_t
1331 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1332 vmull_s8 (int8x8_t __a, int8x8_t __b)
1333 {
1334 return (int16x8_t)__builtin_neon_vmullsv8qi (__a, __b);
1335 }
1336
1337 __extension__ extern __inline int32x4_t
1338 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1339 vmull_s16 (int16x4_t __a, int16x4_t __b)
1340 {
1341 return (int32x4_t)__builtin_neon_vmullsv4hi (__a, __b);
1342 }
1343
1344 __extension__ extern __inline int64x2_t
1345 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1346 vmull_s32 (int32x2_t __a, int32x2_t __b)
1347 {
1348 return (int64x2_t)__builtin_neon_vmullsv2si (__a, __b);
1349 }
1350
1351 __extension__ extern __inline uint16x8_t
1352 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1353 vmull_u8 (uint8x8_t __a, uint8x8_t __b)
1354 {
1355 return (uint16x8_t)__builtin_neon_vmulluv8qi ((int8x8_t) __a, (int8x8_t) __b);
1356 }
1357
1358 __extension__ extern __inline uint32x4_t
1359 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1360 vmull_u16 (uint16x4_t __a, uint16x4_t __b)
1361 {
1362 return (uint32x4_t)__builtin_neon_vmulluv4hi ((int16x4_t) __a, (int16x4_t) __b);
1363 }
1364
1365 __extension__ extern __inline uint64x2_t
1366 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1367 vmull_u32 (uint32x2_t __a, uint32x2_t __b)
1368 {
1369 return (uint64x2_t)__builtin_neon_vmulluv2si ((int32x2_t) __a, (int32x2_t) __b);
1370 }
1371
1372 __extension__ extern __inline poly16x8_t
1373 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1374 vmull_p8 (poly8x8_t __a, poly8x8_t __b)
1375 {
1376 return (poly16x8_t)__builtin_neon_vmullpv8qi ((int8x8_t) __a, (int8x8_t) __b);
1377 }
1378
1379 __extension__ extern __inline int32x4_t
1380 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1381 vqdmull_s16 (int16x4_t __a, int16x4_t __b)
1382 {
1383 return (int32x4_t)__builtin_neon_vqdmullv4hi (__a, __b);
1384 }
1385
1386 __extension__ extern __inline int64x2_t
1387 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1388 vqdmull_s32 (int32x2_t __a, int32x2_t __b)
1389 {
1390 return (int64x2_t)__builtin_neon_vqdmullv2si (__a, __b);
1391 }
1392
1393 __extension__ extern __inline int8x8_t
1394 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1395 vmla_s8 (int8x8_t __a, int8x8_t __b, int8x8_t __c)
1396 {
1397 return (int8x8_t)__builtin_neon_vmlav8qi (__a, __b, __c);
1398 }
1399
1400 __extension__ extern __inline int16x4_t
1401 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1402 vmla_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c)
1403 {
1404 return (int16x4_t)__builtin_neon_vmlav4hi (__a, __b, __c);
1405 }
1406
1407 __extension__ extern __inline int32x2_t
1408 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1409 vmla_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c)
1410 {
1411 return (int32x2_t)__builtin_neon_vmlav2si (__a, __b, __c);
1412 }
1413
1414 __extension__ extern __inline float32x2_t
1415 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1416 vmla_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c)
1417 {
1418 return (float32x2_t)__builtin_neon_vmlav2sf (__a, __b, __c);
1419 }
1420
1421 __extension__ extern __inline uint8x8_t
1422 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1423 vmla_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c)
1424 {
1425 return (uint8x8_t)__builtin_neon_vmlav8qi ((int8x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
1426 }
1427
1428 __extension__ extern __inline uint16x4_t
1429 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1430 vmla_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c)
1431 {
1432 return (uint16x4_t)__builtin_neon_vmlav4hi ((int16x4_t) __a, (int16x4_t) __b, (int16x4_t) __c);
1433 }
1434
1435 __extension__ extern __inline uint32x2_t
1436 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1437 vmla_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c)
1438 {
1439 return (uint32x2_t)__builtin_neon_vmlav2si ((int32x2_t) __a, (int32x2_t) __b, (int32x2_t) __c);
1440 }
1441
1442 __extension__ extern __inline int8x16_t
1443 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1444 vmlaq_s8 (int8x16_t __a, int8x16_t __b, int8x16_t __c)
1445 {
1446 return (int8x16_t)__builtin_neon_vmlav16qi (__a, __b, __c);
1447 }
1448
1449 __extension__ extern __inline int16x8_t
1450 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1451 vmlaq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
1452 {
1453 return (int16x8_t)__builtin_neon_vmlav8hi (__a, __b, __c);
1454 }
1455
1456 __extension__ extern __inline int32x4_t
1457 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1458 vmlaq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
1459 {
1460 return (int32x4_t)__builtin_neon_vmlav4si (__a, __b, __c);
1461 }
1462
1463 __extension__ extern __inline float32x4_t
1464 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1465 vmlaq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c)
1466 {
1467 return (float32x4_t)__builtin_neon_vmlav4sf (__a, __b, __c);
1468 }
1469
1470 __extension__ extern __inline uint8x16_t
1471 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1472 vmlaq_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c)
1473 {
1474 return (uint8x16_t)__builtin_neon_vmlav16qi ((int8x16_t) __a, (int8x16_t) __b, (int8x16_t) __c);
1475 }
1476
1477 __extension__ extern __inline uint16x8_t
1478 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1479 vmlaq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
1480 {
1481 return (uint16x8_t)__builtin_neon_vmlav8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x8_t) __c);
1482 }
1483
1484 __extension__ extern __inline uint32x4_t
1485 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1486 vmlaq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
1487 {
1488 return (uint32x4_t)__builtin_neon_vmlav4si ((int32x4_t) __a, (int32x4_t) __b, (int32x4_t) __c);
1489 }
1490
1491 __extension__ extern __inline int16x8_t
1492 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1493 vmlal_s8 (int16x8_t __a, int8x8_t __b, int8x8_t __c)
1494 {
1495 return (int16x8_t)__builtin_neon_vmlalsv8qi (__a, __b, __c);
1496 }
1497
1498 __extension__ extern __inline int32x4_t
1499 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1500 vmlal_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
1501 {
1502 return (int32x4_t)__builtin_neon_vmlalsv4hi (__a, __b, __c);
1503 }
1504
1505 __extension__ extern __inline int64x2_t
1506 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1507 vmlal_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
1508 {
1509 return (int64x2_t)__builtin_neon_vmlalsv2si (__a, __b, __c);
1510 }
1511
1512 __extension__ extern __inline uint16x8_t
1513 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1514 vmlal_u8 (uint16x8_t __a, uint8x8_t __b, uint8x8_t __c)
1515 {
1516 return (uint16x8_t)__builtin_neon_vmlaluv8qi ((int16x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
1517 }
1518
1519 __extension__ extern __inline uint32x4_t
1520 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1521 vmlal_u16 (uint32x4_t __a, uint16x4_t __b, uint16x4_t __c)
1522 {
1523 return (uint32x4_t)__builtin_neon_vmlaluv4hi ((int32x4_t) __a, (int16x4_t) __b, (int16x4_t) __c);
1524 }
1525
1526 __extension__ extern __inline uint64x2_t
1527 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1528 vmlal_u32 (uint64x2_t __a, uint32x2_t __b, uint32x2_t __c)
1529 {
1530 return (uint64x2_t)__builtin_neon_vmlaluv2si ((int64x2_t) __a, (int32x2_t) __b, (int32x2_t) __c);
1531 }
1532
1533 __extension__ extern __inline int32x4_t
1534 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1535 vqdmlal_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
1536 {
1537 return (int32x4_t)__builtin_neon_vqdmlalv4hi (__a, __b, __c);
1538 }
1539
1540 __extension__ extern __inline int64x2_t
1541 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1542 vqdmlal_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
1543 {
1544 return (int64x2_t)__builtin_neon_vqdmlalv2si (__a, __b, __c);
1545 }
1546
1547 __extension__ extern __inline int8x8_t
1548 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1549 vmls_s8 (int8x8_t __a, int8x8_t __b, int8x8_t __c)
1550 {
1551 return (int8x8_t)__builtin_neon_vmlsv8qi (__a, __b, __c);
1552 }
1553
1554 __extension__ extern __inline int16x4_t
1555 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1556 vmls_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c)
1557 {
1558 return (int16x4_t)__builtin_neon_vmlsv4hi (__a, __b, __c);
1559 }
1560
1561 __extension__ extern __inline int32x2_t
1562 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1563 vmls_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c)
1564 {
1565 return (int32x2_t)__builtin_neon_vmlsv2si (__a, __b, __c);
1566 }
1567
1568 __extension__ extern __inline float32x2_t
1569 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1570 vmls_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c)
1571 {
1572 return (float32x2_t)__builtin_neon_vmlsv2sf (__a, __b, __c);
1573 }
1574
1575 __extension__ extern __inline uint8x8_t
1576 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1577 vmls_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c)
1578 {
1579 return (uint8x8_t)__builtin_neon_vmlsv8qi ((int8x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
1580 }
1581
1582 __extension__ extern __inline uint16x4_t
1583 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1584 vmls_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c)
1585 {
1586 return (uint16x4_t)__builtin_neon_vmlsv4hi ((int16x4_t) __a, (int16x4_t) __b, (int16x4_t) __c);
1587 }
1588
1589 __extension__ extern __inline uint32x2_t
1590 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1591 vmls_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c)
1592 {
1593 return (uint32x2_t)__builtin_neon_vmlsv2si ((int32x2_t) __a, (int32x2_t) __b, (int32x2_t) __c);
1594 }
1595
1596 __extension__ extern __inline int8x16_t
1597 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1598 vmlsq_s8 (int8x16_t __a, int8x16_t __b, int8x16_t __c)
1599 {
1600 return (int8x16_t)__builtin_neon_vmlsv16qi (__a, __b, __c);
1601 }
1602
1603 __extension__ extern __inline int16x8_t
1604 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1605 vmlsq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
1606 {
1607 return (int16x8_t)__builtin_neon_vmlsv8hi (__a, __b, __c);
1608 }
1609
1610 __extension__ extern __inline int32x4_t
1611 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1612 vmlsq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
1613 {
1614 return (int32x4_t)__builtin_neon_vmlsv4si (__a, __b, __c);
1615 }
1616
1617 __extension__ extern __inline float32x4_t
1618 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1619 vmlsq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c)
1620 {
1621 return (float32x4_t)__builtin_neon_vmlsv4sf (__a, __b, __c);
1622 }
1623
1624 __extension__ extern __inline uint8x16_t
1625 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1626 vmlsq_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c)
1627 {
1628 return (uint8x16_t)__builtin_neon_vmlsv16qi ((int8x16_t) __a, (int8x16_t) __b, (int8x16_t) __c);
1629 }
1630
1631 __extension__ extern __inline uint16x8_t
1632 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1633 vmlsq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
1634 {
1635 return (uint16x8_t)__builtin_neon_vmlsv8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x8_t) __c);
1636 }
1637
1638 __extension__ extern __inline uint32x4_t
1639 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1640 vmlsq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
1641 {
1642 return (uint32x4_t)__builtin_neon_vmlsv4si ((int32x4_t) __a, (int32x4_t) __b, (int32x4_t) __c);
1643 }
1644
1645 __extension__ extern __inline int16x8_t
1646 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1647 vmlsl_s8 (int16x8_t __a, int8x8_t __b, int8x8_t __c)
1648 {
1649 return (int16x8_t)__builtin_neon_vmlslsv8qi (__a, __b, __c);
1650 }
1651
1652 __extension__ extern __inline int32x4_t
1653 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1654 vmlsl_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
1655 {
1656 return (int32x4_t)__builtin_neon_vmlslsv4hi (__a, __b, __c);
1657 }
1658
1659 __extension__ extern __inline int64x2_t
1660 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1661 vmlsl_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
1662 {
1663 return (int64x2_t)__builtin_neon_vmlslsv2si (__a, __b, __c);
1664 }
1665
1666 __extension__ extern __inline uint16x8_t
1667 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1668 vmlsl_u8 (uint16x8_t __a, uint8x8_t __b, uint8x8_t __c)
1669 {
1670 return (uint16x8_t)__builtin_neon_vmlsluv8qi ((int16x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
1671 }
1672
1673 __extension__ extern __inline uint32x4_t
1674 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1675 vmlsl_u16 (uint32x4_t __a, uint16x4_t __b, uint16x4_t __c)
1676 {
1677 return (uint32x4_t)__builtin_neon_vmlsluv4hi ((int32x4_t) __a, (int16x4_t) __b, (int16x4_t) __c);
1678 }
1679
1680 __extension__ extern __inline uint64x2_t
1681 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1682 vmlsl_u32 (uint64x2_t __a, uint32x2_t __b, uint32x2_t __c)
1683 {
1684 return (uint64x2_t)__builtin_neon_vmlsluv2si ((int64x2_t) __a, (int32x2_t) __b, (int32x2_t) __c);
1685 }
1686
1687 __extension__ extern __inline int32x4_t
1688 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1689 vqdmlsl_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
1690 {
1691 return (int32x4_t)__builtin_neon_vqdmlslv4hi (__a, __b, __c);
1692 }
1693
1694 __extension__ extern __inline int64x2_t
1695 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1696 vqdmlsl_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
1697 {
1698 return (int64x2_t)__builtin_neon_vqdmlslv2si (__a, __b, __c);
1699 }
1700
1701 #pragma GCC push_options
1702 #pragma GCC target ("fpu=neon-vfpv4")
1703 __extension__ extern __inline float32x2_t
1704 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1705 vfma_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c)
1706 {
1707 return (float32x2_t)__builtin_neon_vfmav2sf (__a, __b, __c);
1708 }
1709
1710 __extension__ extern __inline float32x4_t
1711 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1712 vfmaq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c)
1713 {
1714 return (float32x4_t)__builtin_neon_vfmav4sf (__a, __b, __c);
1715 }
1716
1717 __extension__ extern __inline float32x2_t
1718 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1719 vfms_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c)
1720 {
1721 return (float32x2_t)__builtin_neon_vfmsv2sf (__a, __b, __c);
1722 }
1723
1724 __extension__ extern __inline float32x4_t
1725 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1726 vfmsq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c)
1727 {
1728 return (float32x4_t)__builtin_neon_vfmsv4sf (__a, __b, __c);
1729 }
1730 #pragma GCC pop_options
1731
1732 #if __ARM_ARCH >= 8
1733 __extension__ extern __inline float32x2_t
1734 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1735 vrndn_f32 (float32x2_t __a)
1736 {
1737 return (float32x2_t)__builtin_neon_vrintnv2sf (__a);
1738 }
1739
1740 #endif
1741 #if __ARM_ARCH >= 8
1742 __extension__ extern __inline float32x4_t
1743 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1744 vrndnq_f32 (float32x4_t __a)
1745 {
1746 return (float32x4_t)__builtin_neon_vrintnv4sf (__a);
1747 }
1748
1749 #endif
1750 #if __ARM_ARCH >= 8
1751 __extension__ extern __inline float32x2_t
1752 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1753 vrnda_f32 (float32x2_t __a)
1754 {
1755 return (float32x2_t)__builtin_neon_vrintav2sf (__a);
1756 }
1757
1758 #endif
1759 #if __ARM_ARCH >= 8
1760 __extension__ extern __inline float32x4_t
1761 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1762 vrndaq_f32 (float32x4_t __a)
1763 {
1764 return (float32x4_t)__builtin_neon_vrintav4sf (__a);
1765 }
1766
1767 #endif
1768 #if __ARM_ARCH >= 8
1769 __extension__ extern __inline float32x2_t
1770 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1771 vrndp_f32 (float32x2_t __a)
1772 {
1773 return (float32x2_t)__builtin_neon_vrintpv2sf (__a);
1774 }
1775
1776 #endif
1777 #if __ARM_ARCH >= 8
1778 __extension__ extern __inline float32x4_t
1779 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1780 vrndpq_f32 (float32x4_t __a)
1781 {
1782 return (float32x4_t)__builtin_neon_vrintpv4sf (__a);
1783 }
1784
1785 #endif
1786 #if __ARM_ARCH >= 8
1787 __extension__ extern __inline float32x2_t
1788 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1789 vrndm_f32 (float32x2_t __a)
1790 {
1791 return (float32x2_t)__builtin_neon_vrintmv2sf (__a);
1792 }
1793
1794 #endif
1795 #if __ARM_ARCH >= 8
1796 __extension__ extern __inline float32x4_t
1797 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1798 vrndmq_f32 (float32x4_t __a)
1799 {
1800 return (float32x4_t)__builtin_neon_vrintmv4sf (__a);
1801 }
1802
1803 #endif
1804
1805 #if __ARM_ARCH >= 8
1806 __extension__ extern __inline float32x2_t
1807 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1808 vrndx_f32 (float32x2_t __a)
1809 {
1810 return (float32x2_t)__builtin_neon_vrintxv2sf (__a);
1811 }
1812
1813 #endif
1814
1815 #if __ARM_ARCH >= 8
1816 __extension__ extern __inline float32x4_t
1817 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1818 vrndxq_f32 (float32x4_t __a)
1819 {
1820 return (float32x4_t)__builtin_neon_vrintxv4sf (__a);
1821 }
1822
1823 #endif
1824
1825 #if __ARM_ARCH >= 8
1826 __extension__ extern __inline float32x2_t
1827 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1828 vrnd_f32 (float32x2_t __a)
1829 {
1830 return (float32x2_t)__builtin_neon_vrintzv2sf (__a);
1831 }
1832
1833 #endif
1834 #if __ARM_ARCH >= 8
1835 __extension__ extern __inline float32x4_t
1836 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1837 vrndq_f32 (float32x4_t __a)
1838 {
1839 return (float32x4_t)__builtin_neon_vrintzv4sf (__a);
1840 }
1841
1842 #endif
1843
1844 __extension__ extern __inline int8x8_t
1845 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1846 vsub_s8 (int8x8_t __a, int8x8_t __b)
1847 {
1848 return __a - __b;
1849 }
1850
1851 __extension__ extern __inline int16x4_t
1852 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1853 vsub_s16 (int16x4_t __a, int16x4_t __b)
1854 {
1855 return __a - __b;
1856 }
1857
1858 __extension__ extern __inline int32x2_t
1859 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1860 vsub_s32 (int32x2_t __a, int32x2_t __b)
1861 {
1862 return __a - __b;
1863 }
1864
1865 __extension__ extern __inline float32x2_t
1866 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1867 vsub_f32 (float32x2_t __a, float32x2_t __b)
1868 {
1869 #ifdef __FAST_MATH__
1870 return __a - __b;
1871 #else
1872 return (float32x2_t) __builtin_neon_vsubv2sf (__a, __b);
1873 #endif
1874 }
1875
1876 __extension__ extern __inline uint8x8_t
1877 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1878 vsub_u8 (uint8x8_t __a, uint8x8_t __b)
1879 {
1880 return __a - __b;
1881 }
1882
1883 __extension__ extern __inline uint16x4_t
1884 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1885 vsub_u16 (uint16x4_t __a, uint16x4_t __b)
1886 {
1887 return __a - __b;
1888 }
1889
1890 __extension__ extern __inline uint32x2_t
1891 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1892 vsub_u32 (uint32x2_t __a, uint32x2_t __b)
1893 {
1894 return __a - __b;
1895 }
1896
1897 __extension__ extern __inline int64x1_t
1898 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1899 vsub_s64 (int64x1_t __a, int64x1_t __b)
1900 {
1901 return __a - __b;
1902 }
1903
1904 __extension__ extern __inline uint64x1_t
1905 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1906 vsub_u64 (uint64x1_t __a, uint64x1_t __b)
1907 {
1908 return __a - __b;
1909 }
1910
1911 __extension__ extern __inline int8x16_t
1912 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1913 vsubq_s8 (int8x16_t __a, int8x16_t __b)
1914 {
1915 return __a - __b;
1916 }
1917
1918 __extension__ extern __inline int16x8_t
1919 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1920 vsubq_s16 (int16x8_t __a, int16x8_t __b)
1921 {
1922 return __a - __b;
1923 }
1924
1925 __extension__ extern __inline int32x4_t
1926 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1927 vsubq_s32 (int32x4_t __a, int32x4_t __b)
1928 {
1929 return __a - __b;
1930 }
1931
1932 __extension__ extern __inline int64x2_t
1933 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1934 vsubq_s64 (int64x2_t __a, int64x2_t __b)
1935 {
1936 return __a - __b;
1937 }
1938
1939 __extension__ extern __inline float32x4_t
1940 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1941 vsubq_f32 (float32x4_t __a, float32x4_t __b)
1942 {
1943 #ifdef __FAST_MATH__
1944 return __a - __b;
1945 #else
1946 return (float32x4_t) __builtin_neon_vsubv4sf (__a, __b);
1947 #endif
1948 }
1949
1950 __extension__ extern __inline uint8x16_t
1951 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1952 vsubq_u8 (uint8x16_t __a, uint8x16_t __b)
1953 {
1954 return __a - __b;
1955 }
1956
1957 __extension__ extern __inline uint16x8_t
1958 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1959 vsubq_u16 (uint16x8_t __a, uint16x8_t __b)
1960 {
1961 return __a - __b;
1962 }
1963
1964 __extension__ extern __inline uint32x4_t
1965 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1966 vsubq_u32 (uint32x4_t __a, uint32x4_t __b)
1967 {
1968 return __a - __b;
1969 }
1970
1971 __extension__ extern __inline uint64x2_t
1972 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1973 vsubq_u64 (uint64x2_t __a, uint64x2_t __b)
1974 {
1975 return __a - __b;
1976 }
1977
1978 __extension__ extern __inline int16x8_t
1979 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1980 vsubl_s8 (int8x8_t __a, int8x8_t __b)
1981 {
1982 return (int16x8_t)__builtin_neon_vsublsv8qi (__a, __b);
1983 }
1984
1985 __extension__ extern __inline int32x4_t
1986 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1987 vsubl_s16 (int16x4_t __a, int16x4_t __b)
1988 {
1989 return (int32x4_t)__builtin_neon_vsublsv4hi (__a, __b);
1990 }
1991
1992 __extension__ extern __inline int64x2_t
1993 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1994 vsubl_s32 (int32x2_t __a, int32x2_t __b)
1995 {
1996 return (int64x2_t)__builtin_neon_vsublsv2si (__a, __b);
1997 }
1998
1999 __extension__ extern __inline uint16x8_t
2000 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2001 vsubl_u8 (uint8x8_t __a, uint8x8_t __b)
2002 {
2003 return (uint16x8_t)__builtin_neon_vsubluv8qi ((int8x8_t) __a, (int8x8_t) __b);
2004 }
2005
2006 __extension__ extern __inline uint32x4_t
2007 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2008 vsubl_u16 (uint16x4_t __a, uint16x4_t __b)
2009 {
2010 return (uint32x4_t)__builtin_neon_vsubluv4hi ((int16x4_t) __a, (int16x4_t) __b);
2011 }
2012
2013 __extension__ extern __inline uint64x2_t
2014 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2015 vsubl_u32 (uint32x2_t __a, uint32x2_t __b)
2016 {
2017 return (uint64x2_t)__builtin_neon_vsubluv2si ((int32x2_t) __a, (int32x2_t) __b);
2018 }
2019
2020 __extension__ extern __inline int16x8_t
2021 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2022 vsubw_s8 (int16x8_t __a, int8x8_t __b)
2023 {
2024 return (int16x8_t)__builtin_neon_vsubwsv8qi (__a, __b);
2025 }
2026
2027 __extension__ extern __inline int32x4_t
2028 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2029 vsubw_s16 (int32x4_t __a, int16x4_t __b)
2030 {
2031 return (int32x4_t)__builtin_neon_vsubwsv4hi (__a, __b);
2032 }
2033
2034 __extension__ extern __inline int64x2_t
2035 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2036 vsubw_s32 (int64x2_t __a, int32x2_t __b)
2037 {
2038 return (int64x2_t)__builtin_neon_vsubwsv2si (__a, __b);
2039 }
2040
2041 __extension__ extern __inline uint16x8_t
2042 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2043 vsubw_u8 (uint16x8_t __a, uint8x8_t __b)
2044 {
2045 return (uint16x8_t)__builtin_neon_vsubwuv8qi ((int16x8_t) __a, (int8x8_t) __b);
2046 }
2047
2048 __extension__ extern __inline uint32x4_t
2049 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2050 vsubw_u16 (uint32x4_t __a, uint16x4_t __b)
2051 {
2052 return (uint32x4_t)__builtin_neon_vsubwuv4hi ((int32x4_t) __a, (int16x4_t) __b);
2053 }
2054
2055 __extension__ extern __inline uint64x2_t
2056 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2057 vsubw_u32 (uint64x2_t __a, uint32x2_t __b)
2058 {
2059 return (uint64x2_t)__builtin_neon_vsubwuv2si ((int64x2_t) __a, (int32x2_t) __b);
2060 }
2061
2062 __extension__ extern __inline int8x8_t
2063 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2064 vhsub_s8 (int8x8_t __a, int8x8_t __b)
2065 {
2066 return (int8x8_t)__builtin_neon_vhsubsv8qi (__a, __b);
2067 }
2068
2069 __extension__ extern __inline int16x4_t
2070 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2071 vhsub_s16 (int16x4_t __a, int16x4_t __b)
2072 {
2073 return (int16x4_t)__builtin_neon_vhsubsv4hi (__a, __b);
2074 }
2075
2076 __extension__ extern __inline int32x2_t
2077 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2078 vhsub_s32 (int32x2_t __a, int32x2_t __b)
2079 {
2080 return (int32x2_t)__builtin_neon_vhsubsv2si (__a, __b);
2081 }
2082
2083 __extension__ extern __inline uint8x8_t
2084 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2085 vhsub_u8 (uint8x8_t __a, uint8x8_t __b)
2086 {
2087 return (uint8x8_t)__builtin_neon_vhsubuv8qi ((int8x8_t) __a, (int8x8_t) __b);
2088 }
2089
2090 __extension__ extern __inline uint16x4_t
2091 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2092 vhsub_u16 (uint16x4_t __a, uint16x4_t __b)
2093 {
2094 return (uint16x4_t)__builtin_neon_vhsubuv4hi ((int16x4_t) __a, (int16x4_t) __b);
2095 }
2096
2097 __extension__ extern __inline uint32x2_t
2098 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2099 vhsub_u32 (uint32x2_t __a, uint32x2_t __b)
2100 {
2101 return (uint32x2_t)__builtin_neon_vhsubuv2si ((int32x2_t) __a, (int32x2_t) __b);
2102 }
2103
2104 __extension__ extern __inline int8x16_t
2105 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2106 vhsubq_s8 (int8x16_t __a, int8x16_t __b)
2107 {
2108 return (int8x16_t)__builtin_neon_vhsubsv16qi (__a, __b);
2109 }
2110
2111 __extension__ extern __inline int16x8_t
2112 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2113 vhsubq_s16 (int16x8_t __a, int16x8_t __b)
2114 {
2115 return (int16x8_t)__builtin_neon_vhsubsv8hi (__a, __b);
2116 }
2117
2118 __extension__ extern __inline int32x4_t
2119 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2120 vhsubq_s32 (int32x4_t __a, int32x4_t __b)
2121 {
2122 return (int32x4_t)__builtin_neon_vhsubsv4si (__a, __b);
2123 }
2124
2125 __extension__ extern __inline uint8x16_t
2126 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2127 vhsubq_u8 (uint8x16_t __a, uint8x16_t __b)
2128 {
2129 return (uint8x16_t)__builtin_neon_vhsubuv16qi ((int8x16_t) __a, (int8x16_t) __b);
2130 }
2131
2132 __extension__ extern __inline uint16x8_t
2133 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2134 vhsubq_u16 (uint16x8_t __a, uint16x8_t __b)
2135 {
2136 return (uint16x8_t)__builtin_neon_vhsubuv8hi ((int16x8_t) __a, (int16x8_t) __b);
2137 }
2138
2139 __extension__ extern __inline uint32x4_t
2140 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2141 vhsubq_u32 (uint32x4_t __a, uint32x4_t __b)
2142 {
2143 return (uint32x4_t)__builtin_neon_vhsubuv4si ((int32x4_t) __a, (int32x4_t) __b);
2144 }
2145
2146 __extension__ extern __inline int8x8_t
2147 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2148 vqsub_s8 (int8x8_t __a, int8x8_t __b)
2149 {
2150 return (int8x8_t)__builtin_neon_vqsubsv8qi (__a, __b);
2151 }
2152
2153 __extension__ extern __inline int16x4_t
2154 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2155 vqsub_s16 (int16x4_t __a, int16x4_t __b)
2156 {
2157 return (int16x4_t)__builtin_neon_vqsubsv4hi (__a, __b);
2158 }
2159
2160 __extension__ extern __inline int32x2_t
2161 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2162 vqsub_s32 (int32x2_t __a, int32x2_t __b)
2163 {
2164 return (int32x2_t)__builtin_neon_vqsubsv2si (__a, __b);
2165 }
2166
2167 __extension__ extern __inline int64x1_t
2168 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2169 vqsub_s64 (int64x1_t __a, int64x1_t __b)
2170 {
2171 return (int64x1_t)__builtin_neon_vqsubsdi (__a, __b);
2172 }
2173
2174 __extension__ extern __inline uint8x8_t
2175 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2176 vqsub_u8 (uint8x8_t __a, uint8x8_t __b)
2177 {
2178 return (uint8x8_t)__builtin_neon_vqsubuv8qi ((int8x8_t) __a, (int8x8_t) __b);
2179 }
2180
2181 __extension__ extern __inline uint16x4_t
2182 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2183 vqsub_u16 (uint16x4_t __a, uint16x4_t __b)
2184 {
2185 return (uint16x4_t)__builtin_neon_vqsubuv4hi ((int16x4_t) __a, (int16x4_t) __b);
2186 }
2187
2188 __extension__ extern __inline uint32x2_t
2189 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2190 vqsub_u32 (uint32x2_t __a, uint32x2_t __b)
2191 {
2192 return (uint32x2_t)__builtin_neon_vqsubuv2si ((int32x2_t) __a, (int32x2_t) __b);
2193 }
2194
2195 __extension__ extern __inline uint64x1_t
2196 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2197 vqsub_u64 (uint64x1_t __a, uint64x1_t __b)
2198 {
2199 return (uint64x1_t)__builtin_neon_vqsubudi ((int64x1_t) __a, (int64x1_t) __b);
2200 }
2201
2202 __extension__ extern __inline int8x16_t
2203 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2204 vqsubq_s8 (int8x16_t __a, int8x16_t __b)
2205 {
2206 return (int8x16_t)__builtin_neon_vqsubsv16qi (__a, __b);
2207 }
2208
2209 __extension__ extern __inline int16x8_t
2210 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2211 vqsubq_s16 (int16x8_t __a, int16x8_t __b)
2212 {
2213 return (int16x8_t)__builtin_neon_vqsubsv8hi (__a, __b);
2214 }
2215
2216 __extension__ extern __inline int32x4_t
2217 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2218 vqsubq_s32 (int32x4_t __a, int32x4_t __b)
2219 {
2220 return (int32x4_t)__builtin_neon_vqsubsv4si (__a, __b);
2221 }
2222
2223 __extension__ extern __inline int64x2_t
2224 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2225 vqsubq_s64 (int64x2_t __a, int64x2_t __b)
2226 {
2227 return (int64x2_t)__builtin_neon_vqsubsv2di (__a, __b);
2228 }
2229
2230 __extension__ extern __inline uint8x16_t
2231 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2232 vqsubq_u8 (uint8x16_t __a, uint8x16_t __b)
2233 {
2234 return (uint8x16_t)__builtin_neon_vqsubuv16qi ((int8x16_t) __a, (int8x16_t) __b);
2235 }
2236
2237 __extension__ extern __inline uint16x8_t
2238 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2239 vqsubq_u16 (uint16x8_t __a, uint16x8_t __b)
2240 {
2241 return (uint16x8_t)__builtin_neon_vqsubuv8hi ((int16x8_t) __a, (int16x8_t) __b);
2242 }
2243
2244 __extension__ extern __inline uint32x4_t
2245 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2246 vqsubq_u32 (uint32x4_t __a, uint32x4_t __b)
2247 {
2248 return (uint32x4_t)__builtin_neon_vqsubuv4si ((int32x4_t) __a, (int32x4_t) __b);
2249 }
2250
2251 __extension__ extern __inline uint64x2_t
2252 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2253 vqsubq_u64 (uint64x2_t __a, uint64x2_t __b)
2254 {
2255 return (uint64x2_t)__builtin_neon_vqsubuv2di ((int64x2_t) __a, (int64x2_t) __b);
2256 }
2257
2258 __extension__ extern __inline int8x8_t
2259 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2260 vsubhn_s16 (int16x8_t __a, int16x8_t __b)
2261 {
2262 return (int8x8_t)__builtin_neon_vsubhnv8hi (__a, __b);
2263 }
2264
2265 __extension__ extern __inline int16x4_t
2266 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2267 vsubhn_s32 (int32x4_t __a, int32x4_t __b)
2268 {
2269 return (int16x4_t)__builtin_neon_vsubhnv4si (__a, __b);
2270 }
2271
2272 __extension__ extern __inline int32x2_t
2273 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2274 vsubhn_s64 (int64x2_t __a, int64x2_t __b)
2275 {
2276 return (int32x2_t)__builtin_neon_vsubhnv2di (__a, __b);
2277 }
2278
2279 __extension__ extern __inline uint8x8_t
2280 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2281 vsubhn_u16 (uint16x8_t __a, uint16x8_t __b)
2282 {
2283 return (uint8x8_t)__builtin_neon_vsubhnv8hi ((int16x8_t) __a, (int16x8_t) __b);
2284 }
2285
2286 __extension__ extern __inline uint16x4_t
2287 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2288 vsubhn_u32 (uint32x4_t __a, uint32x4_t __b)
2289 {
2290 return (uint16x4_t)__builtin_neon_vsubhnv4si ((int32x4_t) __a, (int32x4_t) __b);
2291 }
2292
2293 __extension__ extern __inline uint32x2_t
2294 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2295 vsubhn_u64 (uint64x2_t __a, uint64x2_t __b)
2296 {
2297 return (uint32x2_t)__builtin_neon_vsubhnv2di ((int64x2_t) __a, (int64x2_t) __b);
2298 }
2299
2300 __extension__ extern __inline int8x8_t
2301 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2302 vrsubhn_s16 (int16x8_t __a, int16x8_t __b)
2303 {
2304 return (int8x8_t)__builtin_neon_vrsubhnv8hi (__a, __b);
2305 }
2306
2307 __extension__ extern __inline int16x4_t
2308 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2309 vrsubhn_s32 (int32x4_t __a, int32x4_t __b)
2310 {
2311 return (int16x4_t)__builtin_neon_vrsubhnv4si (__a, __b);
2312 }
2313
2314 __extension__ extern __inline int32x2_t
2315 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2316 vrsubhn_s64 (int64x2_t __a, int64x2_t __b)
2317 {
2318 return (int32x2_t)__builtin_neon_vrsubhnv2di (__a, __b);
2319 }
2320
2321 __extension__ extern __inline uint8x8_t
2322 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2323 vrsubhn_u16 (uint16x8_t __a, uint16x8_t __b)
2324 {
2325 return (uint8x8_t)__builtin_neon_vrsubhnv8hi ((int16x8_t) __a, (int16x8_t) __b);
2326 }
2327
2328 __extension__ extern __inline uint16x4_t
2329 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2330 vrsubhn_u32 (uint32x4_t __a, uint32x4_t __b)
2331 {
2332 return (uint16x4_t)__builtin_neon_vrsubhnv4si ((int32x4_t) __a, (int32x4_t) __b);
2333 }
2334
2335 __extension__ extern __inline uint32x2_t
2336 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2337 vrsubhn_u64 (uint64x2_t __a, uint64x2_t __b)
2338 {
2339 return (uint32x2_t)__builtin_neon_vrsubhnv2di ((int64x2_t) __a, (int64x2_t) __b);
2340 }
2341
2342 __extension__ extern __inline uint8x8_t
2343 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2344 vceq_s8 (int8x8_t __a, int8x8_t __b)
2345 {
2346 return (uint8x8_t)__builtin_neon_vceqv8qi (__a, __b);
2347 }
2348
2349 __extension__ extern __inline uint16x4_t
2350 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2351 vceq_s16 (int16x4_t __a, int16x4_t __b)
2352 {
2353 return (uint16x4_t)__builtin_neon_vceqv4hi (__a, __b);
2354 }
2355
2356 __extension__ extern __inline uint32x2_t
2357 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2358 vceq_s32 (int32x2_t __a, int32x2_t __b)
2359 {
2360 return (uint32x2_t)__builtin_neon_vceqv2si (__a, __b);
2361 }
2362
2363 __extension__ extern __inline uint32x2_t
2364 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2365 vceq_f32 (float32x2_t __a, float32x2_t __b)
2366 {
2367 return (uint32x2_t)__builtin_neon_vceqv2sf (__a, __b);
2368 }
2369
2370 __extension__ extern __inline uint8x8_t
2371 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2372 vceq_u8 (uint8x8_t __a, uint8x8_t __b)
2373 {
2374 return (uint8x8_t)__builtin_neon_vceqv8qi ((int8x8_t) __a, (int8x8_t) __b);
2375 }
2376
2377 __extension__ extern __inline uint16x4_t
2378 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2379 vceq_u16 (uint16x4_t __a, uint16x4_t __b)
2380 {
2381 return (uint16x4_t)__builtin_neon_vceqv4hi ((int16x4_t) __a, (int16x4_t) __b);
2382 }
2383
2384 __extension__ extern __inline uint32x2_t
2385 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2386 vceq_u32 (uint32x2_t __a, uint32x2_t __b)
2387 {
2388 return (uint32x2_t)__builtin_neon_vceqv2si ((int32x2_t) __a, (int32x2_t) __b);
2389 }
2390
2391 __extension__ extern __inline uint8x8_t
2392 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2393 vceq_p8 (poly8x8_t __a, poly8x8_t __b)
2394 {
2395 return (uint8x8_t)__builtin_neon_vceqv8qi ((int8x8_t) __a, (int8x8_t) __b);
2396 }
2397
2398 __extension__ extern __inline uint8x16_t
2399 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2400 vceqq_s8 (int8x16_t __a, int8x16_t __b)
2401 {
2402 return (uint8x16_t)__builtin_neon_vceqv16qi (__a, __b);
2403 }
2404
2405 __extension__ extern __inline uint16x8_t
2406 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2407 vceqq_s16 (int16x8_t __a, int16x8_t __b)
2408 {
2409 return (uint16x8_t)__builtin_neon_vceqv8hi (__a, __b);
2410 }
2411
2412 __extension__ extern __inline uint32x4_t
2413 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2414 vceqq_s32 (int32x4_t __a, int32x4_t __b)
2415 {
2416 return (uint32x4_t)__builtin_neon_vceqv4si (__a, __b);
2417 }
2418
2419 __extension__ extern __inline uint32x4_t
2420 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2421 vceqq_f32 (float32x4_t __a, float32x4_t __b)
2422 {
2423 return (uint32x4_t)__builtin_neon_vceqv4sf (__a, __b);
2424 }
2425
2426 __extension__ extern __inline uint8x16_t
2427 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2428 vceqq_u8 (uint8x16_t __a, uint8x16_t __b)
2429 {
2430 return (uint8x16_t)__builtin_neon_vceqv16qi ((int8x16_t) __a, (int8x16_t) __b);
2431 }
2432
2433 __extension__ extern __inline uint16x8_t
2434 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2435 vceqq_u16 (uint16x8_t __a, uint16x8_t __b)
2436 {
2437 return (uint16x8_t)__builtin_neon_vceqv8hi ((int16x8_t) __a, (int16x8_t) __b);
2438 }
2439
2440 __extension__ extern __inline uint32x4_t
2441 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2442 vceqq_u32 (uint32x4_t __a, uint32x4_t __b)
2443 {
2444 return (uint32x4_t)__builtin_neon_vceqv4si ((int32x4_t) __a, (int32x4_t) __b);
2445 }
2446
2447 __extension__ extern __inline uint8x16_t
2448 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2449 vceqq_p8 (poly8x16_t __a, poly8x16_t __b)
2450 {
2451 return (uint8x16_t)__builtin_neon_vceqv16qi ((int8x16_t) __a, (int8x16_t) __b);
2452 }
2453
2454 __extension__ extern __inline uint8x8_t
2455 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2456 vcge_s8 (int8x8_t __a, int8x8_t __b)
2457 {
2458 return (uint8x8_t)__builtin_neon_vcgev8qi (__a, __b);
2459 }
2460
2461 __extension__ extern __inline uint16x4_t
2462 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2463 vcge_s16 (int16x4_t __a, int16x4_t __b)
2464 {
2465 return (uint16x4_t)__builtin_neon_vcgev4hi (__a, __b);
2466 }
2467
2468 __extension__ extern __inline uint32x2_t
2469 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2470 vcge_s32 (int32x2_t __a, int32x2_t __b)
2471 {
2472 return (uint32x2_t)__builtin_neon_vcgev2si (__a, __b);
2473 }
2474
2475 __extension__ extern __inline uint32x2_t
2476 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2477 vcge_f32 (float32x2_t __a, float32x2_t __b)
2478 {
2479 return (uint32x2_t)__builtin_neon_vcgev2sf (__a, __b);
2480 }
2481
2482 __extension__ extern __inline uint8x8_t
2483 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2484 vcge_u8 (uint8x8_t __a, uint8x8_t __b)
2485 {
2486 return (uint8x8_t)__builtin_neon_vcgeuv8qi ((int8x8_t) __a, (int8x8_t) __b);
2487 }
2488
2489 __extension__ extern __inline uint16x4_t
2490 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2491 vcge_u16 (uint16x4_t __a, uint16x4_t __b)
2492 {
2493 return (uint16x4_t)__builtin_neon_vcgeuv4hi ((int16x4_t) __a, (int16x4_t) __b);
2494 }
2495
2496 __extension__ extern __inline uint32x2_t
2497 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2498 vcge_u32 (uint32x2_t __a, uint32x2_t __b)
2499 {
2500 return (uint32x2_t)__builtin_neon_vcgeuv2si ((int32x2_t) __a, (int32x2_t) __b);
2501 }
2502
2503 __extension__ extern __inline uint8x16_t
2504 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2505 vcgeq_s8 (int8x16_t __a, int8x16_t __b)
2506 {
2507 return (uint8x16_t)__builtin_neon_vcgev16qi (__a, __b);
2508 }
2509
2510 __extension__ extern __inline uint16x8_t
2511 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2512 vcgeq_s16 (int16x8_t __a, int16x8_t __b)
2513 {
2514 return (uint16x8_t)__builtin_neon_vcgev8hi (__a, __b);
2515 }
2516
2517 __extension__ extern __inline uint32x4_t
2518 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2519 vcgeq_s32 (int32x4_t __a, int32x4_t __b)
2520 {
2521 return (uint32x4_t)__builtin_neon_vcgev4si (__a, __b);
2522 }
2523
2524 __extension__ extern __inline uint32x4_t
2525 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2526 vcgeq_f32 (float32x4_t __a, float32x4_t __b)
2527 {
2528 return (uint32x4_t)__builtin_neon_vcgev4sf (__a, __b);
2529 }
2530
2531 __extension__ extern __inline uint8x16_t
2532 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2533 vcgeq_u8 (uint8x16_t __a, uint8x16_t __b)
2534 {
2535 return (uint8x16_t)__builtin_neon_vcgeuv16qi ((int8x16_t) __a, (int8x16_t) __b);
2536 }
2537
2538 __extension__ extern __inline uint16x8_t
2539 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2540 vcgeq_u16 (uint16x8_t __a, uint16x8_t __b)
2541 {
2542 return (uint16x8_t)__builtin_neon_vcgeuv8hi ((int16x8_t) __a, (int16x8_t) __b);
2543 }
2544
2545 __extension__ extern __inline uint32x4_t
2546 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2547 vcgeq_u32 (uint32x4_t __a, uint32x4_t __b)
2548 {
2549 return (uint32x4_t)__builtin_neon_vcgeuv4si ((int32x4_t) __a, (int32x4_t) __b);
2550 }
2551
2552 __extension__ extern __inline uint8x8_t
2553 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2554 vcle_s8 (int8x8_t __a, int8x8_t __b)
2555 {
2556 return (uint8x8_t)__builtin_neon_vcgev8qi (__b, __a);
2557 }
2558
2559 __extension__ extern __inline uint16x4_t
2560 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2561 vcle_s16 (int16x4_t __a, int16x4_t __b)
2562 {
2563 return (uint16x4_t)__builtin_neon_vcgev4hi (__b, __a);
2564 }
2565
2566 __extension__ extern __inline uint32x2_t
2567 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2568 vcle_s32 (int32x2_t __a, int32x2_t __b)
2569 {
2570 return (uint32x2_t)__builtin_neon_vcgev2si (__b, __a);
2571 }
2572
2573 __extension__ extern __inline uint32x2_t
2574 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2575 vcle_f32 (float32x2_t __a, float32x2_t __b)
2576 {
2577 return (uint32x2_t)__builtin_neon_vcgev2sf (__b, __a);
2578 }
2579
2580 __extension__ extern __inline uint8x8_t
2581 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2582 vcle_u8 (uint8x8_t __a, uint8x8_t __b)
2583 {
2584 return (uint8x8_t)__builtin_neon_vcgeuv8qi ((int8x8_t) __b, (int8x8_t) __a);
2585 }
2586
2587 __extension__ extern __inline uint16x4_t
2588 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2589 vcle_u16 (uint16x4_t __a, uint16x4_t __b)
2590 {
2591 return (uint16x4_t)__builtin_neon_vcgeuv4hi ((int16x4_t) __b, (int16x4_t) __a);
2592 }
2593
2594 __extension__ extern __inline uint32x2_t
2595 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2596 vcle_u32 (uint32x2_t __a, uint32x2_t __b)
2597 {
2598 return (uint32x2_t)__builtin_neon_vcgeuv2si ((int32x2_t) __b, (int32x2_t) __a);
2599 }
2600
2601 __extension__ extern __inline uint8x16_t
2602 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2603 vcleq_s8 (int8x16_t __a, int8x16_t __b)
2604 {
2605 return (uint8x16_t)__builtin_neon_vcgev16qi (__b, __a);
2606 }
2607
2608 __extension__ extern __inline uint16x8_t
2609 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2610 vcleq_s16 (int16x8_t __a, int16x8_t __b)
2611 {
2612 return (uint16x8_t)__builtin_neon_vcgev8hi (__b, __a);
2613 }
2614
2615 __extension__ extern __inline uint32x4_t
2616 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2617 vcleq_s32 (int32x4_t __a, int32x4_t __b)
2618 {
2619 return (uint32x4_t)__builtin_neon_vcgev4si (__b, __a);
2620 }
2621
2622 __extension__ extern __inline uint32x4_t
2623 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2624 vcleq_f32 (float32x4_t __a, float32x4_t __b)
2625 {
2626 return (uint32x4_t)__builtin_neon_vcgev4sf (__b, __a);
2627 }
2628
2629 __extension__ extern __inline uint8x16_t
2630 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2631 vcleq_u8 (uint8x16_t __a, uint8x16_t __b)
2632 {
2633 return (uint8x16_t)__builtin_neon_vcgeuv16qi ((int8x16_t) __b, (int8x16_t) __a);
2634 }
2635
2636 __extension__ extern __inline uint16x8_t
2637 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2638 vcleq_u16 (uint16x8_t __a, uint16x8_t __b)
2639 {
2640 return (uint16x8_t)__builtin_neon_vcgeuv8hi ((int16x8_t) __b, (int16x8_t) __a);
2641 }
2642
2643 __extension__ extern __inline uint32x4_t
2644 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2645 vcleq_u32 (uint32x4_t __a, uint32x4_t __b)
2646 {
2647 return (uint32x4_t)__builtin_neon_vcgeuv4si ((int32x4_t) __b, (int32x4_t) __a);
2648 }
2649
2650 __extension__ extern __inline uint8x8_t
2651 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2652 vcgt_s8 (int8x8_t __a, int8x8_t __b)
2653 {
2654 return (uint8x8_t)__builtin_neon_vcgtv8qi (__a, __b);
2655 }
2656
2657 __extension__ extern __inline uint16x4_t
2658 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2659 vcgt_s16 (int16x4_t __a, int16x4_t __b)
2660 {
2661 return (uint16x4_t)__builtin_neon_vcgtv4hi (__a, __b);
2662 }
2663
2664 __extension__ extern __inline uint32x2_t
2665 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2666 vcgt_s32 (int32x2_t __a, int32x2_t __b)
2667 {
2668 return (uint32x2_t)__builtin_neon_vcgtv2si (__a, __b);
2669 }
2670
2671 __extension__ extern __inline uint32x2_t
2672 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2673 vcgt_f32 (float32x2_t __a, float32x2_t __b)
2674 {
2675 return (uint32x2_t)__builtin_neon_vcgtv2sf (__a, __b);
2676 }
2677
2678 __extension__ extern __inline uint8x8_t
2679 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2680 vcgt_u8 (uint8x8_t __a, uint8x8_t __b)
2681 {
2682 return (uint8x8_t)__builtin_neon_vcgtuv8qi ((int8x8_t) __a, (int8x8_t) __b);
2683 }
2684
2685 __extension__ extern __inline uint16x4_t
2686 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2687 vcgt_u16 (uint16x4_t __a, uint16x4_t __b)
2688 {
2689 return (uint16x4_t)__builtin_neon_vcgtuv4hi ((int16x4_t) __a, (int16x4_t) __b);
2690 }
2691
2692 __extension__ extern __inline uint32x2_t
2693 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2694 vcgt_u32 (uint32x2_t __a, uint32x2_t __b)
2695 {
2696 return (uint32x2_t)__builtin_neon_vcgtuv2si ((int32x2_t) __a, (int32x2_t) __b);
2697 }
2698
2699 __extension__ extern __inline uint8x16_t
2700 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2701 vcgtq_s8 (int8x16_t __a, int8x16_t __b)
2702 {
2703 return (uint8x16_t)__builtin_neon_vcgtv16qi (__a, __b);
2704 }
2705
2706 __extension__ extern __inline uint16x8_t
2707 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2708 vcgtq_s16 (int16x8_t __a, int16x8_t __b)
2709 {
2710 return (uint16x8_t)__builtin_neon_vcgtv8hi (__a, __b);
2711 }
2712
2713 __extension__ extern __inline uint32x4_t
2714 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2715 vcgtq_s32 (int32x4_t __a, int32x4_t __b)
2716 {
2717 return (uint32x4_t)__builtin_neon_vcgtv4si (__a, __b);
2718 }
2719
2720 __extension__ extern __inline uint32x4_t
2721 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2722 vcgtq_f32 (float32x4_t __a, float32x4_t __b)
2723 {
2724 return (uint32x4_t)__builtin_neon_vcgtv4sf (__a, __b);
2725 }
2726
2727 __extension__ extern __inline uint8x16_t
2728 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2729 vcgtq_u8 (uint8x16_t __a, uint8x16_t __b)
2730 {
2731 return (uint8x16_t)__builtin_neon_vcgtuv16qi ((int8x16_t) __a, (int8x16_t) __b);
2732 }
2733
2734 __extension__ extern __inline uint16x8_t
2735 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2736 vcgtq_u16 (uint16x8_t __a, uint16x8_t __b)
2737 {
2738 return (uint16x8_t)__builtin_neon_vcgtuv8hi ((int16x8_t) __a, (int16x8_t) __b);
2739 }
2740
2741 __extension__ extern __inline uint32x4_t
2742 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2743 vcgtq_u32 (uint32x4_t __a, uint32x4_t __b)
2744 {
2745 return (uint32x4_t)__builtin_neon_vcgtuv4si ((int32x4_t) __a, (int32x4_t) __b);
2746 }
2747
2748 __extension__ extern __inline uint8x8_t
2749 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2750 vclt_s8 (int8x8_t __a, int8x8_t __b)
2751 {
2752 return (uint8x8_t)__builtin_neon_vcgtv8qi (__b, __a);
2753 }
2754
2755 __extension__ extern __inline uint16x4_t
2756 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2757 vclt_s16 (int16x4_t __a, int16x4_t __b)
2758 {
2759 return (uint16x4_t)__builtin_neon_vcgtv4hi (__b, __a);
2760 }
2761
2762 __extension__ extern __inline uint32x2_t
2763 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2764 vclt_s32 (int32x2_t __a, int32x2_t __b)
2765 {
2766 return (uint32x2_t)__builtin_neon_vcgtv2si (__b, __a);
2767 }
2768
2769 __extension__ extern __inline uint32x2_t
2770 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2771 vclt_f32 (float32x2_t __a, float32x2_t __b)
2772 {
2773 return (uint32x2_t)__builtin_neon_vcgtv2sf (__b, __a);
2774 }
2775
2776 __extension__ extern __inline uint8x8_t
2777 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2778 vclt_u8 (uint8x8_t __a, uint8x8_t __b)
2779 {
2780 return (uint8x8_t)__builtin_neon_vcgtuv8qi ((int8x8_t) __b, (int8x8_t) __a);
2781 }
2782
2783 __extension__ extern __inline uint16x4_t
2784 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2785 vclt_u16 (uint16x4_t __a, uint16x4_t __b)
2786 {
2787 return (uint16x4_t)__builtin_neon_vcgtuv4hi ((int16x4_t) __b, (int16x4_t) __a);
2788 }
2789
2790 __extension__ extern __inline uint32x2_t
2791 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2792 vclt_u32 (uint32x2_t __a, uint32x2_t __b)
2793 {
2794 return (uint32x2_t)__builtin_neon_vcgtuv2si ((int32x2_t) __b, (int32x2_t) __a);
2795 }
2796
2797 __extension__ extern __inline uint8x16_t
2798 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2799 vcltq_s8 (int8x16_t __a, int8x16_t __b)
2800 {
2801 return (uint8x16_t)__builtin_neon_vcgtv16qi (__b, __a);
2802 }
2803
2804 __extension__ extern __inline uint16x8_t
2805 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2806 vcltq_s16 (int16x8_t __a, int16x8_t __b)
2807 {
2808 return (uint16x8_t)__builtin_neon_vcgtv8hi (__b, __a);
2809 }
2810
2811 __extension__ extern __inline uint32x4_t
2812 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2813 vcltq_s32 (int32x4_t __a, int32x4_t __b)
2814 {
2815 return (uint32x4_t)__builtin_neon_vcgtv4si (__b, __a);
2816 }
2817
2818 __extension__ extern __inline uint32x4_t
2819 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2820 vcltq_f32 (float32x4_t __a, float32x4_t __b)
2821 {
2822 return (uint32x4_t)__builtin_neon_vcgtv4sf (__b, __a);
2823 }
2824
2825 __extension__ extern __inline uint8x16_t
2826 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2827 vcltq_u8 (uint8x16_t __a, uint8x16_t __b)
2828 {
2829 return (uint8x16_t)__builtin_neon_vcgtuv16qi ((int8x16_t) __b, (int8x16_t) __a);
2830 }
2831
2832 __extension__ extern __inline uint16x8_t
2833 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2834 vcltq_u16 (uint16x8_t __a, uint16x8_t __b)
2835 {
2836 return (uint16x8_t)__builtin_neon_vcgtuv8hi ((int16x8_t) __b, (int16x8_t) __a);
2837 }
2838
2839 __extension__ extern __inline uint32x4_t
2840 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2841 vcltq_u32 (uint32x4_t __a, uint32x4_t __b)
2842 {
2843 return (uint32x4_t)__builtin_neon_vcgtuv4si ((int32x4_t) __b, (int32x4_t) __a);
2844 }
2845
2846 __extension__ extern __inline uint32x2_t
2847 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2848 vcage_f32 (float32x2_t __a, float32x2_t __b)
2849 {
2850 return (uint32x2_t)__builtin_neon_vcagev2sf (__a, __b);
2851 }
2852
2853 __extension__ extern __inline uint32x4_t
2854 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2855 vcageq_f32 (float32x4_t __a, float32x4_t __b)
2856 {
2857 return (uint32x4_t)__builtin_neon_vcagev4sf (__a, __b);
2858 }
2859
2860 __extension__ extern __inline uint32x2_t
2861 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2862 vcale_f32 (float32x2_t __a, float32x2_t __b)
2863 {
2864 return (uint32x2_t)__builtin_neon_vcagev2sf (__b, __a);
2865 }
2866
2867 __extension__ extern __inline uint32x4_t
2868 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2869 vcaleq_f32 (float32x4_t __a, float32x4_t __b)
2870 {
2871 return (uint32x4_t)__builtin_neon_vcagev4sf (__b, __a);
2872 }
2873
2874 __extension__ extern __inline uint32x2_t
2875 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2876 vcagt_f32 (float32x2_t __a, float32x2_t __b)
2877 {
2878 return (uint32x2_t)__builtin_neon_vcagtv2sf (__a, __b);
2879 }
2880
2881 __extension__ extern __inline uint32x4_t
2882 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2883 vcagtq_f32 (float32x4_t __a, float32x4_t __b)
2884 {
2885 return (uint32x4_t)__builtin_neon_vcagtv4sf (__a, __b);
2886 }
2887
2888 __extension__ extern __inline uint32x2_t
2889 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2890 vcalt_f32 (float32x2_t __a, float32x2_t __b)
2891 {
2892 return (uint32x2_t)__builtin_neon_vcagtv2sf (__b, __a);
2893 }
2894
2895 __extension__ extern __inline uint32x4_t
2896 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2897 vcaltq_f32 (float32x4_t __a, float32x4_t __b)
2898 {
2899 return (uint32x4_t)__builtin_neon_vcagtv4sf (__b, __a);
2900 }
2901
2902 __extension__ extern __inline uint8x8_t
2903 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2904 vtst_s8 (int8x8_t __a, int8x8_t __b)
2905 {
2906 return (uint8x8_t)__builtin_neon_vtstv8qi (__a, __b);
2907 }
2908
2909 __extension__ extern __inline uint16x4_t
2910 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2911 vtst_s16 (int16x4_t __a, int16x4_t __b)
2912 {
2913 return (uint16x4_t)__builtin_neon_vtstv4hi (__a, __b);
2914 }
2915
2916 __extension__ extern __inline uint32x2_t
2917 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2918 vtst_s32 (int32x2_t __a, int32x2_t __b)
2919 {
2920 return (uint32x2_t)__builtin_neon_vtstv2si (__a, __b);
2921 }
2922
2923 __extension__ extern __inline uint8x8_t
2924 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2925 vtst_u8 (uint8x8_t __a, uint8x8_t __b)
2926 {
2927 return (uint8x8_t)__builtin_neon_vtstv8qi ((int8x8_t) __a, (int8x8_t) __b);
2928 }
2929
2930 __extension__ extern __inline uint16x4_t
2931 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2932 vtst_u16 (uint16x4_t __a, uint16x4_t __b)
2933 {
2934 return (uint16x4_t)__builtin_neon_vtstv4hi ((int16x4_t) __a, (int16x4_t) __b);
2935 }
2936
2937 __extension__ extern __inline uint32x2_t
2938 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2939 vtst_u32 (uint32x2_t __a, uint32x2_t __b)
2940 {
2941 return (uint32x2_t)__builtin_neon_vtstv2si ((int32x2_t) __a, (int32x2_t) __b);
2942 }
2943
2944 __extension__ extern __inline uint8x8_t
2945 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2946 vtst_p8 (poly8x8_t __a, poly8x8_t __b)
2947 {
2948 return (uint8x8_t)__builtin_neon_vtstv8qi ((int8x8_t) __a, (int8x8_t) __b);
2949 }
2950
2951 __extension__ extern __inline uint16x4_t
2952 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2953 vtst_p16 (poly16x4_t __a, poly16x4_t __b)
2954 {
2955 return (uint16x4_t)__builtin_neon_vtstv4hi ((int16x4_t) __a, (int16x4_t) __b);
2956 }
2957
2958 __extension__ extern __inline uint8x16_t
2959 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2960 vtstq_s8 (int8x16_t __a, int8x16_t __b)
2961 {
2962 return (uint8x16_t)__builtin_neon_vtstv16qi (__a, __b);
2963 }
2964
2965 __extension__ extern __inline uint16x8_t
2966 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2967 vtstq_s16 (int16x8_t __a, int16x8_t __b)
2968 {
2969 return (uint16x8_t)__builtin_neon_vtstv8hi (__a, __b);
2970 }
2971
2972 __extension__ extern __inline uint32x4_t
2973 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2974 vtstq_s32 (int32x4_t __a, int32x4_t __b)
2975 {
2976 return (uint32x4_t)__builtin_neon_vtstv4si (__a, __b);
2977 }
2978
2979 __extension__ extern __inline uint8x16_t
2980 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2981 vtstq_u8 (uint8x16_t __a, uint8x16_t __b)
2982 {
2983 return (uint8x16_t)__builtin_neon_vtstv16qi ((int8x16_t) __a, (int8x16_t) __b);
2984 }
2985
2986 __extension__ extern __inline uint16x8_t
2987 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2988 vtstq_u16 (uint16x8_t __a, uint16x8_t __b)
2989 {
2990 return (uint16x8_t)__builtin_neon_vtstv8hi ((int16x8_t) __a, (int16x8_t) __b);
2991 }
2992
2993 __extension__ extern __inline uint32x4_t
2994 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2995 vtstq_u32 (uint32x4_t __a, uint32x4_t __b)
2996 {
2997 return (uint32x4_t)__builtin_neon_vtstv4si ((int32x4_t) __a, (int32x4_t) __b);
2998 }
2999
3000 __extension__ extern __inline uint8x16_t
3001 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3002 vtstq_p8 (poly8x16_t __a, poly8x16_t __b)
3003 {
3004 return (uint8x16_t)__builtin_neon_vtstv16qi ((int8x16_t) __a, (int8x16_t) __b);
3005 }
3006
3007 __extension__ extern __inline uint16x8_t
3008 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3009 vtstq_p16 (poly16x8_t __a, poly16x8_t __b)
3010 {
3011 return (uint16x8_t)__builtin_neon_vtstv8hi ((int16x8_t) __a, (int16x8_t) __b);
3012 }
3013
3014 __extension__ extern __inline int8x8_t
3015 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3016 vabd_s8 (int8x8_t __a, int8x8_t __b)
3017 {
3018 return (int8x8_t)__builtin_neon_vabdsv8qi (__a, __b);
3019 }
3020
3021 __extension__ extern __inline int16x4_t
3022 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3023 vabd_s16 (int16x4_t __a, int16x4_t __b)
3024 {
3025 return (int16x4_t)__builtin_neon_vabdsv4hi (__a, __b);
3026 }
3027
3028 __extension__ extern __inline int32x2_t
3029 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3030 vabd_s32 (int32x2_t __a, int32x2_t __b)
3031 {
3032 return (int32x2_t)__builtin_neon_vabdsv2si (__a, __b);
3033 }
3034
3035 __extension__ extern __inline float32x2_t
3036 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3037 vabd_f32 (float32x2_t __a, float32x2_t __b)
3038 {
3039 return (float32x2_t)__builtin_neon_vabdfv2sf (__a, __b);
3040 }
3041
3042 __extension__ extern __inline uint8x8_t
3043 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3044 vabd_u8 (uint8x8_t __a, uint8x8_t __b)
3045 {
3046 return (uint8x8_t)__builtin_neon_vabduv8qi ((int8x8_t) __a, (int8x8_t) __b);
3047 }
3048
3049 __extension__ extern __inline uint16x4_t
3050 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3051 vabd_u16 (uint16x4_t __a, uint16x4_t __b)
3052 {
3053 return (uint16x4_t)__builtin_neon_vabduv4hi ((int16x4_t) __a, (int16x4_t) __b);
3054 }
3055
3056 __extension__ extern __inline uint32x2_t
3057 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3058 vabd_u32 (uint32x2_t __a, uint32x2_t __b)
3059 {
3060 return (uint32x2_t)__builtin_neon_vabduv2si ((int32x2_t) __a, (int32x2_t) __b);
3061 }
3062
3063 __extension__ extern __inline int8x16_t
3064 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3065 vabdq_s8 (int8x16_t __a, int8x16_t __b)
3066 {
3067 return (int8x16_t)__builtin_neon_vabdsv16qi (__a, __b);
3068 }
3069
3070 __extension__ extern __inline int16x8_t
3071 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3072 vabdq_s16 (int16x8_t __a, int16x8_t __b)
3073 {
3074 return (int16x8_t)__builtin_neon_vabdsv8hi (__a, __b);
3075 }
3076
3077 __extension__ extern __inline int32x4_t
3078 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3079 vabdq_s32 (int32x4_t __a, int32x4_t __b)
3080 {
3081 return (int32x4_t)__builtin_neon_vabdsv4si (__a, __b);
3082 }
3083
3084 __extension__ extern __inline float32x4_t
3085 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3086 vabdq_f32 (float32x4_t __a, float32x4_t __b)
3087 {
3088 return (float32x4_t)__builtin_neon_vabdfv4sf (__a, __b);
3089 }
3090
3091 __extension__ extern __inline uint8x16_t
3092 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3093 vabdq_u8 (uint8x16_t __a, uint8x16_t __b)
3094 {
3095 return (uint8x16_t)__builtin_neon_vabduv16qi ((int8x16_t) __a, (int8x16_t) __b);
3096 }
3097
3098 __extension__ extern __inline uint16x8_t
3099 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3100 vabdq_u16 (uint16x8_t __a, uint16x8_t __b)
3101 {
3102 return (uint16x8_t)__builtin_neon_vabduv8hi ((int16x8_t) __a, (int16x8_t) __b);
3103 }
3104
3105 __extension__ extern __inline uint32x4_t
3106 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3107 vabdq_u32 (uint32x4_t __a, uint32x4_t __b)
3108 {
3109 return (uint32x4_t)__builtin_neon_vabduv4si ((int32x4_t) __a, (int32x4_t) __b);
3110 }
3111
3112 __extension__ extern __inline int16x8_t
3113 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3114 vabdl_s8 (int8x8_t __a, int8x8_t __b)
3115 {
3116 return (int16x8_t)__builtin_neon_vabdlsv8qi (__a, __b);
3117 }
3118
3119 __extension__ extern __inline int32x4_t
3120 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3121 vabdl_s16 (int16x4_t __a, int16x4_t __b)
3122 {
3123 return (int32x4_t)__builtin_neon_vabdlsv4hi (__a, __b);
3124 }
3125
3126 __extension__ extern __inline int64x2_t
3127 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3128 vabdl_s32 (int32x2_t __a, int32x2_t __b)
3129 {
3130 return (int64x2_t)__builtin_neon_vabdlsv2si (__a, __b);
3131 }
3132
3133 __extension__ extern __inline uint16x8_t
3134 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3135 vabdl_u8 (uint8x8_t __a, uint8x8_t __b)
3136 {
3137 return (uint16x8_t)__builtin_neon_vabdluv8qi ((int8x8_t) __a, (int8x8_t) __b);
3138 }
3139
3140 __extension__ extern __inline uint32x4_t
3141 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3142 vabdl_u16 (uint16x4_t __a, uint16x4_t __b)
3143 {
3144 return (uint32x4_t)__builtin_neon_vabdluv4hi ((int16x4_t) __a, (int16x4_t) __b);
3145 }
3146
3147 __extension__ extern __inline uint64x2_t
3148 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3149 vabdl_u32 (uint32x2_t __a, uint32x2_t __b)
3150 {
3151 return (uint64x2_t)__builtin_neon_vabdluv2si ((int32x2_t) __a, (int32x2_t) __b);
3152 }
3153
3154 __extension__ extern __inline int8x8_t
3155 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3156 vaba_s8 (int8x8_t __a, int8x8_t __b, int8x8_t __c)
3157 {
3158 return (int8x8_t)__builtin_neon_vabasv8qi (__a, __b, __c);
3159 }
3160
3161 __extension__ extern __inline int16x4_t
3162 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3163 vaba_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c)
3164 {
3165 return (int16x4_t)__builtin_neon_vabasv4hi (__a, __b, __c);
3166 }
3167
3168 __extension__ extern __inline int32x2_t
3169 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3170 vaba_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c)
3171 {
3172 return (int32x2_t)__builtin_neon_vabasv2si (__a, __b, __c);
3173 }
3174
3175 __extension__ extern __inline uint8x8_t
3176 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3177 vaba_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c)
3178 {
3179 return (uint8x8_t)__builtin_neon_vabauv8qi ((int8x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
3180 }
3181
3182 __extension__ extern __inline uint16x4_t
3183 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3184 vaba_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c)
3185 {
3186 return (uint16x4_t)__builtin_neon_vabauv4hi ((int16x4_t) __a, (int16x4_t) __b, (int16x4_t) __c);
3187 }
3188
3189 __extension__ extern __inline uint32x2_t
3190 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3191 vaba_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c)
3192 {
3193 return (uint32x2_t)__builtin_neon_vabauv2si ((int32x2_t) __a, (int32x2_t) __b, (int32x2_t) __c);
3194 }
3195
3196 __extension__ extern __inline int8x16_t
3197 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3198 vabaq_s8 (int8x16_t __a, int8x16_t __b, int8x16_t __c)
3199 {
3200 return (int8x16_t)__builtin_neon_vabasv16qi (__a, __b, __c);
3201 }
3202
3203 __extension__ extern __inline int16x8_t
3204 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3205 vabaq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
3206 {
3207 return (int16x8_t)__builtin_neon_vabasv8hi (__a, __b, __c);
3208 }
3209
3210 __extension__ extern __inline int32x4_t
3211 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3212 vabaq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
3213 {
3214 return (int32x4_t)__builtin_neon_vabasv4si (__a, __b, __c);
3215 }
3216
3217 __extension__ extern __inline uint8x16_t
3218 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3219 vabaq_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c)
3220 {
3221 return (uint8x16_t)__builtin_neon_vabauv16qi ((int8x16_t) __a, (int8x16_t) __b, (int8x16_t) __c);
3222 }
3223
3224 __extension__ extern __inline uint16x8_t
3225 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3226 vabaq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
3227 {
3228 return (uint16x8_t)__builtin_neon_vabauv8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x8_t) __c);
3229 }
3230
3231 __extension__ extern __inline uint32x4_t
3232 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3233 vabaq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
3234 {
3235 return (uint32x4_t)__builtin_neon_vabauv4si ((int32x4_t) __a, (int32x4_t) __b, (int32x4_t) __c);
3236 }
3237
3238 __extension__ extern __inline int16x8_t
3239 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3240 vabal_s8 (int16x8_t __a, int8x8_t __b, int8x8_t __c)
3241 {
3242 return (int16x8_t)__builtin_neon_vabalsv8qi (__a, __b, __c);
3243 }
3244
3245 __extension__ extern __inline int32x4_t
3246 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3247 vabal_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
3248 {
3249 return (int32x4_t)__builtin_neon_vabalsv4hi (__a, __b, __c);
3250 }
3251
3252 __extension__ extern __inline int64x2_t
3253 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3254 vabal_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
3255 {
3256 return (int64x2_t)__builtin_neon_vabalsv2si (__a, __b, __c);
3257 }
3258
3259 __extension__ extern __inline uint16x8_t
3260 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3261 vabal_u8 (uint16x8_t __a, uint8x8_t __b, uint8x8_t __c)
3262 {
3263 return (uint16x8_t)__builtin_neon_vabaluv8qi ((int16x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
3264 }
3265
3266 __extension__ extern __inline uint32x4_t
3267 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3268 vabal_u16 (uint32x4_t __a, uint16x4_t __b, uint16x4_t __c)
3269 {
3270 return (uint32x4_t)__builtin_neon_vabaluv4hi ((int32x4_t) __a, (int16x4_t) __b, (int16x4_t) __c);
3271 }
3272
3273 __extension__ extern __inline uint64x2_t
3274 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3275 vabal_u32 (uint64x2_t __a, uint32x2_t __b, uint32x2_t __c)
3276 {
3277 return (uint64x2_t)__builtin_neon_vabaluv2si ((int64x2_t) __a, (int32x2_t) __b, (int32x2_t) __c);
3278 }
3279
3280 __extension__ extern __inline int8x8_t
3281 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3282 vmax_s8 (int8x8_t __a, int8x8_t __b)
3283 {
3284 return (int8x8_t)__builtin_neon_vmaxsv8qi (__a, __b);
3285 }
3286
3287 __extension__ extern __inline int16x4_t
3288 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3289 vmax_s16 (int16x4_t __a, int16x4_t __b)
3290 {
3291 return (int16x4_t)__builtin_neon_vmaxsv4hi (__a, __b);
3292 }
3293
3294 __extension__ extern __inline int32x2_t
3295 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3296 vmax_s32 (int32x2_t __a, int32x2_t __b)
3297 {
3298 return (int32x2_t)__builtin_neon_vmaxsv2si (__a, __b);
3299 }
3300
3301 __extension__ extern __inline float32x2_t
3302 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3303 vmax_f32 (float32x2_t __a, float32x2_t __b)
3304 {
3305 return (float32x2_t)__builtin_neon_vmaxfv2sf (__a, __b);
3306 }
3307
3308 __extension__ extern __inline uint8x8_t
3309 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3310 vmax_u8 (uint8x8_t __a, uint8x8_t __b)
3311 {
3312 return (uint8x8_t)__builtin_neon_vmaxuv8qi ((int8x8_t) __a, (int8x8_t) __b);
3313 }
3314
3315 __extension__ extern __inline uint16x4_t
3316 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3317 vmax_u16 (uint16x4_t __a, uint16x4_t __b)
3318 {
3319 return (uint16x4_t)__builtin_neon_vmaxuv4hi ((int16x4_t) __a, (int16x4_t) __b);
3320 }
3321
3322 __extension__ extern __inline uint32x2_t
3323 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3324 vmax_u32 (uint32x2_t __a, uint32x2_t __b)
3325 {
3326 return (uint32x2_t)__builtin_neon_vmaxuv2si ((int32x2_t) __a, (int32x2_t) __b);
3327 }
3328
3329 __extension__ extern __inline int8x16_t
3330 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3331 vmaxq_s8 (int8x16_t __a, int8x16_t __b)
3332 {
3333 return (int8x16_t)__builtin_neon_vmaxsv16qi (__a, __b);
3334 }
3335
3336 __extension__ extern __inline int16x8_t
3337 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3338 vmaxq_s16 (int16x8_t __a, int16x8_t __b)
3339 {
3340 return (int16x8_t)__builtin_neon_vmaxsv8hi (__a, __b);
3341 }
3342
3343 __extension__ extern __inline int32x4_t
3344 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3345 vmaxq_s32 (int32x4_t __a, int32x4_t __b)
3346 {
3347 return (int32x4_t)__builtin_neon_vmaxsv4si (__a, __b);
3348 }
3349
3350 __extension__ extern __inline float32x4_t
3351 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3352 vmaxq_f32 (float32x4_t __a, float32x4_t __b)
3353 {
3354 return (float32x4_t)__builtin_neon_vmaxfv4sf (__a, __b);
3355 }
3356
3357 #pragma GCC push_options
3358 #pragma GCC target ("fpu=neon-fp-armv8")
3359 __extension__ extern __inline float32x2_t
3360 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3361 vmaxnm_f32 (float32x2_t a, float32x2_t b)
3362 {
3363 return (float32x2_t)__builtin_neon_vmaxnmv2sf (a, b);
3364 }
3365
3366 __extension__ extern __inline float32x4_t
3367 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3368 vmaxnmq_f32 (float32x4_t a, float32x4_t b)
3369 {
3370 return (float32x4_t)__builtin_neon_vmaxnmv4sf (a, b);
3371 }
3372
3373 __extension__ extern __inline float32x2_t
3374 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3375 vminnm_f32 (float32x2_t a, float32x2_t b)
3376 {
3377 return (float32x2_t)__builtin_neon_vminnmv2sf (a, b);
3378 }
3379
3380 __extension__ extern __inline float32x4_t
3381 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3382 vminnmq_f32 (float32x4_t a, float32x4_t b)
3383 {
3384 return (float32x4_t)__builtin_neon_vminnmv4sf (a, b);
3385 }
3386 #pragma GCC pop_options
3387
3388
3389 __extension__ extern __inline uint8x16_t
3390 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3391 vmaxq_u8 (uint8x16_t __a, uint8x16_t __b)
3392 {
3393 return (uint8x16_t)__builtin_neon_vmaxuv16qi ((int8x16_t) __a, (int8x16_t) __b);
3394 }
3395
3396 __extension__ extern __inline uint16x8_t
3397 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3398 vmaxq_u16 (uint16x8_t __a, uint16x8_t __b)
3399 {
3400 return (uint16x8_t)__builtin_neon_vmaxuv8hi ((int16x8_t) __a, (int16x8_t) __b);
3401 }
3402
3403 __extension__ extern __inline uint32x4_t
3404 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3405 vmaxq_u32 (uint32x4_t __a, uint32x4_t __b)
3406 {
3407 return (uint32x4_t)__builtin_neon_vmaxuv4si ((int32x4_t) __a, (int32x4_t) __b);
3408 }
3409
3410 __extension__ extern __inline int8x8_t
3411 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3412 vmin_s8 (int8x8_t __a, int8x8_t __b)
3413 {
3414 return (int8x8_t)__builtin_neon_vminsv8qi (__a, __b);
3415 }
3416
3417 __extension__ extern __inline int16x4_t
3418 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3419 vmin_s16 (int16x4_t __a, int16x4_t __b)
3420 {
3421 return (int16x4_t)__builtin_neon_vminsv4hi (__a, __b);
3422 }
3423
3424 __extension__ extern __inline int32x2_t
3425 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3426 vmin_s32 (int32x2_t __a, int32x2_t __b)
3427 {
3428 return (int32x2_t)__builtin_neon_vminsv2si (__a, __b);
3429 }
3430
3431 __extension__ extern __inline float32x2_t
3432 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3433 vmin_f32 (float32x2_t __a, float32x2_t __b)
3434 {
3435 return (float32x2_t)__builtin_neon_vminfv2sf (__a, __b);
3436 }
3437
3438 __extension__ extern __inline uint8x8_t
3439 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3440 vmin_u8 (uint8x8_t __a, uint8x8_t __b)
3441 {
3442 return (uint8x8_t)__builtin_neon_vminuv8qi ((int8x8_t) __a, (int8x8_t) __b);
3443 }
3444
3445 __extension__ extern __inline uint16x4_t
3446 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3447 vmin_u16 (uint16x4_t __a, uint16x4_t __b)
3448 {
3449 return (uint16x4_t)__builtin_neon_vminuv4hi ((int16x4_t) __a, (int16x4_t) __b);
3450 }
3451
3452 __extension__ extern __inline uint32x2_t
3453 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3454 vmin_u32 (uint32x2_t __a, uint32x2_t __b)
3455 {
3456 return (uint32x2_t)__builtin_neon_vminuv2si ((int32x2_t) __a, (int32x2_t) __b);
3457 }
3458
3459 __extension__ extern __inline int8x16_t
3460 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3461 vminq_s8 (int8x16_t __a, int8x16_t __b)
3462 {
3463 return (int8x16_t)__builtin_neon_vminsv16qi (__a, __b);
3464 }
3465
3466 __extension__ extern __inline int16x8_t
3467 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3468 vminq_s16 (int16x8_t __a, int16x8_t __b)
3469 {
3470 return (int16x8_t)__builtin_neon_vminsv8hi (__a, __b);
3471 }
3472
3473 __extension__ extern __inline int32x4_t
3474 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3475 vminq_s32 (int32x4_t __a, int32x4_t __b)
3476 {
3477 return (int32x4_t)__builtin_neon_vminsv4si (__a, __b);
3478 }
3479
3480 __extension__ extern __inline float32x4_t
3481 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3482 vminq_f32 (float32x4_t __a, float32x4_t __b)
3483 {
3484 return (float32x4_t)__builtin_neon_vminfv4sf (__a, __b);
3485 }
3486
3487 __extension__ extern __inline uint8x16_t
3488 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3489 vminq_u8 (uint8x16_t __a, uint8x16_t __b)
3490 {
3491 return (uint8x16_t)__builtin_neon_vminuv16qi ((int8x16_t) __a, (int8x16_t) __b);
3492 }
3493
3494 __extension__ extern __inline uint16x8_t
3495 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3496 vminq_u16 (uint16x8_t __a, uint16x8_t __b)
3497 {
3498 return (uint16x8_t)__builtin_neon_vminuv8hi ((int16x8_t) __a, (int16x8_t) __b);
3499 }
3500
3501 __extension__ extern __inline uint32x4_t
3502 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3503 vminq_u32 (uint32x4_t __a, uint32x4_t __b)
3504 {
3505 return (uint32x4_t)__builtin_neon_vminuv4si ((int32x4_t) __a, (int32x4_t) __b);
3506 }
3507
3508 __extension__ extern __inline int8x8_t
3509 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3510 vpadd_s8 (int8x8_t __a, int8x8_t __b)
3511 {
3512 return (int8x8_t)__builtin_neon_vpaddv8qi (__a, __b);
3513 }
3514
3515 __extension__ extern __inline int16x4_t
3516 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3517 vpadd_s16 (int16x4_t __a, int16x4_t __b)
3518 {
3519 return (int16x4_t)__builtin_neon_vpaddv4hi (__a, __b);
3520 }
3521
3522 __extension__ extern __inline int32x2_t
3523 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3524 vpadd_s32 (int32x2_t __a, int32x2_t __b)
3525 {
3526 return (int32x2_t)__builtin_neon_vpaddv2si (__a, __b);
3527 }
3528
3529 __extension__ extern __inline float32x2_t
3530 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3531 vpadd_f32 (float32x2_t __a, float32x2_t __b)
3532 {
3533 return (float32x2_t)__builtin_neon_vpaddv2sf (__a, __b);
3534 }
3535
3536 __extension__ extern __inline uint8x8_t
3537 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3538 vpadd_u8 (uint8x8_t __a, uint8x8_t __b)
3539 {
3540 return (uint8x8_t)__builtin_neon_vpaddv8qi ((int8x8_t) __a, (int8x8_t) __b);
3541 }
3542
3543 __extension__ extern __inline uint16x4_t
3544 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3545 vpadd_u16 (uint16x4_t __a, uint16x4_t __b)
3546 {
3547 return (uint16x4_t)__builtin_neon_vpaddv4hi ((int16x4_t) __a, (int16x4_t) __b);
3548 }
3549
3550 __extension__ extern __inline uint32x2_t
3551 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3552 vpadd_u32 (uint32x2_t __a, uint32x2_t __b)
3553 {
3554 return (uint32x2_t)__builtin_neon_vpaddv2si ((int32x2_t) __a, (int32x2_t) __b);
3555 }
3556
3557 __extension__ extern __inline int16x4_t
3558 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3559 vpaddl_s8 (int8x8_t __a)
3560 {
3561 return (int16x4_t)__builtin_neon_vpaddlsv8qi (__a);
3562 }
3563
3564 __extension__ extern __inline int32x2_t
3565 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3566 vpaddl_s16 (int16x4_t __a)
3567 {
3568 return (int32x2_t)__builtin_neon_vpaddlsv4hi (__a);
3569 }
3570
3571 __extension__ extern __inline int64x1_t
3572 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3573 vpaddl_s32 (int32x2_t __a)
3574 {
3575 return (int64x1_t)__builtin_neon_vpaddlsv2si (__a);
3576 }
3577
3578 __extension__ extern __inline uint16x4_t
3579 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3580 vpaddl_u8 (uint8x8_t __a)
3581 {
3582 return (uint16x4_t)__builtin_neon_vpaddluv8qi ((int8x8_t) __a);
3583 }
3584
3585 __extension__ extern __inline uint32x2_t
3586 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3587 vpaddl_u16 (uint16x4_t __a)
3588 {
3589 return (uint32x2_t)__builtin_neon_vpaddluv4hi ((int16x4_t) __a);
3590 }
3591
3592 __extension__ extern __inline uint64x1_t
3593 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3594 vpaddl_u32 (uint32x2_t __a)
3595 {
3596 return (uint64x1_t)__builtin_neon_vpaddluv2si ((int32x2_t) __a);
3597 }
3598
3599 __extension__ extern __inline int16x8_t
3600 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3601 vpaddlq_s8 (int8x16_t __a)
3602 {
3603 return (int16x8_t)__builtin_neon_vpaddlsv16qi (__a);
3604 }
3605
3606 __extension__ extern __inline int32x4_t
3607 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3608 vpaddlq_s16 (int16x8_t __a)
3609 {
3610 return (int32x4_t)__builtin_neon_vpaddlsv8hi (__a);
3611 }
3612
3613 __extension__ extern __inline int64x2_t
3614 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3615 vpaddlq_s32 (int32x4_t __a)
3616 {
3617 return (int64x2_t)__builtin_neon_vpaddlsv4si (__a);
3618 }
3619
3620 __extension__ extern __inline uint16x8_t
3621 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3622 vpaddlq_u8 (uint8x16_t __a)
3623 {
3624 return (uint16x8_t)__builtin_neon_vpaddluv16qi ((int8x16_t) __a);
3625 }
3626
3627 __extension__ extern __inline uint32x4_t
3628 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3629 vpaddlq_u16 (uint16x8_t __a)
3630 {
3631 return (uint32x4_t)__builtin_neon_vpaddluv8hi ((int16x8_t) __a);
3632 }
3633
3634 __extension__ extern __inline uint64x2_t
3635 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3636 vpaddlq_u32 (uint32x4_t __a)
3637 {
3638 return (uint64x2_t)__builtin_neon_vpaddluv4si ((int32x4_t) __a);
3639 }
3640
3641 __extension__ extern __inline int16x4_t
3642 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3643 vpadal_s8 (int16x4_t __a, int8x8_t __b)
3644 {
3645 return (int16x4_t)__builtin_neon_vpadalsv8qi (__a, __b);
3646 }
3647
3648 __extension__ extern __inline int32x2_t
3649 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3650 vpadal_s16 (int32x2_t __a, int16x4_t __b)
3651 {
3652 return (int32x2_t)__builtin_neon_vpadalsv4hi (__a, __b);
3653 }
3654
3655 __extension__ extern __inline int64x1_t
3656 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3657 vpadal_s32 (int64x1_t __a, int32x2_t __b)
3658 {
3659 return (int64x1_t)__builtin_neon_vpadalsv2si (__a, __b);
3660 }
3661
3662 __extension__ extern __inline uint16x4_t
3663 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3664 vpadal_u8 (uint16x4_t __a, uint8x8_t __b)
3665 {
3666 return (uint16x4_t)__builtin_neon_vpadaluv8qi ((int16x4_t) __a, (int8x8_t) __b);
3667 }
3668
3669 __extension__ extern __inline uint32x2_t
3670 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3671 vpadal_u16 (uint32x2_t __a, uint16x4_t __b)
3672 {
3673 return (uint32x2_t)__builtin_neon_vpadaluv4hi ((int32x2_t) __a, (int16x4_t) __b);
3674 }
3675
3676 __extension__ extern __inline uint64x1_t
3677 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3678 vpadal_u32 (uint64x1_t __a, uint32x2_t __b)
3679 {
3680 return (uint64x1_t)__builtin_neon_vpadaluv2si ((int64x1_t) __a, (int32x2_t) __b);
3681 }
3682
3683 __extension__ extern __inline int16x8_t
3684 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3685 vpadalq_s8 (int16x8_t __a, int8x16_t __b)
3686 {
3687 return (int16x8_t)__builtin_neon_vpadalsv16qi (__a, __b);
3688 }
3689
3690 __extension__ extern __inline int32x4_t
3691 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3692 vpadalq_s16 (int32x4_t __a, int16x8_t __b)
3693 {
3694 return (int32x4_t)__builtin_neon_vpadalsv8hi (__a, __b);
3695 }
3696
3697 __extension__ extern __inline int64x2_t
3698 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3699 vpadalq_s32 (int64x2_t __a, int32x4_t __b)
3700 {
3701 return (int64x2_t)__builtin_neon_vpadalsv4si (__a, __b);
3702 }
3703
3704 __extension__ extern __inline uint16x8_t
3705 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3706 vpadalq_u8 (uint16x8_t __a, uint8x16_t __b)
3707 {
3708 return (uint16x8_t)__builtin_neon_vpadaluv16qi ((int16x8_t) __a, (int8x16_t) __b);
3709 }
3710
3711 __extension__ extern __inline uint32x4_t
3712 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3713 vpadalq_u16 (uint32x4_t __a, uint16x8_t __b)
3714 {
3715 return (uint32x4_t)__builtin_neon_vpadaluv8hi ((int32x4_t) __a, (int16x8_t) __b);
3716 }
3717
3718 __extension__ extern __inline uint64x2_t
3719 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3720 vpadalq_u32 (uint64x2_t __a, uint32x4_t __b)
3721 {
3722 return (uint64x2_t)__builtin_neon_vpadaluv4si ((int64x2_t) __a, (int32x4_t) __b);
3723 }
3724
3725 __extension__ extern __inline int8x8_t
3726 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3727 vpmax_s8 (int8x8_t __a, int8x8_t __b)
3728 {
3729 return (int8x8_t)__builtin_neon_vpmaxsv8qi (__a, __b);
3730 }
3731
3732 __extension__ extern __inline int16x4_t
3733 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3734 vpmax_s16 (int16x4_t __a, int16x4_t __b)
3735 {
3736 return (int16x4_t)__builtin_neon_vpmaxsv4hi (__a, __b);
3737 }
3738
3739 __extension__ extern __inline int32x2_t
3740 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3741 vpmax_s32 (int32x2_t __a, int32x2_t __b)
3742 {
3743 return (int32x2_t)__builtin_neon_vpmaxsv2si (__a, __b);
3744 }
3745
3746 __extension__ extern __inline float32x2_t
3747 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3748 vpmax_f32 (float32x2_t __a, float32x2_t __b)
3749 {
3750 return (float32x2_t)__builtin_neon_vpmaxfv2sf (__a, __b);
3751 }
3752
3753 __extension__ extern __inline uint8x8_t
3754 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3755 vpmax_u8 (uint8x8_t __a, uint8x8_t __b)
3756 {
3757 return (uint8x8_t)__builtin_neon_vpmaxuv8qi ((int8x8_t) __a, (int8x8_t) __b);
3758 }
3759
3760 __extension__ extern __inline uint16x4_t
3761 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3762 vpmax_u16 (uint16x4_t __a, uint16x4_t __b)
3763 {
3764 return (uint16x4_t)__builtin_neon_vpmaxuv4hi ((int16x4_t) __a, (int16x4_t) __b);
3765 }
3766
3767 __extension__ extern __inline uint32x2_t
3768 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3769 vpmax_u32 (uint32x2_t __a, uint32x2_t __b)
3770 {
3771 return (uint32x2_t)__builtin_neon_vpmaxuv2si ((int32x2_t) __a, (int32x2_t) __b);
3772 }
3773
3774 __extension__ extern __inline int8x8_t
3775 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3776 vpmin_s8 (int8x8_t __a, int8x8_t __b)
3777 {
3778 return (int8x8_t)__builtin_neon_vpminsv8qi (__a, __b);
3779 }
3780
3781 __extension__ extern __inline int16x4_t
3782 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3783 vpmin_s16 (int16x4_t __a, int16x4_t __b)
3784 {
3785 return (int16x4_t)__builtin_neon_vpminsv4hi (__a, __b);
3786 }
3787
3788 __extension__ extern __inline int32x2_t
3789 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3790 vpmin_s32 (int32x2_t __a, int32x2_t __b)
3791 {
3792 return (int32x2_t)__builtin_neon_vpminsv2si (__a, __b);
3793 }
3794
3795 __extension__ extern __inline float32x2_t
3796 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3797 vpmin_f32 (float32x2_t __a, float32x2_t __b)
3798 {
3799 return (float32x2_t)__builtin_neon_vpminfv2sf (__a, __b);
3800 }
3801
3802 __extension__ extern __inline uint8x8_t
3803 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3804 vpmin_u8 (uint8x8_t __a, uint8x8_t __b)
3805 {
3806 return (uint8x8_t)__builtin_neon_vpminuv8qi ((int8x8_t) __a, (int8x8_t) __b);
3807 }
3808
3809 __extension__ extern __inline uint16x4_t
3810 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3811 vpmin_u16 (uint16x4_t __a, uint16x4_t __b)
3812 {
3813 return (uint16x4_t)__builtin_neon_vpminuv4hi ((int16x4_t) __a, (int16x4_t) __b);
3814 }
3815
3816 __extension__ extern __inline uint32x2_t
3817 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3818 vpmin_u32 (uint32x2_t __a, uint32x2_t __b)
3819 {
3820 return (uint32x2_t)__builtin_neon_vpminuv2si ((int32x2_t) __a, (int32x2_t) __b);
3821 }
3822
3823 __extension__ extern __inline float32x2_t
3824 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3825 vrecps_f32 (float32x2_t __a, float32x2_t __b)
3826 {
3827 return (float32x2_t)__builtin_neon_vrecpsv2sf (__a, __b);
3828 }
3829
3830 __extension__ extern __inline float32x4_t
3831 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3832 vrecpsq_f32 (float32x4_t __a, float32x4_t __b)
3833 {
3834 return (float32x4_t)__builtin_neon_vrecpsv4sf (__a, __b);
3835 }
3836
3837 __extension__ extern __inline float32x2_t
3838 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3839 vrsqrts_f32 (float32x2_t __a, float32x2_t __b)
3840 {
3841 return (float32x2_t)__builtin_neon_vrsqrtsv2sf (__a, __b);
3842 }
3843
3844 __extension__ extern __inline float32x4_t
3845 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3846 vrsqrtsq_f32 (float32x4_t __a, float32x4_t __b)
3847 {
3848 return (float32x4_t)__builtin_neon_vrsqrtsv4sf (__a, __b);
3849 }
3850
3851 __extension__ extern __inline int8x8_t
3852 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3853 vshl_s8 (int8x8_t __a, int8x8_t __b)
3854 {
3855 return (int8x8_t)__builtin_neon_vshlsv8qi (__a, __b);
3856 }
3857
3858 __extension__ extern __inline int16x4_t
3859 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3860 vshl_s16 (int16x4_t __a, int16x4_t __b)
3861 {
3862 return (int16x4_t)__builtin_neon_vshlsv4hi (__a, __b);
3863 }
3864
3865 __extension__ extern __inline int32x2_t
3866 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3867 vshl_s32 (int32x2_t __a, int32x2_t __b)
3868 {
3869 return (int32x2_t)__builtin_neon_vshlsv2si (__a, __b);
3870 }
3871
3872 __extension__ extern __inline int64x1_t
3873 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3874 vshl_s64 (int64x1_t __a, int64x1_t __b)
3875 {
3876 return (int64x1_t)__builtin_neon_vshlsdi (__a, __b);
3877 }
3878
3879 __extension__ extern __inline uint8x8_t
3880 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3881 vshl_u8 (uint8x8_t __a, int8x8_t __b)
3882 {
3883 return (uint8x8_t)__builtin_neon_vshluv8qi ((int8x8_t) __a, __b);
3884 }
3885
3886 __extension__ extern __inline uint16x4_t
3887 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3888 vshl_u16 (uint16x4_t __a, int16x4_t __b)
3889 {
3890 return (uint16x4_t)__builtin_neon_vshluv4hi ((int16x4_t) __a, __b);
3891 }
3892
3893 __extension__ extern __inline uint32x2_t
3894 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3895 vshl_u32 (uint32x2_t __a, int32x2_t __b)
3896 {
3897 return (uint32x2_t)__builtin_neon_vshluv2si ((int32x2_t) __a, __b);
3898 }
3899
3900 __extension__ extern __inline uint64x1_t
3901 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3902 vshl_u64 (uint64x1_t __a, int64x1_t __b)
3903 {
3904 return (uint64x1_t)__builtin_neon_vshludi ((int64x1_t) __a, __b);
3905 }
3906
3907 __extension__ extern __inline int8x16_t
3908 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3909 vshlq_s8 (int8x16_t __a, int8x16_t __b)
3910 {
3911 return (int8x16_t)__builtin_neon_vshlsv16qi (__a, __b);
3912 }
3913
3914 __extension__ extern __inline int16x8_t
3915 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3916 vshlq_s16 (int16x8_t __a, int16x8_t __b)
3917 {
3918 return (int16x8_t)__builtin_neon_vshlsv8hi (__a, __b);
3919 }
3920
3921 __extension__ extern __inline int32x4_t
3922 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3923 vshlq_s32 (int32x4_t __a, int32x4_t __b)
3924 {
3925 return (int32x4_t)__builtin_neon_vshlsv4si (__a, __b);
3926 }
3927
3928 __extension__ extern __inline int64x2_t
3929 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3930 vshlq_s64 (int64x2_t __a, int64x2_t __b)
3931 {
3932 return (int64x2_t)__builtin_neon_vshlsv2di (__a, __b);
3933 }
3934
3935 __extension__ extern __inline uint8x16_t
3936 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3937 vshlq_u8 (uint8x16_t __a, int8x16_t __b)
3938 {
3939 return (uint8x16_t)__builtin_neon_vshluv16qi ((int8x16_t) __a, __b);
3940 }
3941
3942 __extension__ extern __inline uint16x8_t
3943 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3944 vshlq_u16 (uint16x8_t __a, int16x8_t __b)
3945 {
3946 return (uint16x8_t)__builtin_neon_vshluv8hi ((int16x8_t) __a, __b);
3947 }
3948
3949 __extension__ extern __inline uint32x4_t
3950 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3951 vshlq_u32 (uint32x4_t __a, int32x4_t __b)
3952 {
3953 return (uint32x4_t)__builtin_neon_vshluv4si ((int32x4_t) __a, __b);
3954 }
3955
3956 __extension__ extern __inline uint64x2_t
3957 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3958 vshlq_u64 (uint64x2_t __a, int64x2_t __b)
3959 {
3960 return (uint64x2_t)__builtin_neon_vshluv2di ((int64x2_t) __a, __b);
3961 }
3962
3963 __extension__ extern __inline int8x8_t
3964 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3965 vrshl_s8 (int8x8_t __a, int8x8_t __b)
3966 {
3967 return (int8x8_t)__builtin_neon_vrshlsv8qi (__a, __b);
3968 }
3969
3970 __extension__ extern __inline int16x4_t
3971 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3972 vrshl_s16 (int16x4_t __a, int16x4_t __b)
3973 {
3974 return (int16x4_t)__builtin_neon_vrshlsv4hi (__a, __b);
3975 }
3976
3977 __extension__ extern __inline int32x2_t
3978 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3979 vrshl_s32 (int32x2_t __a, int32x2_t __b)
3980 {
3981 return (int32x2_t)__builtin_neon_vrshlsv2si (__a, __b);
3982 }
3983
3984 __extension__ extern __inline int64x1_t
3985 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3986 vrshl_s64 (int64x1_t __a, int64x1_t __b)
3987 {
3988 return (int64x1_t)__builtin_neon_vrshlsdi (__a, __b);
3989 }
3990
3991 __extension__ extern __inline uint8x8_t
3992 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3993 vrshl_u8 (uint8x8_t __a, int8x8_t __b)
3994 {
3995 return (uint8x8_t)__builtin_neon_vrshluv8qi ((int8x8_t) __a, __b);
3996 }
3997
3998 __extension__ extern __inline uint16x4_t
3999 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4000 vrshl_u16 (uint16x4_t __a, int16x4_t __b)
4001 {
4002 return (uint16x4_t)__builtin_neon_vrshluv4hi ((int16x4_t) __a, __b);
4003 }
4004
4005 __extension__ extern __inline uint32x2_t
4006 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4007 vrshl_u32 (uint32x2_t __a, int32x2_t __b)
4008 {
4009 return (uint32x2_t)__builtin_neon_vrshluv2si ((int32x2_t) __a, __b);
4010 }
4011
4012 __extension__ extern __inline uint64x1_t
4013 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4014 vrshl_u64 (uint64x1_t __a, int64x1_t __b)
4015 {
4016 return (uint64x1_t)__builtin_neon_vrshludi ((int64x1_t) __a, __b);
4017 }
4018
4019 __extension__ extern __inline int8x16_t
4020 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4021 vrshlq_s8 (int8x16_t __a, int8x16_t __b)
4022 {
4023 return (int8x16_t)__builtin_neon_vrshlsv16qi (__a, __b);
4024 }
4025
4026 __extension__ extern __inline int16x8_t
4027 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4028 vrshlq_s16 (int16x8_t __a, int16x8_t __b)
4029 {
4030 return (int16x8_t)__builtin_neon_vrshlsv8hi (__a, __b);
4031 }
4032
4033 __extension__ extern __inline int32x4_t
4034 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4035 vrshlq_s32 (int32x4_t __a, int32x4_t __b)
4036 {
4037 return (int32x4_t)__builtin_neon_vrshlsv4si (__a, __b);
4038 }
4039
4040 __extension__ extern __inline int64x2_t
4041 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4042 vrshlq_s64 (int64x2_t __a, int64x2_t __b)
4043 {
4044 return (int64x2_t)__builtin_neon_vrshlsv2di (__a, __b);
4045 }
4046
4047 __extension__ extern __inline uint8x16_t
4048 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4049 vrshlq_u8 (uint8x16_t __a, int8x16_t __b)
4050 {
4051 return (uint8x16_t)__builtin_neon_vrshluv16qi ((int8x16_t) __a, __b);
4052 }
4053
4054 __extension__ extern __inline uint16x8_t
4055 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4056 vrshlq_u16 (uint16x8_t __a, int16x8_t __b)
4057 {
4058 return (uint16x8_t)__builtin_neon_vrshluv8hi ((int16x8_t) __a, __b);
4059 }
4060
4061 __extension__ extern __inline uint32x4_t
4062 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4063 vrshlq_u32 (uint32x4_t __a, int32x4_t __b)
4064 {
4065 return (uint32x4_t)__builtin_neon_vrshluv4si ((int32x4_t) __a, __b);
4066 }
4067
4068 __extension__ extern __inline uint64x2_t
4069 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4070 vrshlq_u64 (uint64x2_t __a, int64x2_t __b)
4071 {
4072 return (uint64x2_t)__builtin_neon_vrshluv2di ((int64x2_t) __a, __b);
4073 }
4074
4075 __extension__ extern __inline int8x8_t
4076 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4077 vqshl_s8 (int8x8_t __a, int8x8_t __b)
4078 {
4079 return (int8x8_t)__builtin_neon_vqshlsv8qi (__a, __b);
4080 }
4081
4082 __extension__ extern __inline int16x4_t
4083 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4084 vqshl_s16 (int16x4_t __a, int16x4_t __b)
4085 {
4086 return (int16x4_t)__builtin_neon_vqshlsv4hi (__a, __b);
4087 }
4088
4089 __extension__ extern __inline int32x2_t
4090 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4091 vqshl_s32 (int32x2_t __a, int32x2_t __b)
4092 {
4093 return (int32x2_t)__builtin_neon_vqshlsv2si (__a, __b);
4094 }
4095
4096 __extension__ extern __inline int64x1_t
4097 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4098 vqshl_s64 (int64x1_t __a, int64x1_t __b)
4099 {
4100 return (int64x1_t)__builtin_neon_vqshlsdi (__a, __b);
4101 }
4102
4103 __extension__ extern __inline uint8x8_t
4104 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4105 vqshl_u8 (uint8x8_t __a, int8x8_t __b)
4106 {
4107 return (uint8x8_t)__builtin_neon_vqshluv8qi ((int8x8_t) __a, __b);
4108 }
4109
4110 __extension__ extern __inline uint16x4_t
4111 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4112 vqshl_u16 (uint16x4_t __a, int16x4_t __b)
4113 {
4114 return (uint16x4_t)__builtin_neon_vqshluv4hi ((int16x4_t) __a, __b);
4115 }
4116
4117 __extension__ extern __inline uint32x2_t
4118 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4119 vqshl_u32 (uint32x2_t __a, int32x2_t __b)
4120 {
4121 return (uint32x2_t)__builtin_neon_vqshluv2si ((int32x2_t) __a, __b);
4122 }
4123
4124 __extension__ extern __inline uint64x1_t
4125 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4126 vqshl_u64 (uint64x1_t __a, int64x1_t __b)
4127 {
4128 return (uint64x1_t)__builtin_neon_vqshludi ((int64x1_t) __a, __b);
4129 }
4130
4131 __extension__ extern __inline int8x16_t
4132 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4133 vqshlq_s8 (int8x16_t __a, int8x16_t __b)
4134 {
4135 return (int8x16_t)__builtin_neon_vqshlsv16qi (__a, __b);
4136 }
4137
4138 __extension__ extern __inline int16x8_t
4139 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4140 vqshlq_s16 (int16x8_t __a, int16x8_t __b)
4141 {
4142 return (int16x8_t)__builtin_neon_vqshlsv8hi (__a, __b);
4143 }
4144
4145 __extension__ extern __inline int32x4_t
4146 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4147 vqshlq_s32 (int32x4_t __a, int32x4_t __b)
4148 {
4149 return (int32x4_t)__builtin_neon_vqshlsv4si (__a, __b);
4150 }
4151
4152 __extension__ extern __inline int64x2_t
4153 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4154 vqshlq_s64 (int64x2_t __a, int64x2_t __b)
4155 {
4156 return (int64x2_t)__builtin_neon_vqshlsv2di (__a, __b);
4157 }
4158
4159 __extension__ extern __inline uint8x16_t
4160 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4161 vqshlq_u8 (uint8x16_t __a, int8x16_t __b)
4162 {
4163 return (uint8x16_t)__builtin_neon_vqshluv16qi ((int8x16_t) __a, __b);
4164 }
4165
4166 __extension__ extern __inline uint16x8_t
4167 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4168 vqshlq_u16 (uint16x8_t __a, int16x8_t __b)
4169 {
4170 return (uint16x8_t)__builtin_neon_vqshluv8hi ((int16x8_t) __a, __b);
4171 }
4172
4173 __extension__ extern __inline uint32x4_t
4174 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4175 vqshlq_u32 (uint32x4_t __a, int32x4_t __b)
4176 {
4177 return (uint32x4_t)__builtin_neon_vqshluv4si ((int32x4_t) __a, __b);
4178 }
4179
4180 __extension__ extern __inline uint64x2_t
4181 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4182 vqshlq_u64 (uint64x2_t __a, int64x2_t __b)
4183 {
4184 return (uint64x2_t)__builtin_neon_vqshluv2di ((int64x2_t) __a, __b);
4185 }
4186
4187 __extension__ extern __inline int8x8_t
4188 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4189 vqrshl_s8 (int8x8_t __a, int8x8_t __b)
4190 {
4191 return (int8x8_t)__builtin_neon_vqrshlsv8qi (__a, __b);
4192 }
4193
4194 __extension__ extern __inline int16x4_t
4195 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4196 vqrshl_s16 (int16x4_t __a, int16x4_t __b)
4197 {
4198 return (int16x4_t)__builtin_neon_vqrshlsv4hi (__a, __b);
4199 }
4200
4201 __extension__ extern __inline int32x2_t
4202 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4203 vqrshl_s32 (int32x2_t __a, int32x2_t __b)
4204 {
4205 return (int32x2_t)__builtin_neon_vqrshlsv2si (__a, __b);
4206 }
4207
4208 __extension__ extern __inline int64x1_t
4209 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4210 vqrshl_s64 (int64x1_t __a, int64x1_t __b)
4211 {
4212 return (int64x1_t)__builtin_neon_vqrshlsdi (__a, __b);
4213 }
4214
4215 __extension__ extern __inline uint8x8_t
4216 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4217 vqrshl_u8 (uint8x8_t __a, int8x8_t __b)
4218 {
4219 return (uint8x8_t)__builtin_neon_vqrshluv8qi ((int8x8_t) __a, __b);
4220 }
4221
4222 __extension__ extern __inline uint16x4_t
4223 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4224 vqrshl_u16 (uint16x4_t __a, int16x4_t __b)
4225 {
4226 return (uint16x4_t)__builtin_neon_vqrshluv4hi ((int16x4_t) __a, __b);
4227 }
4228
4229 __extension__ extern __inline uint32x2_t
4230 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4231 vqrshl_u32 (uint32x2_t __a, int32x2_t __b)
4232 {
4233 return (uint32x2_t)__builtin_neon_vqrshluv2si ((int32x2_t) __a, __b);
4234 }
4235
4236 __extension__ extern __inline uint64x1_t
4237 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4238 vqrshl_u64 (uint64x1_t __a, int64x1_t __b)
4239 {
4240 return (uint64x1_t)__builtin_neon_vqrshludi ((int64x1_t) __a, __b);
4241 }
4242
4243 __extension__ extern __inline int8x16_t
4244 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4245 vqrshlq_s8 (int8x16_t __a, int8x16_t __b)
4246 {
4247 return (int8x16_t)__builtin_neon_vqrshlsv16qi (__a, __b);
4248 }
4249
4250 __extension__ extern __inline int16x8_t
4251 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4252 vqrshlq_s16 (int16x8_t __a, int16x8_t __b)
4253 {
4254 return (int16x8_t)__builtin_neon_vqrshlsv8hi (__a, __b);
4255 }
4256
4257 __extension__ extern __inline int32x4_t
4258 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4259 vqrshlq_s32 (int32x4_t __a, int32x4_t __b)
4260 {
4261 return (int32x4_t)__builtin_neon_vqrshlsv4si (__a, __b);
4262 }
4263
4264 __extension__ extern __inline int64x2_t
4265 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4266 vqrshlq_s64 (int64x2_t __a, int64x2_t __b)
4267 {
4268 return (int64x2_t)__builtin_neon_vqrshlsv2di (__a, __b);
4269 }
4270
4271 __extension__ extern __inline uint8x16_t
4272 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4273 vqrshlq_u8 (uint8x16_t __a, int8x16_t __b)
4274 {
4275 return (uint8x16_t)__builtin_neon_vqrshluv16qi ((int8x16_t) __a, __b);
4276 }
4277
4278 __extension__ extern __inline uint16x8_t
4279 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4280 vqrshlq_u16 (uint16x8_t __a, int16x8_t __b)
4281 {
4282 return (uint16x8_t)__builtin_neon_vqrshluv8hi ((int16x8_t) __a, __b);
4283 }
4284
4285 __extension__ extern __inline uint32x4_t
4286 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4287 vqrshlq_u32 (uint32x4_t __a, int32x4_t __b)
4288 {
4289 return (uint32x4_t)__builtin_neon_vqrshluv4si ((int32x4_t) __a, __b);
4290 }
4291
4292 __extension__ extern __inline uint64x2_t
4293 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4294 vqrshlq_u64 (uint64x2_t __a, int64x2_t __b)
4295 {
4296 return (uint64x2_t)__builtin_neon_vqrshluv2di ((int64x2_t) __a, __b);
4297 }
4298
4299 __extension__ extern __inline int8x8_t
4300 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4301 vshr_n_s8 (int8x8_t __a, const int __b)
4302 {
4303 return (int8x8_t)__builtin_neon_vshrs_nv8qi (__a, __b);
4304 }
4305
4306 __extension__ extern __inline int16x4_t
4307 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4308 vshr_n_s16 (int16x4_t __a, const int __b)
4309 {
4310 return (int16x4_t)__builtin_neon_vshrs_nv4hi (__a, __b);
4311 }
4312
4313 __extension__ extern __inline int32x2_t
4314 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4315 vshr_n_s32 (int32x2_t __a, const int __b)
4316 {
4317 return (int32x2_t)__builtin_neon_vshrs_nv2si (__a, __b);
4318 }
4319
4320 __extension__ extern __inline int64x1_t
4321 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4322 vshr_n_s64 (int64x1_t __a, const int __b)
4323 {
4324 return (int64x1_t)__builtin_neon_vshrs_ndi (__a, __b);
4325 }
4326
4327 __extension__ extern __inline uint8x8_t
4328 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4329 vshr_n_u8 (uint8x8_t __a, const int __b)
4330 {
4331 return (uint8x8_t)__builtin_neon_vshru_nv8qi ((int8x8_t) __a, __b);
4332 }
4333
4334 __extension__ extern __inline uint16x4_t
4335 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4336 vshr_n_u16 (uint16x4_t __a, const int __b)
4337 {
4338 return (uint16x4_t)__builtin_neon_vshru_nv4hi ((int16x4_t) __a, __b);
4339 }
4340
4341 __extension__ extern __inline uint32x2_t
4342 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4343 vshr_n_u32 (uint32x2_t __a, const int __b)
4344 {
4345 return (uint32x2_t)__builtin_neon_vshru_nv2si ((int32x2_t) __a, __b);
4346 }
4347
4348 __extension__ extern __inline uint64x1_t
4349 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4350 vshr_n_u64 (uint64x1_t __a, const int __b)
4351 {
4352 return (uint64x1_t)__builtin_neon_vshru_ndi ((int64x1_t) __a, __b);
4353 }
4354
4355 __extension__ extern __inline int8x16_t
4356 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4357 vshrq_n_s8 (int8x16_t __a, const int __b)
4358 {
4359 return (int8x16_t)__builtin_neon_vshrs_nv16qi (__a, __b);
4360 }
4361
4362 __extension__ extern __inline int16x8_t
4363 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4364 vshrq_n_s16 (int16x8_t __a, const int __b)
4365 {
4366 return (int16x8_t)__builtin_neon_vshrs_nv8hi (__a, __b);
4367 }
4368
4369 __extension__ extern __inline int32x4_t
4370 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4371 vshrq_n_s32 (int32x4_t __a, const int __b)
4372 {
4373 return (int32x4_t)__builtin_neon_vshrs_nv4si (__a, __b);
4374 }
4375
4376 __extension__ extern __inline int64x2_t
4377 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4378 vshrq_n_s64 (int64x2_t __a, const int __b)
4379 {
4380 return (int64x2_t)__builtin_neon_vshrs_nv2di (__a, __b);
4381 }
4382
4383 __extension__ extern __inline uint8x16_t
4384 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4385 vshrq_n_u8 (uint8x16_t __a, const int __b)
4386 {
4387 return (uint8x16_t)__builtin_neon_vshru_nv16qi ((int8x16_t) __a, __b);
4388 }
4389
4390 __extension__ extern __inline uint16x8_t
4391 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4392 vshrq_n_u16 (uint16x8_t __a, const int __b)
4393 {
4394 return (uint16x8_t)__builtin_neon_vshru_nv8hi ((int16x8_t) __a, __b);
4395 }
4396
4397 __extension__ extern __inline uint32x4_t
4398 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4399 vshrq_n_u32 (uint32x4_t __a, const int __b)
4400 {
4401 return (uint32x4_t)__builtin_neon_vshru_nv4si ((int32x4_t) __a, __b);
4402 }
4403
4404 __extension__ extern __inline uint64x2_t
4405 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4406 vshrq_n_u64 (uint64x2_t __a, const int __b)
4407 {
4408 return (uint64x2_t)__builtin_neon_vshru_nv2di ((int64x2_t) __a, __b);
4409 }
4410
4411 __extension__ extern __inline int8x8_t
4412 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4413 vrshr_n_s8 (int8x8_t __a, const int __b)
4414 {
4415 return (int8x8_t)__builtin_neon_vrshrs_nv8qi (__a, __b);
4416 }
4417
4418 __extension__ extern __inline int16x4_t
4419 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4420 vrshr_n_s16 (int16x4_t __a, const int __b)
4421 {
4422 return (int16x4_t)__builtin_neon_vrshrs_nv4hi (__a, __b);
4423 }
4424
4425 __extension__ extern __inline int32x2_t
4426 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4427 vrshr_n_s32 (int32x2_t __a, const int __b)
4428 {
4429 return (int32x2_t)__builtin_neon_vrshrs_nv2si (__a, __b);
4430 }
4431
4432 __extension__ extern __inline int64x1_t
4433 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4434 vrshr_n_s64 (int64x1_t __a, const int __b)
4435 {
4436 return (int64x1_t)__builtin_neon_vrshrs_ndi (__a, __b);
4437 }
4438
4439 __extension__ extern __inline uint8x8_t
4440 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4441 vrshr_n_u8 (uint8x8_t __a, const int __b)
4442 {
4443 return (uint8x8_t)__builtin_neon_vrshru_nv8qi ((int8x8_t) __a, __b);
4444 }
4445
4446 __extension__ extern __inline uint16x4_t
4447 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4448 vrshr_n_u16 (uint16x4_t __a, const int __b)
4449 {
4450 return (uint16x4_t)__builtin_neon_vrshru_nv4hi ((int16x4_t) __a, __b);
4451 }
4452
4453 __extension__ extern __inline uint32x2_t
4454 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4455 vrshr_n_u32 (uint32x2_t __a, const int __b)
4456 {
4457 return (uint32x2_t)__builtin_neon_vrshru_nv2si ((int32x2_t) __a, __b);
4458 }
4459
4460 __extension__ extern __inline uint64x1_t
4461 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4462 vrshr_n_u64 (uint64x1_t __a, const int __b)
4463 {
4464 return (uint64x1_t)__builtin_neon_vrshru_ndi ((int64x1_t) __a, __b);
4465 }
4466
4467 __extension__ extern __inline int8x16_t
4468 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4469 vrshrq_n_s8 (int8x16_t __a, const int __b)
4470 {
4471 return (int8x16_t)__builtin_neon_vrshrs_nv16qi (__a, __b);
4472 }
4473
4474 __extension__ extern __inline int16x8_t
4475 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4476 vrshrq_n_s16 (int16x8_t __a, const int __b)
4477 {
4478 return (int16x8_t)__builtin_neon_vrshrs_nv8hi (__a, __b);
4479 }
4480
4481 __extension__ extern __inline int32x4_t
4482 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4483 vrshrq_n_s32 (int32x4_t __a, const int __b)
4484 {
4485 return (int32x4_t)__builtin_neon_vrshrs_nv4si (__a, __b);
4486 }
4487
4488 __extension__ extern __inline int64x2_t
4489 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4490 vrshrq_n_s64 (int64x2_t __a, const int __b)
4491 {
4492 return (int64x2_t)__builtin_neon_vrshrs_nv2di (__a, __b);
4493 }
4494
4495 __extension__ extern __inline uint8x16_t
4496 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4497 vrshrq_n_u8 (uint8x16_t __a, const int __b)
4498 {
4499 return (uint8x16_t)__builtin_neon_vrshru_nv16qi ((int8x16_t) __a, __b);
4500 }
4501
4502 __extension__ extern __inline uint16x8_t
4503 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4504 vrshrq_n_u16 (uint16x8_t __a, const int __b)
4505 {
4506 return (uint16x8_t)__builtin_neon_vrshru_nv8hi ((int16x8_t) __a, __b);
4507 }
4508
4509 __extension__ extern __inline uint32x4_t
4510 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4511 vrshrq_n_u32 (uint32x4_t __a, const int __b)
4512 {
4513 return (uint32x4_t)__builtin_neon_vrshru_nv4si ((int32x4_t) __a, __b);
4514 }
4515
4516 __extension__ extern __inline uint64x2_t
4517 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4518 vrshrq_n_u64 (uint64x2_t __a, const int __b)
4519 {
4520 return (uint64x2_t)__builtin_neon_vrshru_nv2di ((int64x2_t) __a, __b);
4521 }
4522
4523 __extension__ extern __inline int8x8_t
4524 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4525 vshrn_n_s16 (int16x8_t __a, const int __b)
4526 {
4527 return (int8x8_t)__builtin_neon_vshrn_nv8hi (__a, __b);
4528 }
4529
4530 __extension__ extern __inline int16x4_t
4531 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4532 vshrn_n_s32 (int32x4_t __a, const int __b)
4533 {
4534 return (int16x4_t)__builtin_neon_vshrn_nv4si (__a, __b);
4535 }
4536
4537 __extension__ extern __inline int32x2_t
4538 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4539 vshrn_n_s64 (int64x2_t __a, const int __b)
4540 {
4541 return (int32x2_t)__builtin_neon_vshrn_nv2di (__a, __b);
4542 }
4543
4544 __extension__ extern __inline uint8x8_t
4545 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4546 vshrn_n_u16 (uint16x8_t __a, const int __b)
4547 {
4548 return (uint8x8_t)__builtin_neon_vshrn_nv8hi ((int16x8_t) __a, __b);
4549 }
4550
4551 __extension__ extern __inline uint16x4_t
4552 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4553 vshrn_n_u32 (uint32x4_t __a, const int __b)
4554 {
4555 return (uint16x4_t)__builtin_neon_vshrn_nv4si ((int32x4_t) __a, __b);
4556 }
4557
4558 __extension__ extern __inline uint32x2_t
4559 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4560 vshrn_n_u64 (uint64x2_t __a, const int __b)
4561 {
4562 return (uint32x2_t)__builtin_neon_vshrn_nv2di ((int64x2_t) __a, __b);
4563 }
4564
4565 __extension__ extern __inline int8x8_t
4566 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4567 vrshrn_n_s16 (int16x8_t __a, const int __b)
4568 {
4569 return (int8x8_t)__builtin_neon_vrshrn_nv8hi (__a, __b);
4570 }
4571
4572 __extension__ extern __inline int16x4_t
4573 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4574 vrshrn_n_s32 (int32x4_t __a, const int __b)
4575 {
4576 return (int16x4_t)__builtin_neon_vrshrn_nv4si (__a, __b);
4577 }
4578
4579 __extension__ extern __inline int32x2_t
4580 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4581 vrshrn_n_s64 (int64x2_t __a, const int __b)
4582 {
4583 return (int32x2_t)__builtin_neon_vrshrn_nv2di (__a, __b);
4584 }
4585
4586 __extension__ extern __inline uint8x8_t
4587 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4588 vrshrn_n_u16 (uint16x8_t __a, const int __b)
4589 {
4590 return (uint8x8_t)__builtin_neon_vrshrn_nv8hi ((int16x8_t) __a, __b);
4591 }
4592
4593 __extension__ extern __inline uint16x4_t
4594 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4595 vrshrn_n_u32 (uint32x4_t __a, const int __b)
4596 {
4597 return (uint16x4_t)__builtin_neon_vrshrn_nv4si ((int32x4_t) __a, __b);
4598 }
4599
4600 __extension__ extern __inline uint32x2_t
4601 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4602 vrshrn_n_u64 (uint64x2_t __a, const int __b)
4603 {
4604 return (uint32x2_t)__builtin_neon_vrshrn_nv2di ((int64x2_t) __a, __b);
4605 }
4606
4607 __extension__ extern __inline int8x8_t
4608 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4609 vqshrn_n_s16 (int16x8_t __a, const int __b)
4610 {
4611 return (int8x8_t)__builtin_neon_vqshrns_nv8hi (__a, __b);
4612 }
4613
4614 __extension__ extern __inline int16x4_t
4615 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4616 vqshrn_n_s32 (int32x4_t __a, const int __b)
4617 {
4618 return (int16x4_t)__builtin_neon_vqshrns_nv4si (__a, __b);
4619 }
4620
4621 __extension__ extern __inline int32x2_t
4622 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4623 vqshrn_n_s64 (int64x2_t __a, const int __b)
4624 {
4625 return (int32x2_t)__builtin_neon_vqshrns_nv2di (__a, __b);
4626 }
4627
4628 __extension__ extern __inline uint8x8_t
4629 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4630 vqshrn_n_u16 (uint16x8_t __a, const int __b)
4631 {
4632 return (uint8x8_t)__builtin_neon_vqshrnu_nv8hi ((int16x8_t) __a, __b);
4633 }
4634
4635 __extension__ extern __inline uint16x4_t
4636 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4637 vqshrn_n_u32 (uint32x4_t __a, const int __b)
4638 {
4639 return (uint16x4_t)__builtin_neon_vqshrnu_nv4si ((int32x4_t) __a, __b);
4640 }
4641
4642 __extension__ extern __inline uint32x2_t
4643 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4644 vqshrn_n_u64 (uint64x2_t __a, const int __b)
4645 {
4646 return (uint32x2_t)__builtin_neon_vqshrnu_nv2di ((int64x2_t) __a, __b);
4647 }
4648
4649 __extension__ extern __inline int8x8_t
4650 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4651 vqrshrn_n_s16 (int16x8_t __a, const int __b)
4652 {
4653 return (int8x8_t)__builtin_neon_vqrshrns_nv8hi (__a, __b);
4654 }
4655
4656 __extension__ extern __inline int16x4_t
4657 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4658 vqrshrn_n_s32 (int32x4_t __a, const int __b)
4659 {
4660 return (int16x4_t)__builtin_neon_vqrshrns_nv4si (__a, __b);
4661 }
4662
4663 __extension__ extern __inline int32x2_t
4664 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4665 vqrshrn_n_s64 (int64x2_t __a, const int __b)
4666 {
4667 return (int32x2_t)__builtin_neon_vqrshrns_nv2di (__a, __b);
4668 }
4669
4670 __extension__ extern __inline uint8x8_t
4671 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4672 vqrshrn_n_u16 (uint16x8_t __a, const int __b)
4673 {
4674 return (uint8x8_t)__builtin_neon_vqrshrnu_nv8hi ((int16x8_t) __a, __b);
4675 }
4676
4677 __extension__ extern __inline uint16x4_t
4678 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4679 vqrshrn_n_u32 (uint32x4_t __a, const int __b)
4680 {
4681 return (uint16x4_t)__builtin_neon_vqrshrnu_nv4si ((int32x4_t) __a, __b);
4682 }
4683
4684 __extension__ extern __inline uint32x2_t
4685 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4686 vqrshrn_n_u64 (uint64x2_t __a, const int __b)
4687 {
4688 return (uint32x2_t)__builtin_neon_vqrshrnu_nv2di ((int64x2_t) __a, __b);
4689 }
4690
4691 __extension__ extern __inline uint8x8_t
4692 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4693 vqshrun_n_s16 (int16x8_t __a, const int __b)
4694 {
4695 return (uint8x8_t)__builtin_neon_vqshrun_nv8hi (__a, __b);
4696 }
4697
4698 __extension__ extern __inline uint16x4_t
4699 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4700 vqshrun_n_s32 (int32x4_t __a, const int __b)
4701 {
4702 return (uint16x4_t)__builtin_neon_vqshrun_nv4si (__a, __b);
4703 }
4704
4705 __extension__ extern __inline uint32x2_t
4706 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4707 vqshrun_n_s64 (int64x2_t __a, const int __b)
4708 {
4709 return (uint32x2_t)__builtin_neon_vqshrun_nv2di (__a, __b);
4710 }
4711
4712 __extension__ extern __inline uint8x8_t
4713 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4714 vqrshrun_n_s16 (int16x8_t __a, const int __b)
4715 {
4716 return (uint8x8_t)__builtin_neon_vqrshrun_nv8hi (__a, __b);
4717 }
4718
4719 __extension__ extern __inline uint16x4_t
4720 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4721 vqrshrun_n_s32 (int32x4_t __a, const int __b)
4722 {
4723 return (uint16x4_t)__builtin_neon_vqrshrun_nv4si (__a, __b);
4724 }
4725
4726 __extension__ extern __inline uint32x2_t
4727 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4728 vqrshrun_n_s64 (int64x2_t __a, const int __b)
4729 {
4730 return (uint32x2_t)__builtin_neon_vqrshrun_nv2di (__a, __b);
4731 }
4732
4733 __extension__ extern __inline int8x8_t
4734 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4735 vshl_n_s8 (int8x8_t __a, const int __b)
4736 {
4737 return (int8x8_t)__builtin_neon_vshl_nv8qi (__a, __b);
4738 }
4739
4740 __extension__ extern __inline int16x4_t
4741 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4742 vshl_n_s16 (int16x4_t __a, const int __b)
4743 {
4744 return (int16x4_t)__builtin_neon_vshl_nv4hi (__a, __b);
4745 }
4746
4747 __extension__ extern __inline int32x2_t
4748 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4749 vshl_n_s32 (int32x2_t __a, const int __b)
4750 {
4751 return (int32x2_t)__builtin_neon_vshl_nv2si (__a, __b);
4752 }
4753
4754 __extension__ extern __inline int64x1_t
4755 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4756 vshl_n_s64 (int64x1_t __a, const int __b)
4757 {
4758 return (int64x1_t)__builtin_neon_vshl_ndi (__a, __b);
4759 }
4760
4761 __extension__ extern __inline uint8x8_t
4762 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4763 vshl_n_u8 (uint8x8_t __a, const int __b)
4764 {
4765 return (uint8x8_t)__builtin_neon_vshl_nv8qi ((int8x8_t) __a, __b);
4766 }
4767
4768 __extension__ extern __inline uint16x4_t
4769 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4770 vshl_n_u16 (uint16x4_t __a, const int __b)
4771 {
4772 return (uint16x4_t)__builtin_neon_vshl_nv4hi ((int16x4_t) __a, __b);
4773 }
4774
4775 __extension__ extern __inline uint32x2_t
4776 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4777 vshl_n_u32 (uint32x2_t __a, const int __b)
4778 {
4779 return (uint32x2_t)__builtin_neon_vshl_nv2si ((int32x2_t) __a, __b);
4780 }
4781
4782 __extension__ extern __inline uint64x1_t
4783 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4784 vshl_n_u64 (uint64x1_t __a, const int __b)
4785 {
4786 return (uint64x1_t)__builtin_neon_vshl_ndi ((int64x1_t) __a, __b);
4787 }
4788
4789 __extension__ extern __inline int8x16_t
4790 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4791 vshlq_n_s8 (int8x16_t __a, const int __b)
4792 {
4793 return (int8x16_t)__builtin_neon_vshl_nv16qi (__a, __b);
4794 }
4795
4796 __extension__ extern __inline int16x8_t
4797 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4798 vshlq_n_s16 (int16x8_t __a, const int __b)
4799 {
4800 return (int16x8_t)__builtin_neon_vshl_nv8hi (__a, __b);
4801 }
4802
4803 __extension__ extern __inline int32x4_t
4804 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4805 vshlq_n_s32 (int32x4_t __a, const int __b)
4806 {
4807 return (int32x4_t)__builtin_neon_vshl_nv4si (__a, __b);
4808 }
4809
4810 __extension__ extern __inline int64x2_t
4811 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4812 vshlq_n_s64 (int64x2_t __a, const int __b)
4813 {
4814 return (int64x2_t)__builtin_neon_vshl_nv2di (__a, __b);
4815 }
4816
4817 __extension__ extern __inline uint8x16_t
4818 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4819 vshlq_n_u8 (uint8x16_t __a, const int __b)
4820 {
4821 return (uint8x16_t)__builtin_neon_vshl_nv16qi ((int8x16_t) __a, __b);
4822 }
4823
4824 __extension__ extern __inline uint16x8_t
4825 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4826 vshlq_n_u16 (uint16x8_t __a, const int __b)
4827 {
4828 return (uint16x8_t)__builtin_neon_vshl_nv8hi ((int16x8_t) __a, __b);
4829 }
4830
4831 __extension__ extern __inline uint32x4_t
4832 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4833 vshlq_n_u32 (uint32x4_t __a, const int __b)
4834 {
4835 return (uint32x4_t)__builtin_neon_vshl_nv4si ((int32x4_t) __a, __b);
4836 }
4837
4838 __extension__ extern __inline uint64x2_t
4839 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4840 vshlq_n_u64 (uint64x2_t __a, const int __b)
4841 {
4842 return (uint64x2_t)__builtin_neon_vshl_nv2di ((int64x2_t) __a, __b);
4843 }
4844
4845 __extension__ extern __inline int8x8_t
4846 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4847 vqshl_n_s8 (int8x8_t __a, const int __b)
4848 {
4849 return (int8x8_t)__builtin_neon_vqshl_s_nv8qi (__a, __b);
4850 }
4851
4852 __extension__ extern __inline int16x4_t
4853 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4854 vqshl_n_s16 (int16x4_t __a, const int __b)
4855 {
4856 return (int16x4_t)__builtin_neon_vqshl_s_nv4hi (__a, __b);
4857 }
4858
4859 __extension__ extern __inline int32x2_t
4860 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4861 vqshl_n_s32 (int32x2_t __a, const int __b)
4862 {
4863 return (int32x2_t)__builtin_neon_vqshl_s_nv2si (__a, __b);
4864 }
4865
4866 __extension__ extern __inline int64x1_t
4867 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4868 vqshl_n_s64 (int64x1_t __a, const int __b)
4869 {
4870 return (int64x1_t)__builtin_neon_vqshl_s_ndi (__a, __b);
4871 }
4872
4873 __extension__ extern __inline uint8x8_t
4874 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4875 vqshl_n_u8 (uint8x8_t __a, const int __b)
4876 {
4877 return (uint8x8_t)__builtin_neon_vqshl_u_nv8qi ((int8x8_t) __a, __b);
4878 }
4879
4880 __extension__ extern __inline uint16x4_t
4881 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4882 vqshl_n_u16 (uint16x4_t __a, const int __b)
4883 {
4884 return (uint16x4_t)__builtin_neon_vqshl_u_nv4hi ((int16x4_t) __a, __b);
4885 }
4886
4887 __extension__ extern __inline uint32x2_t
4888 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4889 vqshl_n_u32 (uint32x2_t __a, const int __b)
4890 {
4891 return (uint32x2_t)__builtin_neon_vqshl_u_nv2si ((int32x2_t) __a, __b);
4892 }
4893
4894 __extension__ extern __inline uint64x1_t
4895 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4896 vqshl_n_u64 (uint64x1_t __a, const int __b)
4897 {
4898 return (uint64x1_t)__builtin_neon_vqshl_u_ndi ((int64x1_t) __a, __b);
4899 }
4900
4901 __extension__ extern __inline int8x16_t
4902 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4903 vqshlq_n_s8 (int8x16_t __a, const int __b)
4904 {
4905 return (int8x16_t)__builtin_neon_vqshl_s_nv16qi (__a, __b);
4906 }
4907
4908 __extension__ extern __inline int16x8_t
4909 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4910 vqshlq_n_s16 (int16x8_t __a, const int __b)
4911 {
4912 return (int16x8_t)__builtin_neon_vqshl_s_nv8hi (__a, __b);
4913 }
4914
4915 __extension__ extern __inline int32x4_t
4916 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4917 vqshlq_n_s32 (int32x4_t __a, const int __b)
4918 {
4919 return (int32x4_t)__builtin_neon_vqshl_s_nv4si (__a, __b);
4920 }
4921
4922 __extension__ extern __inline int64x2_t
4923 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4924 vqshlq_n_s64 (int64x2_t __a, const int __b)
4925 {
4926 return (int64x2_t)__builtin_neon_vqshl_s_nv2di (__a, __b);
4927 }
4928
4929 __extension__ extern __inline uint8x16_t
4930 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4931 vqshlq_n_u8 (uint8x16_t __a, const int __b)
4932 {
4933 return (uint8x16_t)__builtin_neon_vqshl_u_nv16qi ((int8x16_t) __a, __b);
4934 }
4935
4936 __extension__ extern __inline uint16x8_t
4937 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4938 vqshlq_n_u16 (uint16x8_t __a, const int __b)
4939 {
4940 return (uint16x8_t)__builtin_neon_vqshl_u_nv8hi ((int16x8_t) __a, __b);
4941 }
4942
4943 __extension__ extern __inline uint32x4_t
4944 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4945 vqshlq_n_u32 (uint32x4_t __a, const int __b)
4946 {
4947 return (uint32x4_t)__builtin_neon_vqshl_u_nv4si ((int32x4_t) __a, __b);
4948 }
4949
4950 __extension__ extern __inline uint64x2_t
4951 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4952 vqshlq_n_u64 (uint64x2_t __a, const int __b)
4953 {
4954 return (uint64x2_t)__builtin_neon_vqshl_u_nv2di ((int64x2_t) __a, __b);
4955 }
4956
4957 __extension__ extern __inline uint8x8_t
4958 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4959 vqshlu_n_s8 (int8x8_t __a, const int __b)
4960 {
4961 return (uint8x8_t)__builtin_neon_vqshlu_nv8qi (__a, __b);
4962 }
4963
4964 __extension__ extern __inline uint16x4_t
4965 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4966 vqshlu_n_s16 (int16x4_t __a, const int __b)
4967 {
4968 return (uint16x4_t)__builtin_neon_vqshlu_nv4hi (__a, __b);
4969 }
4970
4971 __extension__ extern __inline uint32x2_t
4972 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4973 vqshlu_n_s32 (int32x2_t __a, const int __b)
4974 {
4975 return (uint32x2_t)__builtin_neon_vqshlu_nv2si (__a, __b);
4976 }
4977
4978 __extension__ extern __inline uint64x1_t
4979 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4980 vqshlu_n_s64 (int64x1_t __a, const int __b)
4981 {
4982 return (uint64x1_t)__builtin_neon_vqshlu_ndi (__a, __b);
4983 }
4984
4985 __extension__ extern __inline uint8x16_t
4986 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4987 vqshluq_n_s8 (int8x16_t __a, const int __b)
4988 {
4989 return (uint8x16_t)__builtin_neon_vqshlu_nv16qi (__a, __b);
4990 }
4991
4992 __extension__ extern __inline uint16x8_t
4993 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4994 vqshluq_n_s16 (int16x8_t __a, const int __b)
4995 {
4996 return (uint16x8_t)__builtin_neon_vqshlu_nv8hi (__a, __b);
4997 }
4998
4999 __extension__ extern __inline uint32x4_t
5000 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5001 vqshluq_n_s32 (int32x4_t __a, const int __b)
5002 {
5003 return (uint32x4_t)__builtin_neon_vqshlu_nv4si (__a, __b);
5004 }
5005
5006 __extension__ extern __inline uint64x2_t
5007 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5008 vqshluq_n_s64 (int64x2_t __a, const int __b)
5009 {
5010 return (uint64x2_t)__builtin_neon_vqshlu_nv2di (__a, __b);
5011 }
5012
5013 __extension__ extern __inline int16x8_t
5014 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5015 vshll_n_s8 (int8x8_t __a, const int __b)
5016 {
5017 return (int16x8_t)__builtin_neon_vshlls_nv8qi (__a, __b);
5018 }
5019
5020 __extension__ extern __inline int32x4_t
5021 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5022 vshll_n_s16 (int16x4_t __a, const int __b)
5023 {
5024 return (int32x4_t)__builtin_neon_vshlls_nv4hi (__a, __b);
5025 }
5026
5027 __extension__ extern __inline int64x2_t
5028 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5029 vshll_n_s32 (int32x2_t __a, const int __b)
5030 {
5031 return (int64x2_t)__builtin_neon_vshlls_nv2si (__a, __b);
5032 }
5033
5034 __extension__ extern __inline uint16x8_t
5035 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5036 vshll_n_u8 (uint8x8_t __a, const int __b)
5037 {
5038 return (uint16x8_t)__builtin_neon_vshllu_nv8qi ((int8x8_t) __a, __b);
5039 }
5040
5041 __extension__ extern __inline uint32x4_t
5042 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5043 vshll_n_u16 (uint16x4_t __a, const int __b)
5044 {
5045 return (uint32x4_t)__builtin_neon_vshllu_nv4hi ((int16x4_t) __a, __b);
5046 }
5047
5048 __extension__ extern __inline uint64x2_t
5049 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5050 vshll_n_u32 (uint32x2_t __a, const int __b)
5051 {
5052 return (uint64x2_t)__builtin_neon_vshllu_nv2si ((int32x2_t) __a, __b);
5053 }
5054
5055 __extension__ extern __inline int8x8_t
5056 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5057 vsra_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
5058 {
5059 return (int8x8_t)__builtin_neon_vsras_nv8qi (__a, __b, __c);
5060 }
5061
5062 __extension__ extern __inline int16x4_t
5063 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5064 vsra_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
5065 {
5066 return (int16x4_t)__builtin_neon_vsras_nv4hi (__a, __b, __c);
5067 }
5068
5069 __extension__ extern __inline int32x2_t
5070 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5071 vsra_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
5072 {
5073 return (int32x2_t)__builtin_neon_vsras_nv2si (__a, __b, __c);
5074 }
5075
5076 __extension__ extern __inline int64x1_t
5077 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5078 vsra_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
5079 {
5080 return (int64x1_t)__builtin_neon_vsras_ndi (__a, __b, __c);
5081 }
5082
5083 __extension__ extern __inline uint8x8_t
5084 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5085 vsra_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
5086 {
5087 return (uint8x8_t)__builtin_neon_vsrau_nv8qi ((int8x8_t) __a, (int8x8_t) __b, __c);
5088 }
5089
5090 __extension__ extern __inline uint16x4_t
5091 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5092 vsra_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
5093 {
5094 return (uint16x4_t)__builtin_neon_vsrau_nv4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
5095 }
5096
5097 __extension__ extern __inline uint32x2_t
5098 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5099 vsra_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
5100 {
5101 return (uint32x2_t)__builtin_neon_vsrau_nv2si ((int32x2_t) __a, (int32x2_t) __b, __c);
5102 }
5103
5104 __extension__ extern __inline uint64x1_t
5105 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5106 vsra_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
5107 {
5108 return (uint64x1_t)__builtin_neon_vsrau_ndi ((int64x1_t) __a, (int64x1_t) __b, __c);
5109 }
5110
5111 __extension__ extern __inline int8x16_t
5112 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5113 vsraq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
5114 {
5115 return (int8x16_t)__builtin_neon_vsras_nv16qi (__a, __b, __c);
5116 }
5117
5118 __extension__ extern __inline int16x8_t
5119 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5120 vsraq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
5121 {
5122 return (int16x8_t)__builtin_neon_vsras_nv8hi (__a, __b, __c);
5123 }
5124
5125 __extension__ extern __inline int32x4_t
5126 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5127 vsraq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
5128 {
5129 return (int32x4_t)__builtin_neon_vsras_nv4si (__a, __b, __c);
5130 }
5131
5132 __extension__ extern __inline int64x2_t
5133 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5134 vsraq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
5135 {
5136 return (int64x2_t)__builtin_neon_vsras_nv2di (__a, __b, __c);
5137 }
5138
5139 __extension__ extern __inline uint8x16_t
5140 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5141 vsraq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
5142 {
5143 return (uint8x16_t)__builtin_neon_vsrau_nv16qi ((int8x16_t) __a, (int8x16_t) __b, __c);
5144 }
5145
5146 __extension__ extern __inline uint16x8_t
5147 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5148 vsraq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
5149 {
5150 return (uint16x8_t)__builtin_neon_vsrau_nv8hi ((int16x8_t) __a, (int16x8_t) __b, __c);
5151 }
5152
5153 __extension__ extern __inline uint32x4_t
5154 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5155 vsraq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
5156 {
5157 return (uint32x4_t)__builtin_neon_vsrau_nv4si ((int32x4_t) __a, (int32x4_t) __b, __c);
5158 }
5159
5160 __extension__ extern __inline uint64x2_t
5161 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5162 vsraq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
5163 {
5164 return (uint64x2_t)__builtin_neon_vsrau_nv2di ((int64x2_t) __a, (int64x2_t) __b, __c);
5165 }
5166
5167 __extension__ extern __inline int8x8_t
5168 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5169 vrsra_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
5170 {
5171 return (int8x8_t)__builtin_neon_vrsras_nv8qi (__a, __b, __c);
5172 }
5173
5174 __extension__ extern __inline int16x4_t
5175 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5176 vrsra_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
5177 {
5178 return (int16x4_t)__builtin_neon_vrsras_nv4hi (__a, __b, __c);
5179 }
5180
5181 __extension__ extern __inline int32x2_t
5182 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5183 vrsra_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
5184 {
5185 return (int32x2_t)__builtin_neon_vrsras_nv2si (__a, __b, __c);
5186 }
5187
5188 __extension__ extern __inline int64x1_t
5189 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5190 vrsra_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
5191 {
5192 return (int64x1_t)__builtin_neon_vrsras_ndi (__a, __b, __c);
5193 }
5194
5195 __extension__ extern __inline uint8x8_t
5196 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5197 vrsra_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
5198 {
5199 return (uint8x8_t)__builtin_neon_vrsrau_nv8qi ((int8x8_t) __a, (int8x8_t) __b, __c);
5200 }
5201
5202 __extension__ extern __inline uint16x4_t
5203 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5204 vrsra_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
5205 {
5206 return (uint16x4_t)__builtin_neon_vrsrau_nv4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
5207 }
5208
5209 __extension__ extern __inline uint32x2_t
5210 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5211 vrsra_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
5212 {
5213 return (uint32x2_t)__builtin_neon_vrsrau_nv2si ((int32x2_t) __a, (int32x2_t) __b, __c);
5214 }
5215
5216 __extension__ extern __inline uint64x1_t
5217 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5218 vrsra_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
5219 {
5220 return (uint64x1_t)__builtin_neon_vrsrau_ndi ((int64x1_t) __a, (int64x1_t) __b, __c);
5221 }
5222
5223 __extension__ extern __inline int8x16_t
5224 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5225 vrsraq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
5226 {
5227 return (int8x16_t)__builtin_neon_vrsras_nv16qi (__a, __b, __c);
5228 }
5229
5230 __extension__ extern __inline int16x8_t
5231 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5232 vrsraq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
5233 {
5234 return (int16x8_t)__builtin_neon_vrsras_nv8hi (__a, __b, __c);
5235 }
5236
5237 __extension__ extern __inline int32x4_t
5238 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5239 vrsraq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
5240 {
5241 return (int32x4_t)__builtin_neon_vrsras_nv4si (__a, __b, __c);
5242 }
5243
5244 __extension__ extern __inline int64x2_t
5245 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5246 vrsraq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
5247 {
5248 return (int64x2_t)__builtin_neon_vrsras_nv2di (__a, __b, __c);
5249 }
5250
5251 __extension__ extern __inline uint8x16_t
5252 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5253 vrsraq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
5254 {
5255 return (uint8x16_t)__builtin_neon_vrsrau_nv16qi ((int8x16_t) __a, (int8x16_t) __b, __c);
5256 }
5257
5258 __extension__ extern __inline uint16x8_t
5259 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5260 vrsraq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
5261 {
5262 return (uint16x8_t)__builtin_neon_vrsrau_nv8hi ((int16x8_t) __a, (int16x8_t) __b, __c);
5263 }
5264
5265 __extension__ extern __inline uint32x4_t
5266 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5267 vrsraq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
5268 {
5269 return (uint32x4_t)__builtin_neon_vrsrau_nv4si ((int32x4_t) __a, (int32x4_t) __b, __c);
5270 }
5271
5272 __extension__ extern __inline uint64x2_t
5273 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5274 vrsraq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
5275 {
5276 return (uint64x2_t)__builtin_neon_vrsrau_nv2di ((int64x2_t) __a, (int64x2_t) __b, __c);
5277 }
5278
5279 #pragma GCC push_options
5280 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
5281 __extension__ extern __inline poly64x1_t
5282 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5283 vsri_n_p64 (poly64x1_t __a, poly64x1_t __b, const int __c)
5284 {
5285 return (poly64x1_t)__builtin_neon_vsri_ndi (__a, __b, __c);
5286 }
5287
5288 #pragma GCC pop_options
5289 __extension__ extern __inline int8x8_t
5290 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5291 vsri_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
5292 {
5293 return (int8x8_t)__builtin_neon_vsri_nv8qi (__a, __b, __c);
5294 }
5295
5296 __extension__ extern __inline int16x4_t
5297 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5298 vsri_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
5299 {
5300 return (int16x4_t)__builtin_neon_vsri_nv4hi (__a, __b, __c);
5301 }
5302
5303 __extension__ extern __inline int32x2_t
5304 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5305 vsri_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
5306 {
5307 return (int32x2_t)__builtin_neon_vsri_nv2si (__a, __b, __c);
5308 }
5309
5310 __extension__ extern __inline int64x1_t
5311 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5312 vsri_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
5313 {
5314 return (int64x1_t)__builtin_neon_vsri_ndi (__a, __b, __c);
5315 }
5316
5317 __extension__ extern __inline uint8x8_t
5318 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5319 vsri_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
5320 {
5321 return (uint8x8_t)__builtin_neon_vsri_nv8qi ((int8x8_t) __a, (int8x8_t) __b, __c);
5322 }
5323
5324 __extension__ extern __inline uint16x4_t
5325 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5326 vsri_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
5327 {
5328 return (uint16x4_t)__builtin_neon_vsri_nv4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
5329 }
5330
5331 __extension__ extern __inline uint32x2_t
5332 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5333 vsri_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
5334 {
5335 return (uint32x2_t)__builtin_neon_vsri_nv2si ((int32x2_t) __a, (int32x2_t) __b, __c);
5336 }
5337
5338 __extension__ extern __inline uint64x1_t
5339 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5340 vsri_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
5341 {
5342 return (uint64x1_t)__builtin_neon_vsri_ndi ((int64x1_t) __a, (int64x1_t) __b, __c);
5343 }
5344
5345 __extension__ extern __inline poly8x8_t
5346 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5347 vsri_n_p8 (poly8x8_t __a, poly8x8_t __b, const int __c)
5348 {
5349 return (poly8x8_t)__builtin_neon_vsri_nv8qi ((int8x8_t) __a, (int8x8_t) __b, __c);
5350 }
5351
5352 __extension__ extern __inline poly16x4_t
5353 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5354 vsri_n_p16 (poly16x4_t __a, poly16x4_t __b, const int __c)
5355 {
5356 return (poly16x4_t)__builtin_neon_vsri_nv4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
5357 }
5358
5359 #pragma GCC push_options
5360 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
5361 __extension__ extern __inline poly64x2_t
5362 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5363 vsriq_n_p64 (poly64x2_t __a, poly64x2_t __b, const int __c)
5364 {
5365 return (poly64x2_t)__builtin_neon_vsri_nv2di ((int64x2_t) __a, (int64x2_t) __b, __c);
5366 }
5367
5368 #pragma GCC pop_options
5369 __extension__ extern __inline int8x16_t
5370 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5371 vsriq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
5372 {
5373 return (int8x16_t)__builtin_neon_vsri_nv16qi (__a, __b, __c);
5374 }
5375
5376 __extension__ extern __inline int16x8_t
5377 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5378 vsriq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
5379 {
5380 return (int16x8_t)__builtin_neon_vsri_nv8hi (__a, __b, __c);
5381 }
5382
5383 __extension__ extern __inline int32x4_t
5384 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5385 vsriq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
5386 {
5387 return (int32x4_t)__builtin_neon_vsri_nv4si (__a, __b, __c);
5388 }
5389
5390 __extension__ extern __inline int64x2_t
5391 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5392 vsriq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
5393 {
5394 return (int64x2_t)__builtin_neon_vsri_nv2di (__a, __b, __c);
5395 }
5396
5397 __extension__ extern __inline uint8x16_t
5398 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5399 vsriq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
5400 {
5401 return (uint8x16_t)__builtin_neon_vsri_nv16qi ((int8x16_t) __a, (int8x16_t) __b, __c);
5402 }
5403
5404 __extension__ extern __inline uint16x8_t
5405 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5406 vsriq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
5407 {
5408 return (uint16x8_t)__builtin_neon_vsri_nv8hi ((int16x8_t) __a, (int16x8_t) __b, __c);
5409 }
5410
5411 __extension__ extern __inline uint32x4_t
5412 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5413 vsriq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
5414 {
5415 return (uint32x4_t)__builtin_neon_vsri_nv4si ((int32x4_t) __a, (int32x4_t) __b, __c);
5416 }
5417
5418 __extension__ extern __inline uint64x2_t
5419 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5420 vsriq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
5421 {
5422 return (uint64x2_t)__builtin_neon_vsri_nv2di ((int64x2_t) __a, (int64x2_t) __b, __c);
5423 }
5424
5425 __extension__ extern __inline poly8x16_t
5426 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5427 vsriq_n_p8 (poly8x16_t __a, poly8x16_t __b, const int __c)
5428 {
5429 return (poly8x16_t)__builtin_neon_vsri_nv16qi ((int8x16_t) __a, (int8x16_t) __b, __c);
5430 }
5431
5432 __extension__ extern __inline poly16x8_t
5433 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5434 vsriq_n_p16 (poly16x8_t __a, poly16x8_t __b, const int __c)
5435 {
5436 return (poly16x8_t)__builtin_neon_vsri_nv8hi ((int16x8_t) __a, (int16x8_t) __b, __c);
5437 }
5438
5439 #pragma GCC push_options
5440 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
5441 __extension__ extern __inline poly64x1_t
5442 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5443 vsli_n_p64 (poly64x1_t __a, poly64x1_t __b, const int __c)
5444 {
5445 return (poly64x1_t)__builtin_neon_vsli_ndi (__a, __b, __c);
5446 }
5447
5448 #pragma GCC pop_options
5449 __extension__ extern __inline int8x8_t
5450 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5451 vsli_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
5452 {
5453 return (int8x8_t)__builtin_neon_vsli_nv8qi (__a, __b, __c);
5454 }
5455
5456 __extension__ extern __inline int16x4_t
5457 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5458 vsli_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
5459 {
5460 return (int16x4_t)__builtin_neon_vsli_nv4hi (__a, __b, __c);
5461 }
5462
5463 __extension__ extern __inline int32x2_t
5464 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5465 vsli_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
5466 {
5467 return (int32x2_t)__builtin_neon_vsli_nv2si (__a, __b, __c);
5468 }
5469
5470 __extension__ extern __inline int64x1_t
5471 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5472 vsli_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
5473 {
5474 return (int64x1_t)__builtin_neon_vsli_ndi (__a, __b, __c);
5475 }
5476
5477 __extension__ extern __inline uint8x8_t
5478 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5479 vsli_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
5480 {
5481 return (uint8x8_t)__builtin_neon_vsli_nv8qi ((int8x8_t) __a, (int8x8_t) __b, __c);
5482 }
5483
5484 __extension__ extern __inline uint16x4_t
5485 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5486 vsli_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
5487 {
5488 return (uint16x4_t)__builtin_neon_vsli_nv4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
5489 }
5490
5491 __extension__ extern __inline uint32x2_t
5492 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5493 vsli_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
5494 {
5495 return (uint32x2_t)__builtin_neon_vsli_nv2si ((int32x2_t) __a, (int32x2_t) __b, __c);
5496 }
5497
5498 __extension__ extern __inline uint64x1_t
5499 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5500 vsli_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
5501 {
5502 return (uint64x1_t)__builtin_neon_vsli_ndi ((int64x1_t) __a, (int64x1_t) __b, __c);
5503 }
5504
5505 __extension__ extern __inline poly8x8_t
5506 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5507 vsli_n_p8 (poly8x8_t __a, poly8x8_t __b, const int __c)
5508 {
5509 return (poly8x8_t)__builtin_neon_vsli_nv8qi ((int8x8_t) __a, (int8x8_t) __b, __c);
5510 }
5511
5512 __extension__ extern __inline poly16x4_t
5513 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5514 vsli_n_p16 (poly16x4_t __a, poly16x4_t __b, const int __c)
5515 {
5516 return (poly16x4_t)__builtin_neon_vsli_nv4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
5517 }
5518
5519 #pragma GCC push_options
5520 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
5521 __extension__ extern __inline poly64x2_t
5522 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5523 vsliq_n_p64 (poly64x2_t __a, poly64x2_t __b, const int __c)
5524 {
5525 return (poly64x2_t)__builtin_neon_vsli_nv2di ((int64x2_t) __a, (int64x2_t) __b, __c);
5526 }
5527
5528 #pragma GCC pop_options
5529 __extension__ extern __inline int8x16_t
5530 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5531 vsliq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
5532 {
5533 return (int8x16_t)__builtin_neon_vsli_nv16qi (__a, __b, __c);
5534 }
5535
5536 __extension__ extern __inline int16x8_t
5537 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5538 vsliq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
5539 {
5540 return (int16x8_t)__builtin_neon_vsli_nv8hi (__a, __b, __c);
5541 }
5542
5543 __extension__ extern __inline int32x4_t
5544 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5545 vsliq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
5546 {
5547 return (int32x4_t)__builtin_neon_vsli_nv4si (__a, __b, __c);
5548 }
5549
5550 __extension__ extern __inline int64x2_t
5551 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5552 vsliq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
5553 {
5554 return (int64x2_t)__builtin_neon_vsli_nv2di (__a, __b, __c);
5555 }
5556
5557 __extension__ extern __inline uint8x16_t
5558 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5559 vsliq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
5560 {
5561 return (uint8x16_t)__builtin_neon_vsli_nv16qi ((int8x16_t) __a, (int8x16_t) __b, __c);
5562 }
5563
5564 __extension__ extern __inline uint16x8_t
5565 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5566 vsliq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
5567 {
5568 return (uint16x8_t)__builtin_neon_vsli_nv8hi ((int16x8_t) __a, (int16x8_t) __b, __c);
5569 }
5570
5571 __extension__ extern __inline uint32x4_t
5572 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5573 vsliq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
5574 {
5575 return (uint32x4_t)__builtin_neon_vsli_nv4si ((int32x4_t) __a, (int32x4_t) __b, __c);
5576 }
5577
5578 __extension__ extern __inline uint64x2_t
5579 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5580 vsliq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
5581 {
5582 return (uint64x2_t)__builtin_neon_vsli_nv2di ((int64x2_t) __a, (int64x2_t) __b, __c);
5583 }
5584
5585 __extension__ extern __inline poly8x16_t
5586 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5587 vsliq_n_p8 (poly8x16_t __a, poly8x16_t __b, const int __c)
5588 {
5589 return (poly8x16_t)__builtin_neon_vsli_nv16qi ((int8x16_t) __a, (int8x16_t) __b, __c);
5590 }
5591
5592 __extension__ extern __inline poly16x8_t
5593 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5594 vsliq_n_p16 (poly16x8_t __a, poly16x8_t __b, const int __c)
5595 {
5596 return (poly16x8_t)__builtin_neon_vsli_nv8hi ((int16x8_t) __a, (int16x8_t) __b, __c);
5597 }
5598
5599 __extension__ extern __inline int8x8_t
5600 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5601 vabs_s8 (int8x8_t __a)
5602 {
5603 return (int8x8_t)__builtin_neon_vabsv8qi (__a);
5604 }
5605
5606 __extension__ extern __inline int16x4_t
5607 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5608 vabs_s16 (int16x4_t __a)
5609 {
5610 return (int16x4_t)__builtin_neon_vabsv4hi (__a);
5611 }
5612
5613 __extension__ extern __inline int32x2_t
5614 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5615 vabs_s32 (int32x2_t __a)
5616 {
5617 return (int32x2_t)__builtin_neon_vabsv2si (__a);
5618 }
5619
5620 __extension__ extern __inline float32x2_t
5621 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5622 vabs_f32 (float32x2_t __a)
5623 {
5624 return (float32x2_t)__builtin_neon_vabsv2sf (__a);
5625 }
5626
5627 __extension__ extern __inline int8x16_t
5628 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5629 vabsq_s8 (int8x16_t __a)
5630 {
5631 return (int8x16_t)__builtin_neon_vabsv16qi (__a);
5632 }
5633
5634 __extension__ extern __inline int16x8_t
5635 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5636 vabsq_s16 (int16x8_t __a)
5637 {
5638 return (int16x8_t)__builtin_neon_vabsv8hi (__a);
5639 }
5640
5641 __extension__ extern __inline int32x4_t
5642 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5643 vabsq_s32 (int32x4_t __a)
5644 {
5645 return (int32x4_t)__builtin_neon_vabsv4si (__a);
5646 }
5647
5648 __extension__ extern __inline float32x4_t
5649 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5650 vabsq_f32 (float32x4_t __a)
5651 {
5652 return (float32x4_t)__builtin_neon_vabsv4sf (__a);
5653 }
5654
5655 __extension__ extern __inline int8x8_t
5656 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5657 vqabs_s8 (int8x8_t __a)
5658 {
5659 return (int8x8_t)__builtin_neon_vqabsv8qi (__a);
5660 }
5661
5662 __extension__ extern __inline int16x4_t
5663 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5664 vqabs_s16 (int16x4_t __a)
5665 {
5666 return (int16x4_t)__builtin_neon_vqabsv4hi (__a);
5667 }
5668
5669 __extension__ extern __inline int32x2_t
5670 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5671 vqabs_s32 (int32x2_t __a)
5672 {
5673 return (int32x2_t)__builtin_neon_vqabsv2si (__a);
5674 }
5675
5676 __extension__ extern __inline int8x16_t
5677 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5678 vqabsq_s8 (int8x16_t __a)
5679 {
5680 return (int8x16_t)__builtin_neon_vqabsv16qi (__a);
5681 }
5682
5683 __extension__ extern __inline int16x8_t
5684 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5685 vqabsq_s16 (int16x8_t __a)
5686 {
5687 return (int16x8_t)__builtin_neon_vqabsv8hi (__a);
5688 }
5689
5690 __extension__ extern __inline int32x4_t
5691 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5692 vqabsq_s32 (int32x4_t __a)
5693 {
5694 return (int32x4_t)__builtin_neon_vqabsv4si (__a);
5695 }
5696
5697 __extension__ extern __inline int8x8_t
5698 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5699 vneg_s8 (int8x8_t __a)
5700 {
5701 return (int8x8_t)__builtin_neon_vnegv8qi (__a);
5702 }
5703
5704 __extension__ extern __inline int16x4_t
5705 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5706 vneg_s16 (int16x4_t __a)
5707 {
5708 return (int16x4_t)__builtin_neon_vnegv4hi (__a);
5709 }
5710
5711 __extension__ extern __inline int32x2_t
5712 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5713 vneg_s32 (int32x2_t __a)
5714 {
5715 return (int32x2_t)__builtin_neon_vnegv2si (__a);
5716 }
5717
5718 __extension__ extern __inline float32x2_t
5719 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5720 vneg_f32 (float32x2_t __a)
5721 {
5722 return (float32x2_t)__builtin_neon_vnegv2sf (__a);
5723 }
5724
5725 __extension__ extern __inline int8x16_t
5726 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5727 vnegq_s8 (int8x16_t __a)
5728 {
5729 return (int8x16_t)__builtin_neon_vnegv16qi (__a);
5730 }
5731
5732 __extension__ extern __inline int16x8_t
5733 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5734 vnegq_s16 (int16x8_t __a)
5735 {
5736 return (int16x8_t)__builtin_neon_vnegv8hi (__a);
5737 }
5738
5739 __extension__ extern __inline int32x4_t
5740 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5741 vnegq_s32 (int32x4_t __a)
5742 {
5743 return (int32x4_t)__builtin_neon_vnegv4si (__a);
5744 }
5745
5746 __extension__ extern __inline float32x4_t
5747 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5748 vnegq_f32 (float32x4_t __a)
5749 {
5750 return (float32x4_t)__builtin_neon_vnegv4sf (__a);
5751 }
5752
5753 __extension__ extern __inline int8x8_t
5754 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5755 vqneg_s8 (int8x8_t __a)
5756 {
5757 return (int8x8_t)__builtin_neon_vqnegv8qi (__a);
5758 }
5759
5760 __extension__ extern __inline int16x4_t
5761 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5762 vqneg_s16 (int16x4_t __a)
5763 {
5764 return (int16x4_t)__builtin_neon_vqnegv4hi (__a);
5765 }
5766
5767 __extension__ extern __inline int32x2_t
5768 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5769 vqneg_s32 (int32x2_t __a)
5770 {
5771 return (int32x2_t)__builtin_neon_vqnegv2si (__a);
5772 }
5773
5774 __extension__ extern __inline int8x16_t
5775 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5776 vqnegq_s8 (int8x16_t __a)
5777 {
5778 return (int8x16_t)__builtin_neon_vqnegv16qi (__a);
5779 }
5780
5781 __extension__ extern __inline int16x8_t
5782 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5783 vqnegq_s16 (int16x8_t __a)
5784 {
5785 return (int16x8_t)__builtin_neon_vqnegv8hi (__a);
5786 }
5787
5788 __extension__ extern __inline int32x4_t
5789 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5790 vqnegq_s32 (int32x4_t __a)
5791 {
5792 return (int32x4_t)__builtin_neon_vqnegv4si (__a);
5793 }
5794
5795 __extension__ extern __inline int8x8_t
5796 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5797 vmvn_s8 (int8x8_t __a)
5798 {
5799 return (int8x8_t)__builtin_neon_vmvnv8qi (__a);
5800 }
5801
5802 __extension__ extern __inline int16x4_t
5803 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5804 vmvn_s16 (int16x4_t __a)
5805 {
5806 return (int16x4_t)__builtin_neon_vmvnv4hi (__a);
5807 }
5808
5809 __extension__ extern __inline int32x2_t
5810 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5811 vmvn_s32 (int32x2_t __a)
5812 {
5813 return (int32x2_t)__builtin_neon_vmvnv2si (__a);
5814 }
5815
5816 __extension__ extern __inline uint8x8_t
5817 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5818 vmvn_u8 (uint8x8_t __a)
5819 {
5820 return (uint8x8_t)__builtin_neon_vmvnv8qi ((int8x8_t) __a);
5821 }
5822
5823 __extension__ extern __inline uint16x4_t
5824 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5825 vmvn_u16 (uint16x4_t __a)
5826 {
5827 return (uint16x4_t)__builtin_neon_vmvnv4hi ((int16x4_t) __a);
5828 }
5829
5830 __extension__ extern __inline uint32x2_t
5831 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5832 vmvn_u32 (uint32x2_t __a)
5833 {
5834 return (uint32x2_t)__builtin_neon_vmvnv2si ((int32x2_t) __a);
5835 }
5836
5837 __extension__ extern __inline poly8x8_t
5838 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5839 vmvn_p8 (poly8x8_t __a)
5840 {
5841 return (poly8x8_t)__builtin_neon_vmvnv8qi ((int8x8_t) __a);
5842 }
5843
5844 __extension__ extern __inline int8x16_t
5845 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5846 vmvnq_s8 (int8x16_t __a)
5847 {
5848 return (int8x16_t)__builtin_neon_vmvnv16qi (__a);
5849 }
5850
5851 __extension__ extern __inline int16x8_t
5852 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5853 vmvnq_s16 (int16x8_t __a)
5854 {
5855 return (int16x8_t)__builtin_neon_vmvnv8hi (__a);
5856 }
5857
5858 __extension__ extern __inline int32x4_t
5859 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5860 vmvnq_s32 (int32x4_t __a)
5861 {
5862 return (int32x4_t)__builtin_neon_vmvnv4si (__a);
5863 }
5864
5865 __extension__ extern __inline uint8x16_t
5866 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5867 vmvnq_u8 (uint8x16_t __a)
5868 {
5869 return (uint8x16_t)__builtin_neon_vmvnv16qi ((int8x16_t) __a);
5870 }
5871
5872 __extension__ extern __inline uint16x8_t
5873 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5874 vmvnq_u16 (uint16x8_t __a)
5875 {
5876 return (uint16x8_t)__builtin_neon_vmvnv8hi ((int16x8_t) __a);
5877 }
5878
5879 __extension__ extern __inline uint32x4_t
5880 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5881 vmvnq_u32 (uint32x4_t __a)
5882 {
5883 return (uint32x4_t)__builtin_neon_vmvnv4si ((int32x4_t) __a);
5884 }
5885
5886 __extension__ extern __inline poly8x16_t
5887 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5888 vmvnq_p8 (poly8x16_t __a)
5889 {
5890 return (poly8x16_t)__builtin_neon_vmvnv16qi ((int8x16_t) __a);
5891 }
5892
5893 __extension__ extern __inline int8x8_t
5894 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5895 vcls_s8 (int8x8_t __a)
5896 {
5897 return (int8x8_t)__builtin_neon_vclsv8qi (__a);
5898 }
5899
5900 __extension__ extern __inline int16x4_t
5901 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5902 vcls_s16 (int16x4_t __a)
5903 {
5904 return (int16x4_t)__builtin_neon_vclsv4hi (__a);
5905 }
5906
5907 __extension__ extern __inline int32x2_t
5908 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5909 vcls_s32 (int32x2_t __a)
5910 {
5911 return (int32x2_t)__builtin_neon_vclsv2si (__a);
5912 }
5913
5914 __extension__ extern __inline int8x16_t
5915 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5916 vclsq_s8 (int8x16_t __a)
5917 {
5918 return (int8x16_t)__builtin_neon_vclsv16qi (__a);
5919 }
5920
5921 __extension__ extern __inline int16x8_t
5922 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5923 vclsq_s16 (int16x8_t __a)
5924 {
5925 return (int16x8_t)__builtin_neon_vclsv8hi (__a);
5926 }
5927
5928 __extension__ extern __inline int32x4_t
5929 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5930 vclsq_s32 (int32x4_t __a)
5931 {
5932 return (int32x4_t)__builtin_neon_vclsv4si (__a);
5933 }
5934
5935 __extension__ extern __inline int8x8_t
5936 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5937 vclz_s8 (int8x8_t __a)
5938 {
5939 return (int8x8_t)__builtin_neon_vclzv8qi (__a);
5940 }
5941
5942 __extension__ extern __inline int16x4_t
5943 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5944 vclz_s16 (int16x4_t __a)
5945 {
5946 return (int16x4_t)__builtin_neon_vclzv4hi (__a);
5947 }
5948
5949 __extension__ extern __inline int32x2_t
5950 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5951 vclz_s32 (int32x2_t __a)
5952 {
5953 return (int32x2_t)__builtin_neon_vclzv2si (__a);
5954 }
5955
5956 __extension__ extern __inline uint8x8_t
5957 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5958 vclz_u8 (uint8x8_t __a)
5959 {
5960 return (uint8x8_t)__builtin_neon_vclzv8qi ((int8x8_t) __a);
5961 }
5962
5963 __extension__ extern __inline uint16x4_t
5964 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5965 vclz_u16 (uint16x4_t __a)
5966 {
5967 return (uint16x4_t)__builtin_neon_vclzv4hi ((int16x4_t) __a);
5968 }
5969
5970 __extension__ extern __inline uint32x2_t
5971 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5972 vclz_u32 (uint32x2_t __a)
5973 {
5974 return (uint32x2_t)__builtin_neon_vclzv2si ((int32x2_t) __a);
5975 }
5976
5977 __extension__ extern __inline int8x16_t
5978 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5979 vclzq_s8 (int8x16_t __a)
5980 {
5981 return (int8x16_t)__builtin_neon_vclzv16qi (__a);
5982 }
5983
5984 __extension__ extern __inline int16x8_t
5985 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5986 vclzq_s16 (int16x8_t __a)
5987 {
5988 return (int16x8_t)__builtin_neon_vclzv8hi (__a);
5989 }
5990
5991 __extension__ extern __inline int32x4_t
5992 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5993 vclzq_s32 (int32x4_t __a)
5994 {
5995 return (int32x4_t)__builtin_neon_vclzv4si (__a);
5996 }
5997
5998 __extension__ extern __inline uint8x16_t
5999 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6000 vclzq_u8 (uint8x16_t __a)
6001 {
6002 return (uint8x16_t)__builtin_neon_vclzv16qi ((int8x16_t) __a);
6003 }
6004
6005 __extension__ extern __inline uint16x8_t
6006 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6007 vclzq_u16 (uint16x8_t __a)
6008 {
6009 return (uint16x8_t)__builtin_neon_vclzv8hi ((int16x8_t) __a);
6010 }
6011
6012 __extension__ extern __inline uint32x4_t
6013 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6014 vclzq_u32 (uint32x4_t __a)
6015 {
6016 return (uint32x4_t)__builtin_neon_vclzv4si ((int32x4_t) __a);
6017 }
6018
6019 __extension__ extern __inline int8x8_t
6020 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6021 vcnt_s8 (int8x8_t __a)
6022 {
6023 return (int8x8_t)__builtin_neon_vcntv8qi (__a);
6024 }
6025
6026 __extension__ extern __inline uint8x8_t
6027 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6028 vcnt_u8 (uint8x8_t __a)
6029 {
6030 return (uint8x8_t)__builtin_neon_vcntv8qi ((int8x8_t) __a);
6031 }
6032
6033 __extension__ extern __inline poly8x8_t
6034 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6035 vcnt_p8 (poly8x8_t __a)
6036 {
6037 return (poly8x8_t)__builtin_neon_vcntv8qi ((int8x8_t) __a);
6038 }
6039
6040 __extension__ extern __inline int8x16_t
6041 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6042 vcntq_s8 (int8x16_t __a)
6043 {
6044 return (int8x16_t)__builtin_neon_vcntv16qi (__a);
6045 }
6046
6047 __extension__ extern __inline uint8x16_t
6048 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6049 vcntq_u8 (uint8x16_t __a)
6050 {
6051 return (uint8x16_t)__builtin_neon_vcntv16qi ((int8x16_t) __a);
6052 }
6053
6054 __extension__ extern __inline poly8x16_t
6055 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6056 vcntq_p8 (poly8x16_t __a)
6057 {
6058 return (poly8x16_t)__builtin_neon_vcntv16qi ((int8x16_t) __a);
6059 }
6060
6061 __extension__ extern __inline float32x2_t
6062 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6063 vrecpe_f32 (float32x2_t __a)
6064 {
6065 return (float32x2_t)__builtin_neon_vrecpev2sf (__a);
6066 }
6067
6068 __extension__ extern __inline uint32x2_t
6069 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6070 vrecpe_u32 (uint32x2_t __a)
6071 {
6072 return (uint32x2_t)__builtin_neon_vrecpev2si ((int32x2_t) __a);
6073 }
6074
6075 __extension__ extern __inline float32x4_t
6076 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6077 vrecpeq_f32 (float32x4_t __a)
6078 {
6079 return (float32x4_t)__builtin_neon_vrecpev4sf (__a);
6080 }
6081
6082 __extension__ extern __inline uint32x4_t
6083 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6084 vrecpeq_u32 (uint32x4_t __a)
6085 {
6086 return (uint32x4_t)__builtin_neon_vrecpev4si ((int32x4_t) __a);
6087 }
6088
6089 __extension__ extern __inline float32x2_t
6090 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6091 vrsqrte_f32 (float32x2_t __a)
6092 {
6093 return (float32x2_t)__builtin_neon_vrsqrtev2sf (__a);
6094 }
6095
6096 __extension__ extern __inline uint32x2_t
6097 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6098 vrsqrte_u32 (uint32x2_t __a)
6099 {
6100 return (uint32x2_t)__builtin_neon_vrsqrtev2si ((int32x2_t) __a);
6101 }
6102
6103 __extension__ extern __inline float32x4_t
6104 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6105 vrsqrteq_f32 (float32x4_t __a)
6106 {
6107 return (float32x4_t)__builtin_neon_vrsqrtev4sf (__a);
6108 }
6109
6110 __extension__ extern __inline uint32x4_t
6111 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6112 vrsqrteq_u32 (uint32x4_t __a)
6113 {
6114 return (uint32x4_t)__builtin_neon_vrsqrtev4si ((int32x4_t) __a);
6115 }
6116
6117 __extension__ extern __inline int8_t
6118 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6119 vget_lane_s8 (int8x8_t __a, const int __b)
6120 {
6121 return (int8_t)__builtin_neon_vget_lanev8qi (__a, __b);
6122 }
6123
6124 __extension__ extern __inline int16_t
6125 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6126 vget_lane_s16 (int16x4_t __a, const int __b)
6127 {
6128 return (int16_t)__builtin_neon_vget_lanev4hi (__a, __b);
6129 }
6130
6131 __extension__ extern __inline int32_t
6132 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6133 vget_lane_s32 (int32x2_t __a, const int __b)
6134 {
6135 return (int32_t)__builtin_neon_vget_lanev2si (__a, __b);
6136 }
6137
6138 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
6139 /* Functions cannot accept or return __FP16 types. Even if the function
6140 were marked always-inline so there were no call sites, the declaration
6141 would nonetheless raise an error. Hence, we must use a macro instead. */
6142
6143 /* For big-endian, GCC's vector indices are reversed within each 64
6144 bits compared to the architectural lane indices used by Neon
6145 intrinsics. */
6146 #ifdef __ARM_BIG_ENDIAN
6147 #define __ARM_NUM_LANES(__v) (sizeof (__v) / sizeof (__v[0]))
6148 #define __arm_lane(__vec, __idx) (__idx ^ (__ARM_NUM_LANES(__vec) - 1))
6149 #define __arm_laneq(__vec, __idx) (__idx ^ (__ARM_NUM_LANES(__vec)/2 - 1))
6150 #else
6151 #define __arm_lane(__vec, __idx) __idx
6152 #define __arm_laneq(__vec, __idx) __idx
6153 #endif
6154
6155 #define vget_lane_f16(__v, __idx) \
6156 __extension__ \
6157 ({ \
6158 float16x4_t __vec = (__v); \
6159 __builtin_arm_lane_check (4, __idx); \
6160 float16_t __res = __vec[__arm_lane(__vec, __idx)]; \
6161 __res; \
6162 })
6163 #endif
6164
6165 __extension__ extern __inline float32_t
6166 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6167 vget_lane_f32 (float32x2_t __a, const int __b)
6168 {
6169 return (float32_t)__builtin_neon_vget_lanev2sf (__a, __b);
6170 }
6171
6172 __extension__ extern __inline uint8_t
6173 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6174 vget_lane_u8 (uint8x8_t __a, const int __b)
6175 {
6176 return (uint8_t)__builtin_neon_vget_laneuv8qi ((int8x8_t) __a, __b);
6177 }
6178
6179 __extension__ extern __inline uint16_t
6180 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6181 vget_lane_u16 (uint16x4_t __a, const int __b)
6182 {
6183 return (uint16_t)__builtin_neon_vget_laneuv4hi ((int16x4_t) __a, __b);
6184 }
6185
6186 __extension__ extern __inline uint32_t
6187 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6188 vget_lane_u32 (uint32x2_t __a, const int __b)
6189 {
6190 return (uint32_t)__builtin_neon_vget_laneuv2si ((int32x2_t) __a, __b);
6191 }
6192
6193 __extension__ extern __inline poly8_t
6194 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6195 vget_lane_p8 (poly8x8_t __a, const int __b)
6196 {
6197 return (poly8_t)__builtin_neon_vget_laneuv8qi ((int8x8_t) __a, __b);
6198 }
6199
6200 __extension__ extern __inline poly16_t
6201 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6202 vget_lane_p16 (poly16x4_t __a, const int __b)
6203 {
6204 return (poly16_t)__builtin_neon_vget_laneuv4hi ((int16x4_t) __a, __b);
6205 }
6206
6207 __extension__ extern __inline int64_t
6208 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6209 vget_lane_s64 (int64x1_t __a, const int __b)
6210 {
6211 return (int64_t)__builtin_neon_vget_lanedi (__a, __b);
6212 }
6213
6214 #pragma GCC push_options
6215 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
6216 __extension__ extern __inline poly64_t
6217 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6218 vget_lane_p64 (poly64x1_t __a, const int __b)
6219 {
6220 return (poly64_t)__builtin_neon_vget_lanedi ((int64x1_t) __a, __b);
6221 }
6222
6223 #pragma GCC pop_options
6224 __extension__ extern __inline uint64_t
6225 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6226 vget_lane_u64 (uint64x1_t __a, const int __b)
6227 {
6228 return (uint64_t)__builtin_neon_vget_lanedi ((int64x1_t) __a, __b);
6229 }
6230
6231 __extension__ extern __inline int8_t
6232 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6233 vgetq_lane_s8 (int8x16_t __a, const int __b)
6234 {
6235 return (int8_t)__builtin_neon_vget_lanev16qi (__a, __b);
6236 }
6237
6238 __extension__ extern __inline int16_t
6239 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6240 vgetq_lane_s16 (int16x8_t __a, const int __b)
6241 {
6242 return (int16_t)__builtin_neon_vget_lanev8hi (__a, __b);
6243 }
6244
6245 __extension__ extern __inline int32_t
6246 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6247 vgetq_lane_s32 (int32x4_t __a, const int __b)
6248 {
6249 return (int32_t)__builtin_neon_vget_lanev4si (__a, __b);
6250 }
6251
6252 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
6253 #define vgetq_lane_f16(__v, __idx) \
6254 __extension__ \
6255 ({ \
6256 float16x8_t __vec = (__v); \
6257 __builtin_arm_lane_check (8, __idx); \
6258 float16_t __res = __vec[__arm_laneq(__vec, __idx)]; \
6259 __res; \
6260 })
6261 #endif
6262
6263 __extension__ extern __inline float32_t
6264 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6265 vgetq_lane_f32 (float32x4_t __a, const int __b)
6266 {
6267 return (float32_t)__builtin_neon_vget_lanev4sf (__a, __b);
6268 }
6269
6270 __extension__ extern __inline uint8_t
6271 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6272 vgetq_lane_u8 (uint8x16_t __a, const int __b)
6273 {
6274 return (uint8_t)__builtin_neon_vget_laneuv16qi ((int8x16_t) __a, __b);
6275 }
6276
6277 __extension__ extern __inline uint16_t
6278 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6279 vgetq_lane_u16 (uint16x8_t __a, const int __b)
6280 {
6281 return (uint16_t)__builtin_neon_vget_laneuv8hi ((int16x8_t) __a, __b);
6282 }
6283
6284 __extension__ extern __inline uint32_t
6285 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6286 vgetq_lane_u32 (uint32x4_t __a, const int __b)
6287 {
6288 return (uint32_t)__builtin_neon_vget_laneuv4si ((int32x4_t) __a, __b);
6289 }
6290
6291 __extension__ extern __inline poly8_t
6292 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6293 vgetq_lane_p8 (poly8x16_t __a, const int __b)
6294 {
6295 return (poly8_t)__builtin_neon_vget_laneuv16qi ((int8x16_t) __a, __b);
6296 }
6297
6298 __extension__ extern __inline poly16_t
6299 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6300 vgetq_lane_p16 (poly16x8_t __a, const int __b)
6301 {
6302 return (poly16_t)__builtin_neon_vget_laneuv8hi ((int16x8_t) __a, __b);
6303 }
6304
6305 __extension__ extern __inline int64_t
6306 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6307 vgetq_lane_s64 (int64x2_t __a, const int __b)
6308 {
6309 return (int64_t)__builtin_neon_vget_lanev2di (__a, __b);
6310 }
6311
6312 #pragma GCC push_options
6313 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
6314 __extension__ extern __inline poly64_t
6315 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6316 vgetq_lane_p64 (poly64x2_t __a, const int __b)
6317 {
6318 return (poly64_t)__builtin_neon_vget_lanev2di ((int64x2_t) __a, __b);
6319 }
6320
6321 #pragma GCC pop_options
6322 __extension__ extern __inline uint64_t
6323 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6324 vgetq_lane_u64 (uint64x2_t __a, const int __b)
6325 {
6326 return (uint64_t)__builtin_neon_vget_lanev2di ((int64x2_t) __a, __b);
6327 }
6328
6329 __extension__ extern __inline int8x8_t
6330 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6331 vset_lane_s8 (int8_t __a, int8x8_t __b, const int __c)
6332 {
6333 return (int8x8_t)__builtin_neon_vset_lanev8qi ((__builtin_neon_qi) __a, __b, __c);
6334 }
6335
6336 __extension__ extern __inline int16x4_t
6337 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6338 vset_lane_s16 (int16_t __a, int16x4_t __b, const int __c)
6339 {
6340 return (int16x4_t)__builtin_neon_vset_lanev4hi ((__builtin_neon_hi) __a, __b, __c);
6341 }
6342
6343 __extension__ extern __inline int32x2_t
6344 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6345 vset_lane_s32 (int32_t __a, int32x2_t __b, const int __c)
6346 {
6347 return (int32x2_t)__builtin_neon_vset_lanev2si ((__builtin_neon_si) __a, __b, __c);
6348 }
6349
6350 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
6351 #define vset_lane_f16(__e, __v, __idx) \
6352 __extension__ \
6353 ({ \
6354 float16_t __elem = (__e); \
6355 float16x4_t __vec = (__v); \
6356 __builtin_arm_lane_check (4, __idx); \
6357 __vec[__arm_lane (__vec, __idx)] = __elem; \
6358 __vec; \
6359 })
6360 #endif
6361
6362 __extension__ extern __inline float32x2_t
6363 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6364 vset_lane_f32 (float32_t __a, float32x2_t __b, const int __c)
6365 {
6366 return (float32x2_t)__builtin_neon_vset_lanev2sf ((__builtin_neon_sf) __a, __b, __c);
6367 }
6368
6369 __extension__ extern __inline uint8x8_t
6370 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6371 vset_lane_u8 (uint8_t __a, uint8x8_t __b, const int __c)
6372 {
6373 return (uint8x8_t)__builtin_neon_vset_lanev8qi ((__builtin_neon_qi) __a, (int8x8_t) __b, __c);
6374 }
6375
6376 __extension__ extern __inline uint16x4_t
6377 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6378 vset_lane_u16 (uint16_t __a, uint16x4_t __b, const int __c)
6379 {
6380 return (uint16x4_t)__builtin_neon_vset_lanev4hi ((__builtin_neon_hi) __a, (int16x4_t) __b, __c);
6381 }
6382
6383 __extension__ extern __inline uint32x2_t
6384 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6385 vset_lane_u32 (uint32_t __a, uint32x2_t __b, const int __c)
6386 {
6387 return (uint32x2_t)__builtin_neon_vset_lanev2si ((__builtin_neon_si) __a, (int32x2_t) __b, __c);
6388 }
6389
6390 __extension__ extern __inline poly8x8_t
6391 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6392 vset_lane_p8 (poly8_t __a, poly8x8_t __b, const int __c)
6393 {
6394 return (poly8x8_t)__builtin_neon_vset_lanev8qi ((__builtin_neon_qi) __a, (int8x8_t) __b, __c);
6395 }
6396
6397 __extension__ extern __inline poly16x4_t
6398 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6399 vset_lane_p16 (poly16_t __a, poly16x4_t __b, const int __c)
6400 {
6401 return (poly16x4_t)__builtin_neon_vset_lanev4hi ((__builtin_neon_hi) __a, (int16x4_t) __b, __c);
6402 }
6403
6404 __extension__ extern __inline int64x1_t
6405 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6406 vset_lane_s64 (int64_t __a, int64x1_t __b, const int __c)
6407 {
6408 return (int64x1_t)__builtin_neon_vset_lanedi ((__builtin_neon_di) __a, __b, __c);
6409 }
6410
6411 __extension__ extern __inline uint64x1_t
6412 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6413 vset_lane_u64 (uint64_t __a, uint64x1_t __b, const int __c)
6414 {
6415 return (uint64x1_t)__builtin_neon_vset_lanedi ((__builtin_neon_di) __a, (int64x1_t) __b, __c);
6416 }
6417
6418 #pragma GCC push_options
6419 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
6420 __extension__ extern __inline poly64x1_t
6421 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6422 vset_lane_p64 (poly64_t __a, poly64x1_t __b, const int __c)
6423 {
6424 return (poly64x1_t)__builtin_neon_vset_lanedi ((__builtin_neon_di) __a, (int64x1_t) __b, __c);
6425 }
6426
6427 #pragma GCC pop_options
6428 __extension__ extern __inline int8x16_t
6429 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6430 vsetq_lane_s8 (int8_t __a, int8x16_t __b, const int __c)
6431 {
6432 return (int8x16_t)__builtin_neon_vset_lanev16qi ((__builtin_neon_qi) __a, __b, __c);
6433 }
6434
6435 __extension__ extern __inline int16x8_t
6436 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6437 vsetq_lane_s16 (int16_t __a, int16x8_t __b, const int __c)
6438 {
6439 return (int16x8_t)__builtin_neon_vset_lanev8hi ((__builtin_neon_hi) __a, __b, __c);
6440 }
6441
6442 __extension__ extern __inline int32x4_t
6443 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6444 vsetq_lane_s32 (int32_t __a, int32x4_t __b, const int __c)
6445 {
6446 return (int32x4_t)__builtin_neon_vset_lanev4si ((__builtin_neon_si) __a, __b, __c);
6447 }
6448
6449 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
6450 #define vsetq_lane_f16(__e, __v, __idx) \
6451 __extension__ \
6452 ({ \
6453 float16_t __elem = (__e); \
6454 float16x8_t __vec = (__v); \
6455 __builtin_arm_lane_check (8, __idx); \
6456 __vec[__arm_laneq (__vec, __idx)] = __elem; \
6457 __vec; \
6458 })
6459 #endif
6460
6461 __extension__ extern __inline float32x4_t
6462 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6463 vsetq_lane_f32 (float32_t __a, float32x4_t __b, const int __c)
6464 {
6465 return (float32x4_t)__builtin_neon_vset_lanev4sf ((__builtin_neon_sf) __a, __b, __c);
6466 }
6467
6468 __extension__ extern __inline uint8x16_t
6469 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6470 vsetq_lane_u8 (uint8_t __a, uint8x16_t __b, const int __c)
6471 {
6472 return (uint8x16_t)__builtin_neon_vset_lanev16qi ((__builtin_neon_qi) __a, (int8x16_t) __b, __c);
6473 }
6474
6475 __extension__ extern __inline uint16x8_t
6476 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6477 vsetq_lane_u16 (uint16_t __a, uint16x8_t __b, const int __c)
6478 {
6479 return (uint16x8_t)__builtin_neon_vset_lanev8hi ((__builtin_neon_hi) __a, (int16x8_t) __b, __c);
6480 }
6481
6482 __extension__ extern __inline uint32x4_t
6483 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6484 vsetq_lane_u32 (uint32_t __a, uint32x4_t __b, const int __c)
6485 {
6486 return (uint32x4_t)__builtin_neon_vset_lanev4si ((__builtin_neon_si) __a, (int32x4_t) __b, __c);
6487 }
6488
6489 __extension__ extern __inline poly8x16_t
6490 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6491 vsetq_lane_p8 (poly8_t __a, poly8x16_t __b, const int __c)
6492 {
6493 return (poly8x16_t)__builtin_neon_vset_lanev16qi ((__builtin_neon_qi) __a, (int8x16_t) __b, __c);
6494 }
6495
6496 __extension__ extern __inline poly16x8_t
6497 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6498 vsetq_lane_p16 (poly16_t __a, poly16x8_t __b, const int __c)
6499 {
6500 return (poly16x8_t)__builtin_neon_vset_lanev8hi ((__builtin_neon_hi) __a, (int16x8_t) __b, __c);
6501 }
6502
6503 __extension__ extern __inline int64x2_t
6504 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6505 vsetq_lane_s64 (int64_t __a, int64x2_t __b, const int __c)
6506 {
6507 return (int64x2_t)__builtin_neon_vset_lanev2di ((__builtin_neon_di) __a, __b, __c);
6508 }
6509
6510 __extension__ extern __inline uint64x2_t
6511 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6512 vsetq_lane_u64 (uint64_t __a, uint64x2_t __b, const int __c)
6513 {
6514 return (uint64x2_t)__builtin_neon_vset_lanev2di ((__builtin_neon_di) __a, (int64x2_t) __b, __c);
6515 }
6516
6517 #pragma GCC push_options
6518 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
6519 __extension__ extern __inline poly64x2_t
6520 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6521 vsetq_lane_p64 (poly64_t __a, poly64x2_t __b, const int __c)
6522 {
6523 return (poly64x2_t)__builtin_neon_vset_lanev2di ((__builtin_neon_di) __a, (int64x2_t) __b, __c);
6524 }
6525
6526 __extension__ extern __inline poly64x1_t
6527 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6528 vcreate_p64 (uint64_t __a)
6529 {
6530 return (poly64x1_t)__builtin_neon_vcreatedi ((__builtin_neon_di) __a);
6531 }
6532
6533 #pragma GCC pop_options
6534 __extension__ extern __inline int8x8_t
6535 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6536 vcreate_s8 (uint64_t __a)
6537 {
6538 return (int8x8_t)__builtin_neon_vcreatev8qi ((__builtin_neon_di) __a);
6539 }
6540
6541 __extension__ extern __inline int16x4_t
6542 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6543 vcreate_s16 (uint64_t __a)
6544 {
6545 return (int16x4_t)__builtin_neon_vcreatev4hi ((__builtin_neon_di) __a);
6546 }
6547
6548 __extension__ extern __inline int32x2_t
6549 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6550 vcreate_s32 (uint64_t __a)
6551 {
6552 return (int32x2_t)__builtin_neon_vcreatev2si ((__builtin_neon_di) __a);
6553 }
6554
6555 __extension__ extern __inline int64x1_t
6556 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6557 vcreate_s64 (uint64_t __a)
6558 {
6559 return (int64x1_t)__builtin_neon_vcreatedi ((__builtin_neon_di) __a);
6560 }
6561
6562 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
6563 __extension__ extern __inline float16x4_t
6564 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6565 vcreate_f16 (uint64_t __a)
6566 {
6567 return (float16x4_t) __a;
6568 }
6569 #endif
6570
6571 __extension__ extern __inline float32x2_t
6572 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6573 vcreate_f32 (uint64_t __a)
6574 {
6575 return (float32x2_t)__builtin_neon_vcreatev2sf ((__builtin_neon_di) __a);
6576 }
6577
6578 __extension__ extern __inline uint8x8_t
6579 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6580 vcreate_u8 (uint64_t __a)
6581 {
6582 return (uint8x8_t)__builtin_neon_vcreatev8qi ((__builtin_neon_di) __a);
6583 }
6584
6585 __extension__ extern __inline uint16x4_t
6586 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6587 vcreate_u16 (uint64_t __a)
6588 {
6589 return (uint16x4_t)__builtin_neon_vcreatev4hi ((__builtin_neon_di) __a);
6590 }
6591
6592 __extension__ extern __inline uint32x2_t
6593 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6594 vcreate_u32 (uint64_t __a)
6595 {
6596 return (uint32x2_t)__builtin_neon_vcreatev2si ((__builtin_neon_di) __a);
6597 }
6598
6599 __extension__ extern __inline uint64x1_t
6600 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6601 vcreate_u64 (uint64_t __a)
6602 {
6603 return (uint64x1_t)__builtin_neon_vcreatedi ((__builtin_neon_di) __a);
6604 }
6605
6606 __extension__ extern __inline poly8x8_t
6607 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6608 vcreate_p8 (uint64_t __a)
6609 {
6610 return (poly8x8_t)__builtin_neon_vcreatev8qi ((__builtin_neon_di) __a);
6611 }
6612
6613 __extension__ extern __inline poly16x4_t
6614 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6615 vcreate_p16 (uint64_t __a)
6616 {
6617 return (poly16x4_t)__builtin_neon_vcreatev4hi ((__builtin_neon_di) __a);
6618 }
6619
6620 __extension__ extern __inline int8x8_t
6621 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6622 vdup_n_s8 (int8_t __a)
6623 {
6624 return (int8x8_t)__builtin_neon_vdup_nv8qi ((__builtin_neon_qi) __a);
6625 }
6626
6627 __extension__ extern __inline int16x4_t
6628 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6629 vdup_n_s16 (int16_t __a)
6630 {
6631 return (int16x4_t)__builtin_neon_vdup_nv4hi ((__builtin_neon_hi) __a);
6632 }
6633
6634 __extension__ extern __inline int32x2_t
6635 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6636 vdup_n_s32 (int32_t __a)
6637 {
6638 return (int32x2_t)__builtin_neon_vdup_nv2si ((__builtin_neon_si) __a);
6639 }
6640
6641 __extension__ extern __inline float32x2_t
6642 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6643 vdup_n_f32 (float32_t __a)
6644 {
6645 return (float32x2_t)__builtin_neon_vdup_nv2sf ((__builtin_neon_sf) __a);
6646 }
6647
6648 __extension__ extern __inline uint8x8_t
6649 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6650 vdup_n_u8 (uint8_t __a)
6651 {
6652 return (uint8x8_t)__builtin_neon_vdup_nv8qi ((__builtin_neon_qi) __a);
6653 }
6654
6655 __extension__ extern __inline uint16x4_t
6656 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6657 vdup_n_u16 (uint16_t __a)
6658 {
6659 return (uint16x4_t)__builtin_neon_vdup_nv4hi ((__builtin_neon_hi) __a);
6660 }
6661
6662 __extension__ extern __inline uint32x2_t
6663 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6664 vdup_n_u32 (uint32_t __a)
6665 {
6666 return (uint32x2_t)__builtin_neon_vdup_nv2si ((__builtin_neon_si) __a);
6667 }
6668
6669 __extension__ extern __inline poly8x8_t
6670 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6671 vdup_n_p8 (poly8_t __a)
6672 {
6673 return (poly8x8_t)__builtin_neon_vdup_nv8qi ((__builtin_neon_qi) __a);
6674 }
6675
6676 __extension__ extern __inline poly16x4_t
6677 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6678 vdup_n_p16 (poly16_t __a)
6679 {
6680 return (poly16x4_t)__builtin_neon_vdup_nv4hi ((__builtin_neon_hi) __a);
6681 }
6682
6683 #pragma GCC push_options
6684 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
6685 __extension__ extern __inline poly64x1_t
6686 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6687 vdup_n_p64 (poly64_t __a)
6688 {
6689 return (poly64x1_t)__builtin_neon_vdup_ndi ((__builtin_neon_di) __a);
6690 }
6691
6692 #pragma GCC pop_options
6693 __extension__ extern __inline int64x1_t
6694 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6695 vdup_n_s64 (int64_t __a)
6696 {
6697 return (int64x1_t)__builtin_neon_vdup_ndi ((__builtin_neon_di) __a);
6698 }
6699
6700 __extension__ extern __inline uint64x1_t
6701 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6702 vdup_n_u64 (uint64_t __a)
6703 {
6704 return (uint64x1_t)__builtin_neon_vdup_ndi ((__builtin_neon_di) __a);
6705 }
6706
6707 #pragma GCC push_options
6708 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
6709 __extension__ extern __inline poly64x2_t
6710 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6711 vdupq_n_p64 (poly64_t __a)
6712 {
6713 return (poly64x2_t)__builtin_neon_vdup_nv2di ((__builtin_neon_di) __a);
6714 }
6715
6716 #pragma GCC pop_options
6717 __extension__ extern __inline int8x16_t
6718 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6719 vdupq_n_s8 (int8_t __a)
6720 {
6721 return (int8x16_t)__builtin_neon_vdup_nv16qi ((__builtin_neon_qi) __a);
6722 }
6723
6724 __extension__ extern __inline int16x8_t
6725 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6726 vdupq_n_s16 (int16_t __a)
6727 {
6728 return (int16x8_t)__builtin_neon_vdup_nv8hi ((__builtin_neon_hi) __a);
6729 }
6730
6731 __extension__ extern __inline int32x4_t
6732 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6733 vdupq_n_s32 (int32_t __a)
6734 {
6735 return (int32x4_t)__builtin_neon_vdup_nv4si ((__builtin_neon_si) __a);
6736 }
6737
6738 __extension__ extern __inline float32x4_t
6739 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6740 vdupq_n_f32 (float32_t __a)
6741 {
6742 return (float32x4_t)__builtin_neon_vdup_nv4sf ((__builtin_neon_sf) __a);
6743 }
6744
6745 __extension__ extern __inline uint8x16_t
6746 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6747 vdupq_n_u8 (uint8_t __a)
6748 {
6749 return (uint8x16_t)__builtin_neon_vdup_nv16qi ((__builtin_neon_qi) __a);
6750 }
6751
6752 __extension__ extern __inline uint16x8_t
6753 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6754 vdupq_n_u16 (uint16_t __a)
6755 {
6756 return (uint16x8_t)__builtin_neon_vdup_nv8hi ((__builtin_neon_hi) __a);
6757 }
6758
6759 __extension__ extern __inline uint32x4_t
6760 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6761 vdupq_n_u32 (uint32_t __a)
6762 {
6763 return (uint32x4_t)__builtin_neon_vdup_nv4si ((__builtin_neon_si) __a);
6764 }
6765
6766 __extension__ extern __inline poly8x16_t
6767 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6768 vdupq_n_p8 (poly8_t __a)
6769 {
6770 return (poly8x16_t)__builtin_neon_vdup_nv16qi ((__builtin_neon_qi) __a);
6771 }
6772
6773 __extension__ extern __inline poly16x8_t
6774 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6775 vdupq_n_p16 (poly16_t __a)
6776 {
6777 return (poly16x8_t)__builtin_neon_vdup_nv8hi ((__builtin_neon_hi) __a);
6778 }
6779
6780 __extension__ extern __inline int64x2_t
6781 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6782 vdupq_n_s64 (int64_t __a)
6783 {
6784 return (int64x2_t)__builtin_neon_vdup_nv2di ((__builtin_neon_di) __a);
6785 }
6786
6787 __extension__ extern __inline uint64x2_t
6788 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6789 vdupq_n_u64 (uint64_t __a)
6790 {
6791 return (uint64x2_t)__builtin_neon_vdup_nv2di ((__builtin_neon_di) __a);
6792 }
6793
6794 __extension__ extern __inline int8x8_t
6795 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6796 vmov_n_s8 (int8_t __a)
6797 {
6798 return (int8x8_t)__builtin_neon_vdup_nv8qi ((__builtin_neon_qi) __a);
6799 }
6800
6801 __extension__ extern __inline int16x4_t
6802 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6803 vmov_n_s16 (int16_t __a)
6804 {
6805 return (int16x4_t)__builtin_neon_vdup_nv4hi ((__builtin_neon_hi) __a);
6806 }
6807
6808 __extension__ extern __inline int32x2_t
6809 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6810 vmov_n_s32 (int32_t __a)
6811 {
6812 return (int32x2_t)__builtin_neon_vdup_nv2si ((__builtin_neon_si) __a);
6813 }
6814
6815 __extension__ extern __inline float32x2_t
6816 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6817 vmov_n_f32 (float32_t __a)
6818 {
6819 return (float32x2_t)__builtin_neon_vdup_nv2sf ((__builtin_neon_sf) __a);
6820 }
6821
6822 __extension__ extern __inline uint8x8_t
6823 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6824 vmov_n_u8 (uint8_t __a)
6825 {
6826 return (uint8x8_t)__builtin_neon_vdup_nv8qi ((__builtin_neon_qi) __a);
6827 }
6828
6829 __extension__ extern __inline uint16x4_t
6830 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6831 vmov_n_u16 (uint16_t __a)
6832 {
6833 return (uint16x4_t)__builtin_neon_vdup_nv4hi ((__builtin_neon_hi) __a);
6834 }
6835
6836 __extension__ extern __inline uint32x2_t
6837 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6838 vmov_n_u32 (uint32_t __a)
6839 {
6840 return (uint32x2_t)__builtin_neon_vdup_nv2si ((__builtin_neon_si) __a);
6841 }
6842
6843 __extension__ extern __inline poly8x8_t
6844 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6845 vmov_n_p8 (poly8_t __a)
6846 {
6847 return (poly8x8_t)__builtin_neon_vdup_nv8qi ((__builtin_neon_qi) __a);
6848 }
6849
6850 __extension__ extern __inline poly16x4_t
6851 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6852 vmov_n_p16 (poly16_t __a)
6853 {
6854 return (poly16x4_t)__builtin_neon_vdup_nv4hi ((__builtin_neon_hi) __a);
6855 }
6856
6857 __extension__ extern __inline int64x1_t
6858 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6859 vmov_n_s64 (int64_t __a)
6860 {
6861 return (int64x1_t)__builtin_neon_vdup_ndi ((__builtin_neon_di) __a);
6862 }
6863
6864 __extension__ extern __inline uint64x1_t
6865 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6866 vmov_n_u64 (uint64_t __a)
6867 {
6868 return (uint64x1_t)__builtin_neon_vdup_ndi ((__builtin_neon_di) __a);
6869 }
6870
6871 __extension__ extern __inline int8x16_t
6872 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6873 vmovq_n_s8 (int8_t __a)
6874 {
6875 return (int8x16_t)__builtin_neon_vdup_nv16qi ((__builtin_neon_qi) __a);
6876 }
6877
6878 __extension__ extern __inline int16x8_t
6879 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6880 vmovq_n_s16 (int16_t __a)
6881 {
6882 return (int16x8_t)__builtin_neon_vdup_nv8hi ((__builtin_neon_hi) __a);
6883 }
6884
6885 __extension__ extern __inline int32x4_t
6886 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6887 vmovq_n_s32 (int32_t __a)
6888 {
6889 return (int32x4_t)__builtin_neon_vdup_nv4si ((__builtin_neon_si) __a);
6890 }
6891
6892 __extension__ extern __inline float32x4_t
6893 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6894 vmovq_n_f32 (float32_t __a)
6895 {
6896 return (float32x4_t)__builtin_neon_vdup_nv4sf ((__builtin_neon_sf) __a);
6897 }
6898
6899 __extension__ extern __inline uint8x16_t
6900 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6901 vmovq_n_u8 (uint8_t __a)
6902 {
6903 return (uint8x16_t)__builtin_neon_vdup_nv16qi ((__builtin_neon_qi) __a);
6904 }
6905
6906 __extension__ extern __inline uint16x8_t
6907 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6908 vmovq_n_u16 (uint16_t __a)
6909 {
6910 return (uint16x8_t)__builtin_neon_vdup_nv8hi ((__builtin_neon_hi) __a);
6911 }
6912
6913 __extension__ extern __inline uint32x4_t
6914 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6915 vmovq_n_u32 (uint32_t __a)
6916 {
6917 return (uint32x4_t)__builtin_neon_vdup_nv4si ((__builtin_neon_si) __a);
6918 }
6919
6920 __extension__ extern __inline poly8x16_t
6921 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6922 vmovq_n_p8 (poly8_t __a)
6923 {
6924 return (poly8x16_t)__builtin_neon_vdup_nv16qi ((__builtin_neon_qi) __a);
6925 }
6926
6927 __extension__ extern __inline poly16x8_t
6928 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6929 vmovq_n_p16 (poly16_t __a)
6930 {
6931 return (poly16x8_t)__builtin_neon_vdup_nv8hi ((__builtin_neon_hi) __a);
6932 }
6933
6934 __extension__ extern __inline int64x2_t
6935 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6936 vmovq_n_s64 (int64_t __a)
6937 {
6938 return (int64x2_t)__builtin_neon_vdup_nv2di ((__builtin_neon_di) __a);
6939 }
6940
6941 __extension__ extern __inline uint64x2_t
6942 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6943 vmovq_n_u64 (uint64_t __a)
6944 {
6945 return (uint64x2_t)__builtin_neon_vdup_nv2di ((__builtin_neon_di) __a);
6946 }
6947
6948 __extension__ extern __inline int8x8_t
6949 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6950 vdup_lane_s8 (int8x8_t __a, const int __b)
6951 {
6952 return (int8x8_t)__builtin_neon_vdup_lanev8qi (__a, __b);
6953 }
6954
6955 __extension__ extern __inline int16x4_t
6956 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6957 vdup_lane_s16 (int16x4_t __a, const int __b)
6958 {
6959 return (int16x4_t)__builtin_neon_vdup_lanev4hi (__a, __b);
6960 }
6961
6962 __extension__ extern __inline int32x2_t
6963 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6964 vdup_lane_s32 (int32x2_t __a, const int __b)
6965 {
6966 return (int32x2_t)__builtin_neon_vdup_lanev2si (__a, __b);
6967 }
6968
6969 __extension__ extern __inline float32x2_t
6970 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6971 vdup_lane_f32 (float32x2_t __a, const int __b)
6972 {
6973 return (float32x2_t)__builtin_neon_vdup_lanev2sf (__a, __b);
6974 }
6975
6976 __extension__ extern __inline uint8x8_t
6977 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6978 vdup_lane_u8 (uint8x8_t __a, const int __b)
6979 {
6980 return (uint8x8_t)__builtin_neon_vdup_lanev8qi ((int8x8_t) __a, __b);
6981 }
6982
6983 __extension__ extern __inline uint16x4_t
6984 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6985 vdup_lane_u16 (uint16x4_t __a, const int __b)
6986 {
6987 return (uint16x4_t)__builtin_neon_vdup_lanev4hi ((int16x4_t) __a, __b);
6988 }
6989
6990 __extension__ extern __inline uint32x2_t
6991 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6992 vdup_lane_u32 (uint32x2_t __a, const int __b)
6993 {
6994 return (uint32x2_t)__builtin_neon_vdup_lanev2si ((int32x2_t) __a, __b);
6995 }
6996
6997 __extension__ extern __inline poly8x8_t
6998 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6999 vdup_lane_p8 (poly8x8_t __a, const int __b)
7000 {
7001 return (poly8x8_t)__builtin_neon_vdup_lanev8qi ((int8x8_t) __a, __b);
7002 }
7003
7004 __extension__ extern __inline poly16x4_t
7005 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7006 vdup_lane_p16 (poly16x4_t __a, const int __b)
7007 {
7008 return (poly16x4_t)__builtin_neon_vdup_lanev4hi ((int16x4_t) __a, __b);
7009 }
7010
7011 #pragma GCC push_options
7012 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
7013 __extension__ extern __inline poly64x1_t
7014 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7015 vdup_lane_p64 (poly64x1_t __a, const int __b)
7016 {
7017 return (poly64x1_t)__builtin_neon_vdup_lanedi (__a, __b);
7018 }
7019
7020 #pragma GCC pop_options
7021 __extension__ extern __inline int64x1_t
7022 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7023 vdup_lane_s64 (int64x1_t __a, const int __b)
7024 {
7025 return (int64x1_t)__builtin_neon_vdup_lanedi (__a, __b);
7026 }
7027
7028 __extension__ extern __inline uint64x1_t
7029 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7030 vdup_lane_u64 (uint64x1_t __a, const int __b)
7031 {
7032 return (uint64x1_t)__builtin_neon_vdup_lanedi ((int64x1_t) __a, __b);
7033 }
7034
7035 __extension__ extern __inline int8x16_t
7036 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7037 vdupq_lane_s8 (int8x8_t __a, const int __b)
7038 {
7039 return (int8x16_t)__builtin_neon_vdup_lanev16qi (__a, __b);
7040 }
7041
7042 __extension__ extern __inline int16x8_t
7043 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7044 vdupq_lane_s16 (int16x4_t __a, const int __b)
7045 {
7046 return (int16x8_t)__builtin_neon_vdup_lanev8hi (__a, __b);
7047 }
7048
7049 __extension__ extern __inline int32x4_t
7050 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7051 vdupq_lane_s32 (int32x2_t __a, const int __b)
7052 {
7053 return (int32x4_t)__builtin_neon_vdup_lanev4si (__a, __b);
7054 }
7055
7056 __extension__ extern __inline float32x4_t
7057 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7058 vdupq_lane_f32 (float32x2_t __a, const int __b)
7059 {
7060 return (float32x4_t)__builtin_neon_vdup_lanev4sf (__a, __b);
7061 }
7062
7063 __extension__ extern __inline uint8x16_t
7064 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7065 vdupq_lane_u8 (uint8x8_t __a, const int __b)
7066 {
7067 return (uint8x16_t)__builtin_neon_vdup_lanev16qi ((int8x8_t) __a, __b);
7068 }
7069
7070 __extension__ extern __inline uint16x8_t
7071 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7072 vdupq_lane_u16 (uint16x4_t __a, const int __b)
7073 {
7074 return (uint16x8_t)__builtin_neon_vdup_lanev8hi ((int16x4_t) __a, __b);
7075 }
7076
7077 __extension__ extern __inline uint32x4_t
7078 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7079 vdupq_lane_u32 (uint32x2_t __a, const int __b)
7080 {
7081 return (uint32x4_t)__builtin_neon_vdup_lanev4si ((int32x2_t) __a, __b);
7082 }
7083
7084 __extension__ extern __inline poly8x16_t
7085 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7086 vdupq_lane_p8 (poly8x8_t __a, const int __b)
7087 {
7088 return (poly8x16_t)__builtin_neon_vdup_lanev16qi ((int8x8_t) __a, __b);
7089 }
7090
7091 __extension__ extern __inline poly16x8_t
7092 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7093 vdupq_lane_p16 (poly16x4_t __a, const int __b)
7094 {
7095 return (poly16x8_t)__builtin_neon_vdup_lanev8hi ((int16x4_t) __a, __b);
7096 }
7097
7098 #pragma GCC push_options
7099 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
7100 __extension__ extern __inline poly64x2_t
7101 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7102 vdupq_lane_p64 (poly64x1_t __a, const int __b)
7103 {
7104 return (poly64x2_t)__builtin_neon_vdup_lanev2di (__a, __b);
7105 }
7106
7107 #pragma GCC pop_options
7108 __extension__ extern __inline int64x2_t
7109 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7110 vdupq_lane_s64 (int64x1_t __a, const int __b)
7111 {
7112 return (int64x2_t)__builtin_neon_vdup_lanev2di (__a, __b);
7113 }
7114
7115 __extension__ extern __inline uint64x2_t
7116 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7117 vdupq_lane_u64 (uint64x1_t __a, const int __b)
7118 {
7119 return (uint64x2_t)__builtin_neon_vdup_lanev2di ((int64x1_t) __a, __b);
7120 }
7121
7122 #pragma GCC push_options
7123 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
7124 __extension__ extern __inline poly64x2_t
7125 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7126 vcombine_p64 (poly64x1_t __a, poly64x1_t __b)
7127 {
7128 return (poly64x2_t)__builtin_neon_vcombinedi (__a, __b);
7129 }
7130
7131 #pragma GCC pop_options
7132 __extension__ extern __inline int8x16_t
7133 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7134 vcombine_s8 (int8x8_t __a, int8x8_t __b)
7135 {
7136 return (int8x16_t)__builtin_neon_vcombinev8qi (__a, __b);
7137 }
7138
7139 __extension__ extern __inline int16x8_t
7140 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7141 vcombine_s16 (int16x4_t __a, int16x4_t __b)
7142 {
7143 return (int16x8_t)__builtin_neon_vcombinev4hi (__a, __b);
7144 }
7145
7146 __extension__ extern __inline int32x4_t
7147 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7148 vcombine_s32 (int32x2_t __a, int32x2_t __b)
7149 {
7150 return (int32x4_t)__builtin_neon_vcombinev2si (__a, __b);
7151 }
7152
7153 __extension__ extern __inline int64x2_t
7154 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7155 vcombine_s64 (int64x1_t __a, int64x1_t __b)
7156 {
7157 return (int64x2_t)__builtin_neon_vcombinedi (__a, __b);
7158 }
7159
7160 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
7161 __extension__ extern __inline float16x8_t
7162 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7163 vcombine_f16 (float16x4_t __a, float16x4_t __b)
7164 {
7165 return __builtin_neon_vcombinev4hf (__a, __b);
7166 }
7167 #endif
7168
7169 __extension__ extern __inline float32x4_t
7170 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7171 vcombine_f32 (float32x2_t __a, float32x2_t __b)
7172 {
7173 return (float32x4_t)__builtin_neon_vcombinev2sf (__a, __b);
7174 }
7175
7176 __extension__ extern __inline uint8x16_t
7177 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7178 vcombine_u8 (uint8x8_t __a, uint8x8_t __b)
7179 {
7180 return (uint8x16_t)__builtin_neon_vcombinev8qi ((int8x8_t) __a, (int8x8_t) __b);
7181 }
7182
7183 __extension__ extern __inline uint16x8_t
7184 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7185 vcombine_u16 (uint16x4_t __a, uint16x4_t __b)
7186 {
7187 return (uint16x8_t)__builtin_neon_vcombinev4hi ((int16x4_t) __a, (int16x4_t) __b);
7188 }
7189
7190 __extension__ extern __inline uint32x4_t
7191 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7192 vcombine_u32 (uint32x2_t __a, uint32x2_t __b)
7193 {
7194 return (uint32x4_t)__builtin_neon_vcombinev2si ((int32x2_t) __a, (int32x2_t) __b);
7195 }
7196
7197 __extension__ extern __inline uint64x2_t
7198 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7199 vcombine_u64 (uint64x1_t __a, uint64x1_t __b)
7200 {
7201 return (uint64x2_t)__builtin_neon_vcombinedi ((int64x1_t) __a, (int64x1_t) __b);
7202 }
7203
7204 __extension__ extern __inline poly8x16_t
7205 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7206 vcombine_p8 (poly8x8_t __a, poly8x8_t __b)
7207 {
7208 return (poly8x16_t)__builtin_neon_vcombinev8qi ((int8x8_t) __a, (int8x8_t) __b);
7209 }
7210
7211 __extension__ extern __inline poly16x8_t
7212 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7213 vcombine_p16 (poly16x4_t __a, poly16x4_t __b)
7214 {
7215 return (poly16x8_t)__builtin_neon_vcombinev4hi ((int16x4_t) __a, (int16x4_t) __b);
7216 }
7217
7218 #pragma GCC push_options
7219 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
7220 __extension__ extern __inline poly64x1_t
7221 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7222 vget_high_p64 (poly64x2_t __a)
7223 {
7224 return (poly64x1_t)__builtin_neon_vget_highv2di ((int64x2_t) __a);
7225 }
7226
7227 #pragma GCC pop_options
7228 __extension__ extern __inline int8x8_t
7229 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7230 vget_high_s8 (int8x16_t __a)
7231 {
7232 return (int8x8_t)__builtin_neon_vget_highv16qi (__a);
7233 }
7234
7235 __extension__ extern __inline int16x4_t
7236 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7237 vget_high_s16 (int16x8_t __a)
7238 {
7239 return (int16x4_t)__builtin_neon_vget_highv8hi (__a);
7240 }
7241
7242 __extension__ extern __inline int32x2_t
7243 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7244 vget_high_s32 (int32x4_t __a)
7245 {
7246 return (int32x2_t)__builtin_neon_vget_highv4si (__a);
7247 }
7248
7249 __extension__ extern __inline int64x1_t
7250 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7251 vget_high_s64 (int64x2_t __a)
7252 {
7253 return (int64x1_t)__builtin_neon_vget_highv2di (__a);
7254 }
7255
7256 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
7257 __extension__ extern __inline float16x4_t
7258 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7259 vget_high_f16 (float16x8_t __a)
7260 {
7261 return __builtin_neon_vget_highv8hf (__a);
7262 }
7263 #endif
7264
7265 __extension__ extern __inline float32x2_t
7266 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7267 vget_high_f32 (float32x4_t __a)
7268 {
7269 return (float32x2_t)__builtin_neon_vget_highv4sf (__a);
7270 }
7271
7272 __extension__ extern __inline uint8x8_t
7273 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7274 vget_high_u8 (uint8x16_t __a)
7275 {
7276 return (uint8x8_t)__builtin_neon_vget_highv16qi ((int8x16_t) __a);
7277 }
7278
7279 __extension__ extern __inline uint16x4_t
7280 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7281 vget_high_u16 (uint16x8_t __a)
7282 {
7283 return (uint16x4_t)__builtin_neon_vget_highv8hi ((int16x8_t) __a);
7284 }
7285
7286 __extension__ extern __inline uint32x2_t
7287 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7288 vget_high_u32 (uint32x4_t __a)
7289 {
7290 return (uint32x2_t)__builtin_neon_vget_highv4si ((int32x4_t) __a);
7291 }
7292
7293 __extension__ extern __inline uint64x1_t
7294 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7295 vget_high_u64 (uint64x2_t __a)
7296 {
7297 return (uint64x1_t)__builtin_neon_vget_highv2di ((int64x2_t) __a);
7298 }
7299
7300 __extension__ extern __inline poly8x8_t
7301 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7302 vget_high_p8 (poly8x16_t __a)
7303 {
7304 return (poly8x8_t)__builtin_neon_vget_highv16qi ((int8x16_t) __a);
7305 }
7306
7307 __extension__ extern __inline poly16x4_t
7308 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7309 vget_high_p16 (poly16x8_t __a)
7310 {
7311 return (poly16x4_t)__builtin_neon_vget_highv8hi ((int16x8_t) __a);
7312 }
7313
7314 __extension__ extern __inline int8x8_t
7315 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7316 vget_low_s8 (int8x16_t __a)
7317 {
7318 return (int8x8_t)__builtin_neon_vget_lowv16qi (__a);
7319 }
7320
7321 __extension__ extern __inline int16x4_t
7322 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7323 vget_low_s16 (int16x8_t __a)
7324 {
7325 return (int16x4_t)__builtin_neon_vget_lowv8hi (__a);
7326 }
7327
7328 __extension__ extern __inline int32x2_t
7329 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7330 vget_low_s32 (int32x4_t __a)
7331 {
7332 return (int32x2_t)__builtin_neon_vget_lowv4si (__a);
7333 }
7334
7335 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
7336 __extension__ extern __inline float16x4_t
7337 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7338 vget_low_f16 (float16x8_t __a)
7339 {
7340 return __builtin_neon_vget_lowv8hf (__a);
7341 }
7342 #endif
7343
7344 __extension__ extern __inline float32x2_t
7345 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7346 vget_low_f32 (float32x4_t __a)
7347 {
7348 return (float32x2_t)__builtin_neon_vget_lowv4sf (__a);
7349 }
7350
7351 __extension__ extern __inline uint8x8_t
7352 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7353 vget_low_u8 (uint8x16_t __a)
7354 {
7355 return (uint8x8_t)__builtin_neon_vget_lowv16qi ((int8x16_t) __a);
7356 }
7357
7358 __extension__ extern __inline uint16x4_t
7359 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7360 vget_low_u16 (uint16x8_t __a)
7361 {
7362 return (uint16x4_t)__builtin_neon_vget_lowv8hi ((int16x8_t) __a);
7363 }
7364
7365 __extension__ extern __inline uint32x2_t
7366 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7367 vget_low_u32 (uint32x4_t __a)
7368 {
7369 return (uint32x2_t)__builtin_neon_vget_lowv4si ((int32x4_t) __a);
7370 }
7371
7372 __extension__ extern __inline poly8x8_t
7373 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7374 vget_low_p8 (poly8x16_t __a)
7375 {
7376 return (poly8x8_t)__builtin_neon_vget_lowv16qi ((int8x16_t) __a);
7377 }
7378
7379 __extension__ extern __inline poly16x4_t
7380 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7381 vget_low_p16 (poly16x8_t __a)
7382 {
7383 return (poly16x4_t)__builtin_neon_vget_lowv8hi ((int16x8_t) __a);
7384 }
7385
7386 #pragma GCC push_options
7387 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
7388 __extension__ extern __inline poly64x1_t
7389 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7390 vget_low_p64 (poly64x2_t __a)
7391 {
7392 return (poly64x1_t)__builtin_neon_vget_lowv2di ((int64x2_t) __a);
7393 }
7394
7395 #pragma GCC pop_options
7396 __extension__ extern __inline int64x1_t
7397 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7398 vget_low_s64 (int64x2_t __a)
7399 {
7400 return (int64x1_t)__builtin_neon_vget_lowv2di (__a);
7401 }
7402
7403 __extension__ extern __inline uint64x1_t
7404 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7405 vget_low_u64 (uint64x2_t __a)
7406 {
7407 return (uint64x1_t)__builtin_neon_vget_lowv2di ((int64x2_t) __a);
7408 }
7409
7410 __extension__ extern __inline int32x2_t
7411 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7412 vcvt_s32_f32 (float32x2_t __a)
7413 {
7414 return (int32x2_t)__builtin_neon_vcvtsv2sf (__a);
7415 }
7416
7417 __extension__ extern __inline float32x2_t
7418 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7419 vcvt_f32_s32 (int32x2_t __a)
7420 {
7421 return (float32x2_t)__builtin_neon_vcvtsv2si (__a);
7422 }
7423
7424 __extension__ extern __inline float32x2_t
7425 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7426 vcvt_f32_u32 (uint32x2_t __a)
7427 {
7428 return (float32x2_t)__builtin_neon_vcvtuv2si ((int32x2_t) __a);
7429 }
7430
7431 __extension__ extern __inline uint32x2_t
7432 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7433 vcvt_u32_f32 (float32x2_t __a)
7434 {
7435 return (uint32x2_t)__builtin_neon_vcvtuv2sf (__a);
7436 }
7437
7438 __extension__ extern __inline int32x4_t
7439 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7440 vcvtq_s32_f32 (float32x4_t __a)
7441 {
7442 return (int32x4_t)__builtin_neon_vcvtsv4sf (__a);
7443 }
7444
7445 __extension__ extern __inline float32x4_t
7446 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7447 vcvtq_f32_s32 (int32x4_t __a)
7448 {
7449 return (float32x4_t)__builtin_neon_vcvtsv4si (__a);
7450 }
7451
7452 __extension__ extern __inline float32x4_t
7453 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7454 vcvtq_f32_u32 (uint32x4_t __a)
7455 {
7456 return (float32x4_t)__builtin_neon_vcvtuv4si ((int32x4_t) __a);
7457 }
7458
7459 __extension__ extern __inline uint32x4_t
7460 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7461 vcvtq_u32_f32 (float32x4_t __a)
7462 {
7463 return (uint32x4_t)__builtin_neon_vcvtuv4sf (__a);
7464 }
7465
7466 #pragma GCC push_options
7467 #pragma GCC target ("fpu=neon-fp16")
7468 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
7469 __extension__ extern __inline float16x4_t
7470 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7471 vcvt_f16_f32 (float32x4_t __a)
7472 {
7473 return (float16x4_t)__builtin_neon_vcvtv4hfv4sf (__a);
7474 }
7475 #endif
7476
7477 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
7478 __extension__ extern __inline float32x4_t
7479 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7480 vcvt_f32_f16 (float16x4_t __a)
7481 {
7482 return (float32x4_t)__builtin_neon_vcvtv4sfv4hf (__a);
7483 }
7484 #endif
7485 #pragma GCC pop_options
7486
7487 __extension__ extern __inline int32x2_t
7488 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7489 vcvt_n_s32_f32 (float32x2_t __a, const int __b)
7490 {
7491 return (int32x2_t)__builtin_neon_vcvts_nv2sf (__a, __b);
7492 }
7493
7494 __extension__ extern __inline float32x2_t
7495 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7496 vcvt_n_f32_s32 (int32x2_t __a, const int __b)
7497 {
7498 return (float32x2_t)__builtin_neon_vcvts_nv2si (__a, __b);
7499 }
7500
7501 __extension__ extern __inline float32x2_t
7502 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7503 vcvt_n_f32_u32 (uint32x2_t __a, const int __b)
7504 {
7505 return (float32x2_t)__builtin_neon_vcvtu_nv2si ((int32x2_t) __a, __b);
7506 }
7507
7508 __extension__ extern __inline uint32x2_t
7509 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7510 vcvt_n_u32_f32 (float32x2_t __a, const int __b)
7511 {
7512 return (uint32x2_t)__builtin_neon_vcvtu_nv2sf (__a, __b);
7513 }
7514
7515 __extension__ extern __inline int32x4_t
7516 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7517 vcvtq_n_s32_f32 (float32x4_t __a, const int __b)
7518 {
7519 return (int32x4_t)__builtin_neon_vcvts_nv4sf (__a, __b);
7520 }
7521
7522 __extension__ extern __inline float32x4_t
7523 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7524 vcvtq_n_f32_s32 (int32x4_t __a, const int __b)
7525 {
7526 return (float32x4_t)__builtin_neon_vcvts_nv4si (__a, __b);
7527 }
7528
7529 __extension__ extern __inline float32x4_t
7530 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7531 vcvtq_n_f32_u32 (uint32x4_t __a, const int __b)
7532 {
7533 return (float32x4_t)__builtin_neon_vcvtu_nv4si ((int32x4_t) __a, __b);
7534 }
7535
7536 __extension__ extern __inline uint32x4_t
7537 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7538 vcvtq_n_u32_f32 (float32x4_t __a, const int __b)
7539 {
7540 return (uint32x4_t)__builtin_neon_vcvtu_nv4sf (__a, __b);
7541 }
7542
7543 __extension__ extern __inline int8x8_t
7544 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7545 vmovn_s16 (int16x8_t __a)
7546 {
7547 return (int8x8_t)__builtin_neon_vmovnv8hi (__a);
7548 }
7549
7550 __extension__ extern __inline int16x4_t
7551 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7552 vmovn_s32 (int32x4_t __a)
7553 {
7554 return (int16x4_t)__builtin_neon_vmovnv4si (__a);
7555 }
7556
7557 __extension__ extern __inline int32x2_t
7558 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7559 vmovn_s64 (int64x2_t __a)
7560 {
7561 return (int32x2_t)__builtin_neon_vmovnv2di (__a);
7562 }
7563
7564 __extension__ extern __inline uint8x8_t
7565 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7566 vmovn_u16 (uint16x8_t __a)
7567 {
7568 return (uint8x8_t)__builtin_neon_vmovnv8hi ((int16x8_t) __a);
7569 }
7570
7571 __extension__ extern __inline uint16x4_t
7572 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7573 vmovn_u32 (uint32x4_t __a)
7574 {
7575 return (uint16x4_t)__builtin_neon_vmovnv4si ((int32x4_t) __a);
7576 }
7577
7578 __extension__ extern __inline uint32x2_t
7579 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7580 vmovn_u64 (uint64x2_t __a)
7581 {
7582 return (uint32x2_t)__builtin_neon_vmovnv2di ((int64x2_t) __a);
7583 }
7584
7585 __extension__ extern __inline int8x8_t
7586 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7587 vqmovn_s16 (int16x8_t __a)
7588 {
7589 return (int8x8_t)__builtin_neon_vqmovnsv8hi (__a);
7590 }
7591
7592 __extension__ extern __inline int16x4_t
7593 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7594 vqmovn_s32 (int32x4_t __a)
7595 {
7596 return (int16x4_t)__builtin_neon_vqmovnsv4si (__a);
7597 }
7598
7599 __extension__ extern __inline int32x2_t
7600 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7601 vqmovn_s64 (int64x2_t __a)
7602 {
7603 return (int32x2_t)__builtin_neon_vqmovnsv2di (__a);
7604 }
7605
7606 __extension__ extern __inline uint8x8_t
7607 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7608 vqmovn_u16 (uint16x8_t __a)
7609 {
7610 return (uint8x8_t)__builtin_neon_vqmovnuv8hi ((int16x8_t) __a);
7611 }
7612
7613 __extension__ extern __inline uint16x4_t
7614 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7615 vqmovn_u32 (uint32x4_t __a)
7616 {
7617 return (uint16x4_t)__builtin_neon_vqmovnuv4si ((int32x4_t) __a);
7618 }
7619
7620 __extension__ extern __inline uint32x2_t
7621 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7622 vqmovn_u64 (uint64x2_t __a)
7623 {
7624 return (uint32x2_t)__builtin_neon_vqmovnuv2di ((int64x2_t) __a);
7625 }
7626
7627 __extension__ extern __inline uint8x8_t
7628 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7629 vqmovun_s16 (int16x8_t __a)
7630 {
7631 return (uint8x8_t)__builtin_neon_vqmovunv8hi (__a);
7632 }
7633
7634 __extension__ extern __inline uint16x4_t
7635 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7636 vqmovun_s32 (int32x4_t __a)
7637 {
7638 return (uint16x4_t)__builtin_neon_vqmovunv4si (__a);
7639 }
7640
7641 __extension__ extern __inline uint32x2_t
7642 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7643 vqmovun_s64 (int64x2_t __a)
7644 {
7645 return (uint32x2_t)__builtin_neon_vqmovunv2di (__a);
7646 }
7647
7648 __extension__ extern __inline int16x8_t
7649 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7650 vmovl_s8 (int8x8_t __a)
7651 {
7652 return (int16x8_t)__builtin_neon_vmovlsv8qi (__a);
7653 }
7654
7655 __extension__ extern __inline int32x4_t
7656 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7657 vmovl_s16 (int16x4_t __a)
7658 {
7659 return (int32x4_t)__builtin_neon_vmovlsv4hi (__a);
7660 }
7661
7662 __extension__ extern __inline int64x2_t
7663 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7664 vmovl_s32 (int32x2_t __a)
7665 {
7666 return (int64x2_t)__builtin_neon_vmovlsv2si (__a);
7667 }
7668
7669 __extension__ extern __inline uint16x8_t
7670 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7671 vmovl_u8 (uint8x8_t __a)
7672 {
7673 return (uint16x8_t)__builtin_neon_vmovluv8qi ((int8x8_t) __a);
7674 }
7675
7676 __extension__ extern __inline uint32x4_t
7677 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7678 vmovl_u16 (uint16x4_t __a)
7679 {
7680 return (uint32x4_t)__builtin_neon_vmovluv4hi ((int16x4_t) __a);
7681 }
7682
7683 __extension__ extern __inline uint64x2_t
7684 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7685 vmovl_u32 (uint32x2_t __a)
7686 {
7687 return (uint64x2_t)__builtin_neon_vmovluv2si ((int32x2_t) __a);
7688 }
7689
7690 __extension__ extern __inline int8x8_t
7691 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7692 vtbl1_s8 (int8x8_t __a, int8x8_t __b)
7693 {
7694 return (int8x8_t)__builtin_neon_vtbl1v8qi (__a, __b);
7695 }
7696
7697 __extension__ extern __inline uint8x8_t
7698 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7699 vtbl1_u8 (uint8x8_t __a, uint8x8_t __b)
7700 {
7701 return (uint8x8_t)__builtin_neon_vtbl1v8qi ((int8x8_t) __a, (int8x8_t) __b);
7702 }
7703
7704 __extension__ extern __inline poly8x8_t
7705 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7706 vtbl1_p8 (poly8x8_t __a, uint8x8_t __b)
7707 {
7708 return (poly8x8_t)__builtin_neon_vtbl1v8qi ((int8x8_t) __a, (int8x8_t) __b);
7709 }
7710
7711 __extension__ extern __inline int8x8_t
7712 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7713 vtbl2_s8 (int8x8x2_t __a, int8x8_t __b)
7714 {
7715 union { int8x8x2_t __i; __builtin_neon_ti __o; } __au = { __a };
7716 return (int8x8_t)__builtin_neon_vtbl2v8qi (__au.__o, __b);
7717 }
7718
7719 __extension__ extern __inline uint8x8_t
7720 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7721 vtbl2_u8 (uint8x8x2_t __a, uint8x8_t __b)
7722 {
7723 union { uint8x8x2_t __i; __builtin_neon_ti __o; } __au = { __a };
7724 return (uint8x8_t)__builtin_neon_vtbl2v8qi (__au.__o, (int8x8_t) __b);
7725 }
7726
7727 __extension__ extern __inline poly8x8_t
7728 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7729 vtbl2_p8 (poly8x8x2_t __a, uint8x8_t __b)
7730 {
7731 union { poly8x8x2_t __i; __builtin_neon_ti __o; } __au = { __a };
7732 return (poly8x8_t)__builtin_neon_vtbl2v8qi (__au.__o, (int8x8_t) __b);
7733 }
7734
7735 __extension__ extern __inline int8x8_t
7736 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7737 vtbl3_s8 (int8x8x3_t __a, int8x8_t __b)
7738 {
7739 union { int8x8x3_t __i; __builtin_neon_ei __o; } __au = { __a };
7740 return (int8x8_t)__builtin_neon_vtbl3v8qi (__au.__o, __b);
7741 }
7742
7743 __extension__ extern __inline uint8x8_t
7744 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7745 vtbl3_u8 (uint8x8x3_t __a, uint8x8_t __b)
7746 {
7747 union { uint8x8x3_t __i; __builtin_neon_ei __o; } __au = { __a };
7748 return (uint8x8_t)__builtin_neon_vtbl3v8qi (__au.__o, (int8x8_t) __b);
7749 }
7750
7751 __extension__ extern __inline poly8x8_t
7752 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7753 vtbl3_p8 (poly8x8x3_t __a, uint8x8_t __b)
7754 {
7755 union { poly8x8x3_t __i; __builtin_neon_ei __o; } __au = { __a };
7756 return (poly8x8_t)__builtin_neon_vtbl3v8qi (__au.__o, (int8x8_t) __b);
7757 }
7758
7759 __extension__ extern __inline int8x8_t
7760 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7761 vtbl4_s8 (int8x8x4_t __a, int8x8_t __b)
7762 {
7763 union { int8x8x4_t __i; __builtin_neon_oi __o; } __au = { __a };
7764 return (int8x8_t)__builtin_neon_vtbl4v8qi (__au.__o, __b);
7765 }
7766
7767 __extension__ extern __inline uint8x8_t
7768 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7769 vtbl4_u8 (uint8x8x4_t __a, uint8x8_t __b)
7770 {
7771 union { uint8x8x4_t __i; __builtin_neon_oi __o; } __au = { __a };
7772 return (uint8x8_t)__builtin_neon_vtbl4v8qi (__au.__o, (int8x8_t) __b);
7773 }
7774
7775 __extension__ extern __inline poly8x8_t
7776 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7777 vtbl4_p8 (poly8x8x4_t __a, uint8x8_t __b)
7778 {
7779 union { poly8x8x4_t __i; __builtin_neon_oi __o; } __au = { __a };
7780 return (poly8x8_t)__builtin_neon_vtbl4v8qi (__au.__o, (int8x8_t) __b);
7781 }
7782
7783 __extension__ extern __inline int8x8_t
7784 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7785 vtbx1_s8 (int8x8_t __a, int8x8_t __b, int8x8_t __c)
7786 {
7787 return (int8x8_t)__builtin_neon_vtbx1v8qi (__a, __b, __c);
7788 }
7789
7790 __extension__ extern __inline uint8x8_t
7791 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7792 vtbx1_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c)
7793 {
7794 return (uint8x8_t)__builtin_neon_vtbx1v8qi ((int8x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
7795 }
7796
7797 __extension__ extern __inline poly8x8_t
7798 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7799 vtbx1_p8 (poly8x8_t __a, poly8x8_t __b, uint8x8_t __c)
7800 {
7801 return (poly8x8_t)__builtin_neon_vtbx1v8qi ((int8x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
7802 }
7803
7804 __extension__ extern __inline int8x8_t
7805 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7806 vtbx2_s8 (int8x8_t __a, int8x8x2_t __b, int8x8_t __c)
7807 {
7808 union { int8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
7809 return (int8x8_t)__builtin_neon_vtbx2v8qi (__a, __bu.__o, __c);
7810 }
7811
7812 __extension__ extern __inline uint8x8_t
7813 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7814 vtbx2_u8 (uint8x8_t __a, uint8x8x2_t __b, uint8x8_t __c)
7815 {
7816 union { uint8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
7817 return (uint8x8_t)__builtin_neon_vtbx2v8qi ((int8x8_t) __a, __bu.__o, (int8x8_t) __c);
7818 }
7819
7820 __extension__ extern __inline poly8x8_t
7821 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7822 vtbx2_p8 (poly8x8_t __a, poly8x8x2_t __b, uint8x8_t __c)
7823 {
7824 union { poly8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
7825 return (poly8x8_t)__builtin_neon_vtbx2v8qi ((int8x8_t) __a, __bu.__o, (int8x8_t) __c);
7826 }
7827
7828 __extension__ extern __inline int8x8_t
7829 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7830 vtbx3_s8 (int8x8_t __a, int8x8x3_t __b, int8x8_t __c)
7831 {
7832 union { int8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
7833 return (int8x8_t)__builtin_neon_vtbx3v8qi (__a, __bu.__o, __c);
7834 }
7835
7836 __extension__ extern __inline uint8x8_t
7837 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7838 vtbx3_u8 (uint8x8_t __a, uint8x8x3_t __b, uint8x8_t __c)
7839 {
7840 union { uint8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
7841 return (uint8x8_t)__builtin_neon_vtbx3v8qi ((int8x8_t) __a, __bu.__o, (int8x8_t) __c);
7842 }
7843
7844 __extension__ extern __inline poly8x8_t
7845 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7846 vtbx3_p8 (poly8x8_t __a, poly8x8x3_t __b, uint8x8_t __c)
7847 {
7848 union { poly8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
7849 return (poly8x8_t)__builtin_neon_vtbx3v8qi ((int8x8_t) __a, __bu.__o, (int8x8_t) __c);
7850 }
7851
7852 __extension__ extern __inline int8x8_t
7853 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7854 vtbx4_s8 (int8x8_t __a, int8x8x4_t __b, int8x8_t __c)
7855 {
7856 union { int8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
7857 return (int8x8_t)__builtin_neon_vtbx4v8qi (__a, __bu.__o, __c);
7858 }
7859
7860 __extension__ extern __inline uint8x8_t
7861 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7862 vtbx4_u8 (uint8x8_t __a, uint8x8x4_t __b, uint8x8_t __c)
7863 {
7864 union { uint8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
7865 return (uint8x8_t)__builtin_neon_vtbx4v8qi ((int8x8_t) __a, __bu.__o, (int8x8_t) __c);
7866 }
7867
7868 __extension__ extern __inline poly8x8_t
7869 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7870 vtbx4_p8 (poly8x8_t __a, poly8x8x4_t __b, uint8x8_t __c)
7871 {
7872 union { poly8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
7873 return (poly8x8_t)__builtin_neon_vtbx4v8qi ((int8x8_t) __a, __bu.__o, (int8x8_t) __c);
7874 }
7875
7876 __extension__ extern __inline int16x4_t
7877 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7878 vmul_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c)
7879 {
7880 return (int16x4_t)__builtin_neon_vmul_lanev4hi (__a, __b, __c);
7881 }
7882
7883 __extension__ extern __inline int32x2_t
7884 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7885 vmul_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c)
7886 {
7887 return (int32x2_t)__builtin_neon_vmul_lanev2si (__a, __b, __c);
7888 }
7889
7890 __extension__ extern __inline float32x2_t
7891 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7892 vmul_lane_f32 (float32x2_t __a, float32x2_t __b, const int __c)
7893 {
7894 return (float32x2_t)__builtin_neon_vmul_lanev2sf (__a, __b, __c);
7895 }
7896
7897 __extension__ extern __inline uint16x4_t
7898 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7899 vmul_lane_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
7900 {
7901 return (uint16x4_t)__builtin_neon_vmul_lanev4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
7902 }
7903
7904 __extension__ extern __inline uint32x2_t
7905 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7906 vmul_lane_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
7907 {
7908 return (uint32x2_t)__builtin_neon_vmul_lanev2si ((int32x2_t) __a, (int32x2_t) __b, __c);
7909 }
7910
7911 __extension__ extern __inline int16x8_t
7912 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7913 vmulq_lane_s16 (int16x8_t __a, int16x4_t __b, const int __c)
7914 {
7915 return (int16x8_t)__builtin_neon_vmul_lanev8hi (__a, __b, __c);
7916 }
7917
7918 __extension__ extern __inline int32x4_t
7919 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7920 vmulq_lane_s32 (int32x4_t __a, int32x2_t __b, const int __c)
7921 {
7922 return (int32x4_t)__builtin_neon_vmul_lanev4si (__a, __b, __c);
7923 }
7924
7925 __extension__ extern __inline float32x4_t
7926 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7927 vmulq_lane_f32 (float32x4_t __a, float32x2_t __b, const int __c)
7928 {
7929 return (float32x4_t)__builtin_neon_vmul_lanev4sf (__a, __b, __c);
7930 }
7931
7932 __extension__ extern __inline uint16x8_t
7933 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7934 vmulq_lane_u16 (uint16x8_t __a, uint16x4_t __b, const int __c)
7935 {
7936 return (uint16x8_t)__builtin_neon_vmul_lanev8hi ((int16x8_t) __a, (int16x4_t) __b, __c);
7937 }
7938
7939 __extension__ extern __inline uint32x4_t
7940 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7941 vmulq_lane_u32 (uint32x4_t __a, uint32x2_t __b, const int __c)
7942 {
7943 return (uint32x4_t)__builtin_neon_vmul_lanev4si ((int32x4_t) __a, (int32x2_t) __b, __c);
7944 }
7945
7946 __extension__ extern __inline int16x4_t
7947 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7948 vmla_lane_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
7949 {
7950 return (int16x4_t)__builtin_neon_vmla_lanev4hi (__a, __b, __c, __d);
7951 }
7952
7953 __extension__ extern __inline int32x2_t
7954 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7955 vmla_lane_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
7956 {
7957 return (int32x2_t)__builtin_neon_vmla_lanev2si (__a, __b, __c, __d);
7958 }
7959
7960 __extension__ extern __inline float32x2_t
7961 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7962 vmla_lane_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c, const int __d)
7963 {
7964 return (float32x2_t)__builtin_neon_vmla_lanev2sf (__a, __b, __c, __d);
7965 }
7966
7967 __extension__ extern __inline uint16x4_t
7968 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7969 vmla_lane_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c, const int __d)
7970 {
7971 return (uint16x4_t)__builtin_neon_vmla_lanev4hi ((int16x4_t) __a, (int16x4_t) __b, (int16x4_t) __c, __d);
7972 }
7973
7974 __extension__ extern __inline uint32x2_t
7975 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7976 vmla_lane_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c, const int __d)
7977 {
7978 return (uint32x2_t)__builtin_neon_vmla_lanev2si ((int32x2_t) __a, (int32x2_t) __b, (int32x2_t) __c, __d);
7979 }
7980
7981 __extension__ extern __inline int16x8_t
7982 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7983 vmlaq_lane_s16 (int16x8_t __a, int16x8_t __b, int16x4_t __c, const int __d)
7984 {
7985 return (int16x8_t)__builtin_neon_vmla_lanev8hi (__a, __b, __c, __d);
7986 }
7987
7988 __extension__ extern __inline int32x4_t
7989 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7990 vmlaq_lane_s32 (int32x4_t __a, int32x4_t __b, int32x2_t __c, const int __d)
7991 {
7992 return (int32x4_t)__builtin_neon_vmla_lanev4si (__a, __b, __c, __d);
7993 }
7994
7995 __extension__ extern __inline float32x4_t
7996 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7997 vmlaq_lane_f32 (float32x4_t __a, float32x4_t __b, float32x2_t __c, const int __d)
7998 {
7999 return (float32x4_t)__builtin_neon_vmla_lanev4sf (__a, __b, __c, __d);
8000 }
8001
8002 __extension__ extern __inline uint16x8_t
8003 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8004 vmlaq_lane_u16 (uint16x8_t __a, uint16x8_t __b, uint16x4_t __c, const int __d)
8005 {
8006 return (uint16x8_t)__builtin_neon_vmla_lanev8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x4_t) __c, __d);
8007 }
8008
8009 __extension__ extern __inline uint32x4_t
8010 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8011 vmlaq_lane_u32 (uint32x4_t __a, uint32x4_t __b, uint32x2_t __c, const int __d)
8012 {
8013 return (uint32x4_t)__builtin_neon_vmla_lanev4si ((int32x4_t) __a, (int32x4_t) __b, (int32x2_t) __c, __d);
8014 }
8015
8016 __extension__ extern __inline int32x4_t
8017 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8018 vmlal_lane_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
8019 {
8020 return (int32x4_t)__builtin_neon_vmlals_lanev4hi (__a, __b, __c, __d);
8021 }
8022
8023 __extension__ extern __inline int64x2_t
8024 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8025 vmlal_lane_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
8026 {
8027 return (int64x2_t)__builtin_neon_vmlals_lanev2si (__a, __b, __c, __d);
8028 }
8029
8030 __extension__ extern __inline uint32x4_t
8031 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8032 vmlal_lane_u16 (uint32x4_t __a, uint16x4_t __b, uint16x4_t __c, const int __d)
8033 {
8034 return (uint32x4_t)__builtin_neon_vmlalu_lanev4hi ((int32x4_t) __a, (int16x4_t) __b, (int16x4_t) __c, __d);
8035 }
8036
8037 __extension__ extern __inline uint64x2_t
8038 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8039 vmlal_lane_u32 (uint64x2_t __a, uint32x2_t __b, uint32x2_t __c, const int __d)
8040 {
8041 return (uint64x2_t)__builtin_neon_vmlalu_lanev2si ((int64x2_t) __a, (int32x2_t) __b, (int32x2_t) __c, __d);
8042 }
8043
8044 __extension__ extern __inline int32x4_t
8045 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8046 vqdmlal_lane_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
8047 {
8048 return (int32x4_t)__builtin_neon_vqdmlal_lanev4hi (__a, __b, __c, __d);
8049 }
8050
8051 __extension__ extern __inline int64x2_t
8052 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8053 vqdmlal_lane_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
8054 {
8055 return (int64x2_t)__builtin_neon_vqdmlal_lanev2si (__a, __b, __c, __d);
8056 }
8057
8058 __extension__ extern __inline int16x4_t
8059 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8060 vmls_lane_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
8061 {
8062 return (int16x4_t)__builtin_neon_vmls_lanev4hi (__a, __b, __c, __d);
8063 }
8064
8065 __extension__ extern __inline int32x2_t
8066 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8067 vmls_lane_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
8068 {
8069 return (int32x2_t)__builtin_neon_vmls_lanev2si (__a, __b, __c, __d);
8070 }
8071
8072 __extension__ extern __inline float32x2_t
8073 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8074 vmls_lane_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c, const int __d)
8075 {
8076 return (float32x2_t)__builtin_neon_vmls_lanev2sf (__a, __b, __c, __d);
8077 }
8078
8079 __extension__ extern __inline uint16x4_t
8080 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8081 vmls_lane_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c, const int __d)
8082 {
8083 return (uint16x4_t)__builtin_neon_vmls_lanev4hi ((int16x4_t) __a, (int16x4_t) __b, (int16x4_t) __c, __d);
8084 }
8085
8086 __extension__ extern __inline uint32x2_t
8087 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8088 vmls_lane_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c, const int __d)
8089 {
8090 return (uint32x2_t)__builtin_neon_vmls_lanev2si ((int32x2_t) __a, (int32x2_t) __b, (int32x2_t) __c, __d);
8091 }
8092
8093 __extension__ extern __inline int16x8_t
8094 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8095 vmlsq_lane_s16 (int16x8_t __a, int16x8_t __b, int16x4_t __c, const int __d)
8096 {
8097 return (int16x8_t)__builtin_neon_vmls_lanev8hi (__a, __b, __c, __d);
8098 }
8099
8100 __extension__ extern __inline int32x4_t
8101 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8102 vmlsq_lane_s32 (int32x4_t __a, int32x4_t __b, int32x2_t __c, const int __d)
8103 {
8104 return (int32x4_t)__builtin_neon_vmls_lanev4si (__a, __b, __c, __d);
8105 }
8106
8107 __extension__ extern __inline float32x4_t
8108 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8109 vmlsq_lane_f32 (float32x4_t __a, float32x4_t __b, float32x2_t __c, const int __d)
8110 {
8111 return (float32x4_t)__builtin_neon_vmls_lanev4sf (__a, __b, __c, __d);
8112 }
8113
8114 __extension__ extern __inline uint16x8_t
8115 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8116 vmlsq_lane_u16 (uint16x8_t __a, uint16x8_t __b, uint16x4_t __c, const int __d)
8117 {
8118 return (uint16x8_t)__builtin_neon_vmls_lanev8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x4_t) __c, __d);
8119 }
8120
8121 __extension__ extern __inline uint32x4_t
8122 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8123 vmlsq_lane_u32 (uint32x4_t __a, uint32x4_t __b, uint32x2_t __c, const int __d)
8124 {
8125 return (uint32x4_t)__builtin_neon_vmls_lanev4si ((int32x4_t) __a, (int32x4_t) __b, (int32x2_t) __c, __d);
8126 }
8127
8128 __extension__ extern __inline int32x4_t
8129 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8130 vmlsl_lane_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
8131 {
8132 return (int32x4_t)__builtin_neon_vmlsls_lanev4hi (__a, __b, __c, __d);
8133 }
8134
8135 __extension__ extern __inline int64x2_t
8136 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8137 vmlsl_lane_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
8138 {
8139 return (int64x2_t)__builtin_neon_vmlsls_lanev2si (__a, __b, __c, __d);
8140 }
8141
8142 __extension__ extern __inline uint32x4_t
8143 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8144 vmlsl_lane_u16 (uint32x4_t __a, uint16x4_t __b, uint16x4_t __c, const int __d)
8145 {
8146 return (uint32x4_t)__builtin_neon_vmlslu_lanev4hi ((int32x4_t) __a, (int16x4_t) __b, (int16x4_t) __c, __d);
8147 }
8148
8149 __extension__ extern __inline uint64x2_t
8150 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8151 vmlsl_lane_u32 (uint64x2_t __a, uint32x2_t __b, uint32x2_t __c, const int __d)
8152 {
8153 return (uint64x2_t)__builtin_neon_vmlslu_lanev2si ((int64x2_t) __a, (int32x2_t) __b, (int32x2_t) __c, __d);
8154 }
8155
8156 __extension__ extern __inline int32x4_t
8157 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8158 vqdmlsl_lane_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
8159 {
8160 return (int32x4_t)__builtin_neon_vqdmlsl_lanev4hi (__a, __b, __c, __d);
8161 }
8162
8163 __extension__ extern __inline int64x2_t
8164 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8165 vqdmlsl_lane_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
8166 {
8167 return (int64x2_t)__builtin_neon_vqdmlsl_lanev2si (__a, __b, __c, __d);
8168 }
8169
8170 __extension__ extern __inline int32x4_t
8171 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8172 vmull_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c)
8173 {
8174 return (int32x4_t)__builtin_neon_vmulls_lanev4hi (__a, __b, __c);
8175 }
8176
8177 __extension__ extern __inline int64x2_t
8178 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8179 vmull_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c)
8180 {
8181 return (int64x2_t)__builtin_neon_vmulls_lanev2si (__a, __b, __c);
8182 }
8183
8184 __extension__ extern __inline uint32x4_t
8185 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8186 vmull_lane_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
8187 {
8188 return (uint32x4_t)__builtin_neon_vmullu_lanev4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
8189 }
8190
8191 __extension__ extern __inline uint64x2_t
8192 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8193 vmull_lane_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
8194 {
8195 return (uint64x2_t)__builtin_neon_vmullu_lanev2si ((int32x2_t) __a, (int32x2_t) __b, __c);
8196 }
8197
8198 __extension__ extern __inline int32x4_t
8199 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8200 vqdmull_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c)
8201 {
8202 return (int32x4_t)__builtin_neon_vqdmull_lanev4hi (__a, __b, __c);
8203 }
8204
8205 __extension__ extern __inline int64x2_t
8206 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8207 vqdmull_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c)
8208 {
8209 return (int64x2_t)__builtin_neon_vqdmull_lanev2si (__a, __b, __c);
8210 }
8211
8212 __extension__ extern __inline int16x8_t
8213 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8214 vqdmulhq_lane_s16 (int16x8_t __a, int16x4_t __b, const int __c)
8215 {
8216 return (int16x8_t)__builtin_neon_vqdmulh_lanev8hi (__a, __b, __c);
8217 }
8218
8219 __extension__ extern __inline int32x4_t
8220 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8221 vqdmulhq_lane_s32 (int32x4_t __a, int32x2_t __b, const int __c)
8222 {
8223 return (int32x4_t)__builtin_neon_vqdmulh_lanev4si (__a, __b, __c);
8224 }
8225
8226 __extension__ extern __inline int16x4_t
8227 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8228 vqdmulh_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c)
8229 {
8230 return (int16x4_t)__builtin_neon_vqdmulh_lanev4hi (__a, __b, __c);
8231 }
8232
8233 __extension__ extern __inline int32x2_t
8234 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8235 vqdmulh_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c)
8236 {
8237 return (int32x2_t)__builtin_neon_vqdmulh_lanev2si (__a, __b, __c);
8238 }
8239
8240 __extension__ extern __inline int16x8_t
8241 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8242 vqrdmulhq_lane_s16 (int16x8_t __a, int16x4_t __b, const int __c)
8243 {
8244 return (int16x8_t)__builtin_neon_vqrdmulh_lanev8hi (__a, __b, __c);
8245 }
8246
8247 __extension__ extern __inline int32x4_t
8248 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8249 vqrdmulhq_lane_s32 (int32x4_t __a, int32x2_t __b, const int __c)
8250 {
8251 return (int32x4_t)__builtin_neon_vqrdmulh_lanev4si (__a, __b, __c);
8252 }
8253
8254 __extension__ extern __inline int16x4_t
8255 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8256 vqrdmulh_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c)
8257 {
8258 return (int16x4_t)__builtin_neon_vqrdmulh_lanev4hi (__a, __b, __c);
8259 }
8260
8261 __extension__ extern __inline int32x2_t
8262 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8263 vqrdmulh_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c)
8264 {
8265 return (int32x2_t)__builtin_neon_vqrdmulh_lanev2si (__a, __b, __c);
8266 }
8267
8268 #ifdef __ARM_FEATURE_QRDMX
8269 __extension__ extern __inline int16x8_t
8270 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8271 vqrdmlahq_lane_s16 (int16x8_t __a, int16x8_t __b, int16x4_t __c, const int __d)
8272 {
8273 return (int16x8_t)__builtin_neon_vqrdmlah_lanev8hi (__a, __b, __c, __d);
8274 }
8275
8276 __extension__ extern __inline int32x4_t
8277 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8278 vqrdmlahq_lane_s32 (int32x4_t __a, int32x4_t __b, int32x2_t __c, const int __d)
8279 {
8280 return (int32x4_t)__builtin_neon_vqrdmlah_lanev4si (__a, __b, __c, __d);
8281 }
8282
8283 __extension__ extern __inline int16x4_t
8284 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8285 vqrdmlah_lane_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
8286 {
8287 return (int16x4_t)__builtin_neon_vqrdmlah_lanev4hi (__a, __b, __c, __d);
8288 }
8289
8290 __extension__ extern __inline int32x2_t
8291 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8292 vqrdmlah_lane_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
8293 {
8294 return (int32x2_t)__builtin_neon_vqrdmlah_lanev2si (__a, __b, __c, __d);
8295 }
8296
8297 __extension__ extern __inline int16x8_t
8298 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8299 vqrdmlshq_lane_s16 (int16x8_t __a, int16x8_t __b, int16x4_t __c, const int __d)
8300 {
8301 return (int16x8_t)__builtin_neon_vqrdmlsh_lanev8hi (__a, __b, __c, __d);
8302 }
8303
8304 __extension__ extern __inline int32x4_t
8305 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8306 vqrdmlshq_lane_s32 (int32x4_t __a, int32x4_t __b, int32x2_t __c, const int __d)
8307 {
8308 return (int32x4_t)__builtin_neon_vqrdmlsh_lanev4si (__a, __b, __c, __d);
8309 }
8310
8311 __extension__ extern __inline int16x4_t
8312 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8313 vqrdmlsh_lane_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
8314 {
8315 return (int16x4_t)__builtin_neon_vqrdmlsh_lanev4hi (__a, __b, __c, __d);
8316 }
8317
8318 __extension__ extern __inline int32x2_t
8319 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8320 vqrdmlsh_lane_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
8321 {
8322 return (int32x2_t)__builtin_neon_vqrdmlsh_lanev2si (__a, __b, __c, __d);
8323 }
8324 #endif
8325
8326 __extension__ extern __inline int16x4_t
8327 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8328 vmul_n_s16 (int16x4_t __a, int16_t __b)
8329 {
8330 return (int16x4_t)__builtin_neon_vmul_nv4hi (__a, (__builtin_neon_hi) __b);
8331 }
8332
8333 __extension__ extern __inline int32x2_t
8334 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8335 vmul_n_s32 (int32x2_t __a, int32_t __b)
8336 {
8337 return (int32x2_t)__builtin_neon_vmul_nv2si (__a, (__builtin_neon_si) __b);
8338 }
8339
8340 __extension__ extern __inline float32x2_t
8341 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8342 vmul_n_f32 (float32x2_t __a, float32_t __b)
8343 {
8344 return (float32x2_t)__builtin_neon_vmul_nv2sf (__a, (__builtin_neon_sf) __b);
8345 }
8346
8347 __extension__ extern __inline uint16x4_t
8348 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8349 vmul_n_u16 (uint16x4_t __a, uint16_t __b)
8350 {
8351 return (uint16x4_t)__builtin_neon_vmul_nv4hi ((int16x4_t) __a, (__builtin_neon_hi) __b);
8352 }
8353
8354 __extension__ extern __inline uint32x2_t
8355 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8356 vmul_n_u32 (uint32x2_t __a, uint32_t __b)
8357 {
8358 return (uint32x2_t)__builtin_neon_vmul_nv2si ((int32x2_t) __a, (__builtin_neon_si) __b);
8359 }
8360
8361 __extension__ extern __inline int16x8_t
8362 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8363 vmulq_n_s16 (int16x8_t __a, int16_t __b)
8364 {
8365 return (int16x8_t)__builtin_neon_vmul_nv8hi (__a, (__builtin_neon_hi) __b);
8366 }
8367
8368 __extension__ extern __inline int32x4_t
8369 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8370 vmulq_n_s32 (int32x4_t __a, int32_t __b)
8371 {
8372 return (int32x4_t)__builtin_neon_vmul_nv4si (__a, (__builtin_neon_si) __b);
8373 }
8374
8375 __extension__ extern __inline float32x4_t
8376 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8377 vmulq_n_f32 (float32x4_t __a, float32_t __b)
8378 {
8379 return (float32x4_t)__builtin_neon_vmul_nv4sf (__a, (__builtin_neon_sf) __b);
8380 }
8381
8382 __extension__ extern __inline uint16x8_t
8383 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8384 vmulq_n_u16 (uint16x8_t __a, uint16_t __b)
8385 {
8386 return (uint16x8_t)__builtin_neon_vmul_nv8hi ((int16x8_t) __a, (__builtin_neon_hi) __b);
8387 }
8388
8389 __extension__ extern __inline uint32x4_t
8390 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8391 vmulq_n_u32 (uint32x4_t __a, uint32_t __b)
8392 {
8393 return (uint32x4_t)__builtin_neon_vmul_nv4si ((int32x4_t) __a, (__builtin_neon_si) __b);
8394 }
8395
8396 __extension__ extern __inline int32x4_t
8397 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8398 vmull_n_s16 (int16x4_t __a, int16_t __b)
8399 {
8400 return (int32x4_t)__builtin_neon_vmulls_nv4hi (__a, (__builtin_neon_hi) __b);
8401 }
8402
8403 __extension__ extern __inline int64x2_t
8404 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8405 vmull_n_s32 (int32x2_t __a, int32_t __b)
8406 {
8407 return (int64x2_t)__builtin_neon_vmulls_nv2si (__a, (__builtin_neon_si) __b);
8408 }
8409
8410 __extension__ extern __inline uint32x4_t
8411 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8412 vmull_n_u16 (uint16x4_t __a, uint16_t __b)
8413 {
8414 return (uint32x4_t)__builtin_neon_vmullu_nv4hi ((int16x4_t) __a, (__builtin_neon_hi) __b);
8415 }
8416
8417 __extension__ extern __inline uint64x2_t
8418 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8419 vmull_n_u32 (uint32x2_t __a, uint32_t __b)
8420 {
8421 return (uint64x2_t)__builtin_neon_vmullu_nv2si ((int32x2_t) __a, (__builtin_neon_si) __b);
8422 }
8423
8424 __extension__ extern __inline int32x4_t
8425 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8426 vqdmull_n_s16 (int16x4_t __a, int16_t __b)
8427 {
8428 return (int32x4_t)__builtin_neon_vqdmull_nv4hi (__a, (__builtin_neon_hi) __b);
8429 }
8430
8431 __extension__ extern __inline int64x2_t
8432 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8433 vqdmull_n_s32 (int32x2_t __a, int32_t __b)
8434 {
8435 return (int64x2_t)__builtin_neon_vqdmull_nv2si (__a, (__builtin_neon_si) __b);
8436 }
8437
8438 __extension__ extern __inline int16x8_t
8439 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8440 vqdmulhq_n_s16 (int16x8_t __a, int16_t __b)
8441 {
8442 return (int16x8_t)__builtin_neon_vqdmulh_nv8hi (__a, (__builtin_neon_hi) __b);
8443 }
8444
8445 __extension__ extern __inline int32x4_t
8446 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8447 vqdmulhq_n_s32 (int32x4_t __a, int32_t __b)
8448 {
8449 return (int32x4_t)__builtin_neon_vqdmulh_nv4si (__a, (__builtin_neon_si) __b);
8450 }
8451
8452 __extension__ extern __inline int16x4_t
8453 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8454 vqdmulh_n_s16 (int16x4_t __a, int16_t __b)
8455 {
8456 return (int16x4_t)__builtin_neon_vqdmulh_nv4hi (__a, (__builtin_neon_hi) __b);
8457 }
8458
8459 __extension__ extern __inline int32x2_t
8460 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8461 vqdmulh_n_s32 (int32x2_t __a, int32_t __b)
8462 {
8463 return (int32x2_t)__builtin_neon_vqdmulh_nv2si (__a, (__builtin_neon_si) __b);
8464 }
8465
8466 __extension__ extern __inline int16x8_t
8467 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8468 vqrdmulhq_n_s16 (int16x8_t __a, int16_t __b)
8469 {
8470 return (int16x8_t)__builtin_neon_vqrdmulh_nv8hi (__a, (__builtin_neon_hi) __b);
8471 }
8472
8473 __extension__ extern __inline int32x4_t
8474 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8475 vqrdmulhq_n_s32 (int32x4_t __a, int32_t __b)
8476 {
8477 return (int32x4_t)__builtin_neon_vqrdmulh_nv4si (__a, (__builtin_neon_si) __b);
8478 }
8479
8480 __extension__ extern __inline int16x4_t
8481 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8482 vqrdmulh_n_s16 (int16x4_t __a, int16_t __b)
8483 {
8484 return (int16x4_t)__builtin_neon_vqrdmulh_nv4hi (__a, (__builtin_neon_hi) __b);
8485 }
8486
8487 __extension__ extern __inline int32x2_t
8488 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8489 vqrdmulh_n_s32 (int32x2_t __a, int32_t __b)
8490 {
8491 return (int32x2_t)__builtin_neon_vqrdmulh_nv2si (__a, (__builtin_neon_si) __b);
8492 }
8493
8494 __extension__ extern __inline int16x4_t
8495 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8496 vmla_n_s16 (int16x4_t __a, int16x4_t __b, int16_t __c)
8497 {
8498 return (int16x4_t)__builtin_neon_vmla_nv4hi (__a, __b, (__builtin_neon_hi) __c);
8499 }
8500
8501 __extension__ extern __inline int32x2_t
8502 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8503 vmla_n_s32 (int32x2_t __a, int32x2_t __b, int32_t __c)
8504 {
8505 return (int32x2_t)__builtin_neon_vmla_nv2si (__a, __b, (__builtin_neon_si) __c);
8506 }
8507
8508 __extension__ extern __inline float32x2_t
8509 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8510 vmla_n_f32 (float32x2_t __a, float32x2_t __b, float32_t __c)
8511 {
8512 return (float32x2_t)__builtin_neon_vmla_nv2sf (__a, __b, (__builtin_neon_sf) __c);
8513 }
8514
8515 __extension__ extern __inline uint16x4_t
8516 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8517 vmla_n_u16 (uint16x4_t __a, uint16x4_t __b, uint16_t __c)
8518 {
8519 return (uint16x4_t)__builtin_neon_vmla_nv4hi ((int16x4_t) __a, (int16x4_t) __b, (__builtin_neon_hi) __c);
8520 }
8521
8522 __extension__ extern __inline uint32x2_t
8523 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8524 vmla_n_u32 (uint32x2_t __a, uint32x2_t __b, uint32_t __c)
8525 {
8526 return (uint32x2_t)__builtin_neon_vmla_nv2si ((int32x2_t) __a, (int32x2_t) __b, (__builtin_neon_si) __c);
8527 }
8528
8529 __extension__ extern __inline int16x8_t
8530 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8531 vmlaq_n_s16 (int16x8_t __a, int16x8_t __b, int16_t __c)
8532 {
8533 return (int16x8_t)__builtin_neon_vmla_nv8hi (__a, __b, (__builtin_neon_hi) __c);
8534 }
8535
8536 __extension__ extern __inline int32x4_t
8537 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8538 vmlaq_n_s32 (int32x4_t __a, int32x4_t __b, int32_t __c)
8539 {
8540 return (int32x4_t)__builtin_neon_vmla_nv4si (__a, __b, (__builtin_neon_si) __c);
8541 }
8542
8543 __extension__ extern __inline float32x4_t
8544 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8545 vmlaq_n_f32 (float32x4_t __a, float32x4_t __b, float32_t __c)
8546 {
8547 return (float32x4_t)__builtin_neon_vmla_nv4sf (__a, __b, (__builtin_neon_sf) __c);
8548 }
8549
8550 __extension__ extern __inline uint16x8_t
8551 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8552 vmlaq_n_u16 (uint16x8_t __a, uint16x8_t __b, uint16_t __c)
8553 {
8554 return (uint16x8_t)__builtin_neon_vmla_nv8hi ((int16x8_t) __a, (int16x8_t) __b, (__builtin_neon_hi) __c);
8555 }
8556
8557 __extension__ extern __inline uint32x4_t
8558 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8559 vmlaq_n_u32 (uint32x4_t __a, uint32x4_t __b, uint32_t __c)
8560 {
8561 return (uint32x4_t)__builtin_neon_vmla_nv4si ((int32x4_t) __a, (int32x4_t) __b, (__builtin_neon_si) __c);
8562 }
8563
8564 __extension__ extern __inline int32x4_t
8565 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8566 vmlal_n_s16 (int32x4_t __a, int16x4_t __b, int16_t __c)
8567 {
8568 return (int32x4_t)__builtin_neon_vmlals_nv4hi (__a, __b, (__builtin_neon_hi) __c);
8569 }
8570
8571 __extension__ extern __inline int64x2_t
8572 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8573 vmlal_n_s32 (int64x2_t __a, int32x2_t __b, int32_t __c)
8574 {
8575 return (int64x2_t)__builtin_neon_vmlals_nv2si (__a, __b, (__builtin_neon_si) __c);
8576 }
8577
8578 __extension__ extern __inline uint32x4_t
8579 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8580 vmlal_n_u16 (uint32x4_t __a, uint16x4_t __b, uint16_t __c)
8581 {
8582 return (uint32x4_t)__builtin_neon_vmlalu_nv4hi ((int32x4_t) __a, (int16x4_t) __b, (__builtin_neon_hi) __c);
8583 }
8584
8585 __extension__ extern __inline uint64x2_t
8586 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8587 vmlal_n_u32 (uint64x2_t __a, uint32x2_t __b, uint32_t __c)
8588 {
8589 return (uint64x2_t)__builtin_neon_vmlalu_nv2si ((int64x2_t) __a, (int32x2_t) __b, (__builtin_neon_si) __c);
8590 }
8591
8592 __extension__ extern __inline int32x4_t
8593 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8594 vqdmlal_n_s16 (int32x4_t __a, int16x4_t __b, int16_t __c)
8595 {
8596 return (int32x4_t)__builtin_neon_vqdmlal_nv4hi (__a, __b, (__builtin_neon_hi) __c);
8597 }
8598
8599 __extension__ extern __inline int64x2_t
8600 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8601 vqdmlal_n_s32 (int64x2_t __a, int32x2_t __b, int32_t __c)
8602 {
8603 return (int64x2_t)__builtin_neon_vqdmlal_nv2si (__a, __b, (__builtin_neon_si) __c);
8604 }
8605
8606 __extension__ extern __inline int16x4_t
8607 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8608 vmls_n_s16 (int16x4_t __a, int16x4_t __b, int16_t __c)
8609 {
8610 return (int16x4_t)__builtin_neon_vmls_nv4hi (__a, __b, (__builtin_neon_hi) __c);
8611 }
8612
8613 __extension__ extern __inline int32x2_t
8614 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8615 vmls_n_s32 (int32x2_t __a, int32x2_t __b, int32_t __c)
8616 {
8617 return (int32x2_t)__builtin_neon_vmls_nv2si (__a, __b, (__builtin_neon_si) __c);
8618 }
8619
8620 __extension__ extern __inline float32x2_t
8621 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8622 vmls_n_f32 (float32x2_t __a, float32x2_t __b, float32_t __c)
8623 {
8624 return (float32x2_t)__builtin_neon_vmls_nv2sf (__a, __b, (__builtin_neon_sf) __c);
8625 }
8626
8627 __extension__ extern __inline uint16x4_t
8628 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8629 vmls_n_u16 (uint16x4_t __a, uint16x4_t __b, uint16_t __c)
8630 {
8631 return (uint16x4_t)__builtin_neon_vmls_nv4hi ((int16x4_t) __a, (int16x4_t) __b, (__builtin_neon_hi) __c);
8632 }
8633
8634 __extension__ extern __inline uint32x2_t
8635 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8636 vmls_n_u32 (uint32x2_t __a, uint32x2_t __b, uint32_t __c)
8637 {
8638 return (uint32x2_t)__builtin_neon_vmls_nv2si ((int32x2_t) __a, (int32x2_t) __b, (__builtin_neon_si) __c);
8639 }
8640
8641 __extension__ extern __inline int16x8_t
8642 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8643 vmlsq_n_s16 (int16x8_t __a, int16x8_t __b, int16_t __c)
8644 {
8645 return (int16x8_t)__builtin_neon_vmls_nv8hi (__a, __b, (__builtin_neon_hi) __c);
8646 }
8647
8648 __extension__ extern __inline int32x4_t
8649 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8650 vmlsq_n_s32 (int32x4_t __a, int32x4_t __b, int32_t __c)
8651 {
8652 return (int32x4_t)__builtin_neon_vmls_nv4si (__a, __b, (__builtin_neon_si) __c);
8653 }
8654
8655 __extension__ extern __inline float32x4_t
8656 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8657 vmlsq_n_f32 (float32x4_t __a, float32x4_t __b, float32_t __c)
8658 {
8659 return (float32x4_t)__builtin_neon_vmls_nv4sf (__a, __b, (__builtin_neon_sf) __c);
8660 }
8661
8662 __extension__ extern __inline uint16x8_t
8663 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8664 vmlsq_n_u16 (uint16x8_t __a, uint16x8_t __b, uint16_t __c)
8665 {
8666 return (uint16x8_t)__builtin_neon_vmls_nv8hi ((int16x8_t) __a, (int16x8_t) __b, (__builtin_neon_hi) __c);
8667 }
8668
8669 __extension__ extern __inline uint32x4_t
8670 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8671 vmlsq_n_u32 (uint32x4_t __a, uint32x4_t __b, uint32_t __c)
8672 {
8673 return (uint32x4_t)__builtin_neon_vmls_nv4si ((int32x4_t) __a, (int32x4_t) __b, (__builtin_neon_si) __c);
8674 }
8675
8676 __extension__ extern __inline int32x4_t
8677 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8678 vmlsl_n_s16 (int32x4_t __a, int16x4_t __b, int16_t __c)
8679 {
8680 return (int32x4_t)__builtin_neon_vmlsls_nv4hi (__a, __b, (__builtin_neon_hi) __c);
8681 }
8682
8683 __extension__ extern __inline int64x2_t
8684 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8685 vmlsl_n_s32 (int64x2_t __a, int32x2_t __b, int32_t __c)
8686 {
8687 return (int64x2_t)__builtin_neon_vmlsls_nv2si (__a, __b, (__builtin_neon_si) __c);
8688 }
8689
8690 __extension__ extern __inline uint32x4_t
8691 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8692 vmlsl_n_u16 (uint32x4_t __a, uint16x4_t __b, uint16_t __c)
8693 {
8694 return (uint32x4_t)__builtin_neon_vmlslu_nv4hi ((int32x4_t) __a, (int16x4_t) __b, (__builtin_neon_hi) __c);
8695 }
8696
8697 __extension__ extern __inline uint64x2_t
8698 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8699 vmlsl_n_u32 (uint64x2_t __a, uint32x2_t __b, uint32_t __c)
8700 {
8701 return (uint64x2_t)__builtin_neon_vmlslu_nv2si ((int64x2_t) __a, (int32x2_t) __b, (__builtin_neon_si) __c);
8702 }
8703
8704 __extension__ extern __inline int32x4_t
8705 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8706 vqdmlsl_n_s16 (int32x4_t __a, int16x4_t __b, int16_t __c)
8707 {
8708 return (int32x4_t)__builtin_neon_vqdmlsl_nv4hi (__a, __b, (__builtin_neon_hi) __c);
8709 }
8710
8711 __extension__ extern __inline int64x2_t
8712 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8713 vqdmlsl_n_s32 (int64x2_t __a, int32x2_t __b, int32_t __c)
8714 {
8715 return (int64x2_t)__builtin_neon_vqdmlsl_nv2si (__a, __b, (__builtin_neon_si) __c);
8716 }
8717
8718 #pragma GCC push_options
8719 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
8720 __extension__ extern __inline poly64x1_t
8721 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8722 vext_p64 (poly64x1_t __a, poly64x1_t __b, const int __c)
8723 {
8724 return (poly64x1_t)__builtin_neon_vextdi (__a, __b, __c);
8725 }
8726
8727 #pragma GCC pop_options
8728 __extension__ extern __inline int8x8_t
8729 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8730 vext_s8 (int8x8_t __a, int8x8_t __b, const int __c)
8731 {
8732 return (int8x8_t)__builtin_neon_vextv8qi (__a, __b, __c);
8733 }
8734
8735 __extension__ extern __inline int16x4_t
8736 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8737 vext_s16 (int16x4_t __a, int16x4_t __b, const int __c)
8738 {
8739 return (int16x4_t)__builtin_neon_vextv4hi (__a, __b, __c);
8740 }
8741
8742 __extension__ extern __inline int32x2_t
8743 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8744 vext_s32 (int32x2_t __a, int32x2_t __b, const int __c)
8745 {
8746 return (int32x2_t)__builtin_neon_vextv2si (__a, __b, __c);
8747 }
8748
8749 __extension__ extern __inline int64x1_t
8750 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8751 vext_s64 (int64x1_t __a, int64x1_t __b, const int __c)
8752 {
8753 return (int64x1_t)__builtin_neon_vextdi (__a, __b, __c);
8754 }
8755
8756 __extension__ extern __inline float32x2_t
8757 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8758 vext_f32 (float32x2_t __a, float32x2_t __b, const int __c)
8759 {
8760 return (float32x2_t)__builtin_neon_vextv2sf (__a, __b, __c);
8761 }
8762
8763 __extension__ extern __inline uint8x8_t
8764 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8765 vext_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
8766 {
8767 return (uint8x8_t)__builtin_neon_vextv8qi ((int8x8_t) __a, (int8x8_t) __b, __c);
8768 }
8769
8770 __extension__ extern __inline uint16x4_t
8771 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8772 vext_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
8773 {
8774 return (uint16x4_t)__builtin_neon_vextv4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
8775 }
8776
8777 __extension__ extern __inline uint32x2_t
8778 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8779 vext_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
8780 {
8781 return (uint32x2_t)__builtin_neon_vextv2si ((int32x2_t) __a, (int32x2_t) __b, __c);
8782 }
8783
8784 __extension__ extern __inline uint64x1_t
8785 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8786 vext_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
8787 {
8788 return (uint64x1_t)__builtin_neon_vextdi ((int64x1_t) __a, (int64x1_t) __b, __c);
8789 }
8790
8791 __extension__ extern __inline poly8x8_t
8792 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8793 vext_p8 (poly8x8_t __a, poly8x8_t __b, const int __c)
8794 {
8795 return (poly8x8_t)__builtin_neon_vextv8qi ((int8x8_t) __a, (int8x8_t) __b, __c);
8796 }
8797
8798 __extension__ extern __inline poly16x4_t
8799 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8800 vext_p16 (poly16x4_t __a, poly16x4_t __b, const int __c)
8801 {
8802 return (poly16x4_t)__builtin_neon_vextv4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
8803 }
8804
8805 #pragma GCC push_options
8806 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
8807 __extension__ extern __inline poly64x2_t
8808 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8809 vextq_p64 (poly64x2_t __a, poly64x2_t __b, const int __c)
8810 {
8811 return (poly64x2_t)__builtin_neon_vextv2di ((int64x2_t) __a, (int64x2_t) __b, __c);
8812 }
8813
8814 #pragma GCC pop_options
8815 __extension__ extern __inline int8x16_t
8816 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8817 vextq_s8 (int8x16_t __a, int8x16_t __b, const int __c)
8818 {
8819 return (int8x16_t)__builtin_neon_vextv16qi (__a, __b, __c);
8820 }
8821
8822 __extension__ extern __inline int16x8_t
8823 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8824 vextq_s16 (int16x8_t __a, int16x8_t __b, const int __c)
8825 {
8826 return (int16x8_t)__builtin_neon_vextv8hi (__a, __b, __c);
8827 }
8828
8829 __extension__ extern __inline int32x4_t
8830 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8831 vextq_s32 (int32x4_t __a, int32x4_t __b, const int __c)
8832 {
8833 return (int32x4_t)__builtin_neon_vextv4si (__a, __b, __c);
8834 }
8835
8836 __extension__ extern __inline int64x2_t
8837 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8838 vextq_s64 (int64x2_t __a, int64x2_t __b, const int __c)
8839 {
8840 return (int64x2_t)__builtin_neon_vextv2di (__a, __b, __c);
8841 }
8842
8843 __extension__ extern __inline float32x4_t
8844 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8845 vextq_f32 (float32x4_t __a, float32x4_t __b, const int __c)
8846 {
8847 return (float32x4_t)__builtin_neon_vextv4sf (__a, __b, __c);
8848 }
8849
8850 __extension__ extern __inline uint8x16_t
8851 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8852 vextq_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
8853 {
8854 return (uint8x16_t)__builtin_neon_vextv16qi ((int8x16_t) __a, (int8x16_t) __b, __c);
8855 }
8856
8857 __extension__ extern __inline uint16x8_t
8858 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8859 vextq_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
8860 {
8861 return (uint16x8_t)__builtin_neon_vextv8hi ((int16x8_t) __a, (int16x8_t) __b, __c);
8862 }
8863
8864 __extension__ extern __inline uint32x4_t
8865 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8866 vextq_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
8867 {
8868 return (uint32x4_t)__builtin_neon_vextv4si ((int32x4_t) __a, (int32x4_t) __b, __c);
8869 }
8870
8871 __extension__ extern __inline uint64x2_t
8872 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8873 vextq_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
8874 {
8875 return (uint64x2_t)__builtin_neon_vextv2di ((int64x2_t) __a, (int64x2_t) __b, __c);
8876 }
8877
8878 __extension__ extern __inline poly8x16_t
8879 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8880 vextq_p8 (poly8x16_t __a, poly8x16_t __b, const int __c)
8881 {
8882 return (poly8x16_t)__builtin_neon_vextv16qi ((int8x16_t) __a, (int8x16_t) __b, __c);
8883 }
8884
8885 __extension__ extern __inline poly16x8_t
8886 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8887 vextq_p16 (poly16x8_t __a, poly16x8_t __b, const int __c)
8888 {
8889 return (poly16x8_t)__builtin_neon_vextv8hi ((int16x8_t) __a, (int16x8_t) __b, __c);
8890 }
8891
8892 __extension__ extern __inline int8x8_t
8893 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8894 vrev64_s8 (int8x8_t __a)
8895 {
8896 return (int8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 7, 6, 5, 4, 3, 2, 1, 0 });
8897 }
8898
8899 __extension__ extern __inline int16x4_t
8900 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8901 vrev64_s16 (int16x4_t __a)
8902 {
8903 return (int16x4_t) __builtin_shuffle (__a, (uint16x4_t) { 3, 2, 1, 0 });
8904 }
8905
8906 __extension__ extern __inline int32x2_t
8907 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8908 vrev64_s32 (int32x2_t __a)
8909 {
8910 return (int32x2_t) __builtin_shuffle (__a, (uint32x2_t) { 1, 0 });
8911 }
8912
8913 __extension__ extern __inline float32x2_t
8914 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8915 vrev64_f32 (float32x2_t __a)
8916 {
8917 return (float32x2_t) __builtin_shuffle (__a, (uint32x2_t) { 1, 0 });
8918 }
8919
8920 __extension__ extern __inline uint8x8_t
8921 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8922 vrev64_u8 (uint8x8_t __a)
8923 {
8924 return (uint8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 7, 6, 5, 4, 3, 2, 1, 0 });
8925 }
8926
8927 __extension__ extern __inline uint16x4_t
8928 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8929 vrev64_u16 (uint16x4_t __a)
8930 {
8931 return (uint16x4_t) __builtin_shuffle (__a, (uint16x4_t) { 3, 2, 1, 0 });
8932 }
8933
8934 __extension__ extern __inline uint32x2_t
8935 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8936 vrev64_u32 (uint32x2_t __a)
8937 {
8938 return (uint32x2_t) __builtin_shuffle (__a, (uint32x2_t) { 1, 0 });
8939 }
8940
8941 __extension__ extern __inline poly8x8_t
8942 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8943 vrev64_p8 (poly8x8_t __a)
8944 {
8945 return (poly8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 7, 6, 5, 4, 3, 2, 1, 0 });
8946 }
8947
8948 __extension__ extern __inline poly16x4_t
8949 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8950 vrev64_p16 (poly16x4_t __a)
8951 {
8952 return (poly16x4_t) __builtin_shuffle (__a, (uint16x4_t) { 3, 2, 1, 0 });
8953 }
8954
8955 __extension__ extern __inline int8x16_t
8956 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8957 vrev64q_s8 (int8x16_t __a)
8958 {
8959 return (int8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 });
8960 }
8961
8962 __extension__ extern __inline int16x8_t
8963 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8964 vrev64q_s16 (int16x8_t __a)
8965 {
8966 return (int16x8_t) __builtin_shuffle (__a, (uint16x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
8967 }
8968
8969 __extension__ extern __inline int32x4_t
8970 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8971 vrev64q_s32 (int32x4_t __a)
8972 {
8973 return (int32x4_t) __builtin_shuffle (__a, (uint32x4_t) { 1, 0, 3, 2 });
8974 }
8975
8976 __extension__ extern __inline float32x4_t
8977 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8978 vrev64q_f32 (float32x4_t __a)
8979 {
8980 return (float32x4_t) __builtin_shuffle (__a, (uint32x4_t) { 1, 0, 3, 2 });
8981 }
8982
8983 __extension__ extern __inline uint8x16_t
8984 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8985 vrev64q_u8 (uint8x16_t __a)
8986 {
8987 return (uint8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 });
8988 }
8989
8990 __extension__ extern __inline uint16x8_t
8991 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8992 vrev64q_u16 (uint16x8_t __a)
8993 {
8994 return (uint16x8_t) __builtin_shuffle (__a, (uint16x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
8995 }
8996
8997 __extension__ extern __inline uint32x4_t
8998 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8999 vrev64q_u32 (uint32x4_t __a)
9000 {
9001 return (uint32x4_t) __builtin_shuffle (__a, (uint32x4_t) { 1, 0, 3, 2 });
9002 }
9003
9004 __extension__ extern __inline poly8x16_t
9005 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9006 vrev64q_p8 (poly8x16_t __a)
9007 {
9008 return (poly8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 });
9009 }
9010
9011 __extension__ extern __inline poly16x8_t
9012 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9013 vrev64q_p16 (poly16x8_t __a)
9014 {
9015 return (poly16x8_t) __builtin_shuffle (__a, (uint16x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
9016 }
9017
9018 __extension__ extern __inline int8x8_t
9019 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9020 vrev32_s8 (int8x8_t __a)
9021 {
9022 return (int8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
9023 }
9024
9025 __extension__ extern __inline int16x4_t
9026 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9027 vrev32_s16 (int16x4_t __a)
9028 {
9029 return (int16x4_t) __builtin_shuffle (__a, (uint16x4_t) { 1, 0, 3, 2 });
9030 }
9031
9032 __extension__ extern __inline uint8x8_t
9033 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9034 vrev32_u8 (uint8x8_t __a)
9035 {
9036 return (uint8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
9037 }
9038
9039 __extension__ extern __inline uint16x4_t
9040 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9041 vrev32_u16 (uint16x4_t __a)
9042 {
9043 return (uint16x4_t) __builtin_shuffle (__a, (uint16x4_t) { 1, 0, 3, 2 });
9044 }
9045
9046 __extension__ extern __inline poly8x8_t
9047 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9048 vrev32_p8 (poly8x8_t __a)
9049 {
9050 return (poly8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
9051 }
9052
9053 __extension__ extern __inline poly16x4_t
9054 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9055 vrev32_p16 (poly16x4_t __a)
9056 {
9057 return (poly16x4_t) __builtin_shuffle (__a, (uint16x4_t) { 1, 0, 3, 2 });
9058 }
9059
9060 __extension__ extern __inline int8x16_t
9061 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9062 vrev32q_s8 (int8x16_t __a)
9063 {
9064 return (int8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 });
9065 }
9066
9067 __extension__ extern __inline int16x8_t
9068 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9069 vrev32q_s16 (int16x8_t __a)
9070 {
9071 return (int16x8_t) __builtin_shuffle (__a, (uint16x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
9072 }
9073
9074 __extension__ extern __inline uint8x16_t
9075 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9076 vrev32q_u8 (uint8x16_t __a)
9077 {
9078 return (uint8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 });
9079 }
9080
9081 __extension__ extern __inline uint16x8_t
9082 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9083 vrev32q_u16 (uint16x8_t __a)
9084 {
9085 return (uint16x8_t) __builtin_shuffle (__a, (uint16x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
9086 }
9087
9088 __extension__ extern __inline poly8x16_t
9089 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9090 vrev32q_p8 (poly8x16_t __a)
9091 {
9092 return (poly8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 });
9093 }
9094
9095 __extension__ extern __inline poly16x8_t
9096 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9097 vrev32q_p16 (poly16x8_t __a)
9098 {
9099 return (poly16x8_t) __builtin_shuffle (__a, (uint16x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
9100 }
9101
9102 __extension__ extern __inline int8x8_t
9103 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9104 vrev16_s8 (int8x8_t __a)
9105 {
9106 return (int8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
9107 }
9108
9109 __extension__ extern __inline uint8x8_t
9110 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9111 vrev16_u8 (uint8x8_t __a)
9112 {
9113 return (uint8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
9114 }
9115
9116 __extension__ extern __inline poly8x8_t
9117 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9118 vrev16_p8 (poly8x8_t __a)
9119 {
9120 return (poly8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
9121 }
9122
9123 __extension__ extern __inline int8x16_t
9124 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9125 vrev16q_s8 (int8x16_t __a)
9126 {
9127 return (int8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 });
9128 }
9129
9130 __extension__ extern __inline uint8x16_t
9131 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9132 vrev16q_u8 (uint8x16_t __a)
9133 {
9134 return (uint8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 });
9135 }
9136
9137 __extension__ extern __inline poly8x16_t
9138 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9139 vrev16q_p8 (poly8x16_t __a)
9140 {
9141 return (poly8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 });
9142 }
9143
9144 #pragma GCC push_options
9145 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
9146 __extension__ extern __inline poly64x1_t
9147 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9148 vbsl_p64 (uint64x1_t __a, poly64x1_t __b, poly64x1_t __c)
9149 {
9150 return (poly64x1_t)__builtin_neon_vbsldi ((int64x1_t) __a, __b, __c);
9151 }
9152
9153 #pragma GCC pop_options
9154 __extension__ extern __inline int8x8_t
9155 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9156 vbsl_s8 (uint8x8_t __a, int8x8_t __b, int8x8_t __c)
9157 {
9158 return (int8x8_t)__builtin_neon_vbslv8qi ((int8x8_t) __a, __b, __c);
9159 }
9160
9161 __extension__ extern __inline int16x4_t
9162 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9163 vbsl_s16 (uint16x4_t __a, int16x4_t __b, int16x4_t __c)
9164 {
9165 return (int16x4_t)__builtin_neon_vbslv4hi ((int16x4_t) __a, __b, __c);
9166 }
9167
9168 __extension__ extern __inline int32x2_t
9169 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9170 vbsl_s32 (uint32x2_t __a, int32x2_t __b, int32x2_t __c)
9171 {
9172 return (int32x2_t)__builtin_neon_vbslv2si ((int32x2_t) __a, __b, __c);
9173 }
9174
9175 __extension__ extern __inline int64x1_t
9176 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9177 vbsl_s64 (uint64x1_t __a, int64x1_t __b, int64x1_t __c)
9178 {
9179 return (int64x1_t)__builtin_neon_vbsldi ((int64x1_t) __a, __b, __c);
9180 }
9181
9182 __extension__ extern __inline float32x2_t
9183 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9184 vbsl_f32 (uint32x2_t __a, float32x2_t __b, float32x2_t __c)
9185 {
9186 return (float32x2_t)__builtin_neon_vbslv2sf ((int32x2_t) __a, __b, __c);
9187 }
9188
9189 __extension__ extern __inline uint8x8_t
9190 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9191 vbsl_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c)
9192 {
9193 return (uint8x8_t)__builtin_neon_vbslv8qi ((int8x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
9194 }
9195
9196 __extension__ extern __inline uint16x4_t
9197 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9198 vbsl_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c)
9199 {
9200 return (uint16x4_t)__builtin_neon_vbslv4hi ((int16x4_t) __a, (int16x4_t) __b, (int16x4_t) __c);
9201 }
9202
9203 __extension__ extern __inline uint32x2_t
9204 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9205 vbsl_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c)
9206 {
9207 return (uint32x2_t)__builtin_neon_vbslv2si ((int32x2_t) __a, (int32x2_t) __b, (int32x2_t) __c);
9208 }
9209
9210 __extension__ extern __inline uint64x1_t
9211 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9212 vbsl_u64 (uint64x1_t __a, uint64x1_t __b, uint64x1_t __c)
9213 {
9214 return (uint64x1_t)__builtin_neon_vbsldi ((int64x1_t) __a, (int64x1_t) __b, (int64x1_t) __c);
9215 }
9216
9217 __extension__ extern __inline poly8x8_t
9218 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9219 vbsl_p8 (uint8x8_t __a, poly8x8_t __b, poly8x8_t __c)
9220 {
9221 return (poly8x8_t)__builtin_neon_vbslv8qi ((int8x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
9222 }
9223
9224 __extension__ extern __inline poly16x4_t
9225 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9226 vbsl_p16 (uint16x4_t __a, poly16x4_t __b, poly16x4_t __c)
9227 {
9228 return (poly16x4_t)__builtin_neon_vbslv4hi ((int16x4_t) __a, (int16x4_t) __b, (int16x4_t) __c);
9229 }
9230
9231 #pragma GCC push_options
9232 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
9233 __extension__ extern __inline poly64x2_t
9234 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9235 vbslq_p64 (uint64x2_t __a, poly64x2_t __b, poly64x2_t __c)
9236 {
9237 return (poly64x2_t)__builtin_neon_vbslv2di ((int64x2_t) __a, (int64x2_t) __b, (int64x2_t) __c);
9238 }
9239
9240 #pragma GCC pop_options
9241 __extension__ extern __inline int8x16_t
9242 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9243 vbslq_s8 (uint8x16_t __a, int8x16_t __b, int8x16_t __c)
9244 {
9245 return (int8x16_t)__builtin_neon_vbslv16qi ((int8x16_t) __a, __b, __c);
9246 }
9247
9248 __extension__ extern __inline int16x8_t
9249 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9250 vbslq_s16 (uint16x8_t __a, int16x8_t __b, int16x8_t __c)
9251 {
9252 return (int16x8_t)__builtin_neon_vbslv8hi ((int16x8_t) __a, __b, __c);
9253 }
9254
9255 __extension__ extern __inline int32x4_t
9256 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9257 vbslq_s32 (uint32x4_t __a, int32x4_t __b, int32x4_t __c)
9258 {
9259 return (int32x4_t)__builtin_neon_vbslv4si ((int32x4_t) __a, __b, __c);
9260 }
9261
9262 __extension__ extern __inline int64x2_t
9263 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9264 vbslq_s64 (uint64x2_t __a, int64x2_t __b, int64x2_t __c)
9265 {
9266 return (int64x2_t)__builtin_neon_vbslv2di ((int64x2_t) __a, __b, __c);
9267 }
9268
9269 __extension__ extern __inline float32x4_t
9270 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9271 vbslq_f32 (uint32x4_t __a, float32x4_t __b, float32x4_t __c)
9272 {
9273 return (float32x4_t)__builtin_neon_vbslv4sf ((int32x4_t) __a, __b, __c);
9274 }
9275
9276 __extension__ extern __inline uint8x16_t
9277 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9278 vbslq_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c)
9279 {
9280 return (uint8x16_t)__builtin_neon_vbslv16qi ((int8x16_t) __a, (int8x16_t) __b, (int8x16_t) __c);
9281 }
9282
9283 __extension__ extern __inline uint16x8_t
9284 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9285 vbslq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
9286 {
9287 return (uint16x8_t)__builtin_neon_vbslv8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x8_t) __c);
9288 }
9289
9290 __extension__ extern __inline uint32x4_t
9291 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9292 vbslq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
9293 {
9294 return (uint32x4_t)__builtin_neon_vbslv4si ((int32x4_t) __a, (int32x4_t) __b, (int32x4_t) __c);
9295 }
9296
9297 __extension__ extern __inline uint64x2_t
9298 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9299 vbslq_u64 (uint64x2_t __a, uint64x2_t __b, uint64x2_t __c)
9300 {
9301 return (uint64x2_t)__builtin_neon_vbslv2di ((int64x2_t) __a, (int64x2_t) __b, (int64x2_t) __c);
9302 }
9303
9304 __extension__ extern __inline poly8x16_t
9305 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9306 vbslq_p8 (uint8x16_t __a, poly8x16_t __b, poly8x16_t __c)
9307 {
9308 return (poly8x16_t)__builtin_neon_vbslv16qi ((int8x16_t) __a, (int8x16_t) __b, (int8x16_t) __c);
9309 }
9310
9311 __extension__ extern __inline poly16x8_t
9312 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9313 vbslq_p16 (uint16x8_t __a, poly16x8_t __b, poly16x8_t __c)
9314 {
9315 return (poly16x8_t)__builtin_neon_vbslv8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x8_t) __c);
9316 }
9317
9318 /* For big-endian, the shuffle masks for ZIP, UZP and TRN must be changed as
9319 follows. (nelt = the number of elements within a vector.)
9320
9321 Firstly, a value of N within a mask, becomes (N ^ (nelt - 1)), as gcc vector
9322 extension's indexing scheme is reversed *within each vector* (relative to the
9323 neon intrinsics view), but without changing which of the two vectors.
9324
9325 Secondly, the elements within each mask are reversed, as the mask is itself a
9326 vector, and will itself be loaded in reverse order (again, relative to the
9327 neon intrinsics view, i.e. that would result from a "vld1" instruction). */
9328
9329 __extension__ extern __inline int8x8x2_t
9330 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9331 vtrn_s8 (int8x8_t __a, int8x8_t __b)
9332 {
9333 int8x8x2_t __rv;
9334 #ifdef __ARM_BIG_ENDIAN
9335 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
9336 { 9, 1, 11, 3, 13, 5, 15, 7 });
9337 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
9338 { 8, 0, 10, 2, 12, 4, 14, 6 });
9339 #else
9340 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
9341 { 0, 8, 2, 10, 4, 12, 6, 14 });
9342 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
9343 { 1, 9, 3, 11, 5, 13, 7, 15 });
9344 #endif
9345 return __rv;
9346 }
9347
9348 __extension__ extern __inline int16x4x2_t
9349 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9350 vtrn_s16 (int16x4_t __a, int16x4_t __b)
9351 {
9352 int16x4x2_t __rv;
9353 #ifdef __ARM_BIG_ENDIAN
9354 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 5, 1, 7, 3 });
9355 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 0, 6, 2 });
9356 #else
9357 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 4, 2, 6 });
9358 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 1, 5, 3, 7 });
9359 #endif
9360 return __rv;
9361 }
9362
9363 __extension__ extern __inline uint8x8x2_t
9364 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9365 vtrn_u8 (uint8x8_t __a, uint8x8_t __b)
9366 {
9367 uint8x8x2_t __rv;
9368 #ifdef __ARM_BIG_ENDIAN
9369 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
9370 { 9, 1, 11, 3, 13, 5, 15, 7 });
9371 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
9372 { 8, 0, 10, 2, 12, 4, 14, 6 });
9373 #else
9374 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
9375 { 0, 8, 2, 10, 4, 12, 6, 14 });
9376 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
9377 { 1, 9, 3, 11, 5, 13, 7, 15 });
9378 #endif
9379 return __rv;
9380 }
9381
9382 __extension__ extern __inline uint16x4x2_t
9383 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9384 vtrn_u16 (uint16x4_t __a, uint16x4_t __b)
9385 {
9386 uint16x4x2_t __rv;
9387 #ifdef __ARM_BIG_ENDIAN
9388 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 5, 1, 7, 3 });
9389 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 0, 6, 2 });
9390 #else
9391 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 4, 2, 6 });
9392 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 1, 5, 3, 7 });
9393 #endif
9394 return __rv;
9395 }
9396
9397 __extension__ extern __inline poly8x8x2_t
9398 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9399 vtrn_p8 (poly8x8_t __a, poly8x8_t __b)
9400 {
9401 poly8x8x2_t __rv;
9402 #ifdef __ARM_BIG_ENDIAN
9403 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
9404 { 9, 1, 11, 3, 13, 5, 15, 7 });
9405 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
9406 { 8, 0, 10, 2, 12, 4, 14, 6 });
9407 #else
9408 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
9409 { 0, 8, 2, 10, 4, 12, 6, 14 });
9410 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
9411 { 1, 9, 3, 11, 5, 13, 7, 15 });
9412 #endif
9413 return __rv;
9414 }
9415
9416 __extension__ extern __inline poly16x4x2_t
9417 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9418 vtrn_p16 (poly16x4_t __a, poly16x4_t __b)
9419 {
9420 poly16x4x2_t __rv;
9421 #ifdef __ARM_BIG_ENDIAN
9422 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 5, 1, 7, 3 });
9423 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 0, 6, 2 });
9424 #else
9425 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 4, 2, 6 });
9426 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 1, 5, 3, 7 });
9427 #endif
9428 return __rv;
9429 }
9430
9431 __extension__ extern __inline int32x2x2_t
9432 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9433 vtrn_s32 (int32x2_t __a, int32x2_t __b)
9434 {
9435 int32x2x2_t __rv;
9436 #ifdef __ARM_BIG_ENDIAN
9437 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 });
9438 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 });
9439 #else
9440 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
9441 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
9442 #endif
9443 return __rv;
9444 }
9445
9446 __extension__ extern __inline float32x2x2_t
9447 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9448 vtrn_f32 (float32x2_t __a, float32x2_t __b)
9449 {
9450 float32x2x2_t __rv;
9451 #ifdef __ARM_BIG_ENDIAN
9452 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 });
9453 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 });
9454 #else
9455 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
9456 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
9457 #endif
9458 return __rv;
9459 }
9460
9461 __extension__ extern __inline uint32x2x2_t
9462 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9463 vtrn_u32 (uint32x2_t __a, uint32x2_t __b)
9464 {
9465 uint32x2x2_t __rv;
9466 #ifdef __ARM_BIG_ENDIAN
9467 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 });
9468 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 });
9469 #else
9470 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
9471 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
9472 #endif
9473 return __rv;
9474 }
9475
9476 __extension__ extern __inline int8x16x2_t
9477 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9478 vtrnq_s8 (int8x16_t __a, int8x16_t __b)
9479 {
9480 int8x16x2_t __rv;
9481 #ifdef __ARM_BIG_ENDIAN
9482 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
9483 { 17, 1, 19, 3, 21, 5, 23, 7, 25, 9, 27, 11, 29, 13, 31, 15 });
9484 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
9485 { 16, 0, 18, 2, 20, 4, 22, 6, 24, 8, 26, 10, 28, 12, 30, 14 });
9486 #else
9487 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
9488 { 0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30 });
9489 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
9490 { 1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31 });
9491 #endif
9492 return __rv;
9493 }
9494
9495 __extension__ extern __inline int16x8x2_t
9496 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9497 vtrnq_s16 (int16x8_t __a, int16x8_t __b)
9498 {
9499 int16x8x2_t __rv;
9500 #ifdef __ARM_BIG_ENDIAN
9501 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
9502 { 9, 1, 11, 3, 13, 5, 15, 7 });
9503 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
9504 { 8, 0, 10, 2, 12, 4, 14, 6 });
9505 #else
9506 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
9507 { 0, 8, 2, 10, 4, 12, 6, 14 });
9508 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
9509 { 1, 9, 3, 11, 5, 13, 7, 15 });
9510 #endif
9511 return __rv;
9512 }
9513
9514 __extension__ extern __inline int32x4x2_t
9515 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9516 vtrnq_s32 (int32x4_t __a, int32x4_t __b)
9517 {
9518 int32x4x2_t __rv;
9519 #ifdef __ARM_BIG_ENDIAN
9520 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 5, 1, 7, 3 });
9521 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 4, 0, 6, 2 });
9522 #else
9523 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 4, 2, 6 });
9524 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 1, 5, 3, 7 });
9525 #endif
9526 return __rv;
9527 }
9528
9529 __extension__ extern __inline float32x4x2_t
9530 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9531 vtrnq_f32 (float32x4_t __a, float32x4_t __b)
9532 {
9533 float32x4x2_t __rv;
9534 #ifdef __ARM_BIG_ENDIAN
9535 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 5, 1, 7, 3 });
9536 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 4, 0, 6, 2 });
9537 #else
9538 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 4, 2, 6 });
9539 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 1, 5, 3, 7 });
9540 #endif
9541 return __rv;
9542 }
9543
9544 __extension__ extern __inline uint8x16x2_t
9545 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9546 vtrnq_u8 (uint8x16_t __a, uint8x16_t __b)
9547 {
9548 uint8x16x2_t __rv;
9549 #ifdef __ARM_BIG_ENDIAN
9550 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
9551 { 17, 1, 19, 3, 21, 5, 23, 7, 25, 9, 27, 11, 29, 13, 31, 15 });
9552 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
9553 { 16, 0, 18, 2, 20, 4, 22, 6, 24, 8, 26, 10, 28, 12, 30, 14 });
9554 #else
9555 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
9556 { 0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30 });
9557 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
9558 { 1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31 });
9559 #endif
9560 return __rv;
9561 }
9562
9563 __extension__ extern __inline uint16x8x2_t
9564 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9565 vtrnq_u16 (uint16x8_t __a, uint16x8_t __b)
9566 {
9567 uint16x8x2_t __rv;
9568 #ifdef __ARM_BIG_ENDIAN
9569 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
9570 { 9, 1, 11, 3, 13, 5, 15, 7 });
9571 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
9572 { 8, 0, 10, 2, 12, 4, 14, 6 });
9573 #else
9574 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
9575 { 0, 8, 2, 10, 4, 12, 6, 14 });
9576 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
9577 { 1, 9, 3, 11, 5, 13, 7, 15 });
9578 #endif
9579 return __rv;
9580 }
9581
9582 __extension__ extern __inline uint32x4x2_t
9583 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9584 vtrnq_u32 (uint32x4_t __a, uint32x4_t __b)
9585 {
9586 uint32x4x2_t __rv;
9587 #ifdef __ARM_BIG_ENDIAN
9588 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 5, 1, 7, 3 });
9589 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 4, 0, 6, 2 });
9590 #else
9591 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 4, 2, 6 });
9592 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 1, 5, 3, 7 });
9593 #endif
9594 return __rv;
9595 }
9596
9597 __extension__ extern __inline poly8x16x2_t
9598 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9599 vtrnq_p8 (poly8x16_t __a, poly8x16_t __b)
9600 {
9601 poly8x16x2_t __rv;
9602 #ifdef __ARM_BIG_ENDIAN
9603 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
9604 { 17, 1, 19, 3, 21, 5, 23, 7, 25, 9, 27, 11, 29, 13, 31, 15 });
9605 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
9606 { 16, 0, 18, 2, 20, 4, 22, 6, 24, 8, 26, 10, 28, 12, 30, 14 });
9607 #else
9608 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
9609 { 0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30 });
9610 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
9611 { 1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31 });
9612 #endif
9613 return __rv;
9614 }
9615
9616 __extension__ extern __inline poly16x8x2_t
9617 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9618 vtrnq_p16 (poly16x8_t __a, poly16x8_t __b)
9619 {
9620 poly16x8x2_t __rv;
9621 #ifdef __ARM_BIG_ENDIAN
9622 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
9623 { 9, 1, 11, 3, 13, 5, 15, 7 });
9624 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
9625 { 8, 0, 10, 2, 12, 4, 14, 6 });
9626 #else
9627 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
9628 { 0, 8, 2, 10, 4, 12, 6, 14 });
9629 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
9630 { 1, 9, 3, 11, 5, 13, 7, 15 });
9631 #endif
9632 return __rv;
9633 }
9634
9635 __extension__ extern __inline int8x8x2_t
9636 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9637 vzip_s8 (int8x8_t __a, int8x8_t __b)
9638 {
9639 int8x8x2_t __rv;
9640 #ifdef __ARM_BIG_ENDIAN
9641 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
9642 { 12, 4, 13, 5, 14, 6, 15, 7 });
9643 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
9644 { 8, 0, 9, 1, 10, 2, 11, 3 });
9645 #else
9646 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
9647 { 0, 8, 1, 9, 2, 10, 3, 11 });
9648 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
9649 { 4, 12, 5, 13, 6, 14, 7, 15 });
9650 #endif
9651 return __rv;
9652 }
9653
9654 __extension__ extern __inline int16x4x2_t
9655 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9656 vzip_s16 (int16x4_t __a, int16x4_t __b)
9657 {
9658 int16x4x2_t __rv;
9659 #ifdef __ARM_BIG_ENDIAN
9660 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 6, 2, 7, 3 });
9661 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 0, 5, 1 });
9662 #else
9663 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 4, 1, 5 });
9664 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 2, 6, 3, 7 });
9665 #endif
9666 return __rv;
9667 }
9668
9669 __extension__ extern __inline uint8x8x2_t
9670 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9671 vzip_u8 (uint8x8_t __a, uint8x8_t __b)
9672 {
9673 uint8x8x2_t __rv;
9674 #ifdef __ARM_BIG_ENDIAN
9675 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
9676 { 12, 4, 13, 5, 14, 6, 15, 7 });
9677 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
9678 { 8, 0, 9, 1, 10, 2, 11, 3 });
9679 #else
9680 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
9681 { 0, 8, 1, 9, 2, 10, 3, 11 });
9682 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
9683 { 4, 12, 5, 13, 6, 14, 7, 15 });
9684 #endif
9685 return __rv;
9686 }
9687
9688 __extension__ extern __inline uint16x4x2_t
9689 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9690 vzip_u16 (uint16x4_t __a, uint16x4_t __b)
9691 {
9692 uint16x4x2_t __rv;
9693 #ifdef __ARM_BIG_ENDIAN
9694 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 6, 2, 7, 3 });
9695 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 0, 5, 1 });
9696 #else
9697 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 4, 1, 5 });
9698 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 2, 6, 3, 7 });
9699 #endif
9700 return __rv;
9701 }
9702
9703 __extension__ extern __inline poly8x8x2_t
9704 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9705 vzip_p8 (poly8x8_t __a, poly8x8_t __b)
9706 {
9707 poly8x8x2_t __rv;
9708 #ifdef __ARM_BIG_ENDIAN
9709 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
9710 { 12, 4, 13, 5, 14, 6, 15, 7 });
9711 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
9712 { 8, 0, 9, 1, 10, 2, 11, 3 });
9713 #else
9714 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
9715 { 0, 8, 1, 9, 2, 10, 3, 11 });
9716 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
9717 { 4, 12, 5, 13, 6, 14, 7, 15 });
9718 #endif
9719 return __rv;
9720 }
9721
9722 __extension__ extern __inline poly16x4x2_t
9723 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9724 vzip_p16 (poly16x4_t __a, poly16x4_t __b)
9725 {
9726 poly16x4x2_t __rv;
9727 #ifdef __ARM_BIG_ENDIAN
9728 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 6, 2, 7, 3 });
9729 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 0, 5, 1 });
9730 #else
9731 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 4, 1, 5 });
9732 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 2, 6, 3, 7 });
9733 #endif
9734 return __rv;
9735 }
9736
9737 __extension__ extern __inline int32x2x2_t
9738 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9739 vzip_s32 (int32x2_t __a, int32x2_t __b)
9740 {
9741 int32x2x2_t __rv;
9742 #ifdef __ARM_BIG_ENDIAN
9743 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 });
9744 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 });
9745 #else
9746 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
9747 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
9748 #endif
9749 return __rv;
9750 }
9751
9752 __extension__ extern __inline float32x2x2_t
9753 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9754 vzip_f32 (float32x2_t __a, float32x2_t __b)
9755 {
9756 float32x2x2_t __rv;
9757 #ifdef __ARM_BIG_ENDIAN
9758 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 });
9759 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 });
9760 #else
9761 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
9762 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
9763 #endif
9764 return __rv;
9765 }
9766
9767 __extension__ extern __inline uint32x2x2_t
9768 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9769 vzip_u32 (uint32x2_t __a, uint32x2_t __b)
9770 {
9771 uint32x2x2_t __rv;
9772 #ifdef __ARM_BIG_ENDIAN
9773 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 });
9774 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 });
9775 #else
9776 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
9777 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
9778 #endif
9779 return __rv;
9780 }
9781
9782 __extension__ extern __inline int8x16x2_t
9783 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9784 vzipq_s8 (int8x16_t __a, int8x16_t __b)
9785 {
9786 int8x16x2_t __rv;
9787 #ifdef __ARM_BIG_ENDIAN
9788 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
9789 { 20, 4, 21, 5, 22, 6, 23, 7, 16, 0, 17, 1, 18, 2, 19, 3 });
9790 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
9791 { 28, 12, 29, 13, 30, 14, 31, 15, 24, 8, 25, 9, 26, 10, 27, 11 });
9792 #else
9793 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
9794 { 0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23 });
9795 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
9796 { 8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31 });
9797 #endif
9798 return __rv;
9799 }
9800
9801 __extension__ extern __inline int16x8x2_t
9802 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9803 vzipq_s16 (int16x8_t __a, int16x8_t __b)
9804 {
9805 int16x8x2_t __rv;
9806 #ifdef __ARM_BIG_ENDIAN
9807 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
9808 { 10, 2, 11, 3, 8, 0, 9, 1 });
9809 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
9810 { 14, 6, 15, 7, 12, 4, 13, 5 });
9811 #else
9812 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
9813 { 0, 8, 1, 9, 2, 10, 3, 11 });
9814 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
9815 { 4, 12, 5, 13, 6, 14, 7, 15 });
9816 #endif
9817 return __rv;
9818 }
9819
9820 __extension__ extern __inline int32x4x2_t
9821 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9822 vzipq_s32 (int32x4_t __a, int32x4_t __b)
9823 {
9824 int32x4x2_t __rv;
9825 #ifdef __ARM_BIG_ENDIAN
9826 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 5, 1, 4, 0 });
9827 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 7, 3, 6, 2 });
9828 #else
9829 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 4, 1, 5 });
9830 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 2, 6, 3, 7 });
9831 #endif
9832 return __rv;
9833 }
9834
9835 __extension__ extern __inline float32x4x2_t
9836 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9837 vzipq_f32 (float32x4_t __a, float32x4_t __b)
9838 {
9839 float32x4x2_t __rv;
9840 #ifdef __ARM_BIG_ENDIAN
9841 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 5, 1, 4, 0 });
9842 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 7, 3, 6, 2 });
9843 #else
9844 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 4, 1, 5 });
9845 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 2, 6, 3, 7 });
9846 #endif
9847 return __rv;
9848 }
9849
9850 __extension__ extern __inline uint8x16x2_t
9851 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9852 vzipq_u8 (uint8x16_t __a, uint8x16_t __b)
9853 {
9854 uint8x16x2_t __rv;
9855 #ifdef __ARM_BIG_ENDIAN
9856 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
9857 { 20, 4, 21, 5, 22, 6, 23, 7, 16, 0, 17, 1, 18, 2, 19, 3 });
9858 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
9859 { 28, 12, 29, 13, 30, 14, 31, 15, 24, 8, 25, 9, 26, 10, 27, 11 });
9860 #else
9861 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
9862 { 0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23 });
9863 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
9864 { 8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31 });
9865 #endif
9866 return __rv;
9867 }
9868
9869 __extension__ extern __inline uint16x8x2_t
9870 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9871 vzipq_u16 (uint16x8_t __a, uint16x8_t __b)
9872 {
9873 uint16x8x2_t __rv;
9874 #ifdef __ARM_BIG_ENDIAN
9875 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
9876 { 10, 2, 11, 3, 8, 0, 9, 1 });
9877 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
9878 { 14, 6, 15, 7, 12, 4, 13, 5 });
9879 #else
9880 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
9881 { 0, 8, 1, 9, 2, 10, 3, 11 });
9882 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
9883 { 4, 12, 5, 13, 6, 14, 7, 15 });
9884 #endif
9885 return __rv;
9886 }
9887
9888 __extension__ extern __inline uint32x4x2_t
9889 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9890 vzipq_u32 (uint32x4_t __a, uint32x4_t __b)
9891 {
9892 uint32x4x2_t __rv;
9893 #ifdef __ARM_BIG_ENDIAN
9894 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 5, 1, 4, 0 });
9895 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 7, 3, 6, 2 });
9896 #else
9897 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 4, 1, 5 });
9898 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 2, 6, 3, 7 });
9899 #endif
9900 return __rv;
9901 }
9902
9903 __extension__ extern __inline poly8x16x2_t
9904 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9905 vzipq_p8 (poly8x16_t __a, poly8x16_t __b)
9906 {
9907 poly8x16x2_t __rv;
9908 #ifdef __ARM_BIG_ENDIAN
9909 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
9910 { 20, 4, 21, 5, 22, 6, 23, 7, 16, 0, 17, 1, 18, 2, 19, 3 });
9911 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
9912 { 28, 12, 29, 13, 30, 14, 31, 15, 24, 8, 25, 9, 26, 10, 27, 11 });
9913 #else
9914 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
9915 { 0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23 });
9916 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
9917 { 8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31 });
9918 #endif
9919 return __rv;
9920 }
9921
9922 __extension__ extern __inline poly16x8x2_t
9923 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9924 vzipq_p16 (poly16x8_t __a, poly16x8_t __b)
9925 {
9926 poly16x8x2_t __rv;
9927 #ifdef __ARM_BIG_ENDIAN
9928 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
9929 { 10, 2, 11, 3, 8, 0, 9, 1 });
9930 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
9931 { 14, 6, 15, 7, 12, 4, 13, 5 });
9932 #else
9933 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
9934 { 0, 8, 1, 9, 2, 10, 3, 11 });
9935 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
9936 { 4, 12, 5, 13, 6, 14, 7, 15 });
9937 #endif
9938 return __rv;
9939 }
9940
9941 __extension__ extern __inline int8x8x2_t
9942 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9943 vuzp_s8 (int8x8_t __a, int8x8_t __b)
9944 {
9945 int8x8x2_t __rv;
9946 #ifdef __ARM_BIG_ENDIAN
9947 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
9948 { 9, 11, 13, 15, 1, 3, 5, 7 });
9949 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
9950 { 8, 10, 12, 14, 0, 2, 4, 6 });
9951 #else
9952 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
9953 { 0, 2, 4, 6, 8, 10, 12, 14 });
9954 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
9955 { 1, 3, 5, 7, 9, 11, 13, 15 });
9956 #endif
9957 return __rv;
9958 }
9959
9960 __extension__ extern __inline int16x4x2_t
9961 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9962 vuzp_s16 (int16x4_t __a, int16x4_t __b)
9963 {
9964 int16x4x2_t __rv;
9965 #ifdef __ARM_BIG_ENDIAN
9966 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 5, 7, 1, 3 });
9967 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 6, 0, 2 });
9968 #else
9969 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 2, 4, 6 });
9970 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 1, 3, 5, 7 });
9971 #endif
9972 return __rv;
9973 }
9974
9975 __extension__ extern __inline int32x2x2_t
9976 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9977 vuzp_s32 (int32x2_t __a, int32x2_t __b)
9978 {
9979 int32x2x2_t __rv;
9980 #ifdef __ARM_BIG_ENDIAN
9981 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 });
9982 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 });
9983 #else
9984 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
9985 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
9986 #endif
9987 return __rv;
9988 }
9989
9990 __extension__ extern __inline float32x2x2_t
9991 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9992 vuzp_f32 (float32x2_t __a, float32x2_t __b)
9993 {
9994 float32x2x2_t __rv;
9995 #ifdef __ARM_BIG_ENDIAN
9996 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 });
9997 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 });
9998 #else
9999 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
10000 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
10001 #endif
10002 return __rv;
10003 }
10004
10005 __extension__ extern __inline uint8x8x2_t
10006 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10007 vuzp_u8 (uint8x8_t __a, uint8x8_t __b)
10008 {
10009 uint8x8x2_t __rv;
10010 #ifdef __ARM_BIG_ENDIAN
10011 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
10012 { 9, 11, 13, 15, 1, 3, 5, 7 });
10013 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
10014 { 8, 10, 12, 14, 0, 2, 4, 6 });
10015 #else
10016 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
10017 { 0, 2, 4, 6, 8, 10, 12, 14 });
10018 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
10019 { 1, 3, 5, 7, 9, 11, 13, 15 });
10020 #endif
10021 return __rv;
10022 }
10023
10024 __extension__ extern __inline uint16x4x2_t
10025 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10026 vuzp_u16 (uint16x4_t __a, uint16x4_t __b)
10027 {
10028 uint16x4x2_t __rv;
10029 #ifdef __ARM_BIG_ENDIAN
10030 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 5, 7, 1, 3 });
10031 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 6, 0, 2 });
10032 #else
10033 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 2, 4, 6 });
10034 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 1, 3, 5, 7 });
10035 #endif
10036 return __rv;
10037 }
10038
10039 __extension__ extern __inline uint32x2x2_t
10040 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10041 vuzp_u32 (uint32x2_t __a, uint32x2_t __b)
10042 {
10043 uint32x2x2_t __rv;
10044 #ifdef __ARM_BIG_ENDIAN
10045 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 });
10046 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 });
10047 #else
10048 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
10049 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
10050 #endif
10051 return __rv;
10052 }
10053
10054 __extension__ extern __inline poly8x8x2_t
10055 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10056 vuzp_p8 (poly8x8_t __a, poly8x8_t __b)
10057 {
10058 poly8x8x2_t __rv;
10059 #ifdef __ARM_BIG_ENDIAN
10060 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
10061 { 9, 11, 13, 15, 1, 3, 5, 7 });
10062 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
10063 { 8, 10, 12, 14, 0, 2, 4, 6 });
10064 #else
10065 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
10066 { 0, 2, 4, 6, 8, 10, 12, 14 });
10067 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
10068 { 1, 3, 5, 7, 9, 11, 13, 15 });
10069 #endif
10070 return __rv;
10071 }
10072
10073 __extension__ extern __inline poly16x4x2_t
10074 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10075 vuzp_p16 (poly16x4_t __a, poly16x4_t __b)
10076 {
10077 poly16x4x2_t __rv;
10078 #ifdef __ARM_BIG_ENDIAN
10079 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 5, 7, 1, 3 });
10080 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 6, 0, 2 });
10081 #else
10082 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 2, 4, 6 });
10083 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 1, 3, 5, 7 });
10084 #endif
10085 return __rv;
10086 }
10087
10088 __extension__ extern __inline int8x16x2_t
10089 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10090 vuzpq_s8 (int8x16_t __a, int8x16_t __b)
10091 {
10092 int8x16x2_t __rv;
10093 #ifdef __ARM_BIG_ENDIAN
10094 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
10095 { 9, 11, 13, 15, 1, 3, 5, 7, 25, 27, 29, 31, 17, 19, 21, 23 });
10096 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
10097 { 8, 10, 12, 14, 0, 2, 4, 6, 24, 26, 28, 30, 16, 18, 20, 22 });
10098 #else
10099 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
10100 { 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30 });
10101 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
10102 { 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31 });
10103 #endif
10104 return __rv;
10105 }
10106
10107 __extension__ extern __inline int16x8x2_t
10108 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10109 vuzpq_s16 (int16x8_t __a, int16x8_t __b)
10110 {
10111 int16x8x2_t __rv;
10112 #ifdef __ARM_BIG_ENDIAN
10113 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
10114 { 5, 7, 1, 3, 13, 15, 9, 11 });
10115 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
10116 { 4, 6, 0, 2, 12, 14, 8, 10 });
10117 #else
10118 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
10119 { 0, 2, 4, 6, 8, 10, 12, 14 });
10120 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
10121 { 1, 3, 5, 7, 9, 11, 13, 15 });
10122 #endif
10123 return __rv;
10124 }
10125
10126 __extension__ extern __inline int32x4x2_t
10127 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10128 vuzpq_s32 (int32x4_t __a, int32x4_t __b)
10129 {
10130 int32x4x2_t __rv;
10131 #ifdef __ARM_BIG_ENDIAN
10132 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 3, 1, 7, 5 });
10133 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 2, 0, 6, 4 });
10134 #else
10135 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 2, 4, 6 });
10136 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 1, 3, 5, 7 });
10137 #endif
10138 return __rv;
10139 }
10140
10141 __extension__ extern __inline float32x4x2_t
10142 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10143 vuzpq_f32 (float32x4_t __a, float32x4_t __b)
10144 {
10145 float32x4x2_t __rv;
10146 #ifdef __ARM_BIG_ENDIAN
10147 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 3, 1, 7, 5 });
10148 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 2, 0, 6, 4 });
10149 #else
10150 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 2, 4, 6 });
10151 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 1, 3, 5, 7 });
10152 #endif
10153 return __rv;
10154 }
10155
10156 __extension__ extern __inline uint8x16x2_t
10157 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10158 vuzpq_u8 (uint8x16_t __a, uint8x16_t __b)
10159 {
10160 uint8x16x2_t __rv;
10161 #ifdef __ARM_BIG_ENDIAN
10162 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
10163 { 9, 11, 13, 15, 1, 3, 5, 7, 25, 27, 29, 31, 17, 19, 21, 23 });
10164 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
10165 { 8, 10, 12, 14, 0, 2, 4, 6, 24, 26, 28, 30, 16, 18, 20, 22 });
10166 #else
10167 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
10168 { 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30 });
10169 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
10170 { 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31 });
10171 #endif
10172 return __rv;
10173 }
10174
10175 __extension__ extern __inline uint16x8x2_t
10176 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10177 vuzpq_u16 (uint16x8_t __a, uint16x8_t __b)
10178 {
10179 uint16x8x2_t __rv;
10180 #ifdef __ARM_BIG_ENDIAN
10181 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
10182 { 5, 7, 1, 3, 13, 15, 9, 11 });
10183 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
10184 { 4, 6, 0, 2, 12, 14, 8, 10 });
10185 #else
10186 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
10187 { 0, 2, 4, 6, 8, 10, 12, 14 });
10188 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
10189 { 1, 3, 5, 7, 9, 11, 13, 15 });
10190 #endif
10191 return __rv;
10192 }
10193
10194 __extension__ extern __inline uint32x4x2_t
10195 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10196 vuzpq_u32 (uint32x4_t __a, uint32x4_t __b)
10197 {
10198 uint32x4x2_t __rv;
10199 #ifdef __ARM_BIG_ENDIAN
10200 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 3, 1, 7, 5 });
10201 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 2, 0, 6, 4 });
10202 #else
10203 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 2, 4, 6 });
10204 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 1, 3, 5, 7 });
10205 #endif
10206 return __rv;
10207 }
10208
10209 __extension__ extern __inline poly8x16x2_t
10210 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10211 vuzpq_p8 (poly8x16_t __a, poly8x16_t __b)
10212 {
10213 poly8x16x2_t __rv;
10214 #ifdef __ARM_BIG_ENDIAN
10215 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
10216 { 9, 11, 13, 15, 1, 3, 5, 7, 25, 27, 29, 31, 17, 19, 21, 23 });
10217 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
10218 { 8, 10, 12, 14, 0, 2, 4, 6, 24, 26, 28, 30, 16, 18, 20, 22 });
10219 #else
10220 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
10221 { 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30 });
10222 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
10223 { 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31 });
10224 #endif
10225 return __rv;
10226 }
10227
10228 __extension__ extern __inline poly16x8x2_t
10229 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10230 vuzpq_p16 (poly16x8_t __a, poly16x8_t __b)
10231 {
10232 poly16x8x2_t __rv;
10233 #ifdef __ARM_BIG_ENDIAN
10234 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
10235 { 5, 7, 1, 3, 13, 15, 9, 11 });
10236 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
10237 { 4, 6, 0, 2, 12, 14, 8, 10 });
10238 #else
10239 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
10240 { 0, 2, 4, 6, 8, 10, 12, 14 });
10241 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
10242 { 1, 3, 5, 7, 9, 11, 13, 15 });
10243 #endif
10244 return __rv;
10245 }
10246
10247 #pragma GCC push_options
10248 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
10249 __extension__ extern __inline poly64x1_t
10250 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10251 vld1_p64 (const poly64_t * __a)
10252 {
10253 return (poly64x1_t)__builtin_neon_vld1di ((const __builtin_neon_di *) __a);
10254 }
10255
10256 #pragma GCC pop_options
10257 __extension__ extern __inline int8x8_t
10258 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10259 vld1_s8 (const int8_t * __a)
10260 {
10261 return (int8x8_t)__builtin_neon_vld1v8qi ((const __builtin_neon_qi *) __a);
10262 }
10263
10264 __extension__ extern __inline int16x4_t
10265 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10266 vld1_s16 (const int16_t * __a)
10267 {
10268 return (int16x4_t)__builtin_neon_vld1v4hi ((const __builtin_neon_hi *) __a);
10269 }
10270
10271 __extension__ extern __inline int32x2_t
10272 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10273 vld1_s32 (const int32_t * __a)
10274 {
10275 return (int32x2_t)__builtin_neon_vld1v2si ((const __builtin_neon_si *) __a);
10276 }
10277
10278 __extension__ extern __inline int64x1_t
10279 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10280 vld1_s64 (const int64_t * __a)
10281 {
10282 return (int64x1_t)__builtin_neon_vld1di ((const __builtin_neon_di *) __a);
10283 }
10284
10285 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
10286 __extension__ extern __inline float16x4_t
10287 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10288 vld1_f16 (const float16_t * __a)
10289 {
10290 return __builtin_neon_vld1v4hf (__a);
10291 }
10292 #endif
10293
10294 __extension__ extern __inline float32x2_t
10295 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10296 vld1_f32 (const float32_t * __a)
10297 {
10298 return (float32x2_t)__builtin_neon_vld1v2sf ((const __builtin_neon_sf *) __a);
10299 }
10300
10301 __extension__ extern __inline uint8x8_t
10302 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10303 vld1_u8 (const uint8_t * __a)
10304 {
10305 return (uint8x8_t)__builtin_neon_vld1v8qi ((const __builtin_neon_qi *) __a);
10306 }
10307
10308 __extension__ extern __inline uint16x4_t
10309 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10310 vld1_u16 (const uint16_t * __a)
10311 {
10312 return (uint16x4_t)__builtin_neon_vld1v4hi ((const __builtin_neon_hi *) __a);
10313 }
10314
10315 __extension__ extern __inline uint32x2_t
10316 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10317 vld1_u32 (const uint32_t * __a)
10318 {
10319 return (uint32x2_t)__builtin_neon_vld1v2si ((const __builtin_neon_si *) __a);
10320 }
10321
10322 __extension__ extern __inline uint64x1_t
10323 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10324 vld1_u64 (const uint64_t * __a)
10325 {
10326 return (uint64x1_t)__builtin_neon_vld1di ((const __builtin_neon_di *) __a);
10327 }
10328
10329 __extension__ extern __inline poly8x8_t
10330 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10331 vld1_p8 (const poly8_t * __a)
10332 {
10333 return (poly8x8_t)__builtin_neon_vld1v8qi ((const __builtin_neon_qi *) __a);
10334 }
10335
10336 __extension__ extern __inline poly16x4_t
10337 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10338 vld1_p16 (const poly16_t * __a)
10339 {
10340 return (poly16x4_t)__builtin_neon_vld1v4hi ((const __builtin_neon_hi *) __a);
10341 }
10342
10343 #pragma GCC push_options
10344 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
10345 __extension__ extern __inline poly64x2_t
10346 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10347 vld1q_p64 (const poly64_t * __a)
10348 {
10349 return (poly64x2_t)__builtin_neon_vld1v2di ((const __builtin_neon_di *) __a);
10350 }
10351
10352 #pragma GCC pop_options
10353 __extension__ extern __inline int8x16_t
10354 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10355 vld1q_s8 (const int8_t * __a)
10356 {
10357 return (int8x16_t)__builtin_neon_vld1v16qi ((const __builtin_neon_qi *) __a);
10358 }
10359
10360 __extension__ extern __inline int16x8_t
10361 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10362 vld1q_s16 (const int16_t * __a)
10363 {
10364 return (int16x8_t)__builtin_neon_vld1v8hi ((const __builtin_neon_hi *) __a);
10365 }
10366
10367 __extension__ extern __inline int32x4_t
10368 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10369 vld1q_s32 (const int32_t * __a)
10370 {
10371 return (int32x4_t)__builtin_neon_vld1v4si ((const __builtin_neon_si *) __a);
10372 }
10373
10374 __extension__ extern __inline int64x2_t
10375 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10376 vld1q_s64 (const int64_t * __a)
10377 {
10378 return (int64x2_t)__builtin_neon_vld1v2di ((const __builtin_neon_di *) __a);
10379 }
10380
10381 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
10382 __extension__ extern __inline float16x8_t
10383 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10384 vld1q_f16 (const float16_t * __a)
10385 {
10386 return __builtin_neon_vld1v8hf (__a);
10387 }
10388 #endif
10389
10390 __extension__ extern __inline float32x4_t
10391 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10392 vld1q_f32 (const float32_t * __a)
10393 {
10394 return (float32x4_t)__builtin_neon_vld1v4sf ((const __builtin_neon_sf *) __a);
10395 }
10396
10397 __extension__ extern __inline uint8x16_t
10398 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10399 vld1q_u8 (const uint8_t * __a)
10400 {
10401 return (uint8x16_t)__builtin_neon_vld1v16qi ((const __builtin_neon_qi *) __a);
10402 }
10403
10404 __extension__ extern __inline uint16x8_t
10405 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10406 vld1q_u16 (const uint16_t * __a)
10407 {
10408 return (uint16x8_t)__builtin_neon_vld1v8hi ((const __builtin_neon_hi *) __a);
10409 }
10410
10411 __extension__ extern __inline uint32x4_t
10412 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10413 vld1q_u32 (const uint32_t * __a)
10414 {
10415 return (uint32x4_t)__builtin_neon_vld1v4si ((const __builtin_neon_si *) __a);
10416 }
10417
10418 __extension__ extern __inline uint64x2_t
10419 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10420 vld1q_u64 (const uint64_t * __a)
10421 {
10422 return (uint64x2_t)__builtin_neon_vld1v2di ((const __builtin_neon_di *) __a);
10423 }
10424
10425 __extension__ extern __inline poly8x16_t
10426 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10427 vld1q_p8 (const poly8_t * __a)
10428 {
10429 return (poly8x16_t)__builtin_neon_vld1v16qi ((const __builtin_neon_qi *) __a);
10430 }
10431
10432 __extension__ extern __inline poly16x8_t
10433 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10434 vld1q_p16 (const poly16_t * __a)
10435 {
10436 return (poly16x8_t)__builtin_neon_vld1v8hi ((const __builtin_neon_hi *) __a);
10437 }
10438
10439 __extension__ extern __inline int8x8_t
10440 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10441 vld1_lane_s8 (const int8_t * __a, int8x8_t __b, const int __c)
10442 {
10443 return (int8x8_t)__builtin_neon_vld1_lanev8qi ((const __builtin_neon_qi *) __a, __b, __c);
10444 }
10445
10446 __extension__ extern __inline int16x4_t
10447 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10448 vld1_lane_s16 (const int16_t * __a, int16x4_t __b, const int __c)
10449 {
10450 return (int16x4_t)__builtin_neon_vld1_lanev4hi ((const __builtin_neon_hi *) __a, __b, __c);
10451 }
10452
10453 __extension__ extern __inline int32x2_t
10454 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10455 vld1_lane_s32 (const int32_t * __a, int32x2_t __b, const int __c)
10456 {
10457 return (int32x2_t)__builtin_neon_vld1_lanev2si ((const __builtin_neon_si *) __a, __b, __c);
10458 }
10459
10460 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
10461 __extension__ extern __inline float16x4_t
10462 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10463 vld1_lane_f16 (const float16_t * __a, float16x4_t __b, const int __c)
10464 {
10465 return vset_lane_f16 (*__a, __b, __c);
10466 }
10467 #endif
10468
10469 __extension__ extern __inline float32x2_t
10470 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10471 vld1_lane_f32 (const float32_t * __a, float32x2_t __b, const int __c)
10472 {
10473 return (float32x2_t)__builtin_neon_vld1_lanev2sf ((const __builtin_neon_sf *) __a, __b, __c);
10474 }
10475
10476 __extension__ extern __inline uint8x8_t
10477 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10478 vld1_lane_u8 (const uint8_t * __a, uint8x8_t __b, const int __c)
10479 {
10480 return (uint8x8_t)__builtin_neon_vld1_lanev8qi ((const __builtin_neon_qi *) __a, (int8x8_t) __b, __c);
10481 }
10482
10483 __extension__ extern __inline uint16x4_t
10484 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10485 vld1_lane_u16 (const uint16_t * __a, uint16x4_t __b, const int __c)
10486 {
10487 return (uint16x4_t)__builtin_neon_vld1_lanev4hi ((const __builtin_neon_hi *) __a, (int16x4_t) __b, __c);
10488 }
10489
10490 __extension__ extern __inline uint32x2_t
10491 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10492 vld1_lane_u32 (const uint32_t * __a, uint32x2_t __b, const int __c)
10493 {
10494 return (uint32x2_t)__builtin_neon_vld1_lanev2si ((const __builtin_neon_si *) __a, (int32x2_t) __b, __c);
10495 }
10496
10497 __extension__ extern __inline poly8x8_t
10498 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10499 vld1_lane_p8 (const poly8_t * __a, poly8x8_t __b, const int __c)
10500 {
10501 return (poly8x8_t)__builtin_neon_vld1_lanev8qi ((const __builtin_neon_qi *) __a, (int8x8_t) __b, __c);
10502 }
10503
10504 __extension__ extern __inline poly16x4_t
10505 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10506 vld1_lane_p16 (const poly16_t * __a, poly16x4_t __b, const int __c)
10507 {
10508 return (poly16x4_t)__builtin_neon_vld1_lanev4hi ((const __builtin_neon_hi *) __a, (int16x4_t) __b, __c);
10509 }
10510
10511 #pragma GCC push_options
10512 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
10513 __extension__ extern __inline poly64x1_t
10514 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10515 vld1_lane_p64 (const poly64_t * __a, poly64x1_t __b, const int __c)
10516 {
10517 return (poly64x1_t)__builtin_neon_vld1_lanedi ((const __builtin_neon_di *) __a, __b, __c);
10518 }
10519
10520 #pragma GCC pop_options
10521 __extension__ extern __inline int64x1_t
10522 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10523 vld1_lane_s64 (const int64_t * __a, int64x1_t __b, const int __c)
10524 {
10525 return (int64x1_t)__builtin_neon_vld1_lanedi ((const __builtin_neon_di *) __a, __b, __c);
10526 }
10527
10528 __extension__ extern __inline uint64x1_t
10529 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10530 vld1_lane_u64 (const uint64_t * __a, uint64x1_t __b, const int __c)
10531 {
10532 return (uint64x1_t)__builtin_neon_vld1_lanedi ((const __builtin_neon_di *) __a, (int64x1_t) __b, __c);
10533 }
10534
10535 __extension__ extern __inline int8x16_t
10536 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10537 vld1q_lane_s8 (const int8_t * __a, int8x16_t __b, const int __c)
10538 {
10539 return (int8x16_t)__builtin_neon_vld1_lanev16qi ((const __builtin_neon_qi *) __a, __b, __c);
10540 }
10541
10542 __extension__ extern __inline int16x8_t
10543 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10544 vld1q_lane_s16 (const int16_t * __a, int16x8_t __b, const int __c)
10545 {
10546 return (int16x8_t)__builtin_neon_vld1_lanev8hi ((const __builtin_neon_hi *) __a, __b, __c);
10547 }
10548
10549 __extension__ extern __inline int32x4_t
10550 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10551 vld1q_lane_s32 (const int32_t * __a, int32x4_t __b, const int __c)
10552 {
10553 return (int32x4_t)__builtin_neon_vld1_lanev4si ((const __builtin_neon_si *) __a, __b, __c);
10554 }
10555
10556 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
10557 __extension__ extern __inline float16x8_t
10558 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10559 vld1q_lane_f16 (const float16_t * __a, float16x8_t __b, const int __c)
10560 {
10561 return vsetq_lane_f16 (*__a, __b, __c);
10562 }
10563 #endif
10564
10565 __extension__ extern __inline float32x4_t
10566 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10567 vld1q_lane_f32 (const float32_t * __a, float32x4_t __b, const int __c)
10568 {
10569 return (float32x4_t)__builtin_neon_vld1_lanev4sf ((const __builtin_neon_sf *) __a, __b, __c);
10570 }
10571
10572 __extension__ extern __inline uint8x16_t
10573 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10574 vld1q_lane_u8 (const uint8_t * __a, uint8x16_t __b, const int __c)
10575 {
10576 return (uint8x16_t)__builtin_neon_vld1_lanev16qi ((const __builtin_neon_qi *) __a, (int8x16_t) __b, __c);
10577 }
10578
10579 __extension__ extern __inline uint16x8_t
10580 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10581 vld1q_lane_u16 (const uint16_t * __a, uint16x8_t __b, const int __c)
10582 {
10583 return (uint16x8_t)__builtin_neon_vld1_lanev8hi ((const __builtin_neon_hi *) __a, (int16x8_t) __b, __c);
10584 }
10585
10586 __extension__ extern __inline uint32x4_t
10587 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10588 vld1q_lane_u32 (const uint32_t * __a, uint32x4_t __b, const int __c)
10589 {
10590 return (uint32x4_t)__builtin_neon_vld1_lanev4si ((const __builtin_neon_si *) __a, (int32x4_t) __b, __c);
10591 }
10592
10593 __extension__ extern __inline poly8x16_t
10594 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10595 vld1q_lane_p8 (const poly8_t * __a, poly8x16_t __b, const int __c)
10596 {
10597 return (poly8x16_t)__builtin_neon_vld1_lanev16qi ((const __builtin_neon_qi *) __a, (int8x16_t) __b, __c);
10598 }
10599
10600 __extension__ extern __inline poly16x8_t
10601 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10602 vld1q_lane_p16 (const poly16_t * __a, poly16x8_t __b, const int __c)
10603 {
10604 return (poly16x8_t)__builtin_neon_vld1_lanev8hi ((const __builtin_neon_hi *) __a, (int16x8_t) __b, __c);
10605 }
10606
10607 #pragma GCC push_options
10608 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
10609 __extension__ extern __inline poly64x2_t
10610 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10611 vld1q_lane_p64 (const poly64_t * __a, poly64x2_t __b, const int __c)
10612 {
10613 return (poly64x2_t)__builtin_neon_vld1_lanev2di ((const __builtin_neon_di *) __a, (int64x2_t) __b, __c);
10614 }
10615
10616 #pragma GCC pop_options
10617 __extension__ extern __inline int64x2_t
10618 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10619 vld1q_lane_s64 (const int64_t * __a, int64x2_t __b, const int __c)
10620 {
10621 return (int64x2_t)__builtin_neon_vld1_lanev2di ((const __builtin_neon_di *) __a, __b, __c);
10622 }
10623
10624 __extension__ extern __inline uint64x2_t
10625 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10626 vld1q_lane_u64 (const uint64_t * __a, uint64x2_t __b, const int __c)
10627 {
10628 return (uint64x2_t)__builtin_neon_vld1_lanev2di ((const __builtin_neon_di *) __a, (int64x2_t) __b, __c);
10629 }
10630
10631 __extension__ extern __inline int8x8_t
10632 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10633 vld1_dup_s8 (const int8_t * __a)
10634 {
10635 return (int8x8_t)__builtin_neon_vld1_dupv8qi ((const __builtin_neon_qi *) __a);
10636 }
10637
10638 __extension__ extern __inline int16x4_t
10639 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10640 vld1_dup_s16 (const int16_t * __a)
10641 {
10642 return (int16x4_t)__builtin_neon_vld1_dupv4hi ((const __builtin_neon_hi *) __a);
10643 }
10644
10645 __extension__ extern __inline int32x2_t
10646 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10647 vld1_dup_s32 (const int32_t * __a)
10648 {
10649 return (int32x2_t)__builtin_neon_vld1_dupv2si ((const __builtin_neon_si *) __a);
10650 }
10651
10652 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
10653 __extension__ extern __inline float16x4_t
10654 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10655 vld1_dup_f16 (const float16_t * __a)
10656 {
10657 float16_t __f = *__a;
10658 return (float16x4_t) { __f, __f, __f, __f };
10659 }
10660 #endif
10661
10662 __extension__ extern __inline float32x2_t
10663 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10664 vld1_dup_f32 (const float32_t * __a)
10665 {
10666 return (float32x2_t)__builtin_neon_vld1_dupv2sf ((const __builtin_neon_sf *) __a);
10667 }
10668
10669 __extension__ extern __inline uint8x8_t
10670 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10671 vld1_dup_u8 (const uint8_t * __a)
10672 {
10673 return (uint8x8_t)__builtin_neon_vld1_dupv8qi ((const __builtin_neon_qi *) __a);
10674 }
10675
10676 __extension__ extern __inline uint16x4_t
10677 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10678 vld1_dup_u16 (const uint16_t * __a)
10679 {
10680 return (uint16x4_t)__builtin_neon_vld1_dupv4hi ((const __builtin_neon_hi *) __a);
10681 }
10682
10683 __extension__ extern __inline uint32x2_t
10684 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10685 vld1_dup_u32 (const uint32_t * __a)
10686 {
10687 return (uint32x2_t)__builtin_neon_vld1_dupv2si ((const __builtin_neon_si *) __a);
10688 }
10689
10690 __extension__ extern __inline poly8x8_t
10691 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10692 vld1_dup_p8 (const poly8_t * __a)
10693 {
10694 return (poly8x8_t)__builtin_neon_vld1_dupv8qi ((const __builtin_neon_qi *) __a);
10695 }
10696
10697 __extension__ extern __inline poly16x4_t
10698 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10699 vld1_dup_p16 (const poly16_t * __a)
10700 {
10701 return (poly16x4_t)__builtin_neon_vld1_dupv4hi ((const __builtin_neon_hi *) __a);
10702 }
10703
10704 #pragma GCC push_options
10705 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
10706 __extension__ extern __inline poly64x1_t
10707 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10708 vld1_dup_p64 (const poly64_t * __a)
10709 {
10710 return (poly64x1_t)__builtin_neon_vld1_dupdi ((const __builtin_neon_di *) __a);
10711 }
10712
10713 #pragma GCC pop_options
10714 __extension__ extern __inline int64x1_t
10715 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10716 vld1_dup_s64 (const int64_t * __a)
10717 {
10718 return (int64x1_t)__builtin_neon_vld1_dupdi ((const __builtin_neon_di *) __a);
10719 }
10720
10721 __extension__ extern __inline uint64x1_t
10722 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10723 vld1_dup_u64 (const uint64_t * __a)
10724 {
10725 return (uint64x1_t)__builtin_neon_vld1_dupdi ((const __builtin_neon_di *) __a);
10726 }
10727
10728 __extension__ extern __inline int8x16_t
10729 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10730 vld1q_dup_s8 (const int8_t * __a)
10731 {
10732 return (int8x16_t)__builtin_neon_vld1_dupv16qi ((const __builtin_neon_qi *) __a);
10733 }
10734
10735 __extension__ extern __inline int16x8_t
10736 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10737 vld1q_dup_s16 (const int16_t * __a)
10738 {
10739 return (int16x8_t)__builtin_neon_vld1_dupv8hi ((const __builtin_neon_hi *) __a);
10740 }
10741
10742 __extension__ extern __inline int32x4_t
10743 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10744 vld1q_dup_s32 (const int32_t * __a)
10745 {
10746 return (int32x4_t)__builtin_neon_vld1_dupv4si ((const __builtin_neon_si *) __a);
10747 }
10748
10749 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
10750 __extension__ extern __inline float16x8_t
10751 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10752 vld1q_dup_f16 (const float16_t * __a)
10753 {
10754 float16_t __f = *__a;
10755 return (float16x8_t) { __f, __f, __f, __f, __f, __f, __f, __f };
10756 }
10757 #endif
10758
10759 __extension__ extern __inline float32x4_t
10760 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10761 vld1q_dup_f32 (const float32_t * __a)
10762 {
10763 return (float32x4_t)__builtin_neon_vld1_dupv4sf ((const __builtin_neon_sf *) __a);
10764 }
10765
10766 __extension__ extern __inline uint8x16_t
10767 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10768 vld1q_dup_u8 (const uint8_t * __a)
10769 {
10770 return (uint8x16_t)__builtin_neon_vld1_dupv16qi ((const __builtin_neon_qi *) __a);
10771 }
10772
10773 __extension__ extern __inline uint16x8_t
10774 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10775 vld1q_dup_u16 (const uint16_t * __a)
10776 {
10777 return (uint16x8_t)__builtin_neon_vld1_dupv8hi ((const __builtin_neon_hi *) __a);
10778 }
10779
10780 __extension__ extern __inline uint32x4_t
10781 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10782 vld1q_dup_u32 (const uint32_t * __a)
10783 {
10784 return (uint32x4_t)__builtin_neon_vld1_dupv4si ((const __builtin_neon_si *) __a);
10785 }
10786
10787 __extension__ extern __inline poly8x16_t
10788 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10789 vld1q_dup_p8 (const poly8_t * __a)
10790 {
10791 return (poly8x16_t)__builtin_neon_vld1_dupv16qi ((const __builtin_neon_qi *) __a);
10792 }
10793
10794 __extension__ extern __inline poly16x8_t
10795 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10796 vld1q_dup_p16 (const poly16_t * __a)
10797 {
10798 return (poly16x8_t)__builtin_neon_vld1_dupv8hi ((const __builtin_neon_hi *) __a);
10799 }
10800
10801 #pragma GCC push_options
10802 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
10803 __extension__ extern __inline poly64x2_t
10804 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10805 vld1q_dup_p64 (const poly64_t * __a)
10806 {
10807 return (poly64x2_t)__builtin_neon_vld1_dupv2di ((const __builtin_neon_di *) __a);
10808 }
10809
10810 #pragma GCC pop_options
10811 __extension__ extern __inline int64x2_t
10812 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10813 vld1q_dup_s64 (const int64_t * __a)
10814 {
10815 return (int64x2_t)__builtin_neon_vld1_dupv2di ((const __builtin_neon_di *) __a);
10816 }
10817
10818 __extension__ extern __inline uint64x2_t
10819 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10820 vld1q_dup_u64 (const uint64_t * __a)
10821 {
10822 return (uint64x2_t)__builtin_neon_vld1_dupv2di ((const __builtin_neon_di *) __a);
10823 }
10824
10825 #pragma GCC push_options
10826 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
10827 __extension__ extern __inline void
10828 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10829 vst1_p64 (poly64_t * __a, poly64x1_t __b)
10830 {
10831 __builtin_neon_vst1di ((__builtin_neon_di *) __a, __b);
10832 }
10833
10834 #pragma GCC pop_options
10835 __extension__ extern __inline void
10836 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10837 vst1_s8 (int8_t * __a, int8x8_t __b)
10838 {
10839 __builtin_neon_vst1v8qi ((__builtin_neon_qi *) __a, __b);
10840 }
10841
10842 __extension__ extern __inline void
10843 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10844 vst1_s16 (int16_t * __a, int16x4_t __b)
10845 {
10846 __builtin_neon_vst1v4hi ((__builtin_neon_hi *) __a, __b);
10847 }
10848
10849 __extension__ extern __inline void
10850 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10851 vst1_s32 (int32_t * __a, int32x2_t __b)
10852 {
10853 __builtin_neon_vst1v2si ((__builtin_neon_si *) __a, __b);
10854 }
10855
10856 __extension__ extern __inline void
10857 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10858 vst1_s64 (int64_t * __a, int64x1_t __b)
10859 {
10860 __builtin_neon_vst1di ((__builtin_neon_di *) __a, __b);
10861 }
10862
10863 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
10864 __extension__ extern __inline void
10865 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10866 vst1_f16 (float16_t * __a, float16x4_t __b)
10867 {
10868 __builtin_neon_vst1v4hf (__a, __b);
10869 }
10870 #endif
10871
10872 __extension__ extern __inline void
10873 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10874 vst1_f32 (float32_t * __a, float32x2_t __b)
10875 {
10876 __builtin_neon_vst1v2sf ((__builtin_neon_sf *) __a, __b);
10877 }
10878
10879 __extension__ extern __inline void
10880 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10881 vst1_u8 (uint8_t * __a, uint8x8_t __b)
10882 {
10883 __builtin_neon_vst1v8qi ((__builtin_neon_qi *) __a, (int8x8_t) __b);
10884 }
10885
10886 __extension__ extern __inline void
10887 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10888 vst1_u16 (uint16_t * __a, uint16x4_t __b)
10889 {
10890 __builtin_neon_vst1v4hi ((__builtin_neon_hi *) __a, (int16x4_t) __b);
10891 }
10892
10893 __extension__ extern __inline void
10894 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10895 vst1_u32 (uint32_t * __a, uint32x2_t __b)
10896 {
10897 __builtin_neon_vst1v2si ((__builtin_neon_si *) __a, (int32x2_t) __b);
10898 }
10899
10900 __extension__ extern __inline void
10901 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10902 vst1_u64 (uint64_t * __a, uint64x1_t __b)
10903 {
10904 __builtin_neon_vst1di ((__builtin_neon_di *) __a, (int64x1_t) __b);
10905 }
10906
10907 __extension__ extern __inline void
10908 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10909 vst1_p8 (poly8_t * __a, poly8x8_t __b)
10910 {
10911 __builtin_neon_vst1v8qi ((__builtin_neon_qi *) __a, (int8x8_t) __b);
10912 }
10913
10914 __extension__ extern __inline void
10915 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10916 vst1_p16 (poly16_t * __a, poly16x4_t __b)
10917 {
10918 __builtin_neon_vst1v4hi ((__builtin_neon_hi *) __a, (int16x4_t) __b);
10919 }
10920
10921 #pragma GCC push_options
10922 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
10923 __extension__ extern __inline void
10924 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10925 vst1q_p64 (poly64_t * __a, poly64x2_t __b)
10926 {
10927 __builtin_neon_vst1v2di ((__builtin_neon_di *) __a, (int64x2_t) __b);
10928 }
10929
10930 #pragma GCC pop_options
10931 __extension__ extern __inline void
10932 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10933 vst1q_s8 (int8_t * __a, int8x16_t __b)
10934 {
10935 __builtin_neon_vst1v16qi ((__builtin_neon_qi *) __a, __b);
10936 }
10937
10938 __extension__ extern __inline void
10939 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10940 vst1q_s16 (int16_t * __a, int16x8_t __b)
10941 {
10942 __builtin_neon_vst1v8hi ((__builtin_neon_hi *) __a, __b);
10943 }
10944
10945 __extension__ extern __inline void
10946 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10947 vst1q_s32 (int32_t * __a, int32x4_t __b)
10948 {
10949 __builtin_neon_vst1v4si ((__builtin_neon_si *) __a, __b);
10950 }
10951
10952 __extension__ extern __inline void
10953 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10954 vst1q_s64 (int64_t * __a, int64x2_t __b)
10955 {
10956 __builtin_neon_vst1v2di ((__builtin_neon_di *) __a, __b);
10957 }
10958
10959 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
10960 __extension__ extern __inline void
10961 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10962 vst1q_f16 (float16_t * __a, float16x8_t __b)
10963 {
10964 __builtin_neon_vst1v8hf (__a, __b);
10965 }
10966 #endif
10967
10968 __extension__ extern __inline void
10969 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10970 vst1q_f32 (float32_t * __a, float32x4_t __b)
10971 {
10972 __builtin_neon_vst1v4sf ((__builtin_neon_sf *) __a, __b);
10973 }
10974
10975 __extension__ extern __inline void
10976 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10977 vst1q_u8 (uint8_t * __a, uint8x16_t __b)
10978 {
10979 __builtin_neon_vst1v16qi ((__builtin_neon_qi *) __a, (int8x16_t) __b);
10980 }
10981
10982 __extension__ extern __inline void
10983 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10984 vst1q_u16 (uint16_t * __a, uint16x8_t __b)
10985 {
10986 __builtin_neon_vst1v8hi ((__builtin_neon_hi *) __a, (int16x8_t) __b);
10987 }
10988
10989 __extension__ extern __inline void
10990 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10991 vst1q_u32 (uint32_t * __a, uint32x4_t __b)
10992 {
10993 __builtin_neon_vst1v4si ((__builtin_neon_si *) __a, (int32x4_t) __b);
10994 }
10995
10996 __extension__ extern __inline void
10997 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10998 vst1q_u64 (uint64_t * __a, uint64x2_t __b)
10999 {
11000 __builtin_neon_vst1v2di ((__builtin_neon_di *) __a, (int64x2_t) __b);
11001 }
11002
11003 __extension__ extern __inline void
11004 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11005 vst1q_p8 (poly8_t * __a, poly8x16_t __b)
11006 {
11007 __builtin_neon_vst1v16qi ((__builtin_neon_qi *) __a, (int8x16_t) __b);
11008 }
11009
11010 __extension__ extern __inline void
11011 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11012 vst1q_p16 (poly16_t * __a, poly16x8_t __b)
11013 {
11014 __builtin_neon_vst1v8hi ((__builtin_neon_hi *) __a, (int16x8_t) __b);
11015 }
11016
11017 __extension__ extern __inline void
11018 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11019 vst1_lane_s8 (int8_t * __a, int8x8_t __b, const int __c)
11020 {
11021 __builtin_neon_vst1_lanev8qi ((__builtin_neon_qi *) __a, __b, __c);
11022 }
11023
11024 __extension__ extern __inline void
11025 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11026 vst1_lane_s16 (int16_t * __a, int16x4_t __b, const int __c)
11027 {
11028 __builtin_neon_vst1_lanev4hi ((__builtin_neon_hi *) __a, __b, __c);
11029 }
11030
11031 __extension__ extern __inline void
11032 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11033 vst1_lane_s32 (int32_t * __a, int32x2_t __b, const int __c)
11034 {
11035 __builtin_neon_vst1_lanev2si ((__builtin_neon_si *) __a, __b, __c);
11036 }
11037
11038 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
11039 __extension__ extern __inline void
11040 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11041 vst1_lane_f16 (float16_t * __a, float16x4_t __b, const int __c)
11042 {
11043 __builtin_neon_vst1_lanev4hf (__a, __b, __c);
11044 }
11045 #endif
11046
11047 __extension__ extern __inline void
11048 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11049 vst1_lane_f32 (float32_t * __a, float32x2_t __b, const int __c)
11050 {
11051 __builtin_neon_vst1_lanev2sf ((__builtin_neon_sf *) __a, __b, __c);
11052 }
11053
11054 __extension__ extern __inline void
11055 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11056 vst1_lane_u8 (uint8_t * __a, uint8x8_t __b, const int __c)
11057 {
11058 __builtin_neon_vst1_lanev8qi ((__builtin_neon_qi *) __a, (int8x8_t) __b, __c);
11059 }
11060
11061 __extension__ extern __inline void
11062 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11063 vst1_lane_u16 (uint16_t * __a, uint16x4_t __b, const int __c)
11064 {
11065 __builtin_neon_vst1_lanev4hi ((__builtin_neon_hi *) __a, (int16x4_t) __b, __c);
11066 }
11067
11068 __extension__ extern __inline void
11069 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11070 vst1_lane_u32 (uint32_t * __a, uint32x2_t __b, const int __c)
11071 {
11072 __builtin_neon_vst1_lanev2si ((__builtin_neon_si *) __a, (int32x2_t) __b, __c);
11073 }
11074
11075 __extension__ extern __inline void
11076 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11077 vst1_lane_p8 (poly8_t * __a, poly8x8_t __b, const int __c)
11078 {
11079 __builtin_neon_vst1_lanev8qi ((__builtin_neon_qi *) __a, (int8x8_t) __b, __c);
11080 }
11081
11082 __extension__ extern __inline void
11083 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11084 vst1_lane_p16 (poly16_t * __a, poly16x4_t __b, const int __c)
11085 {
11086 __builtin_neon_vst1_lanev4hi ((__builtin_neon_hi *) __a, (int16x4_t) __b, __c);
11087 }
11088
11089 #pragma GCC push_options
11090 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
11091 __extension__ extern __inline void
11092 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11093 vst1_lane_p64 (poly64_t * __a, poly64x1_t __b, const int __c)
11094 {
11095 __builtin_neon_vst1_lanedi ((__builtin_neon_di *) __a, __b, __c);
11096 }
11097
11098 #pragma GCC pop_options
11099 __extension__ extern __inline void
11100 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11101 vst1_lane_s64 (int64_t * __a, int64x1_t __b, const int __c)
11102 {
11103 __builtin_neon_vst1_lanedi ((__builtin_neon_di *) __a, __b, __c);
11104 }
11105
11106 __extension__ extern __inline void
11107 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11108 vst1_lane_u64 (uint64_t * __a, uint64x1_t __b, const int __c)
11109 {
11110 __builtin_neon_vst1_lanedi ((__builtin_neon_di *) __a, (int64x1_t) __b, __c);
11111 }
11112
11113 __extension__ extern __inline void
11114 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11115 vst1q_lane_s8 (int8_t * __a, int8x16_t __b, const int __c)
11116 {
11117 __builtin_neon_vst1_lanev16qi ((__builtin_neon_qi *) __a, __b, __c);
11118 }
11119
11120 __extension__ extern __inline void
11121 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11122 vst1q_lane_s16 (int16_t * __a, int16x8_t __b, const int __c)
11123 {
11124 __builtin_neon_vst1_lanev8hi ((__builtin_neon_hi *) __a, __b, __c);
11125 }
11126
11127 __extension__ extern __inline void
11128 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11129 vst1q_lane_s32 (int32_t * __a, int32x4_t __b, const int __c)
11130 {
11131 __builtin_neon_vst1_lanev4si ((__builtin_neon_si *) __a, __b, __c);
11132 }
11133
11134 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
11135 __extension__ extern __inline void
11136 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11137 vst1q_lane_f16 (float16_t * __a, float16x8_t __b, const int __c)
11138 {
11139 __builtin_neon_vst1_lanev8hf (__a, __b, __c);
11140 }
11141 #endif
11142
11143 __extension__ extern __inline void
11144 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11145 vst1q_lane_f32 (float32_t * __a, float32x4_t __b, const int __c)
11146 {
11147 __builtin_neon_vst1_lanev4sf ((__builtin_neon_sf *) __a, __b, __c);
11148 }
11149
11150 __extension__ extern __inline void
11151 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11152 vst1q_lane_u8 (uint8_t * __a, uint8x16_t __b, const int __c)
11153 {
11154 __builtin_neon_vst1_lanev16qi ((__builtin_neon_qi *) __a, (int8x16_t) __b, __c);
11155 }
11156
11157 __extension__ extern __inline void
11158 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11159 vst1q_lane_u16 (uint16_t * __a, uint16x8_t __b, const int __c)
11160 {
11161 __builtin_neon_vst1_lanev8hi ((__builtin_neon_hi *) __a, (int16x8_t) __b, __c);
11162 }
11163
11164 __extension__ extern __inline void
11165 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11166 vst1q_lane_u32 (uint32_t * __a, uint32x4_t __b, const int __c)
11167 {
11168 __builtin_neon_vst1_lanev4si ((__builtin_neon_si *) __a, (int32x4_t) __b, __c);
11169 }
11170
11171 __extension__ extern __inline void
11172 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11173 vst1q_lane_p8 (poly8_t * __a, poly8x16_t __b, const int __c)
11174 {
11175 __builtin_neon_vst1_lanev16qi ((__builtin_neon_qi *) __a, (int8x16_t) __b, __c);
11176 }
11177
11178 __extension__ extern __inline void
11179 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11180 vst1q_lane_p16 (poly16_t * __a, poly16x8_t __b, const int __c)
11181 {
11182 __builtin_neon_vst1_lanev8hi ((__builtin_neon_hi *) __a, (int16x8_t) __b, __c);
11183 }
11184
11185 #pragma GCC push_options
11186 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
11187 __extension__ extern __inline void
11188 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11189 vst1q_lane_p64 (poly64_t * __a, poly64x2_t __b, const int __c)
11190 {
11191 __builtin_neon_vst1_lanev2di ((__builtin_neon_di *) __a, (int64x2_t) __b, __c);
11192 }
11193
11194 #pragma GCC pop_options
11195 __extension__ extern __inline void
11196 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11197 vst1q_lane_s64 (int64_t * __a, int64x2_t __b, const int __c)
11198 {
11199 __builtin_neon_vst1_lanev2di ((__builtin_neon_di *) __a, __b, __c);
11200 }
11201
11202 __extension__ extern __inline void
11203 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11204 vst1q_lane_u64 (uint64_t * __a, uint64x2_t __b, const int __c)
11205 {
11206 __builtin_neon_vst1_lanev2di ((__builtin_neon_di *) __a, (int64x2_t) __b, __c);
11207 }
11208
11209 __extension__ extern __inline int8x8x2_t
11210 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11211 vld2_s8 (const int8_t * __a)
11212 {
11213 union { int8x8x2_t __i; __builtin_neon_ti __o; } __rv;
11214 __rv.__o = __builtin_neon_vld2v8qi ((const __builtin_neon_qi *) __a);
11215 return __rv.__i;
11216 }
11217
11218 __extension__ extern __inline int16x4x2_t
11219 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11220 vld2_s16 (const int16_t * __a)
11221 {
11222 union { int16x4x2_t __i; __builtin_neon_ti __o; } __rv;
11223 __rv.__o = __builtin_neon_vld2v4hi ((const __builtin_neon_hi *) __a);
11224 return __rv.__i;
11225 }
11226
11227 __extension__ extern __inline int32x2x2_t
11228 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11229 vld2_s32 (const int32_t * __a)
11230 {
11231 union { int32x2x2_t __i; __builtin_neon_ti __o; } __rv;
11232 __rv.__o = __builtin_neon_vld2v2si ((const __builtin_neon_si *) __a);
11233 return __rv.__i;
11234 }
11235
11236 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
11237 __extension__ extern __inline float16x4x2_t
11238 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11239 vld2_f16 (const float16_t * __a)
11240 {
11241 union { float16x4x2_t __i; __builtin_neon_ti __o; } __rv;
11242 __rv.__o = __builtin_neon_vld2v4hf (__a);
11243 return __rv.__i;
11244 }
11245 #endif
11246
11247 __extension__ extern __inline float32x2x2_t
11248 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11249 vld2_f32 (const float32_t * __a)
11250 {
11251 union { float32x2x2_t __i; __builtin_neon_ti __o; } __rv;
11252 __rv.__o = __builtin_neon_vld2v2sf ((const __builtin_neon_sf *) __a);
11253 return __rv.__i;
11254 }
11255
11256 __extension__ extern __inline uint8x8x2_t
11257 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11258 vld2_u8 (const uint8_t * __a)
11259 {
11260 union { uint8x8x2_t __i; __builtin_neon_ti __o; } __rv;
11261 __rv.__o = __builtin_neon_vld2v8qi ((const __builtin_neon_qi *) __a);
11262 return __rv.__i;
11263 }
11264
11265 __extension__ extern __inline uint16x4x2_t
11266 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11267 vld2_u16 (const uint16_t * __a)
11268 {
11269 union { uint16x4x2_t __i; __builtin_neon_ti __o; } __rv;
11270 __rv.__o = __builtin_neon_vld2v4hi ((const __builtin_neon_hi *) __a);
11271 return __rv.__i;
11272 }
11273
11274 __extension__ extern __inline uint32x2x2_t
11275 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11276 vld2_u32 (const uint32_t * __a)
11277 {
11278 union { uint32x2x2_t __i; __builtin_neon_ti __o; } __rv;
11279 __rv.__o = __builtin_neon_vld2v2si ((const __builtin_neon_si *) __a);
11280 return __rv.__i;
11281 }
11282
11283 __extension__ extern __inline poly8x8x2_t
11284 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11285 vld2_p8 (const poly8_t * __a)
11286 {
11287 union { poly8x8x2_t __i; __builtin_neon_ti __o; } __rv;
11288 __rv.__o = __builtin_neon_vld2v8qi ((const __builtin_neon_qi *) __a);
11289 return __rv.__i;
11290 }
11291
11292 __extension__ extern __inline poly16x4x2_t
11293 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11294 vld2_p16 (const poly16_t * __a)
11295 {
11296 union { poly16x4x2_t __i; __builtin_neon_ti __o; } __rv;
11297 __rv.__o = __builtin_neon_vld2v4hi ((const __builtin_neon_hi *) __a);
11298 return __rv.__i;
11299 }
11300
11301 #pragma GCC push_options
11302 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
11303 __extension__ extern __inline poly64x1x2_t
11304 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11305 vld2_p64 (const poly64_t * __a)
11306 {
11307 union { poly64x1x2_t __i; __builtin_neon_ti __o; } __rv;
11308 __rv.__o = __builtin_neon_vld2di ((const __builtin_neon_di *) __a);
11309 return __rv.__i;
11310 }
11311
11312 #pragma GCC pop_options
11313 __extension__ extern __inline int64x1x2_t
11314 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11315 vld2_s64 (const int64_t * __a)
11316 {
11317 union { int64x1x2_t __i; __builtin_neon_ti __o; } __rv;
11318 __rv.__o = __builtin_neon_vld2di ((const __builtin_neon_di *) __a);
11319 return __rv.__i;
11320 }
11321
11322 __extension__ extern __inline uint64x1x2_t
11323 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11324 vld2_u64 (const uint64_t * __a)
11325 {
11326 union { uint64x1x2_t __i; __builtin_neon_ti __o; } __rv;
11327 __rv.__o = __builtin_neon_vld2di ((const __builtin_neon_di *) __a);
11328 return __rv.__i;
11329 }
11330
11331 __extension__ extern __inline int8x16x2_t
11332 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11333 vld2q_s8 (const int8_t * __a)
11334 {
11335 union { int8x16x2_t __i; __builtin_neon_oi __o; } __rv;
11336 __rv.__o = __builtin_neon_vld2v16qi ((const __builtin_neon_qi *) __a);
11337 return __rv.__i;
11338 }
11339
11340 __extension__ extern __inline int16x8x2_t
11341 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11342 vld2q_s16 (const int16_t * __a)
11343 {
11344 union { int16x8x2_t __i; __builtin_neon_oi __o; } __rv;
11345 __rv.__o = __builtin_neon_vld2v8hi ((const __builtin_neon_hi *) __a);
11346 return __rv.__i;
11347 }
11348
11349 __extension__ extern __inline int32x4x2_t
11350 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11351 vld2q_s32 (const int32_t * __a)
11352 {
11353 union { int32x4x2_t __i; __builtin_neon_oi __o; } __rv;
11354 __rv.__o = __builtin_neon_vld2v4si ((const __builtin_neon_si *) __a);
11355 return __rv.__i;
11356 }
11357
11358 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
11359 __extension__ extern __inline float16x8x2_t
11360 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11361 vld2q_f16 (const float16_t * __a)
11362 {
11363 union { float16x8x2_t __i; __builtin_neon_oi __o; } __rv;
11364 __rv.__o = __builtin_neon_vld2v8hf (__a);
11365 return __rv.__i;
11366 }
11367 #endif
11368
11369 __extension__ extern __inline float32x4x2_t
11370 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11371 vld2q_f32 (const float32_t * __a)
11372 {
11373 union { float32x4x2_t __i; __builtin_neon_oi __o; } __rv;
11374 __rv.__o = __builtin_neon_vld2v4sf ((const __builtin_neon_sf *) __a);
11375 return __rv.__i;
11376 }
11377
11378 __extension__ extern __inline uint8x16x2_t
11379 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11380 vld2q_u8 (const uint8_t * __a)
11381 {
11382 union { uint8x16x2_t __i; __builtin_neon_oi __o; } __rv;
11383 __rv.__o = __builtin_neon_vld2v16qi ((const __builtin_neon_qi *) __a);
11384 return __rv.__i;
11385 }
11386
11387 __extension__ extern __inline uint16x8x2_t
11388 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11389 vld2q_u16 (const uint16_t * __a)
11390 {
11391 union { uint16x8x2_t __i; __builtin_neon_oi __o; } __rv;
11392 __rv.__o = __builtin_neon_vld2v8hi ((const __builtin_neon_hi *) __a);
11393 return __rv.__i;
11394 }
11395
11396 __extension__ extern __inline uint32x4x2_t
11397 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11398 vld2q_u32 (const uint32_t * __a)
11399 {
11400 union { uint32x4x2_t __i; __builtin_neon_oi __o; } __rv;
11401 __rv.__o = __builtin_neon_vld2v4si ((const __builtin_neon_si *) __a);
11402 return __rv.__i;
11403 }
11404
11405 __extension__ extern __inline poly8x16x2_t
11406 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11407 vld2q_p8 (const poly8_t * __a)
11408 {
11409 union { poly8x16x2_t __i; __builtin_neon_oi __o; } __rv;
11410 __rv.__o = __builtin_neon_vld2v16qi ((const __builtin_neon_qi *) __a);
11411 return __rv.__i;
11412 }
11413
11414 __extension__ extern __inline poly16x8x2_t
11415 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11416 vld2q_p16 (const poly16_t * __a)
11417 {
11418 union { poly16x8x2_t __i; __builtin_neon_oi __o; } __rv;
11419 __rv.__o = __builtin_neon_vld2v8hi ((const __builtin_neon_hi *) __a);
11420 return __rv.__i;
11421 }
11422
11423 __extension__ extern __inline int8x8x2_t
11424 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11425 vld2_lane_s8 (const int8_t * __a, int8x8x2_t __b, const int __c)
11426 {
11427 union { int8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11428 union { int8x8x2_t __i; __builtin_neon_ti __o; } __rv;
11429 __rv.__o = __builtin_neon_vld2_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
11430 return __rv.__i;
11431 }
11432
11433 __extension__ extern __inline int16x4x2_t
11434 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11435 vld2_lane_s16 (const int16_t * __a, int16x4x2_t __b, const int __c)
11436 {
11437 union { int16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11438 union { int16x4x2_t __i; __builtin_neon_ti __o; } __rv;
11439 __rv.__o = __builtin_neon_vld2_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
11440 return __rv.__i;
11441 }
11442
11443 __extension__ extern __inline int32x2x2_t
11444 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11445 vld2_lane_s32 (const int32_t * __a, int32x2x2_t __b, const int __c)
11446 {
11447 union { int32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11448 union { int32x2x2_t __i; __builtin_neon_ti __o; } __rv;
11449 __rv.__o = __builtin_neon_vld2_lanev2si ((const __builtin_neon_si *) __a, __bu.__o, __c);
11450 return __rv.__i;
11451 }
11452
11453 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
11454 __extension__ extern __inline float16x4x2_t
11455 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11456 vld2_lane_f16 (const float16_t * __a, float16x4x2_t __b, const int __c)
11457 {
11458 union { float16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11459 union { float16x4x2_t __i; __builtin_neon_ti __o; } __rv;
11460 __rv.__o = __builtin_neon_vld2_lanev4hf ( __a, __bu.__o, __c);
11461 return __rv.__i;
11462 }
11463 #endif
11464
11465 __extension__ extern __inline float32x2x2_t
11466 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11467 vld2_lane_f32 (const float32_t * __a, float32x2x2_t __b, const int __c)
11468 {
11469 union { float32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11470 union { float32x2x2_t __i; __builtin_neon_ti __o; } __rv;
11471 __rv.__o = __builtin_neon_vld2_lanev2sf ((const __builtin_neon_sf *) __a, __bu.__o, __c);
11472 return __rv.__i;
11473 }
11474
11475 __extension__ extern __inline uint8x8x2_t
11476 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11477 vld2_lane_u8 (const uint8_t * __a, uint8x8x2_t __b, const int __c)
11478 {
11479 union { uint8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11480 union { uint8x8x2_t __i; __builtin_neon_ti __o; } __rv;
11481 __rv.__o = __builtin_neon_vld2_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
11482 return __rv.__i;
11483 }
11484
11485 __extension__ extern __inline uint16x4x2_t
11486 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11487 vld2_lane_u16 (const uint16_t * __a, uint16x4x2_t __b, const int __c)
11488 {
11489 union { uint16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11490 union { uint16x4x2_t __i; __builtin_neon_ti __o; } __rv;
11491 __rv.__o = __builtin_neon_vld2_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
11492 return __rv.__i;
11493 }
11494
11495 __extension__ extern __inline uint32x2x2_t
11496 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11497 vld2_lane_u32 (const uint32_t * __a, uint32x2x2_t __b, const int __c)
11498 {
11499 union { uint32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11500 union { uint32x2x2_t __i; __builtin_neon_ti __o; } __rv;
11501 __rv.__o = __builtin_neon_vld2_lanev2si ((const __builtin_neon_si *) __a, __bu.__o, __c);
11502 return __rv.__i;
11503 }
11504
11505 __extension__ extern __inline poly8x8x2_t
11506 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11507 vld2_lane_p8 (const poly8_t * __a, poly8x8x2_t __b, const int __c)
11508 {
11509 union { poly8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11510 union { poly8x8x2_t __i; __builtin_neon_ti __o; } __rv;
11511 __rv.__o = __builtin_neon_vld2_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
11512 return __rv.__i;
11513 }
11514
11515 __extension__ extern __inline poly16x4x2_t
11516 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11517 vld2_lane_p16 (const poly16_t * __a, poly16x4x2_t __b, const int __c)
11518 {
11519 union { poly16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11520 union { poly16x4x2_t __i; __builtin_neon_ti __o; } __rv;
11521 __rv.__o = __builtin_neon_vld2_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
11522 return __rv.__i;
11523 }
11524
11525 __extension__ extern __inline int16x8x2_t
11526 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11527 vld2q_lane_s16 (const int16_t * __a, int16x8x2_t __b, const int __c)
11528 {
11529 union { int16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11530 union { int16x8x2_t __i; __builtin_neon_oi __o; } __rv;
11531 __rv.__o = __builtin_neon_vld2_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
11532 return __rv.__i;
11533 }
11534
11535 __extension__ extern __inline int32x4x2_t
11536 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11537 vld2q_lane_s32 (const int32_t * __a, int32x4x2_t __b, const int __c)
11538 {
11539 union { int32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11540 union { int32x4x2_t __i; __builtin_neon_oi __o; } __rv;
11541 __rv.__o = __builtin_neon_vld2_lanev4si ((const __builtin_neon_si *) __a, __bu.__o, __c);
11542 return __rv.__i;
11543 }
11544
11545 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
11546 __extension__ extern __inline float16x8x2_t
11547 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11548 vld2q_lane_f16 (const float16_t * __a, float16x8x2_t __b, const int __c)
11549 {
11550 union { float16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11551 union { float16x8x2_t __i; __builtin_neon_oi __o; } __rv;
11552 __rv.__o = __builtin_neon_vld2_lanev8hf (__a, __bu.__o, __c);
11553 return __rv.__i;
11554 }
11555 #endif
11556
11557 __extension__ extern __inline float32x4x2_t
11558 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11559 vld2q_lane_f32 (const float32_t * __a, float32x4x2_t __b, const int __c)
11560 {
11561 union { float32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11562 union { float32x4x2_t __i; __builtin_neon_oi __o; } __rv;
11563 __rv.__o = __builtin_neon_vld2_lanev4sf ((const __builtin_neon_sf *) __a, __bu.__o, __c);
11564 return __rv.__i;
11565 }
11566
11567 __extension__ extern __inline uint16x8x2_t
11568 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11569 vld2q_lane_u16 (const uint16_t * __a, uint16x8x2_t __b, const int __c)
11570 {
11571 union { uint16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11572 union { uint16x8x2_t __i; __builtin_neon_oi __o; } __rv;
11573 __rv.__o = __builtin_neon_vld2_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
11574 return __rv.__i;
11575 }
11576
11577 __extension__ extern __inline uint32x4x2_t
11578 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11579 vld2q_lane_u32 (const uint32_t * __a, uint32x4x2_t __b, const int __c)
11580 {
11581 union { uint32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11582 union { uint32x4x2_t __i; __builtin_neon_oi __o; } __rv;
11583 __rv.__o = __builtin_neon_vld2_lanev4si ((const __builtin_neon_si *) __a, __bu.__o, __c);
11584 return __rv.__i;
11585 }
11586
11587 __extension__ extern __inline poly16x8x2_t
11588 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11589 vld2q_lane_p16 (const poly16_t * __a, poly16x8x2_t __b, const int __c)
11590 {
11591 union { poly16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11592 union { poly16x8x2_t __i; __builtin_neon_oi __o; } __rv;
11593 __rv.__o = __builtin_neon_vld2_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
11594 return __rv.__i;
11595 }
11596
11597 __extension__ extern __inline int8x8x2_t
11598 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11599 vld2_dup_s8 (const int8_t * __a)
11600 {
11601 union { int8x8x2_t __i; __builtin_neon_ti __o; } __rv;
11602 __rv.__o = __builtin_neon_vld2_dupv8qi ((const __builtin_neon_qi *) __a);
11603 return __rv.__i;
11604 }
11605
11606 __extension__ extern __inline int16x4x2_t
11607 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11608 vld2_dup_s16 (const int16_t * __a)
11609 {
11610 union { int16x4x2_t __i; __builtin_neon_ti __o; } __rv;
11611 __rv.__o = __builtin_neon_vld2_dupv4hi ((const __builtin_neon_hi *) __a);
11612 return __rv.__i;
11613 }
11614
11615 __extension__ extern __inline int32x2x2_t
11616 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11617 vld2_dup_s32 (const int32_t * __a)
11618 {
11619 union { int32x2x2_t __i; __builtin_neon_ti __o; } __rv;
11620 __rv.__o = __builtin_neon_vld2_dupv2si ((const __builtin_neon_si *) __a);
11621 return __rv.__i;
11622 }
11623
11624 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
11625 __extension__ extern __inline float16x4x2_t
11626 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11627 vld2_dup_f16 (const float16_t * __a)
11628 {
11629 union { float16x4x2_t __i; __builtin_neon_ti __o; } __rv;
11630 __rv.__o = __builtin_neon_vld2_dupv4hf (__a);
11631 return __rv.__i;
11632 }
11633 #endif
11634
11635 __extension__ extern __inline float32x2x2_t
11636 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11637 vld2_dup_f32 (const float32_t * __a)
11638 {
11639 union { float32x2x2_t __i; __builtin_neon_ti __o; } __rv;
11640 __rv.__o = __builtin_neon_vld2_dupv2sf ((const __builtin_neon_sf *) __a);
11641 return __rv.__i;
11642 }
11643
11644 __extension__ extern __inline uint8x8x2_t
11645 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11646 vld2_dup_u8 (const uint8_t * __a)
11647 {
11648 union { uint8x8x2_t __i; __builtin_neon_ti __o; } __rv;
11649 __rv.__o = __builtin_neon_vld2_dupv8qi ((const __builtin_neon_qi *) __a);
11650 return __rv.__i;
11651 }
11652
11653 __extension__ extern __inline uint16x4x2_t
11654 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11655 vld2_dup_u16 (const uint16_t * __a)
11656 {
11657 union { uint16x4x2_t __i; __builtin_neon_ti __o; } __rv;
11658 __rv.__o = __builtin_neon_vld2_dupv4hi ((const __builtin_neon_hi *) __a);
11659 return __rv.__i;
11660 }
11661
11662 __extension__ extern __inline uint32x2x2_t
11663 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11664 vld2_dup_u32 (const uint32_t * __a)
11665 {
11666 union { uint32x2x2_t __i; __builtin_neon_ti __o; } __rv;
11667 __rv.__o = __builtin_neon_vld2_dupv2si ((const __builtin_neon_si *) __a);
11668 return __rv.__i;
11669 }
11670
11671 __extension__ extern __inline poly8x8x2_t
11672 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11673 vld2_dup_p8 (const poly8_t * __a)
11674 {
11675 union { poly8x8x2_t __i; __builtin_neon_ti __o; } __rv;
11676 __rv.__o = __builtin_neon_vld2_dupv8qi ((const __builtin_neon_qi *) __a);
11677 return __rv.__i;
11678 }
11679
11680 __extension__ extern __inline poly16x4x2_t
11681 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11682 vld2_dup_p16 (const poly16_t * __a)
11683 {
11684 union { poly16x4x2_t __i; __builtin_neon_ti __o; } __rv;
11685 __rv.__o = __builtin_neon_vld2_dupv4hi ((const __builtin_neon_hi *) __a);
11686 return __rv.__i;
11687 }
11688
11689 #pragma GCC push_options
11690 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
11691 __extension__ extern __inline poly64x1x2_t
11692 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11693 vld2_dup_p64 (const poly64_t * __a)
11694 {
11695 union { poly64x1x2_t __i; __builtin_neon_ti __o; } __rv;
11696 __rv.__o = __builtin_neon_vld2_dupdi ((const __builtin_neon_di *) __a);
11697 return __rv.__i;
11698 }
11699
11700 #pragma GCC pop_options
11701 __extension__ extern __inline int64x1x2_t
11702 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11703 vld2_dup_s64 (const int64_t * __a)
11704 {
11705 union { int64x1x2_t __i; __builtin_neon_ti __o; } __rv;
11706 __rv.__o = __builtin_neon_vld2_dupdi ((const __builtin_neon_di *) __a);
11707 return __rv.__i;
11708 }
11709
11710 __extension__ extern __inline uint64x1x2_t
11711 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11712 vld2_dup_u64 (const uint64_t * __a)
11713 {
11714 union { uint64x1x2_t __i; __builtin_neon_ti __o; } __rv;
11715 __rv.__o = __builtin_neon_vld2_dupdi ((const __builtin_neon_di *) __a);
11716 return __rv.__i;
11717 }
11718
11719 __extension__ extern __inline void
11720 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11721 vst2_s8 (int8_t * __a, int8x8x2_t __b)
11722 {
11723 union { int8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11724 __builtin_neon_vst2v8qi ((__builtin_neon_qi *) __a, __bu.__o);
11725 }
11726
11727 __extension__ extern __inline void
11728 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11729 vst2_s16 (int16_t * __a, int16x4x2_t __b)
11730 {
11731 union { int16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11732 __builtin_neon_vst2v4hi ((__builtin_neon_hi *) __a, __bu.__o);
11733 }
11734
11735 __extension__ extern __inline void
11736 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11737 vst2_s32 (int32_t * __a, int32x2x2_t __b)
11738 {
11739 union { int32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11740 __builtin_neon_vst2v2si ((__builtin_neon_si *) __a, __bu.__o);
11741 }
11742
11743 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
11744 __extension__ extern __inline void
11745 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11746 vst2_f16 (float16_t * __a, float16x4x2_t __b)
11747 {
11748 union { float16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11749 __builtin_neon_vst2v4hf (__a, __bu.__o);
11750 }
11751 #endif
11752
11753 __extension__ extern __inline void
11754 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11755 vst2_f32 (float32_t * __a, float32x2x2_t __b)
11756 {
11757 union { float32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11758 __builtin_neon_vst2v2sf ((__builtin_neon_sf *) __a, __bu.__o);
11759 }
11760
11761 __extension__ extern __inline void
11762 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11763 vst2_u8 (uint8_t * __a, uint8x8x2_t __b)
11764 {
11765 union { uint8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11766 __builtin_neon_vst2v8qi ((__builtin_neon_qi *) __a, __bu.__o);
11767 }
11768
11769 __extension__ extern __inline void
11770 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11771 vst2_u16 (uint16_t * __a, uint16x4x2_t __b)
11772 {
11773 union { uint16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11774 __builtin_neon_vst2v4hi ((__builtin_neon_hi *) __a, __bu.__o);
11775 }
11776
11777 __extension__ extern __inline void
11778 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11779 vst2_u32 (uint32_t * __a, uint32x2x2_t __b)
11780 {
11781 union { uint32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11782 __builtin_neon_vst2v2si ((__builtin_neon_si *) __a, __bu.__o);
11783 }
11784
11785 __extension__ extern __inline void
11786 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11787 vst2_p8 (poly8_t * __a, poly8x8x2_t __b)
11788 {
11789 union { poly8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11790 __builtin_neon_vst2v8qi ((__builtin_neon_qi *) __a, __bu.__o);
11791 }
11792
11793 __extension__ extern __inline void
11794 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11795 vst2_p16 (poly16_t * __a, poly16x4x2_t __b)
11796 {
11797 union { poly16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11798 __builtin_neon_vst2v4hi ((__builtin_neon_hi *) __a, __bu.__o);
11799 }
11800
11801 #pragma GCC push_options
11802 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
11803 __extension__ extern __inline void
11804 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11805 vst2_p64 (poly64_t * __a, poly64x1x2_t __b)
11806 {
11807 union { poly64x1x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11808 __builtin_neon_vst2di ((__builtin_neon_di *) __a, __bu.__o);
11809 }
11810
11811 #pragma GCC pop_options
11812 __extension__ extern __inline void
11813 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11814 vst2_s64 (int64_t * __a, int64x1x2_t __b)
11815 {
11816 union { int64x1x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11817 __builtin_neon_vst2di ((__builtin_neon_di *) __a, __bu.__o);
11818 }
11819
11820 __extension__ extern __inline void
11821 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11822 vst2_u64 (uint64_t * __a, uint64x1x2_t __b)
11823 {
11824 union { uint64x1x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11825 __builtin_neon_vst2di ((__builtin_neon_di *) __a, __bu.__o);
11826 }
11827
11828 __extension__ extern __inline void
11829 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11830 vst2q_s8 (int8_t * __a, int8x16x2_t __b)
11831 {
11832 union { int8x16x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11833 __builtin_neon_vst2v16qi ((__builtin_neon_qi *) __a, __bu.__o);
11834 }
11835
11836 __extension__ extern __inline void
11837 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11838 vst2q_s16 (int16_t * __a, int16x8x2_t __b)
11839 {
11840 union { int16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11841 __builtin_neon_vst2v8hi ((__builtin_neon_hi *) __a, __bu.__o);
11842 }
11843
11844 __extension__ extern __inline void
11845 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11846 vst2q_s32 (int32_t * __a, int32x4x2_t __b)
11847 {
11848 union { int32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11849 __builtin_neon_vst2v4si ((__builtin_neon_si *) __a, __bu.__o);
11850 }
11851
11852 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
11853 __extension__ extern __inline void
11854 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11855 vst2q_f16 (float16_t * __a, float16x8x2_t __b)
11856 {
11857 union { float16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11858 __builtin_neon_vst2v8hf (__a, __bu.__o);
11859 }
11860 #endif
11861
11862 __extension__ extern __inline void
11863 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11864 vst2q_f32 (float32_t * __a, float32x4x2_t __b)
11865 {
11866 union { float32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11867 __builtin_neon_vst2v4sf ((__builtin_neon_sf *) __a, __bu.__o);
11868 }
11869
11870 __extension__ extern __inline void
11871 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11872 vst2q_u8 (uint8_t * __a, uint8x16x2_t __b)
11873 {
11874 union { uint8x16x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11875 __builtin_neon_vst2v16qi ((__builtin_neon_qi *) __a, __bu.__o);
11876 }
11877
11878 __extension__ extern __inline void
11879 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11880 vst2q_u16 (uint16_t * __a, uint16x8x2_t __b)
11881 {
11882 union { uint16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11883 __builtin_neon_vst2v8hi ((__builtin_neon_hi *) __a, __bu.__o);
11884 }
11885
11886 __extension__ extern __inline void
11887 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11888 vst2q_u32 (uint32_t * __a, uint32x4x2_t __b)
11889 {
11890 union { uint32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11891 __builtin_neon_vst2v4si ((__builtin_neon_si *) __a, __bu.__o);
11892 }
11893
11894 __extension__ extern __inline void
11895 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11896 vst2q_p8 (poly8_t * __a, poly8x16x2_t __b)
11897 {
11898 union { poly8x16x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11899 __builtin_neon_vst2v16qi ((__builtin_neon_qi *) __a, __bu.__o);
11900 }
11901
11902 __extension__ extern __inline void
11903 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11904 vst2q_p16 (poly16_t * __a, poly16x8x2_t __b)
11905 {
11906 union { poly16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11907 __builtin_neon_vst2v8hi ((__builtin_neon_hi *) __a, __bu.__o);
11908 }
11909
11910 __extension__ extern __inline void
11911 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11912 vst2_lane_s8 (int8_t * __a, int8x8x2_t __b, const int __c)
11913 {
11914 union { int8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11915 __builtin_neon_vst2_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
11916 }
11917
11918 __extension__ extern __inline void
11919 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11920 vst2_lane_s16 (int16_t * __a, int16x4x2_t __b, const int __c)
11921 {
11922 union { int16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11923 __builtin_neon_vst2_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
11924 }
11925
11926 __extension__ extern __inline void
11927 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11928 vst2_lane_s32 (int32_t * __a, int32x2x2_t __b, const int __c)
11929 {
11930 union { int32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11931 __builtin_neon_vst2_lanev2si ((__builtin_neon_si *) __a, __bu.__o, __c);
11932 }
11933
11934 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
11935 __extension__ extern __inline void
11936 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11937 vst2_lane_f16 (float16_t * __a, float16x4x2_t __b, const int __c)
11938 {
11939 union { float16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11940 __builtin_neon_vst2_lanev4hf (__a, __bu.__o, __c);
11941 }
11942 #endif
11943
11944 __extension__ extern __inline void
11945 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11946 vst2_lane_f32 (float32_t * __a, float32x2x2_t __b, const int __c)
11947 {
11948 union { float32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11949 __builtin_neon_vst2_lanev2sf ((__builtin_neon_sf *) __a, __bu.__o, __c);
11950 }
11951
11952 __extension__ extern __inline void
11953 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11954 vst2_lane_u8 (uint8_t * __a, uint8x8x2_t __b, const int __c)
11955 {
11956 union { uint8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11957 __builtin_neon_vst2_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
11958 }
11959
11960 __extension__ extern __inline void
11961 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11962 vst2_lane_u16 (uint16_t * __a, uint16x4x2_t __b, const int __c)
11963 {
11964 union { uint16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11965 __builtin_neon_vst2_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
11966 }
11967
11968 __extension__ extern __inline void
11969 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11970 vst2_lane_u32 (uint32_t * __a, uint32x2x2_t __b, const int __c)
11971 {
11972 union { uint32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11973 __builtin_neon_vst2_lanev2si ((__builtin_neon_si *) __a, __bu.__o, __c);
11974 }
11975
11976 __extension__ extern __inline void
11977 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11978 vst2_lane_p8 (poly8_t * __a, poly8x8x2_t __b, const int __c)
11979 {
11980 union { poly8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11981 __builtin_neon_vst2_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
11982 }
11983
11984 __extension__ extern __inline void
11985 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11986 vst2_lane_p16 (poly16_t * __a, poly16x4x2_t __b, const int __c)
11987 {
11988 union { poly16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11989 __builtin_neon_vst2_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
11990 }
11991
11992 __extension__ extern __inline void
11993 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11994 vst2q_lane_s16 (int16_t * __a, int16x8x2_t __b, const int __c)
11995 {
11996 union { int16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11997 __builtin_neon_vst2_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
11998 }
11999
12000 __extension__ extern __inline void
12001 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12002 vst2q_lane_s32 (int32_t * __a, int32x4x2_t __b, const int __c)
12003 {
12004 union { int32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
12005 __builtin_neon_vst2_lanev4si ((__builtin_neon_si *) __a, __bu.__o, __c);
12006 }
12007
12008 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
12009 __extension__ extern __inline void
12010 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12011 vst2q_lane_f16 (float16_t * __a, float16x8x2_t __b, const int __c)
12012 {
12013 union { float16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
12014 __builtin_neon_vst2_lanev8hf (__a, __bu.__o, __c);
12015 }
12016 #endif
12017
12018 __extension__ extern __inline void
12019 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12020 vst2q_lane_f32 (float32_t * __a, float32x4x2_t __b, const int __c)
12021 {
12022 union { float32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
12023 __builtin_neon_vst2_lanev4sf ((__builtin_neon_sf *) __a, __bu.__o, __c);
12024 }
12025
12026 __extension__ extern __inline void
12027 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12028 vst2q_lane_u16 (uint16_t * __a, uint16x8x2_t __b, const int __c)
12029 {
12030 union { uint16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
12031 __builtin_neon_vst2_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
12032 }
12033
12034 __extension__ extern __inline void
12035 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12036 vst2q_lane_u32 (uint32_t * __a, uint32x4x2_t __b, const int __c)
12037 {
12038 union { uint32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
12039 __builtin_neon_vst2_lanev4si ((__builtin_neon_si *) __a, __bu.__o, __c);
12040 }
12041
12042 __extension__ extern __inline void
12043 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12044 vst2q_lane_p16 (poly16_t * __a, poly16x8x2_t __b, const int __c)
12045 {
12046 union { poly16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
12047 __builtin_neon_vst2_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
12048 }
12049
12050 __extension__ extern __inline int8x8x3_t
12051 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12052 vld3_s8 (const int8_t * __a)
12053 {
12054 union { int8x8x3_t __i; __builtin_neon_ei __o; } __rv;
12055 __rv.__o = __builtin_neon_vld3v8qi ((const __builtin_neon_qi *) __a);
12056 return __rv.__i;
12057 }
12058
12059 __extension__ extern __inline int16x4x3_t
12060 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12061 vld3_s16 (const int16_t * __a)
12062 {
12063 union { int16x4x3_t __i; __builtin_neon_ei __o; } __rv;
12064 __rv.__o = __builtin_neon_vld3v4hi ((const __builtin_neon_hi *) __a);
12065 return __rv.__i;
12066 }
12067
12068 __extension__ extern __inline int32x2x3_t
12069 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12070 vld3_s32 (const int32_t * __a)
12071 {
12072 union { int32x2x3_t __i; __builtin_neon_ei __o; } __rv;
12073 __rv.__o = __builtin_neon_vld3v2si ((const __builtin_neon_si *) __a);
12074 return __rv.__i;
12075 }
12076
12077 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
12078 __extension__ extern __inline float16x4x3_t
12079 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12080 vld3_f16 (const float16_t * __a)
12081 {
12082 union { float16x4x3_t __i; __builtin_neon_ei __o; } __rv;
12083 __rv.__o = __builtin_neon_vld3v4hf (__a);
12084 return __rv.__i;
12085 }
12086 #endif
12087
12088 __extension__ extern __inline float32x2x3_t
12089 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12090 vld3_f32 (const float32_t * __a)
12091 {
12092 union { float32x2x3_t __i; __builtin_neon_ei __o; } __rv;
12093 __rv.__o = __builtin_neon_vld3v2sf ((const __builtin_neon_sf *) __a);
12094 return __rv.__i;
12095 }
12096
12097 __extension__ extern __inline uint8x8x3_t
12098 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12099 vld3_u8 (const uint8_t * __a)
12100 {
12101 union { uint8x8x3_t __i; __builtin_neon_ei __o; } __rv;
12102 __rv.__o = __builtin_neon_vld3v8qi ((const __builtin_neon_qi *) __a);
12103 return __rv.__i;
12104 }
12105
12106 __extension__ extern __inline uint16x4x3_t
12107 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12108 vld3_u16 (const uint16_t * __a)
12109 {
12110 union { uint16x4x3_t __i; __builtin_neon_ei __o; } __rv;
12111 __rv.__o = __builtin_neon_vld3v4hi ((const __builtin_neon_hi *) __a);
12112 return __rv.__i;
12113 }
12114
12115 __extension__ extern __inline uint32x2x3_t
12116 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12117 vld3_u32 (const uint32_t * __a)
12118 {
12119 union { uint32x2x3_t __i; __builtin_neon_ei __o; } __rv;
12120 __rv.__o = __builtin_neon_vld3v2si ((const __builtin_neon_si *) __a);
12121 return __rv.__i;
12122 }
12123
12124 __extension__ extern __inline poly8x8x3_t
12125 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12126 vld3_p8 (const poly8_t * __a)
12127 {
12128 union { poly8x8x3_t __i; __builtin_neon_ei __o; } __rv;
12129 __rv.__o = __builtin_neon_vld3v8qi ((const __builtin_neon_qi *) __a);
12130 return __rv.__i;
12131 }
12132
12133 __extension__ extern __inline poly16x4x3_t
12134 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12135 vld3_p16 (const poly16_t * __a)
12136 {
12137 union { poly16x4x3_t __i; __builtin_neon_ei __o; } __rv;
12138 __rv.__o = __builtin_neon_vld3v4hi ((const __builtin_neon_hi *) __a);
12139 return __rv.__i;
12140 }
12141
12142 #pragma GCC push_options
12143 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
12144 __extension__ extern __inline poly64x1x3_t
12145 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12146 vld3_p64 (const poly64_t * __a)
12147 {
12148 union { poly64x1x3_t __i; __builtin_neon_ei __o; } __rv;
12149 __rv.__o = __builtin_neon_vld3di ((const __builtin_neon_di *) __a);
12150 return __rv.__i;
12151 }
12152
12153 #pragma GCC pop_options
12154 __extension__ extern __inline int64x1x3_t
12155 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12156 vld3_s64 (const int64_t * __a)
12157 {
12158 union { int64x1x3_t __i; __builtin_neon_ei __o; } __rv;
12159 __rv.__o = __builtin_neon_vld3di ((const __builtin_neon_di *) __a);
12160 return __rv.__i;
12161 }
12162
12163 __extension__ extern __inline uint64x1x3_t
12164 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12165 vld3_u64 (const uint64_t * __a)
12166 {
12167 union { uint64x1x3_t __i; __builtin_neon_ei __o; } __rv;
12168 __rv.__o = __builtin_neon_vld3di ((const __builtin_neon_di *) __a);
12169 return __rv.__i;
12170 }
12171
12172 __extension__ extern __inline int8x16x3_t
12173 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12174 vld3q_s8 (const int8_t * __a)
12175 {
12176 union { int8x16x3_t __i; __builtin_neon_ci __o; } __rv;
12177 __rv.__o = __builtin_neon_vld3v16qi ((const __builtin_neon_qi *) __a);
12178 return __rv.__i;
12179 }
12180
12181 __extension__ extern __inline int16x8x3_t
12182 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12183 vld3q_s16 (const int16_t * __a)
12184 {
12185 union { int16x8x3_t __i; __builtin_neon_ci __o; } __rv;
12186 __rv.__o = __builtin_neon_vld3v8hi ((const __builtin_neon_hi *) __a);
12187 return __rv.__i;
12188 }
12189
12190 __extension__ extern __inline int32x4x3_t
12191 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12192 vld3q_s32 (const int32_t * __a)
12193 {
12194 union { int32x4x3_t __i; __builtin_neon_ci __o; } __rv;
12195 __rv.__o = __builtin_neon_vld3v4si ((const __builtin_neon_si *) __a);
12196 return __rv.__i;
12197 }
12198
12199 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
12200 __extension__ extern __inline float16x8x3_t
12201 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12202 vld3q_f16 (const float16_t * __a)
12203 {
12204 union { float16x8x3_t __i; __builtin_neon_ci __o; } __rv;
12205 __rv.__o = __builtin_neon_vld3v8hf (__a);
12206 return __rv.__i;
12207 }
12208 #endif
12209
12210 __extension__ extern __inline float32x4x3_t
12211 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12212 vld3q_f32 (const float32_t * __a)
12213 {
12214 union { float32x4x3_t __i; __builtin_neon_ci __o; } __rv;
12215 __rv.__o = __builtin_neon_vld3v4sf ((const __builtin_neon_sf *) __a);
12216 return __rv.__i;
12217 }
12218
12219 __extension__ extern __inline uint8x16x3_t
12220 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12221 vld3q_u8 (const uint8_t * __a)
12222 {
12223 union { uint8x16x3_t __i; __builtin_neon_ci __o; } __rv;
12224 __rv.__o = __builtin_neon_vld3v16qi ((const __builtin_neon_qi *) __a);
12225 return __rv.__i;
12226 }
12227
12228 __extension__ extern __inline uint16x8x3_t
12229 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12230 vld3q_u16 (const uint16_t * __a)
12231 {
12232 union { uint16x8x3_t __i; __builtin_neon_ci __o; } __rv;
12233 __rv.__o = __builtin_neon_vld3v8hi ((const __builtin_neon_hi *) __a);
12234 return __rv.__i;
12235 }
12236
12237 __extension__ extern __inline uint32x4x3_t
12238 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12239 vld3q_u32 (const uint32_t * __a)
12240 {
12241 union { uint32x4x3_t __i; __builtin_neon_ci __o; } __rv;
12242 __rv.__o = __builtin_neon_vld3v4si ((const __builtin_neon_si *) __a);
12243 return __rv.__i;
12244 }
12245
12246 __extension__ extern __inline poly8x16x3_t
12247 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12248 vld3q_p8 (const poly8_t * __a)
12249 {
12250 union { poly8x16x3_t __i; __builtin_neon_ci __o; } __rv;
12251 __rv.__o = __builtin_neon_vld3v16qi ((const __builtin_neon_qi *) __a);
12252 return __rv.__i;
12253 }
12254
12255 __extension__ extern __inline poly16x8x3_t
12256 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12257 vld3q_p16 (const poly16_t * __a)
12258 {
12259 union { poly16x8x3_t __i; __builtin_neon_ci __o; } __rv;
12260 __rv.__o = __builtin_neon_vld3v8hi ((const __builtin_neon_hi *) __a);
12261 return __rv.__i;
12262 }
12263
12264 __extension__ extern __inline int8x8x3_t
12265 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12266 vld3_lane_s8 (const int8_t * __a, int8x8x3_t __b, const int __c)
12267 {
12268 union { int8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12269 union { int8x8x3_t __i; __builtin_neon_ei __o; } __rv;
12270 __rv.__o = __builtin_neon_vld3_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
12271 return __rv.__i;
12272 }
12273
12274 __extension__ extern __inline int16x4x3_t
12275 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12276 vld3_lane_s16 (const int16_t * __a, int16x4x3_t __b, const int __c)
12277 {
12278 union { int16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12279 union { int16x4x3_t __i; __builtin_neon_ei __o; } __rv;
12280 __rv.__o = __builtin_neon_vld3_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
12281 return __rv.__i;
12282 }
12283
12284 __extension__ extern __inline int32x2x3_t
12285 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12286 vld3_lane_s32 (const int32_t * __a, int32x2x3_t __b, const int __c)
12287 {
12288 union { int32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12289 union { int32x2x3_t __i; __builtin_neon_ei __o; } __rv;
12290 __rv.__o = __builtin_neon_vld3_lanev2si ((const __builtin_neon_si *) __a, __bu.__o, __c);
12291 return __rv.__i;
12292 }
12293
12294 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
12295 __extension__ extern __inline float16x4x3_t
12296 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12297 vld3_lane_f16 (const float16_t * __a, float16x4x3_t __b, const int __c)
12298 {
12299 union { float16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12300 union { float16x4x3_t __i; __builtin_neon_ei __o; } __rv;
12301 __rv.__o = __builtin_neon_vld3_lanev4hf (__a, __bu.__o, __c);
12302 return __rv.__i;
12303 }
12304 #endif
12305
12306 __extension__ extern __inline float32x2x3_t
12307 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12308 vld3_lane_f32 (const float32_t * __a, float32x2x3_t __b, const int __c)
12309 {
12310 union { float32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12311 union { float32x2x3_t __i; __builtin_neon_ei __o; } __rv;
12312 __rv.__o = __builtin_neon_vld3_lanev2sf ((const __builtin_neon_sf *) __a, __bu.__o, __c);
12313 return __rv.__i;
12314 }
12315
12316 __extension__ extern __inline uint8x8x3_t
12317 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12318 vld3_lane_u8 (const uint8_t * __a, uint8x8x3_t __b, const int __c)
12319 {
12320 union { uint8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12321 union { uint8x8x3_t __i; __builtin_neon_ei __o; } __rv;
12322 __rv.__o = __builtin_neon_vld3_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
12323 return __rv.__i;
12324 }
12325
12326 __extension__ extern __inline uint16x4x3_t
12327 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12328 vld3_lane_u16 (const uint16_t * __a, uint16x4x3_t __b, const int __c)
12329 {
12330 union { uint16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12331 union { uint16x4x3_t __i; __builtin_neon_ei __o; } __rv;
12332 __rv.__o = __builtin_neon_vld3_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
12333 return __rv.__i;
12334 }
12335
12336 __extension__ extern __inline uint32x2x3_t
12337 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12338 vld3_lane_u32 (const uint32_t * __a, uint32x2x3_t __b, const int __c)
12339 {
12340 union { uint32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12341 union { uint32x2x3_t __i; __builtin_neon_ei __o; } __rv;
12342 __rv.__o = __builtin_neon_vld3_lanev2si ((const __builtin_neon_si *) __a, __bu.__o, __c);
12343 return __rv.__i;
12344 }
12345
12346 __extension__ extern __inline poly8x8x3_t
12347 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12348 vld3_lane_p8 (const poly8_t * __a, poly8x8x3_t __b, const int __c)
12349 {
12350 union { poly8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12351 union { poly8x8x3_t __i; __builtin_neon_ei __o; } __rv;
12352 __rv.__o = __builtin_neon_vld3_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
12353 return __rv.__i;
12354 }
12355
12356 __extension__ extern __inline poly16x4x3_t
12357 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12358 vld3_lane_p16 (const poly16_t * __a, poly16x4x3_t __b, const int __c)
12359 {
12360 union { poly16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12361 union { poly16x4x3_t __i; __builtin_neon_ei __o; } __rv;
12362 __rv.__o = __builtin_neon_vld3_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
12363 return __rv.__i;
12364 }
12365
12366 __extension__ extern __inline int16x8x3_t
12367 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12368 vld3q_lane_s16 (const int16_t * __a, int16x8x3_t __b, const int __c)
12369 {
12370 union { int16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12371 union { int16x8x3_t __i; __builtin_neon_ci __o; } __rv;
12372 __rv.__o = __builtin_neon_vld3_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
12373 return __rv.__i;
12374 }
12375
12376 __extension__ extern __inline int32x4x3_t
12377 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12378 vld3q_lane_s32 (const int32_t * __a, int32x4x3_t __b, const int __c)
12379 {
12380 union { int32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12381 union { int32x4x3_t __i; __builtin_neon_ci __o; } __rv;
12382 __rv.__o = __builtin_neon_vld3_lanev4si ((const __builtin_neon_si *) __a, __bu.__o, __c);
12383 return __rv.__i;
12384 }
12385
12386 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
12387 __extension__ extern __inline float16x8x3_t
12388 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12389 vld3q_lane_f16 (const float16_t * __a, float16x8x3_t __b, const int __c)
12390 {
12391 union { float16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12392 union { float16x8x3_t __i; __builtin_neon_ci __o; } __rv;
12393 __rv.__o = __builtin_neon_vld3_lanev8hf (__a, __bu.__o, __c);
12394 return __rv.__i;
12395 }
12396 #endif
12397
12398 __extension__ extern __inline float32x4x3_t
12399 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12400 vld3q_lane_f32 (const float32_t * __a, float32x4x3_t __b, const int __c)
12401 {
12402 union { float32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12403 union { float32x4x3_t __i; __builtin_neon_ci __o; } __rv;
12404 __rv.__o = __builtin_neon_vld3_lanev4sf ((const __builtin_neon_sf *) __a, __bu.__o, __c);
12405 return __rv.__i;
12406 }
12407
12408 __extension__ extern __inline uint16x8x3_t
12409 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12410 vld3q_lane_u16 (const uint16_t * __a, uint16x8x3_t __b, const int __c)
12411 {
12412 union { uint16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12413 union { uint16x8x3_t __i; __builtin_neon_ci __o; } __rv;
12414 __rv.__o = __builtin_neon_vld3_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
12415 return __rv.__i;
12416 }
12417
12418 __extension__ extern __inline uint32x4x3_t
12419 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12420 vld3q_lane_u32 (const uint32_t * __a, uint32x4x3_t __b, const int __c)
12421 {
12422 union { uint32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12423 union { uint32x4x3_t __i; __builtin_neon_ci __o; } __rv;
12424 __rv.__o = __builtin_neon_vld3_lanev4si ((const __builtin_neon_si *) __a, __bu.__o, __c);
12425 return __rv.__i;
12426 }
12427
12428 __extension__ extern __inline poly16x8x3_t
12429 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12430 vld3q_lane_p16 (const poly16_t * __a, poly16x8x3_t __b, const int __c)
12431 {
12432 union { poly16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12433 union { poly16x8x3_t __i; __builtin_neon_ci __o; } __rv;
12434 __rv.__o = __builtin_neon_vld3_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
12435 return __rv.__i;
12436 }
12437
12438 __extension__ extern __inline int8x8x3_t
12439 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12440 vld3_dup_s8 (const int8_t * __a)
12441 {
12442 union { int8x8x3_t __i; __builtin_neon_ei __o; } __rv;
12443 __rv.__o = __builtin_neon_vld3_dupv8qi ((const __builtin_neon_qi *) __a);
12444 return __rv.__i;
12445 }
12446
12447 __extension__ extern __inline int16x4x3_t
12448 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12449 vld3_dup_s16 (const int16_t * __a)
12450 {
12451 union { int16x4x3_t __i; __builtin_neon_ei __o; } __rv;
12452 __rv.__o = __builtin_neon_vld3_dupv4hi ((const __builtin_neon_hi *) __a);
12453 return __rv.__i;
12454 }
12455
12456 __extension__ extern __inline int32x2x3_t
12457 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12458 vld3_dup_s32 (const int32_t * __a)
12459 {
12460 union { int32x2x3_t __i; __builtin_neon_ei __o; } __rv;
12461 __rv.__o = __builtin_neon_vld3_dupv2si ((const __builtin_neon_si *) __a);
12462 return __rv.__i;
12463 }
12464
12465 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
12466 __extension__ extern __inline float16x4x3_t
12467 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12468 vld3_dup_f16 (const float16_t * __a)
12469 {
12470 union { float16x4x3_t __i; __builtin_neon_ei __o; } __rv;
12471 __rv.__o = __builtin_neon_vld3_dupv4hf (__a);
12472 return __rv.__i;
12473 }
12474 #endif
12475
12476 __extension__ extern __inline float32x2x3_t
12477 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12478 vld3_dup_f32 (const float32_t * __a)
12479 {
12480 union { float32x2x3_t __i; __builtin_neon_ei __o; } __rv;
12481 __rv.__o = __builtin_neon_vld3_dupv2sf ((const __builtin_neon_sf *) __a);
12482 return __rv.__i;
12483 }
12484
12485 __extension__ extern __inline uint8x8x3_t
12486 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12487 vld3_dup_u8 (const uint8_t * __a)
12488 {
12489 union { uint8x8x3_t __i; __builtin_neon_ei __o; } __rv;
12490 __rv.__o = __builtin_neon_vld3_dupv8qi ((const __builtin_neon_qi *) __a);
12491 return __rv.__i;
12492 }
12493
12494 __extension__ extern __inline uint16x4x3_t
12495 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12496 vld3_dup_u16 (const uint16_t * __a)
12497 {
12498 union { uint16x4x3_t __i; __builtin_neon_ei __o; } __rv;
12499 __rv.__o = __builtin_neon_vld3_dupv4hi ((const __builtin_neon_hi *) __a);
12500 return __rv.__i;
12501 }
12502
12503 __extension__ extern __inline uint32x2x3_t
12504 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12505 vld3_dup_u32 (const uint32_t * __a)
12506 {
12507 union { uint32x2x3_t __i; __builtin_neon_ei __o; } __rv;
12508 __rv.__o = __builtin_neon_vld3_dupv2si ((const __builtin_neon_si *) __a);
12509 return __rv.__i;
12510 }
12511
12512 __extension__ extern __inline poly8x8x3_t
12513 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12514 vld3_dup_p8 (const poly8_t * __a)
12515 {
12516 union { poly8x8x3_t __i; __builtin_neon_ei __o; } __rv;
12517 __rv.__o = __builtin_neon_vld3_dupv8qi ((const __builtin_neon_qi *) __a);
12518 return __rv.__i;
12519 }
12520
12521 __extension__ extern __inline poly16x4x3_t
12522 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12523 vld3_dup_p16 (const poly16_t * __a)
12524 {
12525 union { poly16x4x3_t __i; __builtin_neon_ei __o; } __rv;
12526 __rv.__o = __builtin_neon_vld3_dupv4hi ((const __builtin_neon_hi *) __a);
12527 return __rv.__i;
12528 }
12529
12530 #pragma GCC push_options
12531 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
12532 __extension__ extern __inline poly64x1x3_t
12533 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12534 vld3_dup_p64 (const poly64_t * __a)
12535 {
12536 union { poly64x1x3_t __i; __builtin_neon_ei __o; } __rv;
12537 __rv.__o = __builtin_neon_vld3_dupdi ((const __builtin_neon_di *) __a);
12538 return __rv.__i;
12539 }
12540
12541 #pragma GCC pop_options
12542 __extension__ extern __inline int64x1x3_t
12543 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12544 vld3_dup_s64 (const int64_t * __a)
12545 {
12546 union { int64x1x3_t __i; __builtin_neon_ei __o; } __rv;
12547 __rv.__o = __builtin_neon_vld3_dupdi ((const __builtin_neon_di *) __a);
12548 return __rv.__i;
12549 }
12550
12551 __extension__ extern __inline uint64x1x3_t
12552 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12553 vld3_dup_u64 (const uint64_t * __a)
12554 {
12555 union { uint64x1x3_t __i; __builtin_neon_ei __o; } __rv;
12556 __rv.__o = __builtin_neon_vld3_dupdi ((const __builtin_neon_di *) __a);
12557 return __rv.__i;
12558 }
12559
12560 __extension__ extern __inline void
12561 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12562 vst3_s8 (int8_t * __a, int8x8x3_t __b)
12563 {
12564 union { int8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12565 __builtin_neon_vst3v8qi ((__builtin_neon_qi *) __a, __bu.__o);
12566 }
12567
12568 __extension__ extern __inline void
12569 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12570 vst3_s16 (int16_t * __a, int16x4x3_t __b)
12571 {
12572 union { int16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12573 __builtin_neon_vst3v4hi ((__builtin_neon_hi *) __a, __bu.__o);
12574 }
12575
12576 __extension__ extern __inline void
12577 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12578 vst3_s32 (int32_t * __a, int32x2x3_t __b)
12579 {
12580 union { int32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12581 __builtin_neon_vst3v2si ((__builtin_neon_si *) __a, __bu.__o);
12582 }
12583
12584 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
12585 __extension__ extern __inline void
12586 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12587 vst3_f16 (float16_t * __a, float16x4x3_t __b)
12588 {
12589 union { float16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12590 __builtin_neon_vst3v4hf (__a, __bu.__o);
12591 }
12592 #endif
12593
12594 __extension__ extern __inline void
12595 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12596 vst3_f32 (float32_t * __a, float32x2x3_t __b)
12597 {
12598 union { float32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12599 __builtin_neon_vst3v2sf ((__builtin_neon_sf *) __a, __bu.__o);
12600 }
12601
12602 __extension__ extern __inline void
12603 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12604 vst3_u8 (uint8_t * __a, uint8x8x3_t __b)
12605 {
12606 union { uint8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12607 __builtin_neon_vst3v8qi ((__builtin_neon_qi *) __a, __bu.__o);
12608 }
12609
12610 __extension__ extern __inline void
12611 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12612 vst3_u16 (uint16_t * __a, uint16x4x3_t __b)
12613 {
12614 union { uint16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12615 __builtin_neon_vst3v4hi ((__builtin_neon_hi *) __a, __bu.__o);
12616 }
12617
12618 __extension__ extern __inline void
12619 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12620 vst3_u32 (uint32_t * __a, uint32x2x3_t __b)
12621 {
12622 union { uint32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12623 __builtin_neon_vst3v2si ((__builtin_neon_si *) __a, __bu.__o);
12624 }
12625
12626 __extension__ extern __inline void
12627 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12628 vst3_p8 (poly8_t * __a, poly8x8x3_t __b)
12629 {
12630 union { poly8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12631 __builtin_neon_vst3v8qi ((__builtin_neon_qi *) __a, __bu.__o);
12632 }
12633
12634 __extension__ extern __inline void
12635 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12636 vst3_p16 (poly16_t * __a, poly16x4x3_t __b)
12637 {
12638 union { poly16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12639 __builtin_neon_vst3v4hi ((__builtin_neon_hi *) __a, __bu.__o);
12640 }
12641
12642 #pragma GCC push_options
12643 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
12644 __extension__ extern __inline void
12645 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12646 vst3_p64 (poly64_t * __a, poly64x1x3_t __b)
12647 {
12648 union { poly64x1x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12649 __builtin_neon_vst3di ((__builtin_neon_di *) __a, __bu.__o);
12650 }
12651
12652 #pragma GCC pop_options
12653 __extension__ extern __inline void
12654 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12655 vst3_s64 (int64_t * __a, int64x1x3_t __b)
12656 {
12657 union { int64x1x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12658 __builtin_neon_vst3di ((__builtin_neon_di *) __a, __bu.__o);
12659 }
12660
12661 __extension__ extern __inline void
12662 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12663 vst3_u64 (uint64_t * __a, uint64x1x3_t __b)
12664 {
12665 union { uint64x1x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12666 __builtin_neon_vst3di ((__builtin_neon_di *) __a, __bu.__o);
12667 }
12668
12669 __extension__ extern __inline void
12670 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12671 vst3q_s8 (int8_t * __a, int8x16x3_t __b)
12672 {
12673 union { int8x16x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12674 __builtin_neon_vst3v16qi ((__builtin_neon_qi *) __a, __bu.__o);
12675 }
12676
12677 __extension__ extern __inline void
12678 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12679 vst3q_s16 (int16_t * __a, int16x8x3_t __b)
12680 {
12681 union { int16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12682 __builtin_neon_vst3v8hi ((__builtin_neon_hi *) __a, __bu.__o);
12683 }
12684
12685 __extension__ extern __inline void
12686 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12687 vst3q_s32 (int32_t * __a, int32x4x3_t __b)
12688 {
12689 union { int32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12690 __builtin_neon_vst3v4si ((__builtin_neon_si *) __a, __bu.__o);
12691 }
12692
12693 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
12694 __extension__ extern __inline void
12695 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12696 vst3q_f16 (float16_t * __a, float16x8x3_t __b)
12697 {
12698 union { float16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12699 __builtin_neon_vst3v8hf (__a, __bu.__o);
12700 }
12701 #endif
12702
12703 __extension__ extern __inline void
12704 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12705 vst3q_f32 (float32_t * __a, float32x4x3_t __b)
12706 {
12707 union { float32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12708 __builtin_neon_vst3v4sf ((__builtin_neon_sf *) __a, __bu.__o);
12709 }
12710
12711 __extension__ extern __inline void
12712 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12713 vst3q_u8 (uint8_t * __a, uint8x16x3_t __b)
12714 {
12715 union { uint8x16x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12716 __builtin_neon_vst3v16qi ((__builtin_neon_qi *) __a, __bu.__o);
12717 }
12718
12719 __extension__ extern __inline void
12720 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12721 vst3q_u16 (uint16_t * __a, uint16x8x3_t __b)
12722 {
12723 union { uint16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12724 __builtin_neon_vst3v8hi ((__builtin_neon_hi *) __a, __bu.__o);
12725 }
12726
12727 __extension__ extern __inline void
12728 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12729 vst3q_u32 (uint32_t * __a, uint32x4x3_t __b)
12730 {
12731 union { uint32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12732 __builtin_neon_vst3v4si ((__builtin_neon_si *) __a, __bu.__o);
12733 }
12734
12735 __extension__ extern __inline void
12736 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12737 vst3q_p8 (poly8_t * __a, poly8x16x3_t __b)
12738 {
12739 union { poly8x16x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12740 __builtin_neon_vst3v16qi ((__builtin_neon_qi *) __a, __bu.__o);
12741 }
12742
12743 __extension__ extern __inline void
12744 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12745 vst3q_p16 (poly16_t * __a, poly16x8x3_t __b)
12746 {
12747 union { poly16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12748 __builtin_neon_vst3v8hi ((__builtin_neon_hi *) __a, __bu.__o);
12749 }
12750
12751 __extension__ extern __inline void
12752 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12753 vst3_lane_s8 (int8_t * __a, int8x8x3_t __b, const int __c)
12754 {
12755 union { int8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12756 __builtin_neon_vst3_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
12757 }
12758
12759 __extension__ extern __inline void
12760 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12761 vst3_lane_s16 (int16_t * __a, int16x4x3_t __b, const int __c)
12762 {
12763 union { int16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12764 __builtin_neon_vst3_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
12765 }
12766
12767 __extension__ extern __inline void
12768 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12769 vst3_lane_s32 (int32_t * __a, int32x2x3_t __b, const int __c)
12770 {
12771 union { int32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12772 __builtin_neon_vst3_lanev2si ((__builtin_neon_si *) __a, __bu.__o, __c);
12773 }
12774
12775 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
12776 __extension__ extern __inline void
12777 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12778 vst3_lane_f16 (float16_t * __a, float16x4x3_t __b, const int __c)
12779 {
12780 union { float16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12781 __builtin_neon_vst3_lanev4hf (__a, __bu.__o, __c);
12782 }
12783 #endif
12784
12785 __extension__ extern __inline void
12786 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12787 vst3_lane_f32 (float32_t * __a, float32x2x3_t __b, const int __c)
12788 {
12789 union { float32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12790 __builtin_neon_vst3_lanev2sf ((__builtin_neon_sf *) __a, __bu.__o, __c);
12791 }
12792
12793 __extension__ extern __inline void
12794 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12795 vst3_lane_u8 (uint8_t * __a, uint8x8x3_t __b, const int __c)
12796 {
12797 union { uint8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12798 __builtin_neon_vst3_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
12799 }
12800
12801 __extension__ extern __inline void
12802 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12803 vst3_lane_u16 (uint16_t * __a, uint16x4x3_t __b, const int __c)
12804 {
12805 union { uint16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12806 __builtin_neon_vst3_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
12807 }
12808
12809 __extension__ extern __inline void
12810 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12811 vst3_lane_u32 (uint32_t * __a, uint32x2x3_t __b, const int __c)
12812 {
12813 union { uint32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12814 __builtin_neon_vst3_lanev2si ((__builtin_neon_si *) __a, __bu.__o, __c);
12815 }
12816
12817 __extension__ extern __inline void
12818 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12819 vst3_lane_p8 (poly8_t * __a, poly8x8x3_t __b, const int __c)
12820 {
12821 union { poly8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12822 __builtin_neon_vst3_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
12823 }
12824
12825 __extension__ extern __inline void
12826 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12827 vst3_lane_p16 (poly16_t * __a, poly16x4x3_t __b, const int __c)
12828 {
12829 union { poly16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12830 __builtin_neon_vst3_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
12831 }
12832
12833 __extension__ extern __inline void
12834 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12835 vst3q_lane_s16 (int16_t * __a, int16x8x3_t __b, const int __c)
12836 {
12837 union { int16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12838 __builtin_neon_vst3_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
12839 }
12840
12841 __extension__ extern __inline void
12842 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12843 vst3q_lane_s32 (int32_t * __a, int32x4x3_t __b, const int __c)
12844 {
12845 union { int32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12846 __builtin_neon_vst3_lanev4si ((__builtin_neon_si *) __a, __bu.__o, __c);
12847 }
12848
12849 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
12850 __extension__ extern __inline void
12851 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12852 vst3q_lane_f16 (float16_t * __a, float16x8x3_t __b, const int __c)
12853 {
12854 union { float16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12855 __builtin_neon_vst3_lanev8hf (__a, __bu.__o, __c);
12856 }
12857 #endif
12858
12859 __extension__ extern __inline void
12860 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12861 vst3q_lane_f32 (float32_t * __a, float32x4x3_t __b, const int __c)
12862 {
12863 union { float32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12864 __builtin_neon_vst3_lanev4sf ((__builtin_neon_sf *) __a, __bu.__o, __c);
12865 }
12866
12867 __extension__ extern __inline void
12868 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12869 vst3q_lane_u16 (uint16_t * __a, uint16x8x3_t __b, const int __c)
12870 {
12871 union { uint16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12872 __builtin_neon_vst3_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
12873 }
12874
12875 __extension__ extern __inline void
12876 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12877 vst3q_lane_u32 (uint32_t * __a, uint32x4x3_t __b, const int __c)
12878 {
12879 union { uint32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12880 __builtin_neon_vst3_lanev4si ((__builtin_neon_si *) __a, __bu.__o, __c);
12881 }
12882
12883 __extension__ extern __inline void
12884 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12885 vst3q_lane_p16 (poly16_t * __a, poly16x8x3_t __b, const int __c)
12886 {
12887 union { poly16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12888 __builtin_neon_vst3_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
12889 }
12890
12891 __extension__ extern __inline int8x8x4_t
12892 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12893 vld4_s8 (const int8_t * __a)
12894 {
12895 union { int8x8x4_t __i; __builtin_neon_oi __o; } __rv;
12896 __rv.__o = __builtin_neon_vld4v8qi ((const __builtin_neon_qi *) __a);
12897 return __rv.__i;
12898 }
12899
12900 __extension__ extern __inline int16x4x4_t
12901 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12902 vld4_s16 (const int16_t * __a)
12903 {
12904 union { int16x4x4_t __i; __builtin_neon_oi __o; } __rv;
12905 __rv.__o = __builtin_neon_vld4v4hi ((const __builtin_neon_hi *) __a);
12906 return __rv.__i;
12907 }
12908
12909 __extension__ extern __inline int32x2x4_t
12910 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12911 vld4_s32 (const int32_t * __a)
12912 {
12913 union { int32x2x4_t __i; __builtin_neon_oi __o; } __rv;
12914 __rv.__o = __builtin_neon_vld4v2si ((const __builtin_neon_si *) __a);
12915 return __rv.__i;
12916 }
12917
12918 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
12919 __extension__ extern __inline float16x4x4_t
12920 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12921 vld4_f16 (const float16_t * __a)
12922 {
12923 union { float16x4x4_t __i; __builtin_neon_oi __o; } __rv;
12924 __rv.__o = __builtin_neon_vld4v4hf (__a);
12925 return __rv.__i;
12926 }
12927 #endif
12928
12929 __extension__ extern __inline float32x2x4_t
12930 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12931 vld4_f32 (const float32_t * __a)
12932 {
12933 union { float32x2x4_t __i; __builtin_neon_oi __o; } __rv;
12934 __rv.__o = __builtin_neon_vld4v2sf ((const __builtin_neon_sf *) __a);
12935 return __rv.__i;
12936 }
12937
12938 __extension__ extern __inline uint8x8x4_t
12939 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12940 vld4_u8 (const uint8_t * __a)
12941 {
12942 union { uint8x8x4_t __i; __builtin_neon_oi __o; } __rv;
12943 __rv.__o = __builtin_neon_vld4v8qi ((const __builtin_neon_qi *) __a);
12944 return __rv.__i;
12945 }
12946
12947 __extension__ extern __inline uint16x4x4_t
12948 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12949 vld4_u16 (const uint16_t * __a)
12950 {
12951 union { uint16x4x4_t __i; __builtin_neon_oi __o; } __rv;
12952 __rv.__o = __builtin_neon_vld4v4hi ((const __builtin_neon_hi *) __a);
12953 return __rv.__i;
12954 }
12955
12956 __extension__ extern __inline uint32x2x4_t
12957 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12958 vld4_u32 (const uint32_t * __a)
12959 {
12960 union { uint32x2x4_t __i; __builtin_neon_oi __o; } __rv;
12961 __rv.__o = __builtin_neon_vld4v2si ((const __builtin_neon_si *) __a);
12962 return __rv.__i;
12963 }
12964
12965 __extension__ extern __inline poly8x8x4_t
12966 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12967 vld4_p8 (const poly8_t * __a)
12968 {
12969 union { poly8x8x4_t __i; __builtin_neon_oi __o; } __rv;
12970 __rv.__o = __builtin_neon_vld4v8qi ((const __builtin_neon_qi *) __a);
12971 return __rv.__i;
12972 }
12973
12974 __extension__ extern __inline poly16x4x4_t
12975 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12976 vld4_p16 (const poly16_t * __a)
12977 {
12978 union { poly16x4x4_t __i; __builtin_neon_oi __o; } __rv;
12979 __rv.__o = __builtin_neon_vld4v4hi ((const __builtin_neon_hi *) __a);
12980 return __rv.__i;
12981 }
12982
12983 #pragma GCC push_options
12984 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
12985 __extension__ extern __inline poly64x1x4_t
12986 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12987 vld4_p64 (const poly64_t * __a)
12988 {
12989 union { poly64x1x4_t __i; __builtin_neon_oi __o; } __rv;
12990 __rv.__o = __builtin_neon_vld4di ((const __builtin_neon_di *) __a);
12991 return __rv.__i;
12992 }
12993
12994 #pragma GCC pop_options
12995 __extension__ extern __inline int64x1x4_t
12996 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12997 vld4_s64 (const int64_t * __a)
12998 {
12999 union { int64x1x4_t __i; __builtin_neon_oi __o; } __rv;
13000 __rv.__o = __builtin_neon_vld4di ((const __builtin_neon_di *) __a);
13001 return __rv.__i;
13002 }
13003
13004 __extension__ extern __inline uint64x1x4_t
13005 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13006 vld4_u64 (const uint64_t * __a)
13007 {
13008 union { uint64x1x4_t __i; __builtin_neon_oi __o; } __rv;
13009 __rv.__o = __builtin_neon_vld4di ((const __builtin_neon_di *) __a);
13010 return __rv.__i;
13011 }
13012
13013 __extension__ extern __inline int8x16x4_t
13014 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13015 vld4q_s8 (const int8_t * __a)
13016 {
13017 union { int8x16x4_t __i; __builtin_neon_xi __o; } __rv;
13018 __rv.__o = __builtin_neon_vld4v16qi ((const __builtin_neon_qi *) __a);
13019 return __rv.__i;
13020 }
13021
13022 __extension__ extern __inline int16x8x4_t
13023 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13024 vld4q_s16 (const int16_t * __a)
13025 {
13026 union { int16x8x4_t __i; __builtin_neon_xi __o; } __rv;
13027 __rv.__o = __builtin_neon_vld4v8hi ((const __builtin_neon_hi *) __a);
13028 return __rv.__i;
13029 }
13030
13031 __extension__ extern __inline int32x4x4_t
13032 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13033 vld4q_s32 (const int32_t * __a)
13034 {
13035 union { int32x4x4_t __i; __builtin_neon_xi __o; } __rv;
13036 __rv.__o = __builtin_neon_vld4v4si ((const __builtin_neon_si *) __a);
13037 return __rv.__i;
13038 }
13039
13040 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
13041 __extension__ extern __inline float16x8x4_t
13042 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13043 vld4q_f16 (const float16_t * __a)
13044 {
13045 union { float16x8x4_t __i; __builtin_neon_xi __o; } __rv;
13046 __rv.__o = __builtin_neon_vld4v8hf (__a);
13047 return __rv.__i;
13048 }
13049 #endif
13050
13051 __extension__ extern __inline float32x4x4_t
13052 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13053 vld4q_f32 (const float32_t * __a)
13054 {
13055 union { float32x4x4_t __i; __builtin_neon_xi __o; } __rv;
13056 __rv.__o = __builtin_neon_vld4v4sf ((const __builtin_neon_sf *) __a);
13057 return __rv.__i;
13058 }
13059
13060 __extension__ extern __inline uint8x16x4_t
13061 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13062 vld4q_u8 (const uint8_t * __a)
13063 {
13064 union { uint8x16x4_t __i; __builtin_neon_xi __o; } __rv;
13065 __rv.__o = __builtin_neon_vld4v16qi ((const __builtin_neon_qi *) __a);
13066 return __rv.__i;
13067 }
13068
13069 __extension__ extern __inline uint16x8x4_t
13070 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13071 vld4q_u16 (const uint16_t * __a)
13072 {
13073 union { uint16x8x4_t __i; __builtin_neon_xi __o; } __rv;
13074 __rv.__o = __builtin_neon_vld4v8hi ((const __builtin_neon_hi *) __a);
13075 return __rv.__i;
13076 }
13077
13078 __extension__ extern __inline uint32x4x4_t
13079 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13080 vld4q_u32 (const uint32_t * __a)
13081 {
13082 union { uint32x4x4_t __i; __builtin_neon_xi __o; } __rv;
13083 __rv.__o = __builtin_neon_vld4v4si ((const __builtin_neon_si *) __a);
13084 return __rv.__i;
13085 }
13086
13087 __extension__ extern __inline poly8x16x4_t
13088 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13089 vld4q_p8 (const poly8_t * __a)
13090 {
13091 union { poly8x16x4_t __i; __builtin_neon_xi __o; } __rv;
13092 __rv.__o = __builtin_neon_vld4v16qi ((const __builtin_neon_qi *) __a);
13093 return __rv.__i;
13094 }
13095
13096 __extension__ extern __inline poly16x8x4_t
13097 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13098 vld4q_p16 (const poly16_t * __a)
13099 {
13100 union { poly16x8x4_t __i; __builtin_neon_xi __o; } __rv;
13101 __rv.__o = __builtin_neon_vld4v8hi ((const __builtin_neon_hi *) __a);
13102 return __rv.__i;
13103 }
13104
13105 __extension__ extern __inline int8x8x4_t
13106 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13107 vld4_lane_s8 (const int8_t * __a, int8x8x4_t __b, const int __c)
13108 {
13109 union { int8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13110 union { int8x8x4_t __i; __builtin_neon_oi __o; } __rv;
13111 __rv.__o = __builtin_neon_vld4_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
13112 return __rv.__i;
13113 }
13114
13115 __extension__ extern __inline int16x4x4_t
13116 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13117 vld4_lane_s16 (const int16_t * __a, int16x4x4_t __b, const int __c)
13118 {
13119 union { int16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13120 union { int16x4x4_t __i; __builtin_neon_oi __o; } __rv;
13121 __rv.__o = __builtin_neon_vld4_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
13122 return __rv.__i;
13123 }
13124
13125 __extension__ extern __inline int32x2x4_t
13126 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13127 vld4_lane_s32 (const int32_t * __a, int32x2x4_t __b, const int __c)
13128 {
13129 union { int32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13130 union { int32x2x4_t __i; __builtin_neon_oi __o; } __rv;
13131 __rv.__o = __builtin_neon_vld4_lanev2si ((const __builtin_neon_si *) __a, __bu.__o, __c);
13132 return __rv.__i;
13133 }
13134
13135 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
13136 __extension__ extern __inline float16x4x4_t
13137 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13138 vld4_lane_f16 (const float16_t * __a, float16x4x4_t __b, const int __c)
13139 {
13140 union { float16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13141 union { float16x4x4_t __i; __builtin_neon_oi __o; } __rv;
13142 __rv.__o = __builtin_neon_vld4_lanev4hf (__a,
13143 __bu.__o, __c);
13144 return __rv.__i;
13145 }
13146 #endif
13147
13148 __extension__ extern __inline float32x2x4_t
13149 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13150 vld4_lane_f32 (const float32_t * __a, float32x2x4_t __b, const int __c)
13151 {
13152 union { float32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13153 union { float32x2x4_t __i; __builtin_neon_oi __o; } __rv;
13154 __rv.__o = __builtin_neon_vld4_lanev2sf ((const __builtin_neon_sf *) __a, __bu.__o, __c);
13155 return __rv.__i;
13156 }
13157
13158 __extension__ extern __inline uint8x8x4_t
13159 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13160 vld4_lane_u8 (const uint8_t * __a, uint8x8x4_t __b, const int __c)
13161 {
13162 union { uint8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13163 union { uint8x8x4_t __i; __builtin_neon_oi __o; } __rv;
13164 __rv.__o = __builtin_neon_vld4_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
13165 return __rv.__i;
13166 }
13167
13168 __extension__ extern __inline uint16x4x4_t
13169 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13170 vld4_lane_u16 (const uint16_t * __a, uint16x4x4_t __b, const int __c)
13171 {
13172 union { uint16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13173 union { uint16x4x4_t __i; __builtin_neon_oi __o; } __rv;
13174 __rv.__o = __builtin_neon_vld4_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
13175 return __rv.__i;
13176 }
13177
13178 __extension__ extern __inline uint32x2x4_t
13179 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13180 vld4_lane_u32 (const uint32_t * __a, uint32x2x4_t __b, const int __c)
13181 {
13182 union { uint32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13183 union { uint32x2x4_t __i; __builtin_neon_oi __o; } __rv;
13184 __rv.__o = __builtin_neon_vld4_lanev2si ((const __builtin_neon_si *) __a, __bu.__o, __c);
13185 return __rv.__i;
13186 }
13187
13188 __extension__ extern __inline poly8x8x4_t
13189 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13190 vld4_lane_p8 (const poly8_t * __a, poly8x8x4_t __b, const int __c)
13191 {
13192 union { poly8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13193 union { poly8x8x4_t __i; __builtin_neon_oi __o; } __rv;
13194 __rv.__o = __builtin_neon_vld4_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
13195 return __rv.__i;
13196 }
13197
13198 __extension__ extern __inline poly16x4x4_t
13199 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13200 vld4_lane_p16 (const poly16_t * __a, poly16x4x4_t __b, const int __c)
13201 {
13202 union { poly16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13203 union { poly16x4x4_t __i; __builtin_neon_oi __o; } __rv;
13204 __rv.__o = __builtin_neon_vld4_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
13205 return __rv.__i;
13206 }
13207
13208 __extension__ extern __inline int16x8x4_t
13209 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13210 vld4q_lane_s16 (const int16_t * __a, int16x8x4_t __b, const int __c)
13211 {
13212 union { int16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13213 union { int16x8x4_t __i; __builtin_neon_xi __o; } __rv;
13214 __rv.__o = __builtin_neon_vld4_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
13215 return __rv.__i;
13216 }
13217
13218 __extension__ extern __inline int32x4x4_t
13219 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13220 vld4q_lane_s32 (const int32_t * __a, int32x4x4_t __b, const int __c)
13221 {
13222 union { int32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13223 union { int32x4x4_t __i; __builtin_neon_xi __o; } __rv;
13224 __rv.__o = __builtin_neon_vld4_lanev4si ((const __builtin_neon_si *) __a, __bu.__o, __c);
13225 return __rv.__i;
13226 }
13227
13228 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
13229 __extension__ extern __inline float16x8x4_t
13230 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13231 vld4q_lane_f16 (const float16_t * __a, float16x8x4_t __b, const int __c)
13232 {
13233 union { float16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13234 union { float16x8x4_t __i; __builtin_neon_xi __o; } __rv;
13235 __rv.__o = __builtin_neon_vld4_lanev8hf (__a,
13236 __bu.__o, __c);
13237 return __rv.__i;
13238 }
13239 #endif
13240
13241 __extension__ extern __inline float32x4x4_t
13242 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13243 vld4q_lane_f32 (const float32_t * __a, float32x4x4_t __b, const int __c)
13244 {
13245 union { float32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13246 union { float32x4x4_t __i; __builtin_neon_xi __o; } __rv;
13247 __rv.__o = __builtin_neon_vld4_lanev4sf ((const __builtin_neon_sf *) __a, __bu.__o, __c);
13248 return __rv.__i;
13249 }
13250
13251 __extension__ extern __inline uint16x8x4_t
13252 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13253 vld4q_lane_u16 (const uint16_t * __a, uint16x8x4_t __b, const int __c)
13254 {
13255 union { uint16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13256 union { uint16x8x4_t __i; __builtin_neon_xi __o; } __rv;
13257 __rv.__o = __builtin_neon_vld4_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
13258 return __rv.__i;
13259 }
13260
13261 __extension__ extern __inline uint32x4x4_t
13262 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13263 vld4q_lane_u32 (const uint32_t * __a, uint32x4x4_t __b, const int __c)
13264 {
13265 union { uint32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13266 union { uint32x4x4_t __i; __builtin_neon_xi __o; } __rv;
13267 __rv.__o = __builtin_neon_vld4_lanev4si ((const __builtin_neon_si *) __a, __bu.__o, __c);
13268 return __rv.__i;
13269 }
13270
13271 __extension__ extern __inline poly16x8x4_t
13272 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13273 vld4q_lane_p16 (const poly16_t * __a, poly16x8x4_t __b, const int __c)
13274 {
13275 union { poly16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13276 union { poly16x8x4_t __i; __builtin_neon_xi __o; } __rv;
13277 __rv.__o = __builtin_neon_vld4_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
13278 return __rv.__i;
13279 }
13280
13281 __extension__ extern __inline int8x8x4_t
13282 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13283 vld4_dup_s8 (const int8_t * __a)
13284 {
13285 union { int8x8x4_t __i; __builtin_neon_oi __o; } __rv;
13286 __rv.__o = __builtin_neon_vld4_dupv8qi ((const __builtin_neon_qi *) __a);
13287 return __rv.__i;
13288 }
13289
13290 __extension__ extern __inline int16x4x4_t
13291 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13292 vld4_dup_s16 (const int16_t * __a)
13293 {
13294 union { int16x4x4_t __i; __builtin_neon_oi __o; } __rv;
13295 __rv.__o = __builtin_neon_vld4_dupv4hi ((const __builtin_neon_hi *) __a);
13296 return __rv.__i;
13297 }
13298
13299 __extension__ extern __inline int32x2x4_t
13300 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13301 vld4_dup_s32 (const int32_t * __a)
13302 {
13303 union { int32x2x4_t __i; __builtin_neon_oi __o; } __rv;
13304 __rv.__o = __builtin_neon_vld4_dupv2si ((const __builtin_neon_si *) __a);
13305 return __rv.__i;
13306 }
13307
13308 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
13309 __extension__ extern __inline float16x4x4_t
13310 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13311 vld4_dup_f16 (const float16_t * __a)
13312 {
13313 union { float16x4x4_t __i; __builtin_neon_oi __o; } __rv;
13314 __rv.__o = __builtin_neon_vld4_dupv4hf (__a);
13315 return __rv.__i;
13316 }
13317 #endif
13318
13319 __extension__ extern __inline float32x2x4_t
13320 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13321 vld4_dup_f32 (const float32_t * __a)
13322 {
13323 union { float32x2x4_t __i; __builtin_neon_oi __o; } __rv;
13324 __rv.__o = __builtin_neon_vld4_dupv2sf ((const __builtin_neon_sf *) __a);
13325 return __rv.__i;
13326 }
13327
13328 __extension__ extern __inline uint8x8x4_t
13329 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13330 vld4_dup_u8 (const uint8_t * __a)
13331 {
13332 union { uint8x8x4_t __i; __builtin_neon_oi __o; } __rv;
13333 __rv.__o = __builtin_neon_vld4_dupv8qi ((const __builtin_neon_qi *) __a);
13334 return __rv.__i;
13335 }
13336
13337 __extension__ extern __inline uint16x4x4_t
13338 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13339 vld4_dup_u16 (const uint16_t * __a)
13340 {
13341 union { uint16x4x4_t __i; __builtin_neon_oi __o; } __rv;
13342 __rv.__o = __builtin_neon_vld4_dupv4hi ((const __builtin_neon_hi *) __a);
13343 return __rv.__i;
13344 }
13345
13346 __extension__ extern __inline uint32x2x4_t
13347 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13348 vld4_dup_u32 (const uint32_t * __a)
13349 {
13350 union { uint32x2x4_t __i; __builtin_neon_oi __o; } __rv;
13351 __rv.__o = __builtin_neon_vld4_dupv2si ((const __builtin_neon_si *) __a);
13352 return __rv.__i;
13353 }
13354
13355 __extension__ extern __inline poly8x8x4_t
13356 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13357 vld4_dup_p8 (const poly8_t * __a)
13358 {
13359 union { poly8x8x4_t __i; __builtin_neon_oi __o; } __rv;
13360 __rv.__o = __builtin_neon_vld4_dupv8qi ((const __builtin_neon_qi *) __a);
13361 return __rv.__i;
13362 }
13363
13364 __extension__ extern __inline poly16x4x4_t
13365 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13366 vld4_dup_p16 (const poly16_t * __a)
13367 {
13368 union { poly16x4x4_t __i; __builtin_neon_oi __o; } __rv;
13369 __rv.__o = __builtin_neon_vld4_dupv4hi ((const __builtin_neon_hi *) __a);
13370 return __rv.__i;
13371 }
13372
13373 #pragma GCC push_options
13374 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
13375 __extension__ extern __inline poly64x1x4_t
13376 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13377 vld4_dup_p64 (const poly64_t * __a)
13378 {
13379 union { poly64x1x4_t __i; __builtin_neon_oi __o; } __rv;
13380 __rv.__o = __builtin_neon_vld4_dupdi ((const __builtin_neon_di *) __a);
13381 return __rv.__i;
13382 }
13383
13384 #pragma GCC pop_options
13385 __extension__ extern __inline int64x1x4_t
13386 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13387 vld4_dup_s64 (const int64_t * __a)
13388 {
13389 union { int64x1x4_t __i; __builtin_neon_oi __o; } __rv;
13390 __rv.__o = __builtin_neon_vld4_dupdi ((const __builtin_neon_di *) __a);
13391 return __rv.__i;
13392 }
13393
13394 __extension__ extern __inline uint64x1x4_t
13395 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13396 vld4_dup_u64 (const uint64_t * __a)
13397 {
13398 union { uint64x1x4_t __i; __builtin_neon_oi __o; } __rv;
13399 __rv.__o = __builtin_neon_vld4_dupdi ((const __builtin_neon_di *) __a);
13400 return __rv.__i;
13401 }
13402
13403 __extension__ extern __inline void
13404 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13405 vst4_s8 (int8_t * __a, int8x8x4_t __b)
13406 {
13407 union { int8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13408 __builtin_neon_vst4v8qi ((__builtin_neon_qi *) __a, __bu.__o);
13409 }
13410
13411 __extension__ extern __inline void
13412 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13413 vst4_s16 (int16_t * __a, int16x4x4_t __b)
13414 {
13415 union { int16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13416 __builtin_neon_vst4v4hi ((__builtin_neon_hi *) __a, __bu.__o);
13417 }
13418
13419 __extension__ extern __inline void
13420 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13421 vst4_s32 (int32_t * __a, int32x2x4_t __b)
13422 {
13423 union { int32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13424 __builtin_neon_vst4v2si ((__builtin_neon_si *) __a, __bu.__o);
13425 }
13426
13427 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
13428 __extension__ extern __inline void
13429 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13430 vst4_f16 (float16_t * __a, float16x4x4_t __b)
13431 {
13432 union { float16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13433 __builtin_neon_vst4v4hf (__a, __bu.__o);
13434 }
13435 #endif
13436
13437 __extension__ extern __inline void
13438 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13439 vst4_f32 (float32_t * __a, float32x2x4_t __b)
13440 {
13441 union { float32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13442 __builtin_neon_vst4v2sf ((__builtin_neon_sf *) __a, __bu.__o);
13443 }
13444
13445 __extension__ extern __inline void
13446 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13447 vst4_u8 (uint8_t * __a, uint8x8x4_t __b)
13448 {
13449 union { uint8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13450 __builtin_neon_vst4v8qi ((__builtin_neon_qi *) __a, __bu.__o);
13451 }
13452
13453 __extension__ extern __inline void
13454 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13455 vst4_u16 (uint16_t * __a, uint16x4x4_t __b)
13456 {
13457 union { uint16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13458 __builtin_neon_vst4v4hi ((__builtin_neon_hi *) __a, __bu.__o);
13459 }
13460
13461 __extension__ extern __inline void
13462 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13463 vst4_u32 (uint32_t * __a, uint32x2x4_t __b)
13464 {
13465 union { uint32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13466 __builtin_neon_vst4v2si ((__builtin_neon_si *) __a, __bu.__o);
13467 }
13468
13469 __extension__ extern __inline void
13470 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13471 vst4_p8 (poly8_t * __a, poly8x8x4_t __b)
13472 {
13473 union { poly8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13474 __builtin_neon_vst4v8qi ((__builtin_neon_qi *) __a, __bu.__o);
13475 }
13476
13477 __extension__ extern __inline void
13478 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13479 vst4_p16 (poly16_t * __a, poly16x4x4_t __b)
13480 {
13481 union { poly16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13482 __builtin_neon_vst4v4hi ((__builtin_neon_hi *) __a, __bu.__o);
13483 }
13484
13485 #pragma GCC push_options
13486 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
13487 __extension__ extern __inline void
13488 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13489 vst4_p64 (poly64_t * __a, poly64x1x4_t __b)
13490 {
13491 union { poly64x1x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13492 __builtin_neon_vst4di ((__builtin_neon_di *) __a, __bu.__o);
13493 }
13494
13495 #pragma GCC pop_options
13496 __extension__ extern __inline void
13497 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13498 vst4_s64 (int64_t * __a, int64x1x4_t __b)
13499 {
13500 union { int64x1x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13501 __builtin_neon_vst4di ((__builtin_neon_di *) __a, __bu.__o);
13502 }
13503
13504 __extension__ extern __inline void
13505 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13506 vst4_u64 (uint64_t * __a, uint64x1x4_t __b)
13507 {
13508 union { uint64x1x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13509 __builtin_neon_vst4di ((__builtin_neon_di *) __a, __bu.__o);
13510 }
13511
13512 __extension__ extern __inline void
13513 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13514 vst4q_s8 (int8_t * __a, int8x16x4_t __b)
13515 {
13516 union { int8x16x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13517 __builtin_neon_vst4v16qi ((__builtin_neon_qi *) __a, __bu.__o);
13518 }
13519
13520 __extension__ extern __inline void
13521 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13522 vst4q_s16 (int16_t * __a, int16x8x4_t __b)
13523 {
13524 union { int16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13525 __builtin_neon_vst4v8hi ((__builtin_neon_hi *) __a, __bu.__o);
13526 }
13527
13528 __extension__ extern __inline void
13529 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13530 vst4q_s32 (int32_t * __a, int32x4x4_t __b)
13531 {
13532 union { int32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13533 __builtin_neon_vst4v4si ((__builtin_neon_si *) __a, __bu.__o);
13534 }
13535
13536 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
13537 __extension__ extern __inline void
13538 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13539 vst4q_f16 (float16_t * __a, float16x8x4_t __b)
13540 {
13541 union { float16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13542 __builtin_neon_vst4v8hf (__a, __bu.__o);
13543 }
13544 #endif
13545
13546 __extension__ extern __inline void
13547 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13548 vst4q_f32 (float32_t * __a, float32x4x4_t __b)
13549 {
13550 union { float32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13551 __builtin_neon_vst4v4sf ((__builtin_neon_sf *) __a, __bu.__o);
13552 }
13553
13554 __extension__ extern __inline void
13555 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13556 vst4q_u8 (uint8_t * __a, uint8x16x4_t __b)
13557 {
13558 union { uint8x16x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13559 __builtin_neon_vst4v16qi ((__builtin_neon_qi *) __a, __bu.__o);
13560 }
13561
13562 __extension__ extern __inline void
13563 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13564 vst4q_u16 (uint16_t * __a, uint16x8x4_t __b)
13565 {
13566 union { uint16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13567 __builtin_neon_vst4v8hi ((__builtin_neon_hi *) __a, __bu.__o);
13568 }
13569
13570 __extension__ extern __inline void
13571 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13572 vst4q_u32 (uint32_t * __a, uint32x4x4_t __b)
13573 {
13574 union { uint32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13575 __builtin_neon_vst4v4si ((__builtin_neon_si *) __a, __bu.__o);
13576 }
13577
13578 __extension__ extern __inline void
13579 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13580 vst4q_p8 (poly8_t * __a, poly8x16x4_t __b)
13581 {
13582 union { poly8x16x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13583 __builtin_neon_vst4v16qi ((__builtin_neon_qi *) __a, __bu.__o);
13584 }
13585
13586 __extension__ extern __inline void
13587 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13588 vst4q_p16 (poly16_t * __a, poly16x8x4_t __b)
13589 {
13590 union { poly16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13591 __builtin_neon_vst4v8hi ((__builtin_neon_hi *) __a, __bu.__o);
13592 }
13593
13594 __extension__ extern __inline void
13595 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13596 vst4_lane_s8 (int8_t * __a, int8x8x4_t __b, const int __c)
13597 {
13598 union { int8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13599 __builtin_neon_vst4_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
13600 }
13601
13602 __extension__ extern __inline void
13603 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13604 vst4_lane_s16 (int16_t * __a, int16x4x4_t __b, const int __c)
13605 {
13606 union { int16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13607 __builtin_neon_vst4_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
13608 }
13609
13610 __extension__ extern __inline void
13611 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13612 vst4_lane_s32 (int32_t * __a, int32x2x4_t __b, const int __c)
13613 {
13614 union { int32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13615 __builtin_neon_vst4_lanev2si ((__builtin_neon_si *) __a, __bu.__o, __c);
13616 }
13617
13618 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
13619 __extension__ extern __inline void
13620 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13621 vst4_lane_f16 (float16_t * __a, float16x4x4_t __b, const int __c)
13622 {
13623 union { float16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13624 __builtin_neon_vst4_lanev4hf (__a, __bu.__o, __c);
13625 }
13626 #endif
13627
13628 __extension__ extern __inline void
13629 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13630 vst4_lane_f32 (float32_t * __a, float32x2x4_t __b, const int __c)
13631 {
13632 union { float32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13633 __builtin_neon_vst4_lanev2sf ((__builtin_neon_sf *) __a, __bu.__o, __c);
13634 }
13635
13636 __extension__ extern __inline void
13637 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13638 vst4_lane_u8 (uint8_t * __a, uint8x8x4_t __b, const int __c)
13639 {
13640 union { uint8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13641 __builtin_neon_vst4_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
13642 }
13643
13644 __extension__ extern __inline void
13645 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13646 vst4_lane_u16 (uint16_t * __a, uint16x4x4_t __b, const int __c)
13647 {
13648 union { uint16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13649 __builtin_neon_vst4_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
13650 }
13651
13652 __extension__ extern __inline void
13653 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13654 vst4_lane_u32 (uint32_t * __a, uint32x2x4_t __b, const int __c)
13655 {
13656 union { uint32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13657 __builtin_neon_vst4_lanev2si ((__builtin_neon_si *) __a, __bu.__o, __c);
13658 }
13659
13660 __extension__ extern __inline void
13661 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13662 vst4_lane_p8 (poly8_t * __a, poly8x8x4_t __b, const int __c)
13663 {
13664 union { poly8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13665 __builtin_neon_vst4_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
13666 }
13667
13668 __extension__ extern __inline void
13669 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13670 vst4_lane_p16 (poly16_t * __a, poly16x4x4_t __b, const int __c)
13671 {
13672 union { poly16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13673 __builtin_neon_vst4_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
13674 }
13675
13676 __extension__ extern __inline void
13677 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13678 vst4q_lane_s16 (int16_t * __a, int16x8x4_t __b, const int __c)
13679 {
13680 union { int16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13681 __builtin_neon_vst4_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
13682 }
13683
13684 __extension__ extern __inline void
13685 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13686 vst4q_lane_s32 (int32_t * __a, int32x4x4_t __b, const int __c)
13687 {
13688 union { int32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13689 __builtin_neon_vst4_lanev4si ((__builtin_neon_si *) __a, __bu.__o, __c);
13690 }
13691
13692 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
13693 __extension__ extern __inline void
13694 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13695 vst4q_lane_f16 (float16_t * __a, float16x8x4_t __b, const int __c)
13696 {
13697 union { float16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13698 __builtin_neon_vst4_lanev8hf (__a, __bu.__o, __c);
13699 }
13700 #endif
13701
13702 __extension__ extern __inline void
13703 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13704 vst4q_lane_f32 (float32_t * __a, float32x4x4_t __b, const int __c)
13705 {
13706 union { float32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13707 __builtin_neon_vst4_lanev4sf ((__builtin_neon_sf *) __a, __bu.__o, __c);
13708 }
13709
13710 __extension__ extern __inline void
13711 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13712 vst4q_lane_u16 (uint16_t * __a, uint16x8x4_t __b, const int __c)
13713 {
13714 union { uint16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13715 __builtin_neon_vst4_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
13716 }
13717
13718 __extension__ extern __inline void
13719 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13720 vst4q_lane_u32 (uint32_t * __a, uint32x4x4_t __b, const int __c)
13721 {
13722 union { uint32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13723 __builtin_neon_vst4_lanev4si ((__builtin_neon_si *) __a, __bu.__o, __c);
13724 }
13725
13726 __extension__ extern __inline void
13727 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13728 vst4q_lane_p16 (poly16_t * __a, poly16x8x4_t __b, const int __c)
13729 {
13730 union { poly16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13731 __builtin_neon_vst4_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
13732 }
13733
13734 __extension__ extern __inline int8x8_t
13735 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13736 vand_s8 (int8x8_t __a, int8x8_t __b)
13737 {
13738 return __a & __b;
13739 }
13740
13741 __extension__ extern __inline int16x4_t
13742 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13743 vand_s16 (int16x4_t __a, int16x4_t __b)
13744 {
13745 return __a & __b;
13746 }
13747
13748 __extension__ extern __inline int32x2_t
13749 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13750 vand_s32 (int32x2_t __a, int32x2_t __b)
13751 {
13752 return __a & __b;
13753 }
13754
13755 __extension__ extern __inline uint8x8_t
13756 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13757 vand_u8 (uint8x8_t __a, uint8x8_t __b)
13758 {
13759 return __a & __b;
13760 }
13761
13762 __extension__ extern __inline uint16x4_t
13763 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13764 vand_u16 (uint16x4_t __a, uint16x4_t __b)
13765 {
13766 return __a & __b;
13767 }
13768
13769 __extension__ extern __inline uint32x2_t
13770 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13771 vand_u32 (uint32x2_t __a, uint32x2_t __b)
13772 {
13773 return __a & __b;
13774 }
13775
13776 __extension__ extern __inline int64x1_t
13777 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13778 vand_s64 (int64x1_t __a, int64x1_t __b)
13779 {
13780 return __a & __b;
13781 }
13782
13783 __extension__ extern __inline uint64x1_t
13784 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13785 vand_u64 (uint64x1_t __a, uint64x1_t __b)
13786 {
13787 return __a & __b;
13788 }
13789
13790 __extension__ extern __inline int8x16_t
13791 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13792 vandq_s8 (int8x16_t __a, int8x16_t __b)
13793 {
13794 return __a & __b;
13795 }
13796
13797 __extension__ extern __inline int16x8_t
13798 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13799 vandq_s16 (int16x8_t __a, int16x8_t __b)
13800 {
13801 return __a & __b;
13802 }
13803
13804 __extension__ extern __inline int32x4_t
13805 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13806 vandq_s32 (int32x4_t __a, int32x4_t __b)
13807 {
13808 return __a & __b;
13809 }
13810
13811 __extension__ extern __inline int64x2_t
13812 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13813 vandq_s64 (int64x2_t __a, int64x2_t __b)
13814 {
13815 return __a & __b;
13816 }
13817
13818 __extension__ extern __inline uint8x16_t
13819 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13820 vandq_u8 (uint8x16_t __a, uint8x16_t __b)
13821 {
13822 return __a & __b;
13823 }
13824
13825 __extension__ extern __inline uint16x8_t
13826 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13827 vandq_u16 (uint16x8_t __a, uint16x8_t __b)
13828 {
13829 return __a & __b;
13830 }
13831
13832 __extension__ extern __inline uint32x4_t
13833 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13834 vandq_u32 (uint32x4_t __a, uint32x4_t __b)
13835 {
13836 return __a & __b;
13837 }
13838
13839 __extension__ extern __inline uint64x2_t
13840 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13841 vandq_u64 (uint64x2_t __a, uint64x2_t __b)
13842 {
13843 return __a & __b;
13844 }
13845
13846 __extension__ extern __inline int8x8_t
13847 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13848 vorr_s8 (int8x8_t __a, int8x8_t __b)
13849 {
13850 return __a | __b;
13851 }
13852
13853 __extension__ extern __inline int16x4_t
13854 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13855 vorr_s16 (int16x4_t __a, int16x4_t __b)
13856 {
13857 return __a | __b;
13858 }
13859
13860 __extension__ extern __inline int32x2_t
13861 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13862 vorr_s32 (int32x2_t __a, int32x2_t __b)
13863 {
13864 return __a | __b;
13865 }
13866
13867 __extension__ extern __inline uint8x8_t
13868 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13869 vorr_u8 (uint8x8_t __a, uint8x8_t __b)
13870 {
13871 return __a | __b;
13872 }
13873
13874 __extension__ extern __inline uint16x4_t
13875 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13876 vorr_u16 (uint16x4_t __a, uint16x4_t __b)
13877 {
13878 return __a | __b;
13879 }
13880
13881 __extension__ extern __inline uint32x2_t
13882 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13883 vorr_u32 (uint32x2_t __a, uint32x2_t __b)
13884 {
13885 return __a | __b;
13886 }
13887
13888 __extension__ extern __inline int64x1_t
13889 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13890 vorr_s64 (int64x1_t __a, int64x1_t __b)
13891 {
13892 return __a | __b;
13893 }
13894
13895 __extension__ extern __inline uint64x1_t
13896 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13897 vorr_u64 (uint64x1_t __a, uint64x1_t __b)
13898 {
13899 return __a | __b;
13900 }
13901
13902 __extension__ extern __inline int8x16_t
13903 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13904 vorrq_s8 (int8x16_t __a, int8x16_t __b)
13905 {
13906 return __a | __b;
13907 }
13908
13909 __extension__ extern __inline int16x8_t
13910 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13911 vorrq_s16 (int16x8_t __a, int16x8_t __b)
13912 {
13913 return __a | __b;
13914 }
13915
13916 __extension__ extern __inline int32x4_t
13917 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13918 vorrq_s32 (int32x4_t __a, int32x4_t __b)
13919 {
13920 return __a | __b;
13921 }
13922
13923 __extension__ extern __inline int64x2_t
13924 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13925 vorrq_s64 (int64x2_t __a, int64x2_t __b)
13926 {
13927 return __a | __b;
13928 }
13929
13930 __extension__ extern __inline uint8x16_t
13931 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13932 vorrq_u8 (uint8x16_t __a, uint8x16_t __b)
13933 {
13934 return __a | __b;
13935 }
13936
13937 __extension__ extern __inline uint16x8_t
13938 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13939 vorrq_u16 (uint16x8_t __a, uint16x8_t __b)
13940 {
13941 return __a | __b;
13942 }
13943
13944 __extension__ extern __inline uint32x4_t
13945 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13946 vorrq_u32 (uint32x4_t __a, uint32x4_t __b)
13947 {
13948 return __a | __b;
13949 }
13950
13951 __extension__ extern __inline uint64x2_t
13952 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13953 vorrq_u64 (uint64x2_t __a, uint64x2_t __b)
13954 {
13955 return __a | __b;
13956 }
13957
13958 __extension__ extern __inline int8x8_t
13959 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13960 veor_s8 (int8x8_t __a, int8x8_t __b)
13961 {
13962 return __a ^ __b;
13963 }
13964
13965 __extension__ extern __inline int16x4_t
13966 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13967 veor_s16 (int16x4_t __a, int16x4_t __b)
13968 {
13969 return __a ^ __b;
13970 }
13971
13972 __extension__ extern __inline int32x2_t
13973 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13974 veor_s32 (int32x2_t __a, int32x2_t __b)
13975 {
13976 return __a ^ __b;
13977 }
13978
13979 __extension__ extern __inline uint8x8_t
13980 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13981 veor_u8 (uint8x8_t __a, uint8x8_t __b)
13982 {
13983 return __a ^ __b;
13984 }
13985
13986 __extension__ extern __inline uint16x4_t
13987 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13988 veor_u16 (uint16x4_t __a, uint16x4_t __b)
13989 {
13990 return __a ^ __b;
13991 }
13992
13993 __extension__ extern __inline uint32x2_t
13994 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13995 veor_u32 (uint32x2_t __a, uint32x2_t __b)
13996 {
13997 return __a ^ __b;
13998 }
13999
14000 __extension__ extern __inline int64x1_t
14001 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14002 veor_s64 (int64x1_t __a, int64x1_t __b)
14003 {
14004 return __a ^ __b;
14005 }
14006
14007 __extension__ extern __inline uint64x1_t
14008 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14009 veor_u64 (uint64x1_t __a, uint64x1_t __b)
14010 {
14011 return __a ^ __b;
14012 }
14013
14014 __extension__ extern __inline int8x16_t
14015 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14016 veorq_s8 (int8x16_t __a, int8x16_t __b)
14017 {
14018 return __a ^ __b;
14019 }
14020
14021 __extension__ extern __inline int16x8_t
14022 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14023 veorq_s16 (int16x8_t __a, int16x8_t __b)
14024 {
14025 return __a ^ __b;
14026 }
14027
14028 __extension__ extern __inline int32x4_t
14029 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14030 veorq_s32 (int32x4_t __a, int32x4_t __b)
14031 {
14032 return __a ^ __b;
14033 }
14034
14035 __extension__ extern __inline int64x2_t
14036 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14037 veorq_s64 (int64x2_t __a, int64x2_t __b)
14038 {
14039 return __a ^ __b;
14040 }
14041
14042 __extension__ extern __inline uint8x16_t
14043 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14044 veorq_u8 (uint8x16_t __a, uint8x16_t __b)
14045 {
14046 return __a ^ __b;
14047 }
14048
14049 __extension__ extern __inline uint16x8_t
14050 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14051 veorq_u16 (uint16x8_t __a, uint16x8_t __b)
14052 {
14053 return __a ^ __b;
14054 }
14055
14056 __extension__ extern __inline uint32x4_t
14057 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14058 veorq_u32 (uint32x4_t __a, uint32x4_t __b)
14059 {
14060 return __a ^ __b;
14061 }
14062
14063 __extension__ extern __inline uint64x2_t
14064 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14065 veorq_u64 (uint64x2_t __a, uint64x2_t __b)
14066 {
14067 return __a ^ __b;
14068 }
14069
14070 __extension__ extern __inline int8x8_t
14071 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14072 vbic_s8 (int8x8_t __a, int8x8_t __b)
14073 {
14074 return __a & ~__b;
14075 }
14076
14077 __extension__ extern __inline int16x4_t
14078 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14079 vbic_s16 (int16x4_t __a, int16x4_t __b)
14080 {
14081 return __a & ~__b;
14082 }
14083
14084 __extension__ extern __inline int32x2_t
14085 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14086 vbic_s32 (int32x2_t __a, int32x2_t __b)
14087 {
14088 return __a & ~__b;
14089 }
14090
14091 __extension__ extern __inline uint8x8_t
14092 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14093 vbic_u8 (uint8x8_t __a, uint8x8_t __b)
14094 {
14095 return __a & ~__b;
14096 }
14097
14098 __extension__ extern __inline uint16x4_t
14099 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14100 vbic_u16 (uint16x4_t __a, uint16x4_t __b)
14101 {
14102 return __a & ~__b;
14103 }
14104
14105 __extension__ extern __inline uint32x2_t
14106 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14107 vbic_u32 (uint32x2_t __a, uint32x2_t __b)
14108 {
14109 return __a & ~__b;
14110 }
14111
14112 __extension__ extern __inline int64x1_t
14113 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14114 vbic_s64 (int64x1_t __a, int64x1_t __b)
14115 {
14116 return __a & ~__b;
14117 }
14118
14119 __extension__ extern __inline uint64x1_t
14120 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14121 vbic_u64 (uint64x1_t __a, uint64x1_t __b)
14122 {
14123 return __a & ~__b;
14124 }
14125
14126 __extension__ extern __inline int8x16_t
14127 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14128 vbicq_s8 (int8x16_t __a, int8x16_t __b)
14129 {
14130 return __a & ~__b;
14131 }
14132
14133 __extension__ extern __inline int16x8_t
14134 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14135 vbicq_s16 (int16x8_t __a, int16x8_t __b)
14136 {
14137 return __a & ~__b;
14138 }
14139
14140 __extension__ extern __inline int32x4_t
14141 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14142 vbicq_s32 (int32x4_t __a, int32x4_t __b)
14143 {
14144 return __a & ~__b;
14145 }
14146
14147 __extension__ extern __inline int64x2_t
14148 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14149 vbicq_s64 (int64x2_t __a, int64x2_t __b)
14150 {
14151 return __a & ~__b;
14152 }
14153
14154 __extension__ extern __inline uint8x16_t
14155 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14156 vbicq_u8 (uint8x16_t __a, uint8x16_t __b)
14157 {
14158 return __a & ~__b;
14159 }
14160
14161 __extension__ extern __inline uint16x8_t
14162 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14163 vbicq_u16 (uint16x8_t __a, uint16x8_t __b)
14164 {
14165 return __a & ~__b;
14166 }
14167
14168 __extension__ extern __inline uint32x4_t
14169 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14170 vbicq_u32 (uint32x4_t __a, uint32x4_t __b)
14171 {
14172 return __a & ~__b;
14173 }
14174
14175 __extension__ extern __inline uint64x2_t
14176 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14177 vbicq_u64 (uint64x2_t __a, uint64x2_t __b)
14178 {
14179 return __a & ~__b;
14180 }
14181
14182 __extension__ extern __inline int8x8_t
14183 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14184 vorn_s8 (int8x8_t __a, int8x8_t __b)
14185 {
14186 return __a | ~__b;
14187 }
14188
14189 __extension__ extern __inline int16x4_t
14190 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14191 vorn_s16 (int16x4_t __a, int16x4_t __b)
14192 {
14193 return __a | ~__b;
14194 }
14195
14196 __extension__ extern __inline int32x2_t
14197 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14198 vorn_s32 (int32x2_t __a, int32x2_t __b)
14199 {
14200 return __a | ~__b;
14201 }
14202
14203 __extension__ extern __inline uint8x8_t
14204 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14205 vorn_u8 (uint8x8_t __a, uint8x8_t __b)
14206 {
14207 return __a | ~__b;
14208 }
14209
14210 __extension__ extern __inline uint16x4_t
14211 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14212 vorn_u16 (uint16x4_t __a, uint16x4_t __b)
14213 {
14214 return __a | ~__b;
14215 }
14216
14217 __extension__ extern __inline uint32x2_t
14218 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14219 vorn_u32 (uint32x2_t __a, uint32x2_t __b)
14220 {
14221 return __a | ~__b;
14222 }
14223
14224 __extension__ extern __inline int64x1_t
14225 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14226 vorn_s64 (int64x1_t __a, int64x1_t __b)
14227 {
14228 return __a | ~__b;
14229 }
14230
14231 __extension__ extern __inline uint64x1_t
14232 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14233 vorn_u64 (uint64x1_t __a, uint64x1_t __b)
14234 {
14235 return __a | ~__b;
14236 }
14237
14238 __extension__ extern __inline int8x16_t
14239 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14240 vornq_s8 (int8x16_t __a, int8x16_t __b)
14241 {
14242 return __a | ~__b;
14243 }
14244
14245 __extension__ extern __inline int16x8_t
14246 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14247 vornq_s16 (int16x8_t __a, int16x8_t __b)
14248 {
14249 return __a | ~__b;
14250 }
14251
14252 __extension__ extern __inline int32x4_t
14253 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14254 vornq_s32 (int32x4_t __a, int32x4_t __b)
14255 {
14256 return __a | ~__b;
14257 }
14258
14259 __extension__ extern __inline int64x2_t
14260 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14261 vornq_s64 (int64x2_t __a, int64x2_t __b)
14262 {
14263 return __a | ~__b;
14264 }
14265
14266 __extension__ extern __inline uint8x16_t
14267 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14268 vornq_u8 (uint8x16_t __a, uint8x16_t __b)
14269 {
14270 return __a | ~__b;
14271 }
14272
14273 __extension__ extern __inline uint16x8_t
14274 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14275 vornq_u16 (uint16x8_t __a, uint16x8_t __b)
14276 {
14277 return __a | ~__b;
14278 }
14279
14280 __extension__ extern __inline uint32x4_t
14281 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14282 vornq_u32 (uint32x4_t __a, uint32x4_t __b)
14283 {
14284 return __a | ~__b;
14285 }
14286
14287 __extension__ extern __inline uint64x2_t
14288 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14289 vornq_u64 (uint64x2_t __a, uint64x2_t __b)
14290 {
14291 return __a | ~__b;
14292 }
14293
14294 __extension__ extern __inline poly8x8_t
14295 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14296 vreinterpret_p8_p16 (poly16x4_t __a)
14297 {
14298 return (poly8x8_t) __a;
14299 }
14300
14301 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14302 __extension__ extern __inline poly8x8_t
14303 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14304 vreinterpret_p8_f16 (float16x4_t __a)
14305 {
14306 return (poly8x8_t) __a;
14307 }
14308 #endif
14309
14310 __extension__ extern __inline poly8x8_t
14311 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14312 vreinterpret_p8_f32 (float32x2_t __a)
14313 {
14314 return (poly8x8_t)__a;
14315 }
14316
14317 #pragma GCC push_options
14318 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
14319 __extension__ extern __inline poly8x8_t
14320 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14321 vreinterpret_p8_p64 (poly64x1_t __a)
14322 {
14323 return (poly8x8_t)__a;
14324 }
14325
14326 #pragma GCC pop_options
14327 __extension__ extern __inline poly8x8_t
14328 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14329 vreinterpret_p8_s64 (int64x1_t __a)
14330 {
14331 return (poly8x8_t)__a;
14332 }
14333
14334 __extension__ extern __inline poly8x8_t
14335 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14336 vreinterpret_p8_u64 (uint64x1_t __a)
14337 {
14338 return (poly8x8_t)__a;
14339 }
14340
14341 __extension__ extern __inline poly8x8_t
14342 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14343 vreinterpret_p8_s8 (int8x8_t __a)
14344 {
14345 return (poly8x8_t)__a;
14346 }
14347
14348 __extension__ extern __inline poly8x8_t
14349 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14350 vreinterpret_p8_s16 (int16x4_t __a)
14351 {
14352 return (poly8x8_t)__a;
14353 }
14354
14355 __extension__ extern __inline poly8x8_t
14356 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14357 vreinterpret_p8_s32 (int32x2_t __a)
14358 {
14359 return (poly8x8_t)__a;
14360 }
14361
14362 __extension__ extern __inline poly8x8_t
14363 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14364 vreinterpret_p8_u8 (uint8x8_t __a)
14365 {
14366 return (poly8x8_t)__a;
14367 }
14368
14369 __extension__ extern __inline poly8x8_t
14370 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14371 vreinterpret_p8_u16 (uint16x4_t __a)
14372 {
14373 return (poly8x8_t)__a;
14374 }
14375
14376 __extension__ extern __inline poly8x8_t
14377 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14378 vreinterpret_p8_u32 (uint32x2_t __a)
14379 {
14380 return (poly8x8_t)__a;
14381 }
14382
14383 __extension__ extern __inline poly16x4_t
14384 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14385 vreinterpret_p16_p8 (poly8x8_t __a)
14386 {
14387 return (poly16x4_t)__a;
14388 }
14389
14390 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14391 __extension__ extern __inline poly16x4_t
14392 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14393 vreinterpret_p16_f16 (float16x4_t __a)
14394 {
14395 return (poly16x4_t) __a;
14396 }
14397 #endif
14398
14399 __extension__ extern __inline poly16x4_t
14400 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14401 vreinterpret_p16_f32 (float32x2_t __a)
14402 {
14403 return (poly16x4_t)__a;
14404 }
14405
14406 #pragma GCC push_options
14407 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
14408 __extension__ extern __inline poly16x4_t
14409 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14410 vreinterpret_p16_p64 (poly64x1_t __a)
14411 {
14412 return (poly16x4_t)__a;
14413 }
14414
14415 #pragma GCC pop_options
14416 __extension__ extern __inline poly16x4_t
14417 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14418 vreinterpret_p16_s64 (int64x1_t __a)
14419 {
14420 return (poly16x4_t)__a;
14421 }
14422
14423 __extension__ extern __inline poly16x4_t
14424 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14425 vreinterpret_p16_u64 (uint64x1_t __a)
14426 {
14427 return (poly16x4_t)__a;
14428 }
14429
14430 __extension__ extern __inline poly16x4_t
14431 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14432 vreinterpret_p16_s8 (int8x8_t __a)
14433 {
14434 return (poly16x4_t)__a;
14435 }
14436
14437 __extension__ extern __inline poly16x4_t
14438 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14439 vreinterpret_p16_s16 (int16x4_t __a)
14440 {
14441 return (poly16x4_t)__a;
14442 }
14443
14444 __extension__ extern __inline poly16x4_t
14445 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14446 vreinterpret_p16_s32 (int32x2_t __a)
14447 {
14448 return (poly16x4_t)__a;
14449 }
14450
14451 __extension__ extern __inline poly16x4_t
14452 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14453 vreinterpret_p16_u8 (uint8x8_t __a)
14454 {
14455 return (poly16x4_t)__a;
14456 }
14457
14458 __extension__ extern __inline poly16x4_t
14459 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14460 vreinterpret_p16_u16 (uint16x4_t __a)
14461 {
14462 return (poly16x4_t)__a;
14463 }
14464
14465 __extension__ extern __inline poly16x4_t
14466 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14467 vreinterpret_p16_u32 (uint32x2_t __a)
14468 {
14469 return (poly16x4_t)__a;
14470 }
14471
14472 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14473 __extension__ extern __inline float16x4_t
14474 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14475 vreinterpret_f16_p8 (poly8x8_t __a)
14476 {
14477 return (float16x4_t) __a;
14478 }
14479 #endif
14480
14481 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14482 __extension__ extern __inline float16x4_t
14483 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14484 vreinterpret_f16_p16 (poly16x4_t __a)
14485 {
14486 return (float16x4_t) __a;
14487 }
14488 #endif
14489
14490 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14491 __extension__ extern __inline float16x4_t
14492 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14493 vreinterpret_f16_f32 (float32x2_t __a)
14494 {
14495 return (float16x4_t) __a;
14496 }
14497 #endif
14498
14499 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14500 #pragma GCC push_options
14501 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
14502 __extension__ extern __inline float16x4_t
14503 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14504 vreinterpret_f16_p64 (poly64x1_t __a)
14505 {
14506 return (float16x4_t) __a;
14507 }
14508 #pragma GCC pop_options
14509 #endif
14510
14511 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14512 __extension__ extern __inline float16x4_t
14513 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14514 vreinterpret_f16_s64 (int64x1_t __a)
14515 {
14516 return (float16x4_t) __a;
14517 }
14518 #endif
14519
14520 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14521 __extension__ extern __inline float16x4_t
14522 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14523 vreinterpret_f16_u64 (uint64x1_t __a)
14524 {
14525 return (float16x4_t) __a;
14526 }
14527 #endif
14528
14529 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14530 __extension__ extern __inline float16x4_t
14531 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14532 vreinterpret_f16_s8 (int8x8_t __a)
14533 {
14534 return (float16x4_t) __a;
14535 }
14536 #endif
14537
14538 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14539 __extension__ extern __inline float16x4_t
14540 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14541 vreinterpret_f16_s16 (int16x4_t __a)
14542 {
14543 return (float16x4_t) __a;
14544 }
14545 #endif
14546
14547 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14548 __extension__ extern __inline float16x4_t
14549 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14550 vreinterpret_f16_s32 (int32x2_t __a)
14551 {
14552 return (float16x4_t) __a;
14553 }
14554 #endif
14555
14556 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14557 __extension__ extern __inline float16x4_t
14558 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14559 vreinterpret_f16_u8 (uint8x8_t __a)
14560 {
14561 return (float16x4_t) __a;
14562 }
14563 #endif
14564
14565 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14566 __extension__ extern __inline float16x4_t
14567 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14568 vreinterpret_f16_u16 (uint16x4_t __a)
14569 {
14570 return (float16x4_t) __a;
14571 }
14572 #endif
14573
14574 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14575 __extension__ extern __inline float16x4_t
14576 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14577 vreinterpret_f16_u32 (uint32x2_t __a)
14578 {
14579 return (float16x4_t) __a;
14580 }
14581 #endif
14582
14583 __extension__ extern __inline float32x2_t
14584 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14585 vreinterpret_f32_p8 (poly8x8_t __a)
14586 {
14587 return (float32x2_t)__a;
14588 }
14589
14590 __extension__ extern __inline float32x2_t
14591 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14592 vreinterpret_f32_p16 (poly16x4_t __a)
14593 {
14594 return (float32x2_t)__a;
14595 }
14596
14597 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14598 __extension__ extern __inline float32x2_t
14599 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14600 vreinterpret_f32_f16 (float16x4_t __a)
14601 {
14602 return (float32x2_t) __a;
14603 }
14604 #endif
14605
14606 #pragma GCC push_options
14607 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
14608 __extension__ extern __inline float32x2_t
14609 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14610 vreinterpret_f32_p64 (poly64x1_t __a)
14611 {
14612 return (float32x2_t)__a;
14613 }
14614
14615 #pragma GCC pop_options
14616 __extension__ extern __inline float32x2_t
14617 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14618 vreinterpret_f32_s64 (int64x1_t __a)
14619 {
14620 return (float32x2_t)__a;
14621 }
14622
14623 __extension__ extern __inline float32x2_t
14624 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14625 vreinterpret_f32_u64 (uint64x1_t __a)
14626 {
14627 return (float32x2_t)__a;
14628 }
14629
14630 __extension__ extern __inline float32x2_t
14631 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14632 vreinterpret_f32_s8 (int8x8_t __a)
14633 {
14634 return (float32x2_t)__a;
14635 }
14636
14637 __extension__ extern __inline float32x2_t
14638 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14639 vreinterpret_f32_s16 (int16x4_t __a)
14640 {
14641 return (float32x2_t)__a;
14642 }
14643
14644 __extension__ extern __inline float32x2_t
14645 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14646 vreinterpret_f32_s32 (int32x2_t __a)
14647 {
14648 return (float32x2_t)__a;
14649 }
14650
14651 __extension__ extern __inline float32x2_t
14652 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14653 vreinterpret_f32_u8 (uint8x8_t __a)
14654 {
14655 return (float32x2_t)__a;
14656 }
14657
14658 __extension__ extern __inline float32x2_t
14659 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14660 vreinterpret_f32_u16 (uint16x4_t __a)
14661 {
14662 return (float32x2_t)__a;
14663 }
14664
14665 __extension__ extern __inline float32x2_t
14666 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14667 vreinterpret_f32_u32 (uint32x2_t __a)
14668 {
14669 return (float32x2_t)__a;
14670 }
14671
14672 #pragma GCC push_options
14673 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
14674 __extension__ extern __inline poly64x1_t
14675 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14676 vreinterpret_p64_p8 (poly8x8_t __a)
14677 {
14678 return (poly64x1_t)__a;
14679 }
14680
14681 __extension__ extern __inline poly64x1_t
14682 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14683 vreinterpret_p64_p16 (poly16x4_t __a)
14684 {
14685 return (poly64x1_t)__a;
14686 }
14687
14688 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14689 __extension__ extern __inline poly64x1_t
14690 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14691 vreinterpret_p64_f16 (float16x4_t __a)
14692 {
14693 return (poly64x1_t) __a;
14694 }
14695 #endif
14696
14697 __extension__ extern __inline poly64x1_t
14698 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14699 vreinterpret_p64_f32 (float32x2_t __a)
14700 {
14701 return (poly64x1_t)__a;
14702 }
14703
14704 __extension__ extern __inline poly64x1_t
14705 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14706 vreinterpret_p64_s64 (int64x1_t __a)
14707 {
14708 return (poly64x1_t)__a;
14709 }
14710
14711 __extension__ extern __inline poly64x1_t
14712 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14713 vreinterpret_p64_u64 (uint64x1_t __a)
14714 {
14715 return (poly64x1_t)__a;
14716 }
14717
14718 __extension__ extern __inline poly64x1_t
14719 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14720 vreinterpret_p64_s8 (int8x8_t __a)
14721 {
14722 return (poly64x1_t)__a;
14723 }
14724
14725 __extension__ extern __inline poly64x1_t
14726 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14727 vreinterpret_p64_s16 (int16x4_t __a)
14728 {
14729 return (poly64x1_t)__a;
14730 }
14731
14732 __extension__ extern __inline poly64x1_t
14733 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14734 vreinterpret_p64_s32 (int32x2_t __a)
14735 {
14736 return (poly64x1_t)__a;
14737 }
14738
14739 __extension__ extern __inline poly64x1_t
14740 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14741 vreinterpret_p64_u8 (uint8x8_t __a)
14742 {
14743 return (poly64x1_t)__a;
14744 }
14745
14746 __extension__ extern __inline poly64x1_t
14747 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14748 vreinterpret_p64_u16 (uint16x4_t __a)
14749 {
14750 return (poly64x1_t)__a;
14751 }
14752
14753 __extension__ extern __inline poly64x1_t
14754 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14755 vreinterpret_p64_u32 (uint32x2_t __a)
14756 {
14757 return (poly64x1_t)__a;
14758 }
14759
14760 #pragma GCC pop_options
14761 __extension__ extern __inline int64x1_t
14762 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14763 vreinterpret_s64_p8 (poly8x8_t __a)
14764 {
14765 return (int64x1_t)__a;
14766 }
14767
14768 __extension__ extern __inline int64x1_t
14769 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14770 vreinterpret_s64_p16 (poly16x4_t __a)
14771 {
14772 return (int64x1_t)__a;
14773 }
14774
14775 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14776 __extension__ extern __inline int64x1_t
14777 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14778 vreinterpret_s64_f16 (float16x4_t __a)
14779 {
14780 return (int64x1_t) __a;
14781 }
14782 #endif
14783
14784 __extension__ extern __inline int64x1_t
14785 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14786 vreinterpret_s64_f32 (float32x2_t __a)
14787 {
14788 return (int64x1_t)__a;
14789 }
14790
14791 #pragma GCC push_options
14792 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
14793 __extension__ extern __inline int64x1_t
14794 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14795 vreinterpret_s64_p64 (poly64x1_t __a)
14796 {
14797 return (int64x1_t)__a;
14798 }
14799
14800 #pragma GCC pop_options
14801 __extension__ extern __inline int64x1_t
14802 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14803 vreinterpret_s64_u64 (uint64x1_t __a)
14804 {
14805 return (int64x1_t)__a;
14806 }
14807
14808 __extension__ extern __inline int64x1_t
14809 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14810 vreinterpret_s64_s8 (int8x8_t __a)
14811 {
14812 return (int64x1_t)__a;
14813 }
14814
14815 __extension__ extern __inline int64x1_t
14816 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14817 vreinterpret_s64_s16 (int16x4_t __a)
14818 {
14819 return (int64x1_t)__a;
14820 }
14821
14822 __extension__ extern __inline int64x1_t
14823 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14824 vreinterpret_s64_s32 (int32x2_t __a)
14825 {
14826 return (int64x1_t)__a;
14827 }
14828
14829 __extension__ extern __inline int64x1_t
14830 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14831 vreinterpret_s64_u8 (uint8x8_t __a)
14832 {
14833 return (int64x1_t)__a;
14834 }
14835
14836 __extension__ extern __inline int64x1_t
14837 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14838 vreinterpret_s64_u16 (uint16x4_t __a)
14839 {
14840 return (int64x1_t)__a;
14841 }
14842
14843 __extension__ extern __inline int64x1_t
14844 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14845 vreinterpret_s64_u32 (uint32x2_t __a)
14846 {
14847 return (int64x1_t)__a;
14848 }
14849
14850 __extension__ extern __inline uint64x1_t
14851 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14852 vreinterpret_u64_p8 (poly8x8_t __a)
14853 {
14854 return (uint64x1_t)__a;
14855 }
14856
14857 __extension__ extern __inline uint64x1_t
14858 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14859 vreinterpret_u64_p16 (poly16x4_t __a)
14860 {
14861 return (uint64x1_t)__a;
14862 }
14863
14864 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14865 __extension__ extern __inline uint64x1_t
14866 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14867 vreinterpret_u64_f16 (float16x4_t __a)
14868 {
14869 return (uint64x1_t) __a;
14870 }
14871 #endif
14872
14873 __extension__ extern __inline uint64x1_t
14874 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14875 vreinterpret_u64_f32 (float32x2_t __a)
14876 {
14877 return (uint64x1_t)__a;
14878 }
14879
14880 #pragma GCC push_options
14881 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
14882 __extension__ extern __inline uint64x1_t
14883 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14884 vreinterpret_u64_p64 (poly64x1_t __a)
14885 {
14886 return (uint64x1_t)__a;
14887 }
14888
14889 #pragma GCC pop_options
14890 __extension__ extern __inline uint64x1_t
14891 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14892 vreinterpret_u64_s64 (int64x1_t __a)
14893 {
14894 return (uint64x1_t)__a;
14895 }
14896
14897 __extension__ extern __inline uint64x1_t
14898 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14899 vreinterpret_u64_s8 (int8x8_t __a)
14900 {
14901 return (uint64x1_t)__a;
14902 }
14903
14904 __extension__ extern __inline uint64x1_t
14905 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14906 vreinterpret_u64_s16 (int16x4_t __a)
14907 {
14908 return (uint64x1_t)__a;
14909 }
14910
14911 __extension__ extern __inline uint64x1_t
14912 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14913 vreinterpret_u64_s32 (int32x2_t __a)
14914 {
14915 return (uint64x1_t)__a;
14916 }
14917
14918 __extension__ extern __inline uint64x1_t
14919 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14920 vreinterpret_u64_u8 (uint8x8_t __a)
14921 {
14922 return (uint64x1_t)__a;
14923 }
14924
14925 __extension__ extern __inline uint64x1_t
14926 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14927 vreinterpret_u64_u16 (uint16x4_t __a)
14928 {
14929 return (uint64x1_t)__a;
14930 }
14931
14932 __extension__ extern __inline uint64x1_t
14933 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14934 vreinterpret_u64_u32 (uint32x2_t __a)
14935 {
14936 return (uint64x1_t)__a;
14937 }
14938
14939 __extension__ extern __inline int8x8_t
14940 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14941 vreinterpret_s8_p8 (poly8x8_t __a)
14942 {
14943 return (int8x8_t)__a;
14944 }
14945
14946 __extension__ extern __inline int8x8_t
14947 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14948 vreinterpret_s8_p16 (poly16x4_t __a)
14949 {
14950 return (int8x8_t)__a;
14951 }
14952
14953 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14954 __extension__ extern __inline int8x8_t
14955 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14956 vreinterpret_s8_f16 (float16x4_t __a)
14957 {
14958 return (int8x8_t) __a;
14959 }
14960 #endif
14961
14962 __extension__ extern __inline int8x8_t
14963 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14964 vreinterpret_s8_f32 (float32x2_t __a)
14965 {
14966 return (int8x8_t)__a;
14967 }
14968
14969 #pragma GCC push_options
14970 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
14971 __extension__ extern __inline int8x8_t
14972 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14973 vreinterpret_s8_p64 (poly64x1_t __a)
14974 {
14975 return (int8x8_t)__a;
14976 }
14977
14978 #pragma GCC pop_options
14979 __extension__ extern __inline int8x8_t
14980 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14981 vreinterpret_s8_s64 (int64x1_t __a)
14982 {
14983 return (int8x8_t)__a;
14984 }
14985
14986 __extension__ extern __inline int8x8_t
14987 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14988 vreinterpret_s8_u64 (uint64x1_t __a)
14989 {
14990 return (int8x8_t)__a;
14991 }
14992
14993 __extension__ extern __inline int8x8_t
14994 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14995 vreinterpret_s8_s16 (int16x4_t __a)
14996 {
14997 return (int8x8_t)__a;
14998 }
14999
15000 __extension__ extern __inline int8x8_t
15001 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15002 vreinterpret_s8_s32 (int32x2_t __a)
15003 {
15004 return (int8x8_t)__a;
15005 }
15006
15007 __extension__ extern __inline int8x8_t
15008 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15009 vreinterpret_s8_u8 (uint8x8_t __a)
15010 {
15011 return (int8x8_t)__a;
15012 }
15013
15014 __extension__ extern __inline int8x8_t
15015 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15016 vreinterpret_s8_u16 (uint16x4_t __a)
15017 {
15018 return (int8x8_t)__a;
15019 }
15020
15021 __extension__ extern __inline int8x8_t
15022 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15023 vreinterpret_s8_u32 (uint32x2_t __a)
15024 {
15025 return (int8x8_t)__a;
15026 }
15027
15028 __extension__ extern __inline int16x4_t
15029 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15030 vreinterpret_s16_p8 (poly8x8_t __a)
15031 {
15032 return (int16x4_t)__a;
15033 }
15034
15035 __extension__ extern __inline int16x4_t
15036 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15037 vreinterpret_s16_p16 (poly16x4_t __a)
15038 {
15039 return (int16x4_t)__a;
15040 }
15041
15042 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15043 __extension__ extern __inline int16x4_t
15044 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15045 vreinterpret_s16_f16 (float16x4_t __a)
15046 {
15047 return (int16x4_t) __a;
15048 }
15049 #endif
15050
15051 __extension__ extern __inline int16x4_t
15052 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15053 vreinterpret_s16_f32 (float32x2_t __a)
15054 {
15055 return (int16x4_t)__a;
15056 }
15057
15058 #pragma GCC push_options
15059 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
15060 __extension__ extern __inline int16x4_t
15061 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15062 vreinterpret_s16_p64 (poly64x1_t __a)
15063 {
15064 return (int16x4_t)__a;
15065 }
15066
15067 #pragma GCC pop_options
15068 __extension__ extern __inline int16x4_t
15069 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15070 vreinterpret_s16_s64 (int64x1_t __a)
15071 {
15072 return (int16x4_t)__a;
15073 }
15074
15075 __extension__ extern __inline int16x4_t
15076 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15077 vreinterpret_s16_u64 (uint64x1_t __a)
15078 {
15079 return (int16x4_t)__a;
15080 }
15081
15082 __extension__ extern __inline int16x4_t
15083 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15084 vreinterpret_s16_s8 (int8x8_t __a)
15085 {
15086 return (int16x4_t)__a;
15087 }
15088
15089 __extension__ extern __inline int16x4_t
15090 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15091 vreinterpret_s16_s32 (int32x2_t __a)
15092 {
15093 return (int16x4_t)__a;
15094 }
15095
15096 __extension__ extern __inline int16x4_t
15097 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15098 vreinterpret_s16_u8 (uint8x8_t __a)
15099 {
15100 return (int16x4_t)__a;
15101 }
15102
15103 __extension__ extern __inline int16x4_t
15104 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15105 vreinterpret_s16_u16 (uint16x4_t __a)
15106 {
15107 return (int16x4_t)__a;
15108 }
15109
15110 __extension__ extern __inline int16x4_t
15111 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15112 vreinterpret_s16_u32 (uint32x2_t __a)
15113 {
15114 return (int16x4_t)__a;
15115 }
15116
15117 __extension__ extern __inline int32x2_t
15118 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15119 vreinterpret_s32_p8 (poly8x8_t __a)
15120 {
15121 return (int32x2_t)__a;
15122 }
15123
15124 __extension__ extern __inline int32x2_t
15125 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15126 vreinterpret_s32_p16 (poly16x4_t __a)
15127 {
15128 return (int32x2_t)__a;
15129 }
15130
15131 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15132 __extension__ extern __inline int32x2_t
15133 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15134 vreinterpret_s32_f16 (float16x4_t __a)
15135 {
15136 return (int32x2_t) __a;
15137 }
15138 #endif
15139
15140 __extension__ extern __inline int32x2_t
15141 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15142 vreinterpret_s32_f32 (float32x2_t __a)
15143 {
15144 return (int32x2_t)__a;
15145 }
15146
15147 #pragma GCC push_options
15148 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
15149 __extension__ extern __inline int32x2_t
15150 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15151 vreinterpret_s32_p64 (poly64x1_t __a)
15152 {
15153 return (int32x2_t)__a;
15154 }
15155
15156 #pragma GCC pop_options
15157 __extension__ extern __inline int32x2_t
15158 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15159 vreinterpret_s32_s64 (int64x1_t __a)
15160 {
15161 return (int32x2_t)__a;
15162 }
15163
15164 __extension__ extern __inline int32x2_t
15165 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15166 vreinterpret_s32_u64 (uint64x1_t __a)
15167 {
15168 return (int32x2_t)__a;
15169 }
15170
15171 __extension__ extern __inline int32x2_t
15172 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15173 vreinterpret_s32_s8 (int8x8_t __a)
15174 {
15175 return (int32x2_t)__a;
15176 }
15177
15178 __extension__ extern __inline int32x2_t
15179 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15180 vreinterpret_s32_s16 (int16x4_t __a)
15181 {
15182 return (int32x2_t)__a;
15183 }
15184
15185 __extension__ extern __inline int32x2_t
15186 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15187 vreinterpret_s32_u8 (uint8x8_t __a)
15188 {
15189 return (int32x2_t)__a;
15190 }
15191
15192 __extension__ extern __inline int32x2_t
15193 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15194 vreinterpret_s32_u16 (uint16x4_t __a)
15195 {
15196 return (int32x2_t)__a;
15197 }
15198
15199 __extension__ extern __inline int32x2_t
15200 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15201 vreinterpret_s32_u32 (uint32x2_t __a)
15202 {
15203 return (int32x2_t)__a;
15204 }
15205
15206 __extension__ extern __inline uint8x8_t
15207 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15208 vreinterpret_u8_p8 (poly8x8_t __a)
15209 {
15210 return (uint8x8_t)__a;
15211 }
15212
15213 __extension__ extern __inline uint8x8_t
15214 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15215 vreinterpret_u8_p16 (poly16x4_t __a)
15216 {
15217 return (uint8x8_t)__a;
15218 }
15219
15220 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15221 __extension__ extern __inline uint8x8_t
15222 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15223 vreinterpret_u8_f16 (float16x4_t __a)
15224 {
15225 return (uint8x8_t) __a;
15226 }
15227 #endif
15228
15229 __extension__ extern __inline uint8x8_t
15230 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15231 vreinterpret_u8_f32 (float32x2_t __a)
15232 {
15233 return (uint8x8_t)__a;
15234 }
15235
15236 #pragma GCC push_options
15237 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
15238 __extension__ extern __inline uint8x8_t
15239 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15240 vreinterpret_u8_p64 (poly64x1_t __a)
15241 {
15242 return (uint8x8_t)__a;
15243 }
15244
15245 #pragma GCC pop_options
15246 __extension__ extern __inline uint8x8_t
15247 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15248 vreinterpret_u8_s64 (int64x1_t __a)
15249 {
15250 return (uint8x8_t)__a;
15251 }
15252
15253 __extension__ extern __inline uint8x8_t
15254 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15255 vreinterpret_u8_u64 (uint64x1_t __a)
15256 {
15257 return (uint8x8_t)__a;
15258 }
15259
15260 __extension__ extern __inline uint8x8_t
15261 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15262 vreinterpret_u8_s8 (int8x8_t __a)
15263 {
15264 return (uint8x8_t)__a;
15265 }
15266
15267 __extension__ extern __inline uint8x8_t
15268 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15269 vreinterpret_u8_s16 (int16x4_t __a)
15270 {
15271 return (uint8x8_t)__a;
15272 }
15273
15274 __extension__ extern __inline uint8x8_t
15275 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15276 vreinterpret_u8_s32 (int32x2_t __a)
15277 {
15278 return (uint8x8_t)__a;
15279 }
15280
15281 __extension__ extern __inline uint8x8_t
15282 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15283 vreinterpret_u8_u16 (uint16x4_t __a)
15284 {
15285 return (uint8x8_t)__a;
15286 }
15287
15288 __extension__ extern __inline uint8x8_t
15289 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15290 vreinterpret_u8_u32 (uint32x2_t __a)
15291 {
15292 return (uint8x8_t)__a;
15293 }
15294
15295 __extension__ extern __inline uint16x4_t
15296 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15297 vreinterpret_u16_p8 (poly8x8_t __a)
15298 {
15299 return (uint16x4_t)__a;
15300 }
15301
15302 __extension__ extern __inline uint16x4_t
15303 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15304 vreinterpret_u16_p16 (poly16x4_t __a)
15305 {
15306 return (uint16x4_t)__a;
15307 }
15308
15309 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15310 __extension__ extern __inline uint16x4_t
15311 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15312 vreinterpret_u16_f16 (float16x4_t __a)
15313 {
15314 return (uint16x4_t) __a;
15315 }
15316 #endif
15317
15318 __extension__ extern __inline uint16x4_t
15319 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15320 vreinterpret_u16_f32 (float32x2_t __a)
15321 {
15322 return (uint16x4_t)__a;
15323 }
15324
15325 #pragma GCC push_options
15326 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
15327 __extension__ extern __inline uint16x4_t
15328 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15329 vreinterpret_u16_p64 (poly64x1_t __a)
15330 {
15331 return (uint16x4_t)__a;
15332 }
15333
15334 #pragma GCC pop_options
15335 __extension__ extern __inline uint16x4_t
15336 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15337 vreinterpret_u16_s64 (int64x1_t __a)
15338 {
15339 return (uint16x4_t)__a;
15340 }
15341
15342 __extension__ extern __inline uint16x4_t
15343 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15344 vreinterpret_u16_u64 (uint64x1_t __a)
15345 {
15346 return (uint16x4_t)__a;
15347 }
15348
15349 __extension__ extern __inline uint16x4_t
15350 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15351 vreinterpret_u16_s8 (int8x8_t __a)
15352 {
15353 return (uint16x4_t)__a;
15354 }
15355
15356 __extension__ extern __inline uint16x4_t
15357 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15358 vreinterpret_u16_s16 (int16x4_t __a)
15359 {
15360 return (uint16x4_t)__a;
15361 }
15362
15363 __extension__ extern __inline uint16x4_t
15364 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15365 vreinterpret_u16_s32 (int32x2_t __a)
15366 {
15367 return (uint16x4_t)__a;
15368 }
15369
15370 __extension__ extern __inline uint16x4_t
15371 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15372 vreinterpret_u16_u8 (uint8x8_t __a)
15373 {
15374 return (uint16x4_t)__a;
15375 }
15376
15377 __extension__ extern __inline uint16x4_t
15378 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15379 vreinterpret_u16_u32 (uint32x2_t __a)
15380 {
15381 return (uint16x4_t)__a;
15382 }
15383
15384 __extension__ extern __inline uint32x2_t
15385 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15386 vreinterpret_u32_p8 (poly8x8_t __a)
15387 {
15388 return (uint32x2_t)__a;
15389 }
15390
15391 __extension__ extern __inline uint32x2_t
15392 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15393 vreinterpret_u32_p16 (poly16x4_t __a)
15394 {
15395 return (uint32x2_t)__a;
15396 }
15397
15398 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15399 __extension__ extern __inline uint32x2_t
15400 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15401 vreinterpret_u32_f16 (float16x4_t __a)
15402 {
15403 return (uint32x2_t) __a;
15404 }
15405 #endif
15406
15407 __extension__ extern __inline uint32x2_t
15408 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15409 vreinterpret_u32_f32 (float32x2_t __a)
15410 {
15411 return (uint32x2_t)__a;
15412 }
15413
15414 #pragma GCC push_options
15415 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
15416 __extension__ extern __inline uint32x2_t
15417 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15418 vreinterpret_u32_p64 (poly64x1_t __a)
15419 {
15420 return (uint32x2_t)__a;
15421 }
15422
15423 #pragma GCC pop_options
15424 __extension__ extern __inline uint32x2_t
15425 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15426 vreinterpret_u32_s64 (int64x1_t __a)
15427 {
15428 return (uint32x2_t)__a;
15429 }
15430
15431 __extension__ extern __inline uint32x2_t
15432 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15433 vreinterpret_u32_u64 (uint64x1_t __a)
15434 {
15435 return (uint32x2_t)__a;
15436 }
15437
15438 __extension__ extern __inline uint32x2_t
15439 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15440 vreinterpret_u32_s8 (int8x8_t __a)
15441 {
15442 return (uint32x2_t)__a;
15443 }
15444
15445 __extension__ extern __inline uint32x2_t
15446 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15447 vreinterpret_u32_s16 (int16x4_t __a)
15448 {
15449 return (uint32x2_t)__a;
15450 }
15451
15452 __extension__ extern __inline uint32x2_t
15453 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15454 vreinterpret_u32_s32 (int32x2_t __a)
15455 {
15456 return (uint32x2_t)__a;
15457 }
15458
15459 __extension__ extern __inline uint32x2_t
15460 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15461 vreinterpret_u32_u8 (uint8x8_t __a)
15462 {
15463 return (uint32x2_t)__a;
15464 }
15465
15466 __extension__ extern __inline uint32x2_t
15467 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15468 vreinterpret_u32_u16 (uint16x4_t __a)
15469 {
15470 return (uint32x2_t)__a;
15471 }
15472
15473 __extension__ extern __inline poly8x16_t
15474 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15475 vreinterpretq_p8_p16 (poly16x8_t __a)
15476 {
15477 return (poly8x16_t)__a;
15478 }
15479
15480 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15481 __extension__ extern __inline poly8x16_t
15482 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15483 vreinterpretq_p8_f16 (float16x8_t __a)
15484 {
15485 return (poly8x16_t) __a;
15486 }
15487 #endif
15488
15489 __extension__ extern __inline poly8x16_t
15490 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15491 vreinterpretq_p8_f32 (float32x4_t __a)
15492 {
15493 return (poly8x16_t)__a;
15494 }
15495
15496 #pragma GCC push_options
15497 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
15498 __extension__ extern __inline poly8x16_t
15499 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15500 vreinterpretq_p8_p64 (poly64x2_t __a)
15501 {
15502 return (poly8x16_t)__a;
15503 }
15504
15505
15506 __extension__ extern __inline poly8x16_t
15507 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15508 vreinterpretq_p8_p128 (poly128_t __a)
15509 {
15510 return (poly8x16_t)__a;
15511 }
15512
15513 #pragma GCC pop_options
15514 __extension__ extern __inline poly8x16_t
15515 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15516 vreinterpretq_p8_s64 (int64x2_t __a)
15517 {
15518 return (poly8x16_t)__a;
15519 }
15520
15521 __extension__ extern __inline poly8x16_t
15522 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15523 vreinterpretq_p8_u64 (uint64x2_t __a)
15524 {
15525 return (poly8x16_t)__a;
15526 }
15527
15528 __extension__ extern __inline poly8x16_t
15529 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15530 vreinterpretq_p8_s8 (int8x16_t __a)
15531 {
15532 return (poly8x16_t)__a;
15533 }
15534
15535 __extension__ extern __inline poly8x16_t
15536 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15537 vreinterpretq_p8_s16 (int16x8_t __a)
15538 {
15539 return (poly8x16_t)__a;
15540 }
15541
15542 __extension__ extern __inline poly8x16_t
15543 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15544 vreinterpretq_p8_s32 (int32x4_t __a)
15545 {
15546 return (poly8x16_t)__a;
15547 }
15548
15549 __extension__ extern __inline poly8x16_t
15550 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15551 vreinterpretq_p8_u8 (uint8x16_t __a)
15552 {
15553 return (poly8x16_t)__a;
15554 }
15555
15556 __extension__ extern __inline poly8x16_t
15557 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15558 vreinterpretq_p8_u16 (uint16x8_t __a)
15559 {
15560 return (poly8x16_t)__a;
15561 }
15562
15563 __extension__ extern __inline poly8x16_t
15564 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15565 vreinterpretq_p8_u32 (uint32x4_t __a)
15566 {
15567 return (poly8x16_t)__a;
15568 }
15569
15570 __extension__ extern __inline poly16x8_t
15571 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15572 vreinterpretq_p16_p8 (poly8x16_t __a)
15573 {
15574 return (poly16x8_t)__a;
15575 }
15576
15577 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15578 __extension__ extern __inline poly16x8_t
15579 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15580 vreinterpretq_p16_f16 (float16x8_t __a)
15581 {
15582 return (poly16x8_t) __a;
15583 }
15584 #endif
15585
15586 __extension__ extern __inline poly16x8_t
15587 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15588 vreinterpretq_p16_f32 (float32x4_t __a)
15589 {
15590 return (poly16x8_t)__a;
15591 }
15592
15593 #pragma GCC push_options
15594 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
15595 __extension__ extern __inline poly16x8_t
15596 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15597 vreinterpretq_p16_p64 (poly64x2_t __a)
15598 {
15599 return (poly16x8_t)__a;
15600 }
15601
15602 __extension__ extern __inline poly16x8_t
15603 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15604 vreinterpretq_p16_p128 (poly128_t __a)
15605 {
15606 return (poly16x8_t)__a;
15607 }
15608
15609 #pragma GCC pop_options
15610 __extension__ extern __inline poly16x8_t
15611 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15612 vreinterpretq_p16_s64 (int64x2_t __a)
15613 {
15614 return (poly16x8_t)__a;
15615 }
15616
15617 __extension__ extern __inline poly16x8_t
15618 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15619 vreinterpretq_p16_u64 (uint64x2_t __a)
15620 {
15621 return (poly16x8_t)__a;
15622 }
15623
15624 __extension__ extern __inline poly16x8_t
15625 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15626 vreinterpretq_p16_s8 (int8x16_t __a)
15627 {
15628 return (poly16x8_t)__a;
15629 }
15630
15631 __extension__ extern __inline poly16x8_t
15632 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15633 vreinterpretq_p16_s16 (int16x8_t __a)
15634 {
15635 return (poly16x8_t)__a;
15636 }
15637
15638 __extension__ extern __inline poly16x8_t
15639 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15640 vreinterpretq_p16_s32 (int32x4_t __a)
15641 {
15642 return (poly16x8_t)__a;
15643 }
15644
15645 __extension__ extern __inline poly16x8_t
15646 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15647 vreinterpretq_p16_u8 (uint8x16_t __a)
15648 {
15649 return (poly16x8_t)__a;
15650 }
15651
15652 __extension__ extern __inline poly16x8_t
15653 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15654 vreinterpretq_p16_u16 (uint16x8_t __a)
15655 {
15656 return (poly16x8_t)__a;
15657 }
15658
15659 __extension__ extern __inline poly16x8_t
15660 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15661 vreinterpretq_p16_u32 (uint32x4_t __a)
15662 {
15663 return (poly16x8_t)__a;
15664 }
15665
15666 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15667 __extension__ extern __inline float16x8_t
15668 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15669 vreinterpretq_f16_p8 (poly8x16_t __a)
15670 {
15671 return (float16x8_t) __a;
15672 }
15673 #endif
15674
15675 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15676 __extension__ extern __inline float16x8_t
15677 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15678 vreinterpretq_f16_p16 (poly16x8_t __a)
15679 {
15680 return (float16x8_t) __a;
15681 }
15682 #endif
15683
15684 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15685 __extension__ extern __inline float16x8_t
15686 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15687 vreinterpretq_f16_f32 (float32x4_t __a)
15688 {
15689 return (float16x8_t) __a;
15690 }
15691 #endif
15692
15693 #pragma GCC push_options
15694 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
15695
15696 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15697 __extension__ extern __inline float16x8_t
15698 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15699 vreinterpretq_f16_p64 (poly64x2_t __a)
15700 {
15701 return (float16x8_t) __a;
15702 }
15703 #endif
15704
15705 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15706 __extension__ extern __inline float16x8_t
15707 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15708 vreinterpretq_f16_p128 (poly128_t __a)
15709 {
15710 return (float16x8_t) __a;
15711 }
15712 #endif
15713
15714 #pragma GCC pop_options
15715
15716 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15717 __extension__ extern __inline float16x8_t
15718 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15719 vreinterpretq_f16_s64 (int64x2_t __a)
15720 {
15721 return (float16x8_t) __a;
15722 }
15723 #endif
15724
15725 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15726 __extension__ extern __inline float16x8_t
15727 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15728 vreinterpretq_f16_u64 (uint64x2_t __a)
15729 {
15730 return (float16x8_t) __a;
15731 }
15732 #endif
15733
15734 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15735 __extension__ extern __inline float16x8_t
15736 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15737 vreinterpretq_f16_s8 (int8x16_t __a)
15738 {
15739 return (float16x8_t) __a;
15740 }
15741 #endif
15742
15743 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15744 __extension__ extern __inline float16x8_t
15745 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15746 vreinterpretq_f16_s16 (int16x8_t __a)
15747 {
15748 return (float16x8_t) __a;
15749 }
15750 #endif
15751
15752 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15753 __extension__ extern __inline float16x8_t
15754 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15755 vreinterpretq_f16_s32 (int32x4_t __a)
15756 {
15757 return (float16x8_t) __a;
15758 }
15759 #endif
15760
15761 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15762 __extension__ extern __inline float16x8_t
15763 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15764 vreinterpretq_f16_u8 (uint8x16_t __a)
15765 {
15766 return (float16x8_t) __a;
15767 }
15768 #endif
15769
15770 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15771 __extension__ extern __inline float16x8_t
15772 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15773 vreinterpretq_f16_u16 (uint16x8_t __a)
15774 {
15775 return (float16x8_t) __a;
15776 }
15777 #endif
15778
15779 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15780 __extension__ extern __inline float16x8_t
15781 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15782 vreinterpretq_f16_u32 (uint32x4_t __a)
15783 {
15784 return (float16x8_t) __a;
15785 }
15786 #endif
15787
15788 __extension__ extern __inline float32x4_t
15789 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15790 vreinterpretq_f32_p8 (poly8x16_t __a)
15791 {
15792 return (float32x4_t)__a;
15793 }
15794
15795 __extension__ extern __inline float32x4_t
15796 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15797 vreinterpretq_f32_p16 (poly16x8_t __a)
15798 {
15799 return (float32x4_t)__a;
15800 }
15801
15802 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15803 __extension__ extern __inline float32x4_t
15804 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15805 vreinterpretq_f32_f16 (float16x8_t __a)
15806 {
15807 return (float32x4_t) __a;
15808 }
15809 #endif
15810
15811 #pragma GCC push_options
15812 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
15813 __extension__ extern __inline float32x4_t
15814 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15815 vreinterpretq_f32_p64 (poly64x2_t __a)
15816 {
15817 return (float32x4_t)__a;
15818 }
15819
15820 __extension__ extern __inline float32x4_t
15821 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15822 vreinterpretq_f32_p128 (poly128_t __a)
15823 {
15824 return (float32x4_t)__a;
15825 }
15826
15827 #pragma GCC pop_options
15828 __extension__ extern __inline float32x4_t
15829 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15830 vreinterpretq_f32_s64 (int64x2_t __a)
15831 {
15832 return (float32x4_t)__a;
15833 }
15834
15835 __extension__ extern __inline float32x4_t
15836 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15837 vreinterpretq_f32_u64 (uint64x2_t __a)
15838 {
15839 return (float32x4_t)__a;
15840 }
15841
15842 __extension__ extern __inline float32x4_t
15843 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15844 vreinterpretq_f32_s8 (int8x16_t __a)
15845 {
15846 return (float32x4_t)__a;
15847 }
15848
15849 __extension__ extern __inline float32x4_t
15850 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15851 vreinterpretq_f32_s16 (int16x8_t __a)
15852 {
15853 return (float32x4_t)__a;
15854 }
15855
15856 __extension__ extern __inline float32x4_t
15857 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15858 vreinterpretq_f32_s32 (int32x4_t __a)
15859 {
15860 return (float32x4_t)__a;
15861 }
15862
15863 __extension__ extern __inline float32x4_t
15864 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15865 vreinterpretq_f32_u8 (uint8x16_t __a)
15866 {
15867 return (float32x4_t)__a;
15868 }
15869
15870 __extension__ extern __inline float32x4_t
15871 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15872 vreinterpretq_f32_u16 (uint16x8_t __a)
15873 {
15874 return (float32x4_t)__a;
15875 }
15876
15877 __extension__ extern __inline float32x4_t
15878 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15879 vreinterpretq_f32_u32 (uint32x4_t __a)
15880 {
15881 return (float32x4_t)__a;
15882 }
15883
15884 #pragma GCC push_options
15885 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
15886 __extension__ extern __inline poly64x2_t
15887 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15888 vreinterpretq_p64_p8 (poly8x16_t __a)
15889 {
15890 return (poly64x2_t)__a;
15891 }
15892
15893 __extension__ extern __inline poly64x2_t
15894 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15895 vreinterpretq_p64_p16 (poly16x8_t __a)
15896 {
15897 return (poly64x2_t)__a;
15898 }
15899
15900 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15901 __extension__ extern __inline poly64x2_t
15902 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15903 vreinterpretq_p64_f16 (float16x8_t __a)
15904 {
15905 return (poly64x2_t) __a;
15906 }
15907 #endif
15908
15909 __extension__ extern __inline poly64x2_t
15910 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15911 vreinterpretq_p64_f32 (float32x4_t __a)
15912 {
15913 return (poly64x2_t)__a;
15914 }
15915
15916 __extension__ extern __inline poly64x2_t
15917 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15918 vreinterpretq_p64_p128 (poly128_t __a)
15919 {
15920 return (poly64x2_t)__a;
15921 }
15922
15923 __extension__ extern __inline poly64x2_t
15924 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15925 vreinterpretq_p64_s64 (int64x2_t __a)
15926 {
15927 return (poly64x2_t)__a;
15928 }
15929
15930 __extension__ extern __inline poly64x2_t
15931 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15932 vreinterpretq_p64_u64 (uint64x2_t __a)
15933 {
15934 return (poly64x2_t)__a;
15935 }
15936
15937 __extension__ extern __inline poly64x2_t
15938 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15939 vreinterpretq_p64_s8 (int8x16_t __a)
15940 {
15941 return (poly64x2_t)__a;
15942 }
15943
15944 __extension__ extern __inline poly64x2_t
15945 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15946 vreinterpretq_p64_s16 (int16x8_t __a)
15947 {
15948 return (poly64x2_t)__a;
15949 }
15950
15951 __extension__ extern __inline poly64x2_t
15952 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15953 vreinterpretq_p64_s32 (int32x4_t __a)
15954 {
15955 return (poly64x2_t)__a;
15956 }
15957
15958 __extension__ extern __inline poly64x2_t
15959 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15960 vreinterpretq_p64_u8 (uint8x16_t __a)
15961 {
15962 return (poly64x2_t)__a;
15963 }
15964
15965 __extension__ extern __inline poly64x2_t
15966 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15967 vreinterpretq_p64_u16 (uint16x8_t __a)
15968 {
15969 return (poly64x2_t)__a;
15970 }
15971
15972 __extension__ extern __inline poly64x2_t
15973 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15974 vreinterpretq_p64_u32 (uint32x4_t __a)
15975 {
15976 return (poly64x2_t)__a;
15977 }
15978
15979 __extension__ extern __inline poly128_t
15980 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15981 vreinterpretq_p128_p8 (poly8x16_t __a)
15982 {
15983 return (poly128_t)__a;
15984 }
15985
15986 __extension__ extern __inline poly128_t
15987 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15988 vreinterpretq_p128_p16 (poly16x8_t __a)
15989 {
15990 return (poly128_t)__a;
15991 }
15992
15993 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15994 __extension__ extern __inline poly128_t
15995 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15996 vreinterpretq_p128_f16 (float16x8_t __a)
15997 {
15998 return (poly128_t) __a;
15999 }
16000 #endif
16001
16002 __extension__ extern __inline poly128_t
16003 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16004 vreinterpretq_p128_f32 (float32x4_t __a)
16005 {
16006 return (poly128_t)__a;
16007 }
16008
16009 __extension__ extern __inline poly128_t
16010 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16011 vreinterpretq_p128_p64 (poly64x2_t __a)
16012 {
16013 return (poly128_t)__a;
16014 }
16015
16016 __extension__ extern __inline poly128_t
16017 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16018 vreinterpretq_p128_s64 (int64x2_t __a)
16019 {
16020 return (poly128_t)__a;
16021 }
16022
16023 __extension__ extern __inline poly128_t
16024 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16025 vreinterpretq_p128_u64 (uint64x2_t __a)
16026 {
16027 return (poly128_t)__a;
16028 }
16029
16030 __extension__ extern __inline poly128_t
16031 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16032 vreinterpretq_p128_s8 (int8x16_t __a)
16033 {
16034 return (poly128_t)__a;
16035 }
16036
16037 __extension__ extern __inline poly128_t
16038 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16039 vreinterpretq_p128_s16 (int16x8_t __a)
16040 {
16041 return (poly128_t)__a;
16042 }
16043
16044 __extension__ extern __inline poly128_t
16045 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16046 vreinterpretq_p128_s32 (int32x4_t __a)
16047 {
16048 return (poly128_t)__a;
16049 }
16050
16051 __extension__ extern __inline poly128_t
16052 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16053 vreinterpretq_p128_u8 (uint8x16_t __a)
16054 {
16055 return (poly128_t)__a;
16056 }
16057
16058 __extension__ extern __inline poly128_t
16059 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16060 vreinterpretq_p128_u16 (uint16x8_t __a)
16061 {
16062 return (poly128_t)__a;
16063 }
16064
16065 __extension__ extern __inline poly128_t
16066 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16067 vreinterpretq_p128_u32 (uint32x4_t __a)
16068 {
16069 return (poly128_t)__a;
16070 }
16071
16072 #pragma GCC pop_options
16073 __extension__ extern __inline int64x2_t
16074 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16075 vreinterpretq_s64_p8 (poly8x16_t __a)
16076 {
16077 return (int64x2_t)__a;
16078 }
16079
16080 __extension__ extern __inline int64x2_t
16081 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16082 vreinterpretq_s64_p16 (poly16x8_t __a)
16083 {
16084 return (int64x2_t)__a;
16085 }
16086
16087 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
16088 __extension__ extern __inline int64x2_t
16089 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16090 vreinterpretq_s64_f16 (float16x8_t __a)
16091 {
16092 return (int64x2_t) __a;
16093 }
16094 #endif
16095
16096 __extension__ extern __inline int64x2_t
16097 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16098 vreinterpretq_s64_f32 (float32x4_t __a)
16099 {
16100 return (int64x2_t)__a;
16101 }
16102
16103 #pragma GCC push_options
16104 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
16105 __extension__ extern __inline int64x2_t
16106 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16107 vreinterpretq_s64_p64 (poly64x2_t __a)
16108 {
16109 return (int64x2_t)__a;
16110 }
16111
16112 __extension__ extern __inline int64x2_t
16113 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16114 vreinterpretq_s64_p128 (poly128_t __a)
16115 {
16116 return (int64x2_t)__a;
16117 }
16118
16119 #pragma GCC pop_options
16120 __extension__ extern __inline int64x2_t
16121 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16122 vreinterpretq_s64_u64 (uint64x2_t __a)
16123 {
16124 return (int64x2_t)__a;
16125 }
16126
16127 __extension__ extern __inline int64x2_t
16128 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16129 vreinterpretq_s64_s8 (int8x16_t __a)
16130 {
16131 return (int64x2_t)__a;
16132 }
16133
16134 __extension__ extern __inline int64x2_t
16135 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16136 vreinterpretq_s64_s16 (int16x8_t __a)
16137 {
16138 return (int64x2_t)__a;
16139 }
16140
16141 __extension__ extern __inline int64x2_t
16142 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16143 vreinterpretq_s64_s32 (int32x4_t __a)
16144 {
16145 return (int64x2_t)__a;
16146 }
16147
16148 __extension__ extern __inline int64x2_t
16149 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16150 vreinterpretq_s64_u8 (uint8x16_t __a)
16151 {
16152 return (int64x2_t)__a;
16153 }
16154
16155 __extension__ extern __inline int64x2_t
16156 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16157 vreinterpretq_s64_u16 (uint16x8_t __a)
16158 {
16159 return (int64x2_t)__a;
16160 }
16161
16162 __extension__ extern __inline int64x2_t
16163 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16164 vreinterpretq_s64_u32 (uint32x4_t __a)
16165 {
16166 return (int64x2_t)__a;
16167 }
16168
16169 __extension__ extern __inline uint64x2_t
16170 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16171 vreinterpretq_u64_p8 (poly8x16_t __a)
16172 {
16173 return (uint64x2_t)__a;
16174 }
16175
16176 __extension__ extern __inline uint64x2_t
16177 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16178 vreinterpretq_u64_p16 (poly16x8_t __a)
16179 {
16180 return (uint64x2_t)__a;
16181 }
16182
16183 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
16184 __extension__ extern __inline uint64x2_t
16185 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16186 vreinterpretq_u64_f16 (float16x8_t __a)
16187 {
16188 return (uint64x2_t) __a;
16189 }
16190 #endif
16191
16192 __extension__ extern __inline uint64x2_t
16193 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16194 vreinterpretq_u64_f32 (float32x4_t __a)
16195 {
16196 return (uint64x2_t)__a;
16197 }
16198
16199 #pragma GCC push_options
16200 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
16201 __extension__ extern __inline uint64x2_t
16202 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16203 vreinterpretq_u64_p64 (poly64x2_t __a)
16204 {
16205 return (uint64x2_t)__a;
16206 }
16207
16208 __extension__ extern __inline uint64x2_t
16209 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16210 vreinterpretq_u64_p128 (poly128_t __a)
16211 {
16212 return (uint64x2_t)__a;
16213 }
16214
16215 #pragma GCC pop_options
16216 __extension__ extern __inline uint64x2_t
16217 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16218 vreinterpretq_u64_s64 (int64x2_t __a)
16219 {
16220 return (uint64x2_t)__a;
16221 }
16222
16223 __extension__ extern __inline uint64x2_t
16224 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16225 vreinterpretq_u64_s8 (int8x16_t __a)
16226 {
16227 return (uint64x2_t)__a;
16228 }
16229
16230 __extension__ extern __inline uint64x2_t
16231 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16232 vreinterpretq_u64_s16 (int16x8_t __a)
16233 {
16234 return (uint64x2_t)__a;
16235 }
16236
16237 __extension__ extern __inline uint64x2_t
16238 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16239 vreinterpretq_u64_s32 (int32x4_t __a)
16240 {
16241 return (uint64x2_t)__a;
16242 }
16243
16244 __extension__ extern __inline uint64x2_t
16245 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16246 vreinterpretq_u64_u8 (uint8x16_t __a)
16247 {
16248 return (uint64x2_t)__a;
16249 }
16250
16251 __extension__ extern __inline uint64x2_t
16252 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16253 vreinterpretq_u64_u16 (uint16x8_t __a)
16254 {
16255 return (uint64x2_t)__a;
16256 }
16257
16258 __extension__ extern __inline uint64x2_t
16259 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16260 vreinterpretq_u64_u32 (uint32x4_t __a)
16261 {
16262 return (uint64x2_t)__a;
16263 }
16264
16265 __extension__ extern __inline int8x16_t
16266 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16267 vreinterpretq_s8_p8 (poly8x16_t __a)
16268 {
16269 return (int8x16_t)__a;
16270 }
16271
16272 __extension__ extern __inline int8x16_t
16273 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16274 vreinterpretq_s8_p16 (poly16x8_t __a)
16275 {
16276 return (int8x16_t)__a;
16277 }
16278
16279 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
16280 __extension__ extern __inline int8x16_t
16281 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16282 vreinterpretq_s8_f16 (float16x8_t __a)
16283 {
16284 return (int8x16_t) __a;
16285 }
16286 #endif
16287
16288 __extension__ extern __inline int8x16_t
16289 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16290 vreinterpretq_s8_f32 (float32x4_t __a)
16291 {
16292 return (int8x16_t)__a;
16293 }
16294
16295 #pragma GCC push_options
16296 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
16297 __extension__ extern __inline int8x16_t
16298 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16299 vreinterpretq_s8_p64 (poly64x2_t __a)
16300 {
16301 return (int8x16_t)__a;
16302 }
16303
16304 __extension__ extern __inline int8x16_t
16305 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16306 vreinterpretq_s8_p128 (poly128_t __a)
16307 {
16308 return (int8x16_t)__a;
16309 }
16310
16311 #pragma GCC pop_options
16312 __extension__ extern __inline int8x16_t
16313 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16314 vreinterpretq_s8_s64 (int64x2_t __a)
16315 {
16316 return (int8x16_t)__a;
16317 }
16318
16319 __extension__ extern __inline int8x16_t
16320 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16321 vreinterpretq_s8_u64 (uint64x2_t __a)
16322 {
16323 return (int8x16_t)__a;
16324 }
16325
16326 __extension__ extern __inline int8x16_t
16327 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16328 vreinterpretq_s8_s16 (int16x8_t __a)
16329 {
16330 return (int8x16_t)__a;
16331 }
16332
16333 __extension__ extern __inline int8x16_t
16334 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16335 vreinterpretq_s8_s32 (int32x4_t __a)
16336 {
16337 return (int8x16_t)__a;
16338 }
16339
16340 __extension__ extern __inline int8x16_t
16341 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16342 vreinterpretq_s8_u8 (uint8x16_t __a)
16343 {
16344 return (int8x16_t)__a;
16345 }
16346
16347 __extension__ extern __inline int8x16_t
16348 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16349 vreinterpretq_s8_u16 (uint16x8_t __a)
16350 {
16351 return (int8x16_t)__a;
16352 }
16353
16354 __extension__ extern __inline int8x16_t
16355 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16356 vreinterpretq_s8_u32 (uint32x4_t __a)
16357 {
16358 return (int8x16_t)__a;
16359 }
16360
16361 __extension__ extern __inline int16x8_t
16362 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16363 vreinterpretq_s16_p8 (poly8x16_t __a)
16364 {
16365 return (int16x8_t)__a;
16366 }
16367
16368 __extension__ extern __inline int16x8_t
16369 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16370 vreinterpretq_s16_p16 (poly16x8_t __a)
16371 {
16372 return (int16x8_t)__a;
16373 }
16374
16375 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
16376 __extension__ extern __inline int16x8_t
16377 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16378 vreinterpretq_s16_f16 (float16x8_t __a)
16379 {
16380 return (int16x8_t) __a;
16381 }
16382 #endif
16383
16384 __extension__ extern __inline int16x8_t
16385 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16386 vreinterpretq_s16_f32 (float32x4_t __a)
16387 {
16388 return (int16x8_t)__a;
16389 }
16390
16391 #pragma GCC push_options
16392 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
16393 __extension__ extern __inline int16x8_t
16394 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16395 vreinterpretq_s16_p64 (poly64x2_t __a)
16396 {
16397 return (int16x8_t)__a;
16398 }
16399
16400 __extension__ extern __inline int16x8_t
16401 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16402 vreinterpretq_s16_p128 (poly128_t __a)
16403 {
16404 return (int16x8_t)__a;
16405 }
16406
16407 #pragma GCC pop_options
16408 __extension__ extern __inline int16x8_t
16409 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16410 vreinterpretq_s16_s64 (int64x2_t __a)
16411 {
16412 return (int16x8_t)__a;
16413 }
16414
16415 __extension__ extern __inline int16x8_t
16416 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16417 vreinterpretq_s16_u64 (uint64x2_t __a)
16418 {
16419 return (int16x8_t)__a;
16420 }
16421
16422 __extension__ extern __inline int16x8_t
16423 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16424 vreinterpretq_s16_s8 (int8x16_t __a)
16425 {
16426 return (int16x8_t)__a;
16427 }
16428
16429 __extension__ extern __inline int16x8_t
16430 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16431 vreinterpretq_s16_s32 (int32x4_t __a)
16432 {
16433 return (int16x8_t)__a;
16434 }
16435
16436 __extension__ extern __inline int16x8_t
16437 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16438 vreinterpretq_s16_u8 (uint8x16_t __a)
16439 {
16440 return (int16x8_t)__a;
16441 }
16442
16443 __extension__ extern __inline int16x8_t
16444 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16445 vreinterpretq_s16_u16 (uint16x8_t __a)
16446 {
16447 return (int16x8_t)__a;
16448 }
16449
16450 __extension__ extern __inline int16x8_t
16451 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16452 vreinterpretq_s16_u32 (uint32x4_t __a)
16453 {
16454 return (int16x8_t)__a;
16455 }
16456
16457 __extension__ extern __inline int32x4_t
16458 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16459 vreinterpretq_s32_p8 (poly8x16_t __a)
16460 {
16461 return (int32x4_t)__a;
16462 }
16463
16464 __extension__ extern __inline int32x4_t
16465 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16466 vreinterpretq_s32_p16 (poly16x8_t __a)
16467 {
16468 return (int32x4_t)__a;
16469 }
16470
16471 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
16472 __extension__ extern __inline int32x4_t
16473 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16474 vreinterpretq_s32_f16 (float16x8_t __a)
16475 {
16476 return (int32x4_t)__a;
16477 }
16478 #endif
16479
16480 __extension__ extern __inline int32x4_t
16481 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16482 vreinterpretq_s32_f32 (float32x4_t __a)
16483 {
16484 return (int32x4_t)__a;
16485 }
16486
16487 #pragma GCC push_options
16488 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
16489 __extension__ extern __inline int32x4_t
16490 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16491 vreinterpretq_s32_p64 (poly64x2_t __a)
16492 {
16493 return (int32x4_t)__a;
16494 }
16495
16496 __extension__ extern __inline int32x4_t
16497 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16498 vreinterpretq_s32_p128 (poly128_t __a)
16499 {
16500 return (int32x4_t)__a;
16501 }
16502
16503 #pragma GCC pop_options
16504 __extension__ extern __inline int32x4_t
16505 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16506 vreinterpretq_s32_s64 (int64x2_t __a)
16507 {
16508 return (int32x4_t)__a;
16509 }
16510
16511 __extension__ extern __inline int32x4_t
16512 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16513 vreinterpretq_s32_u64 (uint64x2_t __a)
16514 {
16515 return (int32x4_t)__a;
16516 }
16517
16518 __extension__ extern __inline int32x4_t
16519 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16520 vreinterpretq_s32_s8 (int8x16_t __a)
16521 {
16522 return (int32x4_t)__a;
16523 }
16524
16525 __extension__ extern __inline int32x4_t
16526 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16527 vreinterpretq_s32_s16 (int16x8_t __a)
16528 {
16529 return (int32x4_t)__a;
16530 }
16531
16532 __extension__ extern __inline int32x4_t
16533 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16534 vreinterpretq_s32_u8 (uint8x16_t __a)
16535 {
16536 return (int32x4_t)__a;
16537 }
16538
16539 __extension__ extern __inline int32x4_t
16540 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16541 vreinterpretq_s32_u16 (uint16x8_t __a)
16542 {
16543 return (int32x4_t)__a;
16544 }
16545
16546 __extension__ extern __inline int32x4_t
16547 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16548 vreinterpretq_s32_u32 (uint32x4_t __a)
16549 {
16550 return (int32x4_t)__a;
16551 }
16552
16553 __extension__ extern __inline uint8x16_t
16554 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16555 vreinterpretq_u8_p8 (poly8x16_t __a)
16556 {
16557 return (uint8x16_t)__a;
16558 }
16559
16560 __extension__ extern __inline uint8x16_t
16561 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16562 vreinterpretq_u8_p16 (poly16x8_t __a)
16563 {
16564 return (uint8x16_t)__a;
16565 }
16566
16567 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
16568 __extension__ extern __inline uint8x16_t
16569 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16570 vreinterpretq_u8_f16 (float16x8_t __a)
16571 {
16572 return (uint8x16_t) __a;
16573 }
16574 #endif
16575
16576 __extension__ extern __inline uint8x16_t
16577 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16578 vreinterpretq_u8_f32 (float32x4_t __a)
16579 {
16580 return (uint8x16_t)__a;
16581 }
16582
16583 #pragma GCC push_options
16584 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
16585 __extension__ extern __inline uint8x16_t
16586 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16587 vreinterpretq_u8_p64 (poly64x2_t __a)
16588 {
16589 return (uint8x16_t)__a;
16590 }
16591
16592 __extension__ extern __inline uint8x16_t
16593 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16594 vreinterpretq_u8_p128 (poly128_t __a)
16595 {
16596 return (uint8x16_t)__a;
16597 }
16598
16599 #pragma GCC pop_options
16600 __extension__ extern __inline uint8x16_t
16601 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16602 vreinterpretq_u8_s64 (int64x2_t __a)
16603 {
16604 return (uint8x16_t)__a;
16605 }
16606
16607 __extension__ extern __inline uint8x16_t
16608 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16609 vreinterpretq_u8_u64 (uint64x2_t __a)
16610 {
16611 return (uint8x16_t)__a;
16612 }
16613
16614 __extension__ extern __inline uint8x16_t
16615 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16616 vreinterpretq_u8_s8 (int8x16_t __a)
16617 {
16618 return (uint8x16_t)__a;
16619 }
16620
16621 __extension__ extern __inline uint8x16_t
16622 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16623 vreinterpretq_u8_s16 (int16x8_t __a)
16624 {
16625 return (uint8x16_t)__a;
16626 }
16627
16628 __extension__ extern __inline uint8x16_t
16629 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16630 vreinterpretq_u8_s32 (int32x4_t __a)
16631 {
16632 return (uint8x16_t)__a;
16633 }
16634
16635 __extension__ extern __inline uint8x16_t
16636 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16637 vreinterpretq_u8_u16 (uint16x8_t __a)
16638 {
16639 return (uint8x16_t)__a;
16640 }
16641
16642 __extension__ extern __inline uint8x16_t
16643 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16644 vreinterpretq_u8_u32 (uint32x4_t __a)
16645 {
16646 return (uint8x16_t)__a;
16647 }
16648
16649 __extension__ extern __inline uint16x8_t
16650 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16651 vreinterpretq_u16_p8 (poly8x16_t __a)
16652 {
16653 return (uint16x8_t)__a;
16654 }
16655
16656 __extension__ extern __inline uint16x8_t
16657 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16658 vreinterpretq_u16_p16 (poly16x8_t __a)
16659 {
16660 return (uint16x8_t)__a;
16661 }
16662
16663 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
16664 __extension__ extern __inline uint16x8_t
16665 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16666 vreinterpretq_u16_f16 (float16x8_t __a)
16667 {
16668 return (uint16x8_t) __a;
16669 }
16670 #endif
16671
16672 __extension__ extern __inline uint16x8_t
16673 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16674 vreinterpretq_u16_f32 (float32x4_t __a)
16675 {
16676 return (uint16x8_t)__a;
16677 }
16678
16679 #pragma GCC push_options
16680 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
16681 __extension__ extern __inline uint16x8_t
16682 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16683 vreinterpretq_u16_p64 (poly64x2_t __a)
16684 {
16685 return (uint16x8_t)__a;
16686 }
16687
16688 __extension__ extern __inline uint16x8_t
16689 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16690 vreinterpretq_u16_p128 (poly128_t __a)
16691 {
16692 return (uint16x8_t)__a;
16693 }
16694
16695 #pragma GCC pop_options
16696 __extension__ extern __inline uint16x8_t
16697 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16698 vreinterpretq_u16_s64 (int64x2_t __a)
16699 {
16700 return (uint16x8_t)__a;
16701 }
16702
16703 __extension__ extern __inline uint16x8_t
16704 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16705 vreinterpretq_u16_u64 (uint64x2_t __a)
16706 {
16707 return (uint16x8_t)__a;
16708 }
16709
16710 __extension__ extern __inline uint16x8_t
16711 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16712 vreinterpretq_u16_s8 (int8x16_t __a)
16713 {
16714 return (uint16x8_t)__a;
16715 }
16716
16717 __extension__ extern __inline uint16x8_t
16718 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16719 vreinterpretq_u16_s16 (int16x8_t __a)
16720 {
16721 return (uint16x8_t)__a;
16722 }
16723
16724 __extension__ extern __inline uint16x8_t
16725 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16726 vreinterpretq_u16_s32 (int32x4_t __a)
16727 {
16728 return (uint16x8_t)__a;
16729 }
16730
16731 __extension__ extern __inline uint16x8_t
16732 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16733 vreinterpretq_u16_u8 (uint8x16_t __a)
16734 {
16735 return (uint16x8_t)__a;
16736 }
16737
16738 __extension__ extern __inline uint16x8_t
16739 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16740 vreinterpretq_u16_u32 (uint32x4_t __a)
16741 {
16742 return (uint16x8_t)__a;
16743 }
16744
16745 __extension__ extern __inline uint32x4_t
16746 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16747 vreinterpretq_u32_p8 (poly8x16_t __a)
16748 {
16749 return (uint32x4_t)__a;
16750 }
16751
16752 __extension__ extern __inline uint32x4_t
16753 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16754 vreinterpretq_u32_p16 (poly16x8_t __a)
16755 {
16756 return (uint32x4_t)__a;
16757 }
16758
16759 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
16760 __extension__ extern __inline uint32x4_t
16761 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16762 vreinterpretq_u32_f16 (float16x8_t __a)
16763 {
16764 return (uint32x4_t) __a;
16765 }
16766 #endif
16767
16768 __extension__ extern __inline uint32x4_t
16769 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16770 vreinterpretq_u32_f32 (float32x4_t __a)
16771 {
16772 return (uint32x4_t)__a;
16773 }
16774
16775 #pragma GCC push_options
16776 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
16777 __extension__ extern __inline uint32x4_t
16778 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16779 vreinterpretq_u32_p64 (poly64x2_t __a)
16780 {
16781 return (uint32x4_t)__a;
16782 }
16783
16784 __extension__ extern __inline uint32x4_t
16785 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16786 vreinterpretq_u32_p128 (poly128_t __a)
16787 {
16788 return (uint32x4_t)__a;
16789 }
16790
16791 #pragma GCC pop_options
16792 __extension__ extern __inline uint32x4_t
16793 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16794 vreinterpretq_u32_s64 (int64x2_t __a)
16795 {
16796 return (uint32x4_t)__a;
16797 }
16798
16799 __extension__ extern __inline uint32x4_t
16800 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16801 vreinterpretq_u32_u64 (uint64x2_t __a)
16802 {
16803 return (uint32x4_t)__a;
16804 }
16805
16806 __extension__ extern __inline uint32x4_t
16807 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16808 vreinterpretq_u32_s8 (int8x16_t __a)
16809 {
16810 return (uint32x4_t)__a;
16811 }
16812
16813 __extension__ extern __inline uint32x4_t
16814 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16815 vreinterpretq_u32_s16 (int16x8_t __a)
16816 {
16817 return (uint32x4_t)__a;
16818 }
16819
16820 __extension__ extern __inline uint32x4_t
16821 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16822 vreinterpretq_u32_s32 (int32x4_t __a)
16823 {
16824 return (uint32x4_t)__a;
16825 }
16826
16827 __extension__ extern __inline uint32x4_t
16828 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16829 vreinterpretq_u32_u8 (uint8x16_t __a)
16830 {
16831 return (uint32x4_t)__a;
16832 }
16833
16834 __extension__ extern __inline uint32x4_t
16835 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16836 vreinterpretq_u32_u16 (uint16x8_t __a)
16837 {
16838 return (uint32x4_t)__a;
16839 }
16840
16841
16842 #pragma GCC push_options
16843 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
16844 __extension__ extern __inline poly128_t
16845 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16846 vldrq_p128 (poly128_t const * __ptr)
16847 {
16848 #ifdef __ARM_BIG_ENDIAN
16849 poly64_t* __ptmp = (poly64_t*) __ptr;
16850 poly64_t __d0 = vld1_p64 (__ptmp);
16851 poly64_t __d1 = vld1_p64 (__ptmp + 1);
16852 return vreinterpretq_p128_p64 (vcombine_p64 (__d1, __d0));
16853 #else
16854 return vreinterpretq_p128_p64 (vld1q_p64 ((poly64_t*) __ptr));
16855 #endif
16856 }
16857
16858 __extension__ extern __inline void
16859 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16860 vstrq_p128 (poly128_t * __ptr, poly128_t __val)
16861 {
16862 #ifdef __ARM_BIG_ENDIAN
16863 poly64x2_t __tmp = vreinterpretq_p64_p128 (__val);
16864 poly64_t __d0 = vget_high_p64 (__tmp);
16865 poly64_t __d1 = vget_low_p64 (__tmp);
16866 vst1q_p64 ((poly64_t*) __ptr, vcombine_p64 (__d0, __d1));
16867 #else
16868 vst1q_p64 ((poly64_t*) __ptr, vreinterpretq_p64_p128 (__val));
16869 #endif
16870 }
16871
16872 /* The vceq_p64 intrinsic does not map to a single instruction.
16873 Instead we emulate it by performing a 32-bit variant of the vceq
16874 and applying a pairwise min reduction to the result.
16875 vceq_u32 will produce two 32-bit halves, each of which will contain either
16876 all ones or all zeros depending on whether the corresponding 32-bit
16877 halves of the poly64_t were equal. The whole poly64_t values are equal
16878 if and only if both halves are equal, i.e. vceq_u32 returns all ones.
16879 If the result is all zeroes for any half then the whole result is zeroes.
16880 This is what the pairwise min reduction achieves. */
16881
16882 __extension__ extern __inline uint64x1_t
16883 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16884 vceq_p64 (poly64x1_t __a, poly64x1_t __b)
16885 {
16886 uint32x2_t __t_a = vreinterpret_u32_p64 (__a);
16887 uint32x2_t __t_b = vreinterpret_u32_p64 (__b);
16888 uint32x2_t __c = vceq_u32 (__t_a, __t_b);
16889 uint32x2_t __m = vpmin_u32 (__c, __c);
16890 return vreinterpret_u64_u32 (__m);
16891 }
16892
16893 /* The vtst_p64 intrinsic does not map to a single instruction.
16894 We emulate it in way similar to vceq_p64 above but here we do
16895 a reduction with max since if any two corresponding bits
16896 in the two poly64_t's match, then the whole result must be all ones. */
16897
16898 __extension__ extern __inline uint64x1_t
16899 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16900 vtst_p64 (poly64x1_t __a, poly64x1_t __b)
16901 {
16902 uint32x2_t __t_a = vreinterpret_u32_p64 (__a);
16903 uint32x2_t __t_b = vreinterpret_u32_p64 (__b);
16904 uint32x2_t __c = vtst_u32 (__t_a, __t_b);
16905 uint32x2_t __m = vpmax_u32 (__c, __c);
16906 return vreinterpret_u64_u32 (__m);
16907 }
16908
16909 __extension__ extern __inline uint8x16_t
16910 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16911 vaeseq_u8 (uint8x16_t __data, uint8x16_t __key)
16912 {
16913 return __builtin_arm_crypto_aese (__data, __key);
16914 }
16915
16916 __extension__ extern __inline uint8x16_t
16917 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16918 vaesdq_u8 (uint8x16_t __data, uint8x16_t __key)
16919 {
16920 return __builtin_arm_crypto_aesd (__data, __key);
16921 }
16922
16923 __extension__ extern __inline uint8x16_t
16924 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16925 vaesmcq_u8 (uint8x16_t __data)
16926 {
16927 return __builtin_arm_crypto_aesmc (__data);
16928 }
16929
16930 __extension__ extern __inline uint8x16_t
16931 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16932 vaesimcq_u8 (uint8x16_t __data)
16933 {
16934 return __builtin_arm_crypto_aesimc (__data);
16935 }
16936
16937 __extension__ extern __inline uint32_t
16938 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16939 vsha1h_u32 (uint32_t __hash_e)
16940 {
16941 return vgetq_lane_u32 (__builtin_arm_crypto_sha1h (vdupq_n_u32 (__hash_e)),
16942 0);
16943 }
16944
16945 __extension__ extern __inline uint32x4_t
16946 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16947 vsha1cq_u32 (uint32x4_t __hash_abcd, uint32_t __hash_e, uint32x4_t __wk)
16948 {
16949 return __builtin_arm_crypto_sha1c (__hash_abcd, vdupq_n_u32 (__hash_e),
16950 __wk);
16951 }
16952
16953 __extension__ extern __inline uint32x4_t
16954 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16955 vsha1pq_u32 (uint32x4_t __hash_abcd, uint32_t __hash_e, uint32x4_t __wk)
16956 {
16957 return __builtin_arm_crypto_sha1p (__hash_abcd, vdupq_n_u32 (__hash_e),
16958 __wk);
16959 }
16960
16961 __extension__ extern __inline uint32x4_t
16962 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16963 vsha1mq_u32 (uint32x4_t __hash_abcd, uint32_t __hash_e, uint32x4_t __wk)
16964 {
16965 return __builtin_arm_crypto_sha1m (__hash_abcd, vdupq_n_u32 (__hash_e),
16966 __wk);
16967 }
16968
16969 __extension__ extern __inline uint32x4_t
16970 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16971 vsha1su0q_u32 (uint32x4_t __w0_3, uint32x4_t __w4_7, uint32x4_t __w8_11)
16972 {
16973 return __builtin_arm_crypto_sha1su0 (__w0_3, __w4_7, __w8_11);
16974 }
16975
16976 __extension__ extern __inline uint32x4_t
16977 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16978 vsha1su1q_u32 (uint32x4_t __tw0_3, uint32x4_t __w12_15)
16979 {
16980 return __builtin_arm_crypto_sha1su1 (__tw0_3, __w12_15);
16981 }
16982
16983 __extension__ extern __inline uint32x4_t
16984 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16985 vsha256hq_u32 (uint32x4_t __hash_abcd, uint32x4_t __hash_efgh, uint32x4_t __wk)
16986 {
16987 return __builtin_arm_crypto_sha256h (__hash_abcd, __hash_efgh, __wk);
16988 }
16989
16990 __extension__ extern __inline uint32x4_t
16991 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16992 vsha256h2q_u32 (uint32x4_t __hash_abcd, uint32x4_t __hash_efgh, uint32x4_t __wk)
16993 {
16994 return __builtin_arm_crypto_sha256h2 (__hash_abcd, __hash_efgh, __wk);
16995 }
16996
16997 __extension__ extern __inline uint32x4_t
16998 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16999 vsha256su0q_u32 (uint32x4_t __w0_3, uint32x4_t __w4_7)
17000 {
17001 return __builtin_arm_crypto_sha256su0 (__w0_3, __w4_7);
17002 }
17003
17004 __extension__ extern __inline uint32x4_t
17005 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17006 vsha256su1q_u32 (uint32x4_t __tw0_3, uint32x4_t __w8_11, uint32x4_t __w12_15)
17007 {
17008 return __builtin_arm_crypto_sha256su1 (__tw0_3, __w8_11, __w12_15);
17009 }
17010
17011 __extension__ extern __inline poly128_t
17012 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17013 vmull_p64 (poly64_t __a, poly64_t __b)
17014 {
17015 return (poly128_t) __builtin_arm_crypto_vmullp64 ((uint64_t) __a, (uint64_t) __b);
17016 }
17017
17018 __extension__ extern __inline poly128_t
17019 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17020 vmull_high_p64 (poly64x2_t __a, poly64x2_t __b)
17021 {
17022 poly64_t __t1 = vget_high_p64 (__a);
17023 poly64_t __t2 = vget_high_p64 (__b);
17024
17025 return (poly128_t) __builtin_arm_crypto_vmullp64 ((uint64_t) __t1, (uint64_t) __t2);
17026 }
17027
17028 #pragma GCC pop_options
17029
17030 /* Intrinsics for FP16 instructions. */
17031 #pragma GCC push_options
17032 #pragma GCC target ("fpu=neon-fp-armv8")
17033 #if defined (__ARM_FEATURE_FP16_VECTOR_ARITHMETIC)
17034
17035 __extension__ extern __inline float16x4_t
17036 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17037 vabd_f16 (float16x4_t __a, float16x4_t __b)
17038 {
17039 return __builtin_neon_vabdv4hf (__a, __b);
17040 }
17041
17042 __extension__ extern __inline float16x8_t
17043 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17044 vabdq_f16 (float16x8_t __a, float16x8_t __b)
17045 {
17046 return __builtin_neon_vabdv8hf (__a, __b);
17047 }
17048
17049 __extension__ extern __inline float16x4_t
17050 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17051 vabs_f16 (float16x4_t __a)
17052 {
17053 return __builtin_neon_vabsv4hf (__a);
17054 }
17055
17056 __extension__ extern __inline float16x8_t
17057 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17058 vabsq_f16 (float16x8_t __a)
17059 {
17060 return __builtin_neon_vabsv8hf (__a);
17061 }
17062
17063 __extension__ extern __inline float16x4_t
17064 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17065 vadd_f16 (float16x4_t __a, float16x4_t __b)
17066 {
17067 #ifdef __FAST_MATH__
17068 return __a + __b;
17069 #else
17070 return __builtin_neon_vaddv4hf (__a, __b);
17071 #endif
17072 }
17073
17074 __extension__ extern __inline float16x8_t
17075 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17076 vaddq_f16 (float16x8_t __a, float16x8_t __b)
17077 {
17078 #ifdef __FAST_MATH__
17079 return __a + __b;
17080 #else
17081 return __builtin_neon_vaddv8hf (__a, __b);
17082 #endif
17083 }
17084
17085 __extension__ extern __inline uint16x4_t
17086 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17087 vcage_f16 (float16x4_t __a, float16x4_t __b)
17088 {
17089 return (uint16x4_t)__builtin_neon_vcagev4hf (__a, __b);
17090 }
17091
17092 __extension__ extern __inline uint16x8_t
17093 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17094 vcageq_f16 (float16x8_t __a, float16x8_t __b)
17095 {
17096 return (uint16x8_t)__builtin_neon_vcagev8hf (__a, __b);
17097 }
17098
17099 __extension__ extern __inline uint16x4_t
17100 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17101 vcagt_f16 (float16x4_t __a, float16x4_t __b)
17102 {
17103 return (uint16x4_t)__builtin_neon_vcagtv4hf (__a, __b);
17104 }
17105
17106 __extension__ extern __inline uint16x8_t
17107 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17108 vcagtq_f16 (float16x8_t __a, float16x8_t __b)
17109 {
17110 return (uint16x8_t)__builtin_neon_vcagtv8hf (__a, __b);
17111 }
17112
17113 __extension__ extern __inline uint16x4_t
17114 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17115 vcale_f16 (float16x4_t __a, float16x4_t __b)
17116 {
17117 return (uint16x4_t)__builtin_neon_vcalev4hf (__a, __b);
17118 }
17119
17120 __extension__ extern __inline uint16x8_t
17121 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17122 vcaleq_f16 (float16x8_t __a, float16x8_t __b)
17123 {
17124 return (uint16x8_t)__builtin_neon_vcalev8hf (__a, __b);
17125 }
17126
17127 __extension__ extern __inline uint16x4_t
17128 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17129 vcalt_f16 (float16x4_t __a, float16x4_t __b)
17130 {
17131 return (uint16x4_t)__builtin_neon_vcaltv4hf (__a, __b);
17132 }
17133
17134 __extension__ extern __inline uint16x8_t
17135 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17136 vcaltq_f16 (float16x8_t __a, float16x8_t __b)
17137 {
17138 return (uint16x8_t)__builtin_neon_vcaltv8hf (__a, __b);
17139 }
17140
17141 __extension__ extern __inline uint16x4_t
17142 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17143 vceq_f16 (float16x4_t __a, float16x4_t __b)
17144 {
17145 return (uint16x4_t)__builtin_neon_vceqv4hf (__a, __b);
17146 }
17147
17148 __extension__ extern __inline uint16x8_t
17149 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17150 vceqq_f16 (float16x8_t __a, float16x8_t __b)
17151 {
17152 return (uint16x8_t)__builtin_neon_vceqv8hf (__a, __b);
17153 }
17154
17155 __extension__ extern __inline uint16x4_t
17156 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17157 vceqz_f16 (float16x4_t __a)
17158 {
17159 return (uint16x4_t)__builtin_neon_vceqzv4hf (__a);
17160 }
17161
17162 __extension__ extern __inline uint16x8_t
17163 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17164 vceqzq_f16 (float16x8_t __a)
17165 {
17166 return (uint16x8_t)__builtin_neon_vceqzv8hf (__a);
17167 }
17168
17169 __extension__ extern __inline uint16x4_t
17170 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17171 vcge_f16 (float16x4_t __a, float16x4_t __b)
17172 {
17173 return (uint16x4_t)__builtin_neon_vcgev4hf (__a, __b);
17174 }
17175
17176 __extension__ extern __inline uint16x8_t
17177 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17178 vcgeq_f16 (float16x8_t __a, float16x8_t __b)
17179 {
17180 return (uint16x8_t)__builtin_neon_vcgev8hf (__a, __b);
17181 }
17182
17183 __extension__ extern __inline uint16x4_t
17184 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17185 vcgez_f16 (float16x4_t __a)
17186 {
17187 return (uint16x4_t)__builtin_neon_vcgezv4hf (__a);
17188 }
17189
17190 __extension__ extern __inline uint16x8_t
17191 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17192 vcgezq_f16 (float16x8_t __a)
17193 {
17194 return (uint16x8_t)__builtin_neon_vcgezv8hf (__a);
17195 }
17196
17197 __extension__ extern __inline uint16x4_t
17198 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17199 vcgt_f16 (float16x4_t __a, float16x4_t __b)
17200 {
17201 return (uint16x4_t)__builtin_neon_vcgtv4hf (__a, __b);
17202 }
17203
17204 __extension__ extern __inline uint16x8_t
17205 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17206 vcgtq_f16 (float16x8_t __a, float16x8_t __b)
17207 {
17208 return (uint16x8_t)__builtin_neon_vcgtv8hf (__a, __b);
17209 }
17210
17211 __extension__ extern __inline uint16x4_t
17212 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17213 vcgtz_f16 (float16x4_t __a)
17214 {
17215 return (uint16x4_t)__builtin_neon_vcgtzv4hf (__a);
17216 }
17217
17218 __extension__ extern __inline uint16x8_t
17219 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17220 vcgtzq_f16 (float16x8_t __a)
17221 {
17222 return (uint16x8_t)__builtin_neon_vcgtzv8hf (__a);
17223 }
17224
17225 __extension__ extern __inline uint16x4_t
17226 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17227 vcle_f16 (float16x4_t __a, float16x4_t __b)
17228 {
17229 return (uint16x4_t)__builtin_neon_vclev4hf (__a, __b);
17230 }
17231
17232 __extension__ extern __inline uint16x8_t
17233 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17234 vcleq_f16 (float16x8_t __a, float16x8_t __b)
17235 {
17236 return (uint16x8_t)__builtin_neon_vclev8hf (__a, __b);
17237 }
17238
17239 __extension__ extern __inline uint16x4_t
17240 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17241 vclez_f16 (float16x4_t __a)
17242 {
17243 return (uint16x4_t)__builtin_neon_vclezv4hf (__a);
17244 }
17245
17246 __extension__ extern __inline uint16x8_t
17247 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17248 vclezq_f16 (float16x8_t __a)
17249 {
17250 return (uint16x8_t)__builtin_neon_vclezv8hf (__a);
17251 }
17252
17253 __extension__ extern __inline uint16x4_t
17254 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17255 vclt_f16 (float16x4_t __a, float16x4_t __b)
17256 {
17257 return (uint16x4_t)__builtin_neon_vcltv4hf (__a, __b);
17258 }
17259
17260 __extension__ extern __inline uint16x8_t
17261 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17262 vcltq_f16 (float16x8_t __a, float16x8_t __b)
17263 {
17264 return (uint16x8_t)__builtin_neon_vcltv8hf (__a, __b);
17265 }
17266
17267 __extension__ extern __inline uint16x4_t
17268 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17269 vcltz_f16 (float16x4_t __a)
17270 {
17271 return (uint16x4_t)__builtin_neon_vcltzv4hf (__a);
17272 }
17273
17274 __extension__ extern __inline uint16x8_t
17275 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17276 vcltzq_f16 (float16x8_t __a)
17277 {
17278 return (uint16x8_t)__builtin_neon_vcltzv8hf (__a);
17279 }
17280
17281 __extension__ extern __inline float16x4_t
17282 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17283 vcvt_f16_s16 (int16x4_t __a)
17284 {
17285 return (float16x4_t)__builtin_neon_vcvtsv4hi (__a);
17286 }
17287
17288 __extension__ extern __inline float16x4_t
17289 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17290 vcvt_f16_u16 (uint16x4_t __a)
17291 {
17292 return (float16x4_t)__builtin_neon_vcvtuv4hi ((int16x4_t)__a);
17293 }
17294
17295 __extension__ extern __inline int16x4_t
17296 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17297 vcvt_s16_f16 (float16x4_t __a)
17298 {
17299 return (int16x4_t)__builtin_neon_vcvtsv4hf (__a);
17300 }
17301
17302 __extension__ extern __inline uint16x4_t
17303 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17304 vcvt_u16_f16 (float16x4_t __a)
17305 {
17306 return (uint16x4_t)__builtin_neon_vcvtuv4hf (__a);
17307 }
17308
17309 __extension__ extern __inline float16x8_t
17310 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17311 vcvtq_f16_s16 (int16x8_t __a)
17312 {
17313 return (float16x8_t)__builtin_neon_vcvtsv8hi (__a);
17314 }
17315
17316 __extension__ extern __inline float16x8_t
17317 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17318 vcvtq_f16_u16 (uint16x8_t __a)
17319 {
17320 return (float16x8_t)__builtin_neon_vcvtuv8hi ((int16x8_t)__a);
17321 }
17322
17323 __extension__ extern __inline int16x8_t
17324 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17325 vcvtq_s16_f16 (float16x8_t __a)
17326 {
17327 return (int16x8_t)__builtin_neon_vcvtsv8hf (__a);
17328 }
17329
17330 __extension__ extern __inline uint16x8_t
17331 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17332 vcvtq_u16_f16 (float16x8_t __a)
17333 {
17334 return (uint16x8_t)__builtin_neon_vcvtuv8hf (__a);
17335 }
17336
17337 __extension__ extern __inline int16x4_t
17338 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17339 vcvta_s16_f16 (float16x4_t __a)
17340 {
17341 return __builtin_neon_vcvtasv4hf (__a);
17342 }
17343
17344 __extension__ extern __inline uint16x4_t
17345 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17346 vcvta_u16_f16 (float16x4_t __a)
17347 {
17348 return (uint16x4_t)__builtin_neon_vcvtauv4hf (__a);
17349 }
17350
17351 __extension__ extern __inline int16x8_t
17352 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17353 vcvtaq_s16_f16 (float16x8_t __a)
17354 {
17355 return __builtin_neon_vcvtasv8hf (__a);
17356 }
17357
17358 __extension__ extern __inline uint16x8_t
17359 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17360 vcvtaq_u16_f16 (float16x8_t __a)
17361 {
17362 return (uint16x8_t)__builtin_neon_vcvtauv8hf (__a);
17363 }
17364
17365 __extension__ extern __inline int16x4_t
17366 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17367 vcvtm_s16_f16 (float16x4_t __a)
17368 {
17369 return __builtin_neon_vcvtmsv4hf (__a);
17370 }
17371
17372 __extension__ extern __inline uint16x4_t
17373 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17374 vcvtm_u16_f16 (float16x4_t __a)
17375 {
17376 return (uint16x4_t)__builtin_neon_vcvtmuv4hf (__a);
17377 }
17378
17379 __extension__ extern __inline int16x8_t
17380 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17381 vcvtmq_s16_f16 (float16x8_t __a)
17382 {
17383 return __builtin_neon_vcvtmsv8hf (__a);
17384 }
17385
17386 __extension__ extern __inline uint16x8_t
17387 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17388 vcvtmq_u16_f16 (float16x8_t __a)
17389 {
17390 return (uint16x8_t)__builtin_neon_vcvtmuv8hf (__a);
17391 }
17392
17393 __extension__ extern __inline int16x4_t
17394 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17395 vcvtn_s16_f16 (float16x4_t __a)
17396 {
17397 return __builtin_neon_vcvtnsv4hf (__a);
17398 }
17399
17400 __extension__ extern __inline uint16x4_t
17401 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17402 vcvtn_u16_f16 (float16x4_t __a)
17403 {
17404 return (uint16x4_t)__builtin_neon_vcvtnuv4hf (__a);
17405 }
17406
17407 __extension__ extern __inline int16x8_t
17408 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17409 vcvtnq_s16_f16 (float16x8_t __a)
17410 {
17411 return __builtin_neon_vcvtnsv8hf (__a);
17412 }
17413
17414 __extension__ extern __inline uint16x8_t
17415 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17416 vcvtnq_u16_f16 (float16x8_t __a)
17417 {
17418 return (uint16x8_t)__builtin_neon_vcvtnuv8hf (__a);
17419 }
17420
17421 __extension__ extern __inline int16x4_t
17422 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17423 vcvtp_s16_f16 (float16x4_t __a)
17424 {
17425 return __builtin_neon_vcvtpsv4hf (__a);
17426 }
17427
17428 __extension__ extern __inline uint16x4_t
17429 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17430 vcvtp_u16_f16 (float16x4_t __a)
17431 {
17432 return (uint16x4_t)__builtin_neon_vcvtpuv4hf (__a);
17433 }
17434
17435 __extension__ extern __inline int16x8_t
17436 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17437 vcvtpq_s16_f16 (float16x8_t __a)
17438 {
17439 return __builtin_neon_vcvtpsv8hf (__a);
17440 }
17441
17442 __extension__ extern __inline uint16x8_t
17443 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17444 vcvtpq_u16_f16 (float16x8_t __a)
17445 {
17446 return (uint16x8_t)__builtin_neon_vcvtpuv8hf (__a);
17447 }
17448
17449 __extension__ extern __inline float16x4_t
17450 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17451 vcvt_n_f16_s16 (int16x4_t __a, const int __b)
17452 {
17453 return __builtin_neon_vcvts_nv4hi (__a, __b);
17454 }
17455
17456 __extension__ extern __inline float16x4_t
17457 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17458 vcvt_n_f16_u16 (uint16x4_t __a, const int __b)
17459 {
17460 return __builtin_neon_vcvtu_nv4hi ((int16x4_t)__a, __b);
17461 }
17462
17463 __extension__ extern __inline float16x8_t
17464 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17465 vcvtq_n_f16_s16 (int16x8_t __a, const int __b)
17466 {
17467 return __builtin_neon_vcvts_nv8hi (__a, __b);
17468 }
17469
17470 __extension__ extern __inline float16x8_t
17471 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17472 vcvtq_n_f16_u16 (uint16x8_t __a, const int __b)
17473 {
17474 return __builtin_neon_vcvtu_nv8hi ((int16x8_t)__a, __b);
17475 }
17476
17477 __extension__ extern __inline int16x4_t
17478 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17479 vcvt_n_s16_f16 (float16x4_t __a, const int __b)
17480 {
17481 return __builtin_neon_vcvts_nv4hf (__a, __b);
17482 }
17483
17484 __extension__ extern __inline uint16x4_t
17485 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17486 vcvt_n_u16_f16 (float16x4_t __a, const int __b)
17487 {
17488 return (uint16x4_t)__builtin_neon_vcvtu_nv4hf (__a, __b);
17489 }
17490
17491 __extension__ extern __inline int16x8_t
17492 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17493 vcvtq_n_s16_f16 (float16x8_t __a, const int __b)
17494 {
17495 return __builtin_neon_vcvts_nv8hf (__a, __b);
17496 }
17497
17498 __extension__ extern __inline uint16x8_t
17499 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17500 vcvtq_n_u16_f16 (float16x8_t __a, const int __b)
17501 {
17502 return (uint16x8_t)__builtin_neon_vcvtu_nv8hf (__a, __b);
17503 }
17504
17505 __extension__ extern __inline float16x4_t
17506 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17507 vfma_f16 (float16x4_t __a, float16x4_t __b, float16x4_t __c)
17508 {
17509 return __builtin_neon_vfmav4hf (__a, __b, __c);
17510 }
17511
17512 __extension__ extern __inline float16x8_t
17513 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17514 vfmaq_f16 (float16x8_t __a, float16x8_t __b, float16x8_t __c)
17515 {
17516 return __builtin_neon_vfmav8hf (__a, __b, __c);
17517 }
17518
17519 __extension__ extern __inline float16x4_t
17520 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17521 vfms_f16 (float16x4_t __a, float16x4_t __b, float16x4_t __c)
17522 {
17523 return __builtin_neon_vfmsv4hf (__a, __b, __c);
17524 }
17525
17526 __extension__ extern __inline float16x8_t
17527 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17528 vfmsq_f16 (float16x8_t __a, float16x8_t __b, float16x8_t __c)
17529 {
17530 return __builtin_neon_vfmsv8hf (__a, __b, __c);
17531 }
17532
17533 __extension__ extern __inline float16x4_t
17534 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17535 vmax_f16 (float16x4_t __a, float16x4_t __b)
17536 {
17537 return __builtin_neon_vmaxfv4hf (__a, __b);
17538 }
17539
17540 __extension__ extern __inline float16x8_t
17541 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17542 vmaxq_f16 (float16x8_t __a, float16x8_t __b)
17543 {
17544 return __builtin_neon_vmaxfv8hf (__a, __b);
17545 }
17546
17547 __extension__ extern __inline float16x4_t
17548 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17549 vmaxnm_f16 (float16x4_t __a, float16x4_t __b)
17550 {
17551 return __builtin_neon_vmaxnmv4hf (__a, __b);
17552 }
17553
17554 __extension__ extern __inline float16x8_t
17555 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17556 vmaxnmq_f16 (float16x8_t __a, float16x8_t __b)
17557 {
17558 return __builtin_neon_vmaxnmv8hf (__a, __b);
17559 }
17560
17561 __extension__ extern __inline float16x4_t
17562 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17563 vmin_f16 (float16x4_t __a, float16x4_t __b)
17564 {
17565 return __builtin_neon_vminfv4hf (__a, __b);
17566 }
17567
17568 __extension__ extern __inline float16x8_t
17569 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17570 vminq_f16 (float16x8_t __a, float16x8_t __b)
17571 {
17572 return __builtin_neon_vminfv8hf (__a, __b);
17573 }
17574
17575 __extension__ extern __inline float16x4_t
17576 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17577 vminnm_f16 (float16x4_t __a, float16x4_t __b)
17578 {
17579 return __builtin_neon_vminnmv4hf (__a, __b);
17580 }
17581
17582 __extension__ extern __inline float16x8_t
17583 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17584 vminnmq_f16 (float16x8_t __a, float16x8_t __b)
17585 {
17586 return __builtin_neon_vminnmv8hf (__a, __b);
17587 }
17588
17589 __extension__ extern __inline float16x4_t
17590 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17591 vmul_f16 (float16x4_t __a, float16x4_t __b)
17592 {
17593 #ifdef __FAST_MATH__
17594 return __a * __b;
17595 #else
17596 return __builtin_neon_vmulfv4hf (__a, __b);
17597 #endif
17598 }
17599
17600 __extension__ extern __inline float16x4_t
17601 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17602 vmul_lane_f16 (float16x4_t __a, float16x4_t __b, const int __c)
17603 {
17604 return __builtin_neon_vmul_lanev4hf (__a, __b, __c);
17605 }
17606
17607 __extension__ extern __inline float16x4_t
17608 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17609 vmul_n_f16 (float16x4_t __a, float16_t __b)
17610 {
17611 return __builtin_neon_vmul_nv4hf (__a, __b);
17612 }
17613
17614 __extension__ extern __inline float16x8_t
17615 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17616 vmulq_f16 (float16x8_t __a, float16x8_t __b)
17617 {
17618 #ifdef __FAST_MATH__
17619 return __a * __b;
17620 #else
17621 return __builtin_neon_vmulfv8hf (__a, __b);
17622 #endif
17623 }
17624
17625 __extension__ extern __inline float16x8_t
17626 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17627 vmulq_lane_f16 (float16x8_t __a, float16x4_t __b, const int __c)
17628 {
17629 return __builtin_neon_vmul_lanev8hf (__a, __b, __c);
17630 }
17631
17632 __extension__ extern __inline float16x8_t
17633 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17634 vmulq_n_f16 (float16x8_t __a, float16_t __b)
17635 {
17636 return __builtin_neon_vmul_nv8hf (__a, __b);
17637 }
17638
17639 __extension__ extern __inline float16x4_t
17640 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17641 vneg_f16 (float16x4_t __a)
17642 {
17643 return __builtin_neon_vnegv4hf (__a);
17644 }
17645
17646 __extension__ extern __inline float16x8_t
17647 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17648 vnegq_f16 (float16x8_t __a)
17649 {
17650 return __builtin_neon_vnegv8hf (__a);
17651 }
17652
17653 __extension__ extern __inline float16x4_t
17654 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17655 vpadd_f16 (float16x4_t __a, float16x4_t __b)
17656 {
17657 return __builtin_neon_vpaddv4hf (__a, __b);
17658 }
17659
17660 __extension__ extern __inline float16x4_t
17661 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17662 vpmax_f16 (float16x4_t __a, float16x4_t __b)
17663 {
17664 return __builtin_neon_vpmaxfv4hf (__a, __b);
17665 }
17666
17667 __extension__ extern __inline float16x4_t
17668 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17669 vpmin_f16 (float16x4_t __a, float16x4_t __b)
17670 {
17671 return __builtin_neon_vpminfv4hf (__a, __b);
17672 }
17673
17674 __extension__ extern __inline float16x4_t
17675 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17676 vrecpe_f16 (float16x4_t __a)
17677 {
17678 return __builtin_neon_vrecpev4hf (__a);
17679 }
17680
17681 __extension__ extern __inline float16x8_t
17682 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17683 vrecpeq_f16 (float16x8_t __a)
17684 {
17685 return __builtin_neon_vrecpev8hf (__a);
17686 }
17687
17688 __extension__ extern __inline float16x4_t
17689 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17690 vrnd_f16 (float16x4_t __a)
17691 {
17692 return __builtin_neon_vrndv4hf (__a);
17693 }
17694
17695 __extension__ extern __inline float16x8_t
17696 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17697 vrndq_f16 (float16x8_t __a)
17698 {
17699 return __builtin_neon_vrndv8hf (__a);
17700 }
17701
17702 __extension__ extern __inline float16x4_t
17703 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17704 vrnda_f16 (float16x4_t __a)
17705 {
17706 return __builtin_neon_vrndav4hf (__a);
17707 }
17708
17709 __extension__ extern __inline float16x8_t
17710 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17711 vrndaq_f16 (float16x8_t __a)
17712 {
17713 return __builtin_neon_vrndav8hf (__a);
17714 }
17715
17716 __extension__ extern __inline float16x4_t
17717 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17718 vrndm_f16 (float16x4_t __a)
17719 {
17720 return __builtin_neon_vrndmv4hf (__a);
17721 }
17722
17723 __extension__ extern __inline float16x8_t
17724 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17725 vrndmq_f16 (float16x8_t __a)
17726 {
17727 return __builtin_neon_vrndmv8hf (__a);
17728 }
17729
17730 __extension__ extern __inline float16x4_t
17731 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17732 vrndn_f16 (float16x4_t __a)
17733 {
17734 return __builtin_neon_vrndnv4hf (__a);
17735 }
17736
17737 __extension__ extern __inline float16x8_t
17738 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17739 vrndnq_f16 (float16x8_t __a)
17740 {
17741 return __builtin_neon_vrndnv8hf (__a);
17742 }
17743
17744 __extension__ extern __inline float16x4_t
17745 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17746 vrndp_f16 (float16x4_t __a)
17747 {
17748 return __builtin_neon_vrndpv4hf (__a);
17749 }
17750
17751 __extension__ extern __inline float16x8_t
17752 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17753 vrndpq_f16 (float16x8_t __a)
17754 {
17755 return __builtin_neon_vrndpv8hf (__a);
17756 }
17757
17758 __extension__ extern __inline float16x4_t
17759 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17760 vrndx_f16 (float16x4_t __a)
17761 {
17762 return __builtin_neon_vrndxv4hf (__a);
17763 }
17764
17765 __extension__ extern __inline float16x8_t
17766 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17767 vrndxq_f16 (float16x8_t __a)
17768 {
17769 return __builtin_neon_vrndxv8hf (__a);
17770 }
17771
17772 __extension__ extern __inline float16x4_t
17773 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17774 vrsqrte_f16 (float16x4_t __a)
17775 {
17776 return __builtin_neon_vrsqrtev4hf (__a);
17777 }
17778
17779 __extension__ extern __inline float16x8_t
17780 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17781 vrsqrteq_f16 (float16x8_t __a)
17782 {
17783 return __builtin_neon_vrsqrtev8hf (__a);
17784 }
17785
17786 __extension__ extern __inline float16x4_t
17787 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17788 vrecps_f16 (float16x4_t __a, float16x4_t __b)
17789 {
17790 return __builtin_neon_vrecpsv4hf (__a, __b);
17791 }
17792
17793 __extension__ extern __inline float16x8_t
17794 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17795 vrecpsq_f16 (float16x8_t __a, float16x8_t __b)
17796 {
17797 return __builtin_neon_vrecpsv8hf (__a, __b);
17798 }
17799
17800 __extension__ extern __inline float16x4_t
17801 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17802 vrsqrts_f16 (float16x4_t __a, float16x4_t __b)
17803 {
17804 return __builtin_neon_vrsqrtsv4hf (__a, __b);
17805 }
17806
17807 __extension__ extern __inline float16x8_t
17808 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17809 vrsqrtsq_f16 (float16x8_t __a, float16x8_t __b)
17810 {
17811 return __builtin_neon_vrsqrtsv8hf (__a, __b);
17812 }
17813
17814 __extension__ extern __inline float16x4_t
17815 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17816 vsub_f16 (float16x4_t __a, float16x4_t __b)
17817 {
17818 #ifdef __FAST_MATH__
17819 return __a - __b;
17820 #else
17821 return __builtin_neon_vsubv4hf (__a, __b);
17822 #endif
17823 }
17824
17825 __extension__ extern __inline float16x8_t
17826 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17827 vsubq_f16 (float16x8_t __a, float16x8_t __b)
17828 {
17829 #ifdef __FAST_MATH__
17830 return __a - __b;
17831 #else
17832 return __builtin_neon_vsubv8hf (__a, __b);
17833 #endif
17834 }
17835
17836 #endif /* __ARM_FEATURE_VECTOR_FP16_ARITHMETIC. */
17837 #pragma GCC pop_options
17838
17839 /* Half-precision data processing intrinsics. */
17840 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
17841
17842 __extension__ extern __inline float16x4_t
17843 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17844 vbsl_f16 (uint16x4_t __a, float16x4_t __b, float16x4_t __c)
17845 {
17846 return __builtin_neon_vbslv4hf ((int16x4_t)__a, __b, __c);
17847 }
17848
17849 __extension__ extern __inline float16x8_t
17850 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17851 vbslq_f16 (uint16x8_t __a, float16x8_t __b, float16x8_t __c)
17852 {
17853 return __builtin_neon_vbslv8hf ((int16x8_t)__a, __b, __c);
17854 }
17855
17856 __extension__ extern __inline float16x4_t
17857 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17858 vdup_n_f16 (float16_t __a)
17859 {
17860 return __builtin_neon_vdup_nv4hf (__a);
17861 }
17862
17863 __extension__ extern __inline float16x8_t
17864 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17865 vdupq_n_f16 (float16_t __a)
17866 {
17867 return __builtin_neon_vdup_nv8hf (__a);
17868 }
17869
17870 __extension__ extern __inline float16x4_t
17871 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17872 vdup_lane_f16 (float16x4_t __a, const int __b)
17873 {
17874 return __builtin_neon_vdup_lanev4hf (__a, __b);
17875 }
17876
17877 __extension__ extern __inline float16x8_t
17878 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17879 vdupq_lane_f16 (float16x4_t __a, const int __b)
17880 {
17881 return __builtin_neon_vdup_lanev8hf (__a, __b);
17882 }
17883
17884 __extension__ extern __inline float16x4_t
17885 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17886 vext_f16 (float16x4_t __a, float16x4_t __b, const int __c)
17887 {
17888 return __builtin_neon_vextv4hf (__a, __b, __c);
17889 }
17890
17891 __extension__ extern __inline float16x8_t
17892 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17893 vextq_f16 (float16x8_t __a, float16x8_t __b, const int __c)
17894 {
17895 return __builtin_neon_vextv8hf (__a, __b, __c);
17896 }
17897
17898 __extension__ extern __inline float16x4_t
17899 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17900 vmov_n_f16 (float16_t __a)
17901 {
17902 return __builtin_neon_vdup_nv4hf (__a);
17903 }
17904
17905 __extension__ extern __inline float16x8_t
17906 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17907 vmovq_n_f16 (float16_t __a)
17908 {
17909 return __builtin_neon_vdup_nv8hf (__a);
17910 }
17911
17912 __extension__ extern __inline float16x4_t
17913 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17914 vrev64_f16 (float16x4_t __a)
17915 {
17916 return (float16x4_t)__builtin_shuffle (__a, (uint16x4_t){ 3, 2, 1, 0 });
17917 }
17918
17919 __extension__ extern __inline float16x8_t
17920 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17921 vrev64q_f16 (float16x8_t __a)
17922 {
17923 return
17924 (float16x8_t)__builtin_shuffle (__a,
17925 (uint16x8_t){ 3, 2, 1, 0, 7, 6, 5, 4 });
17926 }
17927
17928 __extension__ extern __inline float16x4x2_t
17929 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17930 vtrn_f16 (float16x4_t __a, float16x4_t __b)
17931 {
17932 float16x4x2_t __rv;
17933 #ifdef __ARM_BIG_ENDIAN
17934 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t){ 5, 1, 7, 3 });
17935 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t){ 4, 0, 6, 2 });
17936 #else
17937 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t){ 0, 4, 2, 6 });
17938 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t){ 1, 5, 3, 7 });
17939 #endif
17940 return __rv;
17941 }
17942
17943 __extension__ extern __inline float16x8x2_t
17944 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17945 vtrnq_f16 (float16x8_t __a, float16x8_t __b)
17946 {
17947 float16x8x2_t __rv;
17948 #ifdef __ARM_BIG_ENDIAN
17949 __rv.val[0] = __builtin_shuffle (__a, __b,
17950 (uint16x8_t){ 9, 1, 11, 3, 13, 5, 15, 7 });
17951 __rv.val[1] = __builtin_shuffle (__a, __b,
17952 (uint16x8_t){ 8, 0, 10, 2, 12, 4, 14, 6 });
17953 #else
17954 __rv.val[0] = __builtin_shuffle (__a, __b,
17955 (uint16x8_t){ 0, 8, 2, 10, 4, 12, 6, 14 });
17956 __rv.val[1] = __builtin_shuffle (__a, __b,
17957 (uint16x8_t){ 1, 9, 3, 11, 5, 13, 7, 15 });
17958 #endif
17959 return __rv;
17960 }
17961
17962 __extension__ extern __inline float16x4x2_t
17963 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17964 vuzp_f16 (float16x4_t __a, float16x4_t __b)
17965 {
17966 float16x4x2_t __rv;
17967 #ifdef __ARM_BIG_ENDIAN
17968 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t){ 5, 7, 1, 3 });
17969 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t){ 4, 6, 0, 2 });
17970 #else
17971 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t){ 0, 2, 4, 6 });
17972 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t){ 1, 3, 5, 7 });
17973 #endif
17974 return __rv;
17975 }
17976
17977 __extension__ extern __inline float16x8x2_t
17978 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17979 vuzpq_f16 (float16x8_t __a, float16x8_t __b)
17980 {
17981 float16x8x2_t __rv;
17982 #ifdef __ARM_BIG_ENDIAN
17983 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
17984 { 5, 7, 1, 3, 13, 15, 9, 11 });
17985 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
17986 { 4, 6, 0, 2, 12, 14, 8, 10 });
17987 #else
17988 __rv.val[0] = __builtin_shuffle (__a, __b,
17989 (uint16x8_t){ 0, 2, 4, 6, 8, 10, 12, 14 });
17990 __rv.val[1] = __builtin_shuffle (__a, __b,
17991 (uint16x8_t){ 1, 3, 5, 7, 9, 11, 13, 15 });
17992 #endif
17993 return __rv;
17994 }
17995
17996 __extension__ extern __inline float16x4x2_t
17997 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17998 vzip_f16 (float16x4_t __a, float16x4_t __b)
17999 {
18000 float16x4x2_t __rv;
18001 #ifdef __ARM_BIG_ENDIAN
18002 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t){ 6, 2, 7, 3 });
18003 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t){ 4, 0, 5, 1 });
18004 #else
18005 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t){ 0, 4, 1, 5 });
18006 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t){ 2, 6, 3, 7 });
18007 #endif
18008 return __rv;
18009 }
18010
18011 __extension__ extern __inline float16x8x2_t
18012 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18013 vzipq_f16 (float16x8_t __a, float16x8_t __b)
18014 {
18015 float16x8x2_t __rv;
18016 #ifdef __ARM_BIG_ENDIAN
18017 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
18018 { 10, 2, 11, 3, 8, 0, 9, 1 });
18019 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
18020 { 14, 6, 15, 7, 12, 4, 13, 5 });
18021 #else
18022 __rv.val[0] = __builtin_shuffle (__a, __b,
18023 (uint16x8_t){ 0, 8, 1, 9, 2, 10, 3, 11 });
18024 __rv.val[1] = __builtin_shuffle (__a, __b,
18025 (uint16x8_t){ 4, 12, 5, 13, 6, 14, 7, 15 });
18026 #endif
18027 return __rv;
18028 }
18029
18030 #endif
18031
18032 /* AdvSIMD Dot Product intrinsics. */
18033
18034 #if __ARM_ARCH >= 8
18035 #pragma GCC push_options
18036 #pragma GCC target ("arch=armv8.2-a+dotprod")
18037
18038 __extension__ extern __inline uint32x2_t
18039 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18040 vdot_u32 (uint32x2_t __r, uint8x8_t __a, uint8x8_t __b)
18041 {
18042 return __builtin_neon_udotv8qi_uuuu (__r, __a, __b);
18043 }
18044
18045 __extension__ extern __inline uint32x4_t
18046 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18047 vdotq_u32 (uint32x4_t __r, uint8x16_t __a, uint8x16_t __b)
18048 {
18049 return __builtin_neon_udotv16qi_uuuu (__r, __a, __b);
18050 }
18051
18052 __extension__ extern __inline int32x2_t
18053 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18054 vdot_s32 (int32x2_t __r, int8x8_t __a, int8x8_t __b)
18055 {
18056 return __builtin_neon_sdotv8qi (__r, __a, __b);
18057 }
18058
18059 __extension__ extern __inline int32x4_t
18060 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18061 vdotq_s32 (int32x4_t __r, int8x16_t __a, int8x16_t __b)
18062 {
18063 return __builtin_neon_sdotv16qi (__r, __a, __b);
18064 }
18065
18066 __extension__ extern __inline uint32x2_t
18067 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18068 vdot_lane_u32 (uint32x2_t __r, uint8x8_t __a, uint8x8_t __b, const int __index)
18069 {
18070 return __builtin_neon_udot_lanev8qi_uuuus (__r, __a, __b, __index);
18071 }
18072
18073 __extension__ extern __inline uint32x4_t
18074 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18075 vdotq_lane_u32 (uint32x4_t __r, uint8x16_t __a, uint8x8_t __b,
18076 const int __index)
18077 {
18078 return __builtin_neon_udot_lanev16qi_uuuus (__r, __a, __b, __index);
18079 }
18080
18081 __extension__ extern __inline int32x2_t
18082 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18083 vdot_lane_s32 (int32x2_t __r, int8x8_t __a, int8x8_t __b, const int __index)
18084 {
18085 return __builtin_neon_sdot_lanev8qi (__r, __a, __b, __index);
18086 }
18087
18088 __extension__ extern __inline int32x4_t
18089 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18090 vdotq_lane_s32 (int32x4_t __r, int8x16_t __a, int8x8_t __b, const int __index)
18091 {
18092 return __builtin_neon_sdot_lanev16qi (__r, __a, __b, __index);
18093 }
18094
18095 #pragma GCC pop_options
18096 #endif
18097
18098 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
18099 #pragma GCC push_options
18100 #pragma GCC target ("arch=armv8.2-a+fp16fml")
18101
18102 __extension__ extern __inline float32x2_t
18103 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18104 vfmlal_low_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b)
18105 {
18106 return __builtin_neon_vfmal_lowv2sf (__r, __a, __b);
18107 }
18108
18109 __extension__ extern __inline float32x2_t
18110 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18111 vfmlsl_low_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b)
18112 {
18113 return __builtin_neon_vfmsl_lowv2sf (__r, __a, __b);
18114 }
18115
18116 __extension__ extern __inline float32x2_t
18117 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18118 vfmlal_high_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b)
18119 {
18120 return __builtin_neon_vfmal_highv2sf (__r, __a, __b);
18121 }
18122
18123 __extension__ extern __inline float32x2_t
18124 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18125 vfmlsl_high_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b)
18126 {
18127 return __builtin_neon_vfmsl_highv2sf (__r, __a, __b);
18128 }
18129
18130 __extension__ extern __inline float32x4_t
18131 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18132 vfmlalq_low_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b)
18133 {
18134 return __builtin_neon_vfmal_lowv4sf (__r, __a, __b);
18135 }
18136
18137 __extension__ extern __inline float32x4_t
18138 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18139 vfmlslq_low_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b)
18140 {
18141 return __builtin_neon_vfmsl_lowv4sf (__r, __a, __b);
18142 }
18143
18144 __extension__ extern __inline float32x4_t
18145 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18146 vfmlalq_high_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b)
18147 {
18148 return __builtin_neon_vfmal_highv4sf (__r, __a, __b);
18149 }
18150
18151 __extension__ extern __inline float32x4_t
18152 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18153 vfmlslq_high_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b)
18154 {
18155 return __builtin_neon_vfmsl_highv4sf (__r, __a, __b);
18156 }
18157
18158 __extension__ extern __inline float32x2_t
18159 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18160 vfmlal_lane_low_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b,
18161 const int __index)
18162 {
18163 __builtin_arm_lane_check (4, __index);
18164 return __builtin_neon_vfmal_lane_lowv2sf (__r, __a, __b, __index);
18165 }
18166
18167 __extension__ extern __inline float32x2_t
18168 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18169 vfmlal_lane_high_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b,
18170 const int __index)
18171 {
18172 __builtin_arm_lane_check (4, __index);
18173 return __builtin_neon_vfmal_lane_highv2sf (__r, __a, __b, __index);
18174 }
18175
18176 __extension__ extern __inline float32x4_t
18177 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18178 vfmlalq_laneq_low_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b,
18179 const int __index)
18180 {
18181 __builtin_arm_lane_check (8, __index);
18182 return __builtin_neon_vfmal_lane_lowv4sf (__r, __a, __b, __index);
18183 }
18184
18185 __extension__ extern __inline float32x4_t
18186 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18187 vfmlalq_lane_low_f16 (float32x4_t __r, float16x8_t __a, float16x4_t __b,
18188 const int __index)
18189 {
18190 __builtin_arm_lane_check (4, __index);
18191 return __builtin_neon_vfmal_lane_lowv4hfv4sf (__r, __a, __b, __index);
18192 }
18193
18194 __extension__ extern __inline float32x2_t
18195 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18196 vfmlal_laneq_low_f16 (float32x2_t __r, float16x4_t __a, float16x8_t __b,
18197 const int __index)
18198 {
18199 __builtin_arm_lane_check (8, __index);
18200 return __builtin_neon_vfmal_lane_lowv8hfv2sf (__r, __a, __b, __index);
18201 }
18202
18203 __extension__ extern __inline float32x4_t
18204 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18205 vfmlalq_laneq_high_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b,
18206 const int __index)
18207 {
18208 __builtin_arm_lane_check (8, __index);
18209 return __builtin_neon_vfmal_lane_highv4sf (__r, __a, __b, __index);
18210 }
18211
18212 __extension__ extern __inline float32x4_t
18213 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18214 vfmlalq_lane_high_f16 (float32x4_t __r, float16x8_t __a, float16x4_t __b,
18215 const int __index)
18216 {
18217 __builtin_arm_lane_check (4, __index);
18218 return __builtin_neon_vfmal_lane_highv4hfv4sf (__r, __a, __b, __index);
18219 }
18220
18221 __extension__ extern __inline float32x2_t
18222 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18223 vfmlal_laneq_high_f16 (float32x2_t __r, float16x4_t __a, float16x8_t __b,
18224 const int __index)
18225 {
18226 __builtin_arm_lane_check (8, __index);
18227 return __builtin_neon_vfmal_lane_highv8hfv2sf (__r, __a, __b, __index);
18228 }
18229
18230 __extension__ extern __inline float32x2_t
18231 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18232 vfmlsl_lane_low_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b,
18233 const int __index)
18234 {
18235 __builtin_arm_lane_check (4, __index);
18236 return __builtin_neon_vfmsl_lane_lowv2sf (__r, __a, __b, __index);
18237 }
18238
18239 __extension__ extern __inline float32x2_t
18240 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18241 vfmlsl_lane_high_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b,
18242 const int __index)
18243 {
18244 __builtin_arm_lane_check (4, __index);
18245 return __builtin_neon_vfmsl_lane_highv2sf (__r, __a, __b, __index);
18246 }
18247
18248 __extension__ extern __inline float32x4_t
18249 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18250 vfmlslq_laneq_low_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b,
18251 const int __index)
18252 {
18253 __builtin_arm_lane_check (8, __index);
18254 return __builtin_neon_vfmsl_lane_lowv4sf (__r, __a, __b, __index);
18255 }
18256
18257 __extension__ extern __inline float32x4_t
18258 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18259 vfmlslq_lane_low_f16 (float32x4_t __r, float16x8_t __a, float16x4_t __b,
18260 const int __index)
18261 {
18262 __builtin_arm_lane_check (4, __index);
18263 return __builtin_neon_vfmsl_lane_lowv4hfv4sf (__r, __a, __b, __index);
18264 }
18265
18266 __extension__ extern __inline float32x2_t
18267 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18268 vfmlsl_laneq_low_f16 (float32x2_t __r, float16x4_t __a, float16x8_t __b,
18269 const int __index)
18270 {
18271 __builtin_arm_lane_check (8, __index);
18272 return __builtin_neon_vfmsl_lane_lowv8hfv2sf (__r, __a, __b, __index);
18273 }
18274
18275 __extension__ extern __inline float32x4_t
18276 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18277 vfmlslq_laneq_high_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b,
18278 const int __index)
18279 {
18280 __builtin_arm_lane_check (8, __index);
18281 return __builtin_neon_vfmsl_lane_highv4sf (__r, __a, __b, __index);
18282 }
18283
18284 __extension__ extern __inline float32x4_t
18285 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18286 vfmlslq_lane_high_f16 (float32x4_t __r, float16x8_t __a, float16x4_t __b,
18287 const int __index)
18288 {
18289 __builtin_arm_lane_check (4, __index);
18290 return __builtin_neon_vfmsl_lane_highv4hfv4sf (__r, __a, __b, __index);
18291 }
18292
18293 __extension__ extern __inline float32x2_t
18294 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18295 vfmlsl_laneq_high_f16 (float32x2_t __r, float16x4_t __a, float16x8_t __b,
18296 const int __index)
18297 {
18298 __builtin_arm_lane_check (8, __index);
18299 return __builtin_neon_vfmsl_lane_highv8hfv2sf (__r, __a, __b, __index);
18300 }
18301
18302 #pragma GCC pop_options
18303 #endif
18304
18305 /* AdvSIMD Complex numbers intrinsics. */
18306 #if __ARM_ARCH >= 8
18307 #pragma GCC push_options
18308 #pragma GCC target ("arch=armv8.3-a")
18309
18310
18311 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
18312 #pragma GCC push_options
18313 #pragma GCC target ("+fp16")
18314 __extension__ extern __inline float16x4_t
18315 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18316 vcadd_rot90_f16 (float16x4_t __a, float16x4_t __b)
18317 {
18318 return __builtin_neon_vcadd90v4hf (__a, __b);
18319 }
18320
18321 __extension__ extern __inline float16x8_t
18322 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18323 vcaddq_rot90_f16 (float16x8_t __a, float16x8_t __b)
18324 {
18325 return __builtin_neon_vcadd90v8hf (__a, __b);
18326 }
18327
18328 __extension__ extern __inline float16x4_t
18329 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18330 vcadd_rot270_f16 (float16x4_t __a, float16x4_t __b)
18331 {
18332 return __builtin_neon_vcadd90v4hf (__a, __b);
18333 }
18334
18335 __extension__ extern __inline float16x8_t
18336 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18337 vcaddq_rot270_f16 (float16x8_t __a, float16x8_t __b)
18338 {
18339 return __builtin_neon_vcadd90v8hf (__a, __b);
18340 }
18341
18342 __extension__ extern __inline float16x4_t
18343 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18344 vcmla_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b)
18345 {
18346 return __builtin_neon_vcmla0v4hf (__r, __a, __b);
18347 }
18348
18349 __extension__ extern __inline float16x8_t
18350 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18351 vcmlaq_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b)
18352 {
18353 return __builtin_neon_vcmla0v8hf (__r, __a, __b);
18354 }
18355
18356 __extension__ extern __inline float16x4_t
18357 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18358 vcmla_lane_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b,
18359 const int __index)
18360 {
18361 return __builtin_neon_vcmla_lane0v4hf (__r, __a, __b, __index);
18362 }
18363
18364 __extension__ extern __inline float16x4_t
18365 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18366 vcmla_laneq_f16 (float16x4_t __r, float16x4_t __a, float16x8_t __b,
18367 const int __index)
18368 {
18369 return __builtin_neon_vcmla_laneq0v4hf (__r, __a, __b, __index);
18370 }
18371
18372 __extension__ extern __inline float16x8_t
18373 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18374 vcmlaq_lane_f16 (float16x8_t __r, float16x8_t __a, float16x4_t __b,
18375 const int __index)
18376 {
18377 return __builtin_neon_vcmlaq_lane0v8hf (__r, __a, __b, __index);
18378 }
18379
18380 __extension__ extern __inline float16x8_t
18381 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18382 vcmlaq_laneq_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b,
18383 const int __index)
18384 {
18385 return __builtin_neon_vcmla_lane0v8hf (__r, __a, __b, __index);
18386 }
18387
18388 __extension__ extern __inline float16x4_t
18389 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18390 vcmla_rot90_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b)
18391 {
18392 return __builtin_neon_vcmla90v4hf (__r, __a, __b);
18393 }
18394
18395 __extension__ extern __inline float16x8_t
18396 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18397 vcmlaq_rot90_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b)
18398 {
18399 return __builtin_neon_vcmla90v8hf (__r, __a, __b);
18400 }
18401
18402 __extension__ extern __inline float16x4_t
18403 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18404 vcmla_rot90_lane_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b,
18405 const int __index)
18406 {
18407 return __builtin_neon_vcmla_lane90v4hf (__r, __a, __b, __index);
18408 }
18409
18410 __extension__ extern __inline float16x4_t
18411 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18412 vcmla_rot90_laneq_f16 (float16x4_t __r, float16x4_t __a, float16x8_t __b,
18413 const int __index)
18414 {
18415 return __builtin_neon_vcmla_laneq90v4hf (__r, __a, __b, __index);
18416 }
18417
18418 __extension__ extern __inline float16x8_t
18419 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18420 vcmlaq_rot90_lane_f16 (float16x8_t __r, float16x8_t __a, float16x4_t __b,
18421 const int __index)
18422 {
18423 return __builtin_neon_vcmlaq_lane90v8hf (__r, __a, __b, __index);
18424 }
18425
18426 __extension__ extern __inline float16x8_t
18427 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18428 vcmlaq_rot90_laneq_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b,
18429 const int __index)
18430 {
18431 return __builtin_neon_vcmla_lane90v8hf (__r, __a, __b, __index);
18432 }
18433
18434 __extension__ extern __inline float16x4_t
18435 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18436 vcmla_rot180_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b)
18437 {
18438 return __builtin_neon_vcmla180v4hf (__r, __a, __b);
18439 }
18440
18441 __extension__ extern __inline float16x8_t
18442 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18443 vcmlaq_rot180_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b)
18444 {
18445 return __builtin_neon_vcmla180v8hf (__r, __a, __b);
18446 }
18447
18448 __extension__ extern __inline float16x4_t
18449 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18450 vcmla_rot180_lane_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b,
18451 const int __index)
18452 {
18453 return __builtin_neon_vcmla_lane180v4hf (__r, __a, __b, __index);
18454 }
18455
18456 __extension__ extern __inline float16x4_t
18457 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18458 vcmla_rot180_laneq_f16 (float16x4_t __r, float16x4_t __a, float16x8_t __b,
18459 const int __index)
18460 {
18461 return __builtin_neon_vcmla_laneq180v4hf (__r, __a, __b, __index);
18462 }
18463
18464 __extension__ extern __inline float16x8_t
18465 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18466 vcmlaq_rot180_lane_f16 (float16x8_t __r, float16x8_t __a, float16x4_t __b,
18467 const int __index)
18468 {
18469 return __builtin_neon_vcmlaq_lane180v8hf (__r, __a, __b, __index);
18470 }
18471
18472 __extension__ extern __inline float16x8_t
18473 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18474 vcmlaq_rot180_laneq_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b,
18475 const int __index)
18476 {
18477 return __builtin_neon_vcmla_lane180v8hf (__r, __a, __b, __index);
18478 }
18479
18480 __extension__ extern __inline float16x4_t
18481 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18482 vcmla_rot270_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b)
18483 {
18484 return __builtin_neon_vcmla270v4hf (__r, __a, __b);
18485 }
18486
18487 __extension__ extern __inline float16x8_t
18488 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18489 vcmlaq_rot270_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b)
18490 {
18491 return __builtin_neon_vcmla270v8hf (__r, __a, __b);
18492 }
18493
18494 __extension__ extern __inline float16x4_t
18495 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18496 vcmla_rot270_lane_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b,
18497 const int __index)
18498 {
18499 return __builtin_neon_vcmla_lane270v4hf (__r, __a, __b, __index);
18500 }
18501
18502 __extension__ extern __inline float16x4_t
18503 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18504 vcmla_rot270_laneq_f16 (float16x4_t __r, float16x4_t __a, float16x8_t __b,
18505 const int __index)
18506 {
18507 return __builtin_neon_vcmla_laneq270v4hf (__r, __a, __b, __index);
18508 }
18509
18510 __extension__ extern __inline float16x8_t
18511 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18512 vcmlaq_rot270_lane_f16 (float16x8_t __r, float16x8_t __a, float16x4_t __b,
18513 const int __index)
18514 {
18515 return __builtin_neon_vcmlaq_lane270v8hf (__r, __a, __b, __index);
18516 }
18517
18518 __extension__ extern __inline float16x8_t
18519 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18520 vcmlaq_rot270_laneq_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b,
18521 const int __index)
18522 {
18523 return __builtin_neon_vcmla_lane270v8hf (__r, __a, __b, __index);
18524 }
18525
18526 #pragma GCC pop_options
18527 #endif
18528
18529 __extension__ extern __inline float32x2_t
18530 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18531 vcadd_rot90_f32 (float32x2_t __a, float32x2_t __b)
18532 {
18533 return __builtin_neon_vcadd90v2sf (__a, __b);
18534 }
18535
18536 __extension__ extern __inline float32x4_t
18537 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18538 vcaddq_rot90_f32 (float32x4_t __a, float32x4_t __b)
18539 {
18540 return __builtin_neon_vcadd90v4sf (__a, __b);
18541 }
18542
18543 __extension__ extern __inline float32x2_t
18544 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18545 vcadd_rot270_f32 (float32x2_t __a, float32x2_t __b)
18546 {
18547 return __builtin_neon_vcadd90v2sf (__a, __b);
18548 }
18549
18550 __extension__ extern __inline float32x4_t
18551 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18552 vcaddq_rot270_f32 (float32x4_t __a, float32x4_t __b)
18553 {
18554 return __builtin_neon_vcadd90v4sf (__a, __b);
18555 }
18556
18557 __extension__ extern __inline float32x2_t
18558 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18559 vcmla_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b)
18560 {
18561 return __builtin_neon_vcmla0v2sf (__r, __a, __b);
18562 }
18563
18564 __extension__ extern __inline float32x4_t
18565 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18566 vcmlaq_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b)
18567 {
18568 return __builtin_neon_vcmla0v4sf (__r, __a, __b);
18569 }
18570
18571 __extension__ extern __inline float32x2_t
18572 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18573 vcmla_lane_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b,
18574 const int __index)
18575 {
18576 return __builtin_neon_vcmla_lane0v2sf (__r, __a, __b, __index);
18577 }
18578
18579 __extension__ extern __inline float32x2_t
18580 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18581 vcmla_laneq_f32 (float32x2_t __r, float32x2_t __a, float32x4_t __b,
18582 const int __index)
18583 {
18584 return __builtin_neon_vcmla_laneq0v2sf (__r, __a, __b, __index);
18585 }
18586
18587 __extension__ extern __inline float32x4_t
18588 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18589 vcmlaq_lane_f32 (float32x4_t __r, float32x4_t __a, float32x2_t __b,
18590 const int __index)
18591 {
18592 return __builtin_neon_vcmlaq_lane0v4sf (__r, __a, __b, __index);
18593 }
18594
18595 __extension__ extern __inline float32x4_t
18596 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18597 vcmlaq_laneq_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b,
18598 const int __index)
18599 {
18600 return __builtin_neon_vcmla_lane0v4sf (__r, __a, __b, __index);
18601 }
18602
18603 __extension__ extern __inline float32x2_t
18604 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18605 vcmla_rot90_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b)
18606 {
18607 return __builtin_neon_vcmla90v2sf (__r, __a, __b);
18608 }
18609
18610 __extension__ extern __inline float32x4_t
18611 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18612 vcmlaq_rot90_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b)
18613 {
18614 return __builtin_neon_vcmla90v4sf (__r, __a, __b);
18615 }
18616
18617 __extension__ extern __inline float32x2_t
18618 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18619 vcmla_rot90_lane_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b,
18620 const int __index)
18621 {
18622 return __builtin_neon_vcmla_lane90v2sf (__r, __a, __b, __index);
18623 }
18624
18625 __extension__ extern __inline float32x2_t
18626 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18627 vcmla_rot90_laneq_f32 (float32x2_t __r, float32x2_t __a, float32x4_t __b,
18628 const int __index)
18629 {
18630 return __builtin_neon_vcmla_laneq90v2sf (__r, __a, __b, __index);
18631 }
18632
18633 __extension__ extern __inline float32x4_t
18634 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18635 vcmlaq_rot90_lane_f32 (float32x4_t __r, float32x4_t __a, float32x2_t __b,
18636 const int __index)
18637 {
18638 return __builtin_neon_vcmlaq_lane90v4sf (__r, __a, __b, __index);
18639 }
18640
18641 __extension__ extern __inline float32x4_t
18642 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18643 vcmlaq_rot90_laneq_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b,
18644 const int __index)
18645 {
18646 return __builtin_neon_vcmla_lane90v4sf (__r, __a, __b, __index);
18647 }
18648
18649 __extension__ extern __inline float32x2_t
18650 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18651 vcmla_rot180_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b)
18652 {
18653 return __builtin_neon_vcmla180v2sf (__r, __a, __b);
18654 }
18655
18656 __extension__ extern __inline float32x4_t
18657 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18658 vcmlaq_rot180_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b)
18659 {
18660 return __builtin_neon_vcmla180v4sf (__r, __a, __b);
18661 }
18662
18663 __extension__ extern __inline float32x2_t
18664 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18665 vcmla_rot180_lane_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b,
18666 const int __index)
18667 {
18668 return __builtin_neon_vcmla_lane180v2sf (__r, __a, __b, __index);
18669 }
18670
18671 __extension__ extern __inline float32x2_t
18672 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18673 vcmla_rot180_laneq_f32 (float32x2_t __r, float32x2_t __a, float32x4_t __b,
18674 const int __index)
18675 {
18676 return __builtin_neon_vcmla_laneq180v2sf (__r, __a, __b, __index);
18677 }
18678
18679 __extension__ extern __inline float32x4_t
18680 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18681 vcmlaq_rot180_lane_f32 (float32x4_t __r, float32x4_t __a, float32x2_t __b,
18682 const int __index)
18683 {
18684 return __builtin_neon_vcmlaq_lane180v4sf (__r, __a, __b, __index);
18685 }
18686
18687 __extension__ extern __inline float32x4_t
18688 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18689 vcmlaq_rot180_laneq_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b,
18690 const int __index)
18691 {
18692 return __builtin_neon_vcmla_lane180v4sf (__r, __a, __b, __index);
18693 }
18694
18695 __extension__ extern __inline float32x2_t
18696 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18697 vcmla_rot270_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b)
18698 {
18699 return __builtin_neon_vcmla270v2sf (__r, __a, __b);
18700 }
18701
18702 __extension__ extern __inline float32x4_t
18703 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18704 vcmlaq_rot270_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b)
18705 {
18706 return __builtin_neon_vcmla270v4sf (__r, __a, __b);
18707 }
18708
18709 __extension__ extern __inline float32x2_t
18710 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18711 vcmla_rot270_lane_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b,
18712 const int __index)
18713 {
18714 return __builtin_neon_vcmla_lane270v2sf (__r, __a, __b, __index);
18715 }
18716
18717 __extension__ extern __inline float32x2_t
18718 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18719 vcmla_rot270_laneq_f32 (float32x2_t __r, float32x2_t __a, float32x4_t __b,
18720 const int __index)
18721 {
18722 return __builtin_neon_vcmla_laneq270v2sf (__r, __a, __b, __index);
18723 }
18724
18725 __extension__ extern __inline float32x4_t
18726 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18727 vcmlaq_rot270_lane_f32 (float32x4_t __r, float32x4_t __a, float32x2_t __b,
18728 const int __index)
18729 {
18730 return __builtin_neon_vcmlaq_lane270v4sf (__r, __a, __b, __index);
18731 }
18732
18733 __extension__ extern __inline float32x4_t
18734 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18735 vcmlaq_rot270_laneq_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b,
18736 const int __index)
18737 {
18738 return __builtin_neon_vcmla_lane270v4sf (__r, __a, __b, __index);
18739 }
18740
18741 #pragma GCC pop_options
18742 #endif
18743
18744 #ifdef __cplusplus
18745 }
18746 #endif
18747
18748 #pragma GCC pop_options
18749
18750 #endif
18751 #endif