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 <arm_bf16.h>
43 #include <stdint.h>
44
45 /* For big-endian, GCC's vector indices are reversed within each 64
46 bits compared to the architectural lane indices used by Neon
47 intrinsics. */
48 #ifdef __ARM_BIG_ENDIAN
49 #define __ARM_NUM_LANES(__v) (sizeof (__v) / sizeof (__v[0]))
50 #define __arm_lane(__vec, __idx) (__idx ^ (__ARM_NUM_LANES(__vec) - 1))
51 #define __arm_laneq(__vec, __idx) (__idx ^ (__ARM_NUM_LANES(__vec)/2 - 1))
52 #else
53 #define __arm_lane(__vec, __idx) __idx
54 #define __arm_laneq(__vec, __idx) __idx
55 #endif
56
57 typedef __simd64_int8_t int8x8_t;
58 typedef __simd64_int16_t int16x4_t;
59 typedef __simd64_int32_t int32x2_t;
60 typedef __builtin_neon_di int64x1_t;
61 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
62 typedef __fp16 float16_t;
63 typedef __simd64_float16_t float16x4_t;
64 #endif
65 typedef __simd64_float32_t float32x2_t;
66 typedef __simd64_poly8_t poly8x8_t;
67 typedef __simd64_poly16_t poly16x4_t;
68 #pragma GCC push_options
69 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
70 typedef __builtin_neon_poly64 poly64x1_t;
71 #pragma GCC pop_options
72 typedef __simd64_uint8_t uint8x8_t;
73 typedef __simd64_uint16_t uint16x4_t;
74 typedef __simd64_uint32_t uint32x2_t;
75 typedef __builtin_neon_udi uint64x1_t;
76
77 typedef __simd128_int8_t int8x16_t;
78 typedef __simd128_int16_t int16x8_t;
79 typedef __simd128_int32_t int32x4_t;
80 typedef __simd128_int64_t int64x2_t;
81 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
82 typedef __simd128_float16_t float16x8_t;
83 #endif
84 typedef __simd128_float32_t float32x4_t;
85 typedef __simd128_poly8_t poly8x16_t;
86 typedef __simd128_poly16_t poly16x8_t;
87 #pragma GCC push_options
88 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
89 typedef __builtin_neon_poly64 poly64x2_t __attribute__ ((__vector_size__ (16)));
90 #pragma GCC pop_options
91
92 typedef __simd128_uint8_t uint8x16_t;
93 typedef __simd128_uint16_t uint16x8_t;
94 typedef __simd128_uint32_t uint32x4_t;
95 typedef __simd128_uint64_t uint64x2_t;
96
97 typedef float float32_t;
98
99 typedef __simd128_bfloat16_t bfloat16x8_t;
100 typedef __simd64_bfloat16_t bfloat16x4_t;
101
102 /* The Poly types are user visible and live in their own world,
103 keep them that way. */
104 typedef __builtin_neon_poly8 poly8_t;
105 typedef __builtin_neon_poly16 poly16_t;
106 #pragma GCC push_options
107 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
108 typedef __builtin_neon_poly64 poly64_t;
109 typedef __builtin_neon_poly128 poly128_t;
110 #pragma GCC pop_options
111
112 typedef struct int8x8x2_t
113 {
114 int8x8_t val[2];
115 } int8x8x2_t;
116
117 typedef struct int8x16x2_t
118 {
119 int8x16_t val[2];
120 } int8x16x2_t;
121
122 typedef struct int16x4x2_t
123 {
124 int16x4_t val[2];
125 } int16x4x2_t;
126
127 typedef struct int16x8x2_t
128 {
129 int16x8_t val[2];
130 } int16x8x2_t;
131
132 typedef struct int32x2x2_t
133 {
134 int32x2_t val[2];
135 } int32x2x2_t;
136
137 typedef struct int32x4x2_t
138 {
139 int32x4_t val[2];
140 } int32x4x2_t;
141
142 typedef struct int64x1x2_t
143 {
144 int64x1_t val[2];
145 } int64x1x2_t;
146
147 typedef struct int64x2x2_t
148 {
149 int64x2_t val[2];
150 } int64x2x2_t;
151
152 typedef struct uint8x8x2_t
153 {
154 uint8x8_t val[2];
155 } uint8x8x2_t;
156
157 typedef struct uint8x16x2_t
158 {
159 uint8x16_t val[2];
160 } uint8x16x2_t;
161
162 typedef struct uint16x4x2_t
163 {
164 uint16x4_t val[2];
165 } uint16x4x2_t;
166
167 typedef struct uint16x8x2_t
168 {
169 uint16x8_t val[2];
170 } uint16x8x2_t;
171
172 typedef struct uint32x2x2_t
173 {
174 uint32x2_t val[2];
175 } uint32x2x2_t;
176
177 typedef struct uint32x4x2_t
178 {
179 uint32x4_t val[2];
180 } uint32x4x2_t;
181
182 typedef struct uint64x1x2_t
183 {
184 uint64x1_t val[2];
185 } uint64x1x2_t;
186
187 typedef struct uint64x2x2_t
188 {
189 uint64x2_t val[2];
190 } uint64x2x2_t;
191
192 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
193 typedef struct float16x4x2_t
194 {
195 float16x4_t val[2];
196 } float16x4x2_t;
197 #endif
198
199 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
200 typedef struct float16x8x2_t
201 {
202 float16x8_t val[2];
203 } float16x8x2_t;
204 #endif
205
206 typedef struct float32x2x2_t
207 {
208 float32x2_t val[2];
209 } float32x2x2_t;
210
211 typedef struct float32x4x2_t
212 {
213 float32x4_t val[2];
214 } float32x4x2_t;
215
216 typedef struct poly8x8x2_t
217 {
218 poly8x8_t val[2];
219 } poly8x8x2_t;
220
221 typedef struct poly8x16x2_t
222 {
223 poly8x16_t val[2];
224 } poly8x16x2_t;
225
226 typedef struct poly16x4x2_t
227 {
228 poly16x4_t val[2];
229 } poly16x4x2_t;
230
231 typedef struct poly16x8x2_t
232 {
233 poly16x8_t val[2];
234 } poly16x8x2_t;
235
236 #pragma GCC push_options
237 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
238 typedef struct poly64x1x2_t
239 {
240 poly64x1_t val[2];
241 } poly64x1x2_t;
242
243
244 typedef struct poly64x2x2_t
245 {
246 poly64x2_t val[2];
247 } poly64x2x2_t;
248 #pragma GCC pop_options
249
250
251 typedef struct int8x8x3_t
252 {
253 int8x8_t val[3];
254 } int8x8x3_t;
255
256 typedef struct int8x16x3_t
257 {
258 int8x16_t val[3];
259 } int8x16x3_t;
260
261 typedef struct int16x4x3_t
262 {
263 int16x4_t val[3];
264 } int16x4x3_t;
265
266 typedef struct int16x8x3_t
267 {
268 int16x8_t val[3];
269 } int16x8x3_t;
270
271 typedef struct int32x2x3_t
272 {
273 int32x2_t val[3];
274 } int32x2x3_t;
275
276 typedef struct int32x4x3_t
277 {
278 int32x4_t val[3];
279 } int32x4x3_t;
280
281 typedef struct int64x1x3_t
282 {
283 int64x1_t val[3];
284 } int64x1x3_t;
285
286 typedef struct int64x2x3_t
287 {
288 int64x2_t val[3];
289 } int64x2x3_t;
290
291 typedef struct uint8x8x3_t
292 {
293 uint8x8_t val[3];
294 } uint8x8x3_t;
295
296 typedef struct uint8x16x3_t
297 {
298 uint8x16_t val[3];
299 } uint8x16x3_t;
300
301 typedef struct uint16x4x3_t
302 {
303 uint16x4_t val[3];
304 } uint16x4x3_t;
305
306 typedef struct uint16x8x3_t
307 {
308 uint16x8_t val[3];
309 } uint16x8x3_t;
310
311 typedef struct uint32x2x3_t
312 {
313 uint32x2_t val[3];
314 } uint32x2x3_t;
315
316 typedef struct uint32x4x3_t
317 {
318 uint32x4_t val[3];
319 } uint32x4x3_t;
320
321 typedef struct uint64x1x3_t
322 {
323 uint64x1_t val[3];
324 } uint64x1x3_t;
325
326 typedef struct uint64x2x3_t
327 {
328 uint64x2_t val[3];
329 } uint64x2x3_t;
330
331 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
332 typedef struct float16x4x3_t
333 {
334 float16x4_t val[3];
335 } float16x4x3_t;
336 #endif
337
338 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
339 typedef struct float16x8x3_t
340 {
341 float16x8_t val[3];
342 } float16x8x3_t;
343 #endif
344
345 typedef struct float32x2x3_t
346 {
347 float32x2_t val[3];
348 } float32x2x3_t;
349
350 typedef struct float32x4x3_t
351 {
352 float32x4_t val[3];
353 } float32x4x3_t;
354
355 typedef struct poly8x8x3_t
356 {
357 poly8x8_t val[3];
358 } poly8x8x3_t;
359
360 typedef struct poly8x16x3_t
361 {
362 poly8x16_t val[3];
363 } poly8x16x3_t;
364
365 typedef struct poly16x4x3_t
366 {
367 poly16x4_t val[3];
368 } poly16x4x3_t;
369
370 typedef struct poly16x8x3_t
371 {
372 poly16x8_t val[3];
373 } poly16x8x3_t;
374
375 #pragma GCC push_options
376 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
377 typedef struct poly64x1x3_t
378 {
379 poly64x1_t val[3];
380 } poly64x1x3_t;
381
382
383 typedef struct poly64x2x3_t
384 {
385 poly64x2_t val[3];
386 } poly64x2x3_t;
387 #pragma GCC pop_options
388
389
390 typedef struct int8x8x4_t
391 {
392 int8x8_t val[4];
393 } int8x8x4_t;
394
395 typedef struct int8x16x4_t
396 {
397 int8x16_t val[4];
398 } int8x16x4_t;
399
400 typedef struct int16x4x4_t
401 {
402 int16x4_t val[4];
403 } int16x4x4_t;
404
405 typedef struct int16x8x4_t
406 {
407 int16x8_t val[4];
408 } int16x8x4_t;
409
410 typedef struct int32x2x4_t
411 {
412 int32x2_t val[4];
413 } int32x2x4_t;
414
415 typedef struct int32x4x4_t
416 {
417 int32x4_t val[4];
418 } int32x4x4_t;
419
420 typedef struct int64x1x4_t
421 {
422 int64x1_t val[4];
423 } int64x1x4_t;
424
425 typedef struct int64x2x4_t
426 {
427 int64x2_t val[4];
428 } int64x2x4_t;
429
430 typedef struct uint8x8x4_t
431 {
432 uint8x8_t val[4];
433 } uint8x8x4_t;
434
435 typedef struct uint8x16x4_t
436 {
437 uint8x16_t val[4];
438 } uint8x16x4_t;
439
440 typedef struct uint16x4x4_t
441 {
442 uint16x4_t val[4];
443 } uint16x4x4_t;
444
445 typedef struct uint16x8x4_t
446 {
447 uint16x8_t val[4];
448 } uint16x8x4_t;
449
450 typedef struct uint32x2x4_t
451 {
452 uint32x2_t val[4];
453 } uint32x2x4_t;
454
455 typedef struct uint32x4x4_t
456 {
457 uint32x4_t val[4];
458 } uint32x4x4_t;
459
460 typedef struct uint64x1x4_t
461 {
462 uint64x1_t val[4];
463 } uint64x1x4_t;
464
465 typedef struct uint64x2x4_t
466 {
467 uint64x2_t val[4];
468 } uint64x2x4_t;
469
470 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
471 typedef struct float16x4x4_t
472 {
473 float16x4_t val[4];
474 } float16x4x4_t;
475 #endif
476
477 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
478 typedef struct float16x8x4_t
479 {
480 float16x8_t val[4];
481 } float16x8x4_t;
482 #endif
483
484 typedef struct float32x2x4_t
485 {
486 float32x2_t val[4];
487 } float32x2x4_t;
488
489 typedef struct float32x4x4_t
490 {
491 float32x4_t val[4];
492 } float32x4x4_t;
493
494 typedef struct poly8x8x4_t
495 {
496 poly8x8_t val[4];
497 } poly8x8x4_t;
498
499 typedef struct poly8x16x4_t
500 {
501 poly8x16_t val[4];
502 } poly8x16x4_t;
503
504 typedef struct poly16x4x4_t
505 {
506 poly16x4_t val[4];
507 } poly16x4x4_t;
508
509 typedef struct poly16x8x4_t
510 {
511 poly16x8_t val[4];
512 } poly16x8x4_t;
513
514 #pragma GCC push_options
515 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
516 typedef struct poly64x1x4_t
517 {
518 poly64x1_t val[4];
519 } poly64x1x4_t;
520
521
522 typedef struct poly64x2x4_t
523 {
524 poly64x2_t val[4];
525 } poly64x2x4_t;
526 #pragma GCC pop_options
527
528 /* vadd */
529 __extension__ extern __inline int8x8_t
530 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vadd_s8(int8x8_t __a,int8x8_t __b)531 vadd_s8 (int8x8_t __a, int8x8_t __b)
532 {
533 return __a + __b;
534 }
535
536 __extension__ extern __inline int16x4_t
537 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vadd_s16(int16x4_t __a,int16x4_t __b)538 vadd_s16 (int16x4_t __a, int16x4_t __b)
539 {
540 return __a + __b;
541 }
542
543 __extension__ extern __inline int32x2_t
544 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vadd_s32(int32x2_t __a,int32x2_t __b)545 vadd_s32 (int32x2_t __a, int32x2_t __b)
546 {
547 return __a + __b;
548 }
549
550 __extension__ extern __inline float32x2_t
551 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vadd_f32(float32x2_t __a,float32x2_t __b)552 vadd_f32 (float32x2_t __a, float32x2_t __b)
553 {
554 #ifdef __FAST_MATH__
555 return __a + __b;
556 #else
557 return (float32x2_t) __builtin_neon_vaddv2sf (__a, __b);
558 #endif
559 }
560
561 __extension__ extern __inline uint8x8_t
562 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vadd_u8(uint8x8_t __a,uint8x8_t __b)563 vadd_u8 (uint8x8_t __a, uint8x8_t __b)
564 {
565 return __a + __b;
566 }
567
568 __extension__ extern __inline uint16x4_t
569 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vadd_u16(uint16x4_t __a,uint16x4_t __b)570 vadd_u16 (uint16x4_t __a, uint16x4_t __b)
571 {
572 return __a + __b;
573 }
574
575 __extension__ extern __inline uint32x2_t
576 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vadd_u32(uint32x2_t __a,uint32x2_t __b)577 vadd_u32 (uint32x2_t __a, uint32x2_t __b)
578 {
579 return __a + __b;
580 }
581
582 __extension__ extern __inline int64x1_t
583 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vadd_s64(int64x1_t __a,int64x1_t __b)584 vadd_s64 (int64x1_t __a, int64x1_t __b)
585 {
586 return __a + __b;
587 }
588
589 __extension__ extern __inline uint64x1_t
590 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vadd_u64(uint64x1_t __a,uint64x1_t __b)591 vadd_u64 (uint64x1_t __a, uint64x1_t __b)
592 {
593 return __a + __b;
594 }
595
596 __extension__ extern __inline int8x16_t
597 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddq_s8(int8x16_t __a,int8x16_t __b)598 vaddq_s8 (int8x16_t __a, int8x16_t __b)
599 {
600 return __a + __b;
601 }
602
603 __extension__ extern __inline int16x8_t
604 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddq_s16(int16x8_t __a,int16x8_t __b)605 vaddq_s16 (int16x8_t __a, int16x8_t __b)
606 {
607 return __a + __b;
608 }
609
610 __extension__ extern __inline int32x4_t
611 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddq_s32(int32x4_t __a,int32x4_t __b)612 vaddq_s32 (int32x4_t __a, int32x4_t __b)
613 {
614 return __a + __b;
615 }
616
617 __extension__ extern __inline int64x2_t
618 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddq_s64(int64x2_t __a,int64x2_t __b)619 vaddq_s64 (int64x2_t __a, int64x2_t __b)
620 {
621 return __a + __b;
622 }
623
624 __extension__ extern __inline float32x4_t
625 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddq_f32(float32x4_t __a,float32x4_t __b)626 vaddq_f32 (float32x4_t __a, float32x4_t __b)
627 {
628 #ifdef __FAST_MATH__
629 return __a + __b;
630 #else
631 return (float32x4_t) __builtin_neon_vaddv4sf (__a, __b);
632 #endif
633 }
634
635 __extension__ extern __inline uint8x16_t
636 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddq_u8(uint8x16_t __a,uint8x16_t __b)637 vaddq_u8 (uint8x16_t __a, uint8x16_t __b)
638 {
639 return __a + __b;
640 }
641
642 __extension__ extern __inline uint16x8_t
643 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddq_u16(uint16x8_t __a,uint16x8_t __b)644 vaddq_u16 (uint16x8_t __a, uint16x8_t __b)
645 {
646 return __a + __b;
647 }
648
649 __extension__ extern __inline uint32x4_t
650 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddq_u32(uint32x4_t __a,uint32x4_t __b)651 vaddq_u32 (uint32x4_t __a, uint32x4_t __b)
652 {
653 return __a + __b;
654 }
655
656 __extension__ extern __inline uint64x2_t
657 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddq_u64(uint64x2_t __a,uint64x2_t __b)658 vaddq_u64 (uint64x2_t __a, uint64x2_t __b)
659 {
660 return __a + __b;
661 }
662
663 __extension__ extern __inline int16x8_t
664 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddl_s8(int8x8_t __a,int8x8_t __b)665 vaddl_s8 (int8x8_t __a, int8x8_t __b)
666 {
667 return (int16x8_t)__builtin_neon_vaddlsv8qi (__a, __b);
668 }
669
670 __extension__ extern __inline int32x4_t
671 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddl_s16(int16x4_t __a,int16x4_t __b)672 vaddl_s16 (int16x4_t __a, int16x4_t __b)
673 {
674 return (int32x4_t)__builtin_neon_vaddlsv4hi (__a, __b);
675 }
676
677 __extension__ extern __inline int64x2_t
678 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddl_s32(int32x2_t __a,int32x2_t __b)679 vaddl_s32 (int32x2_t __a, int32x2_t __b)
680 {
681 return (int64x2_t)__builtin_neon_vaddlsv2si (__a, __b);
682 }
683
684 __extension__ extern __inline uint16x8_t
685 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddl_u8(uint8x8_t __a,uint8x8_t __b)686 vaddl_u8 (uint8x8_t __a, uint8x8_t __b)
687 {
688 return (uint16x8_t)__builtin_neon_vaddluv8qi ((int8x8_t) __a, (int8x8_t) __b);
689 }
690
691 __extension__ extern __inline uint32x4_t
692 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddl_u16(uint16x4_t __a,uint16x4_t __b)693 vaddl_u16 (uint16x4_t __a, uint16x4_t __b)
694 {
695 return (uint32x4_t)__builtin_neon_vaddluv4hi ((int16x4_t) __a, (int16x4_t) __b);
696 }
697
698 __extension__ extern __inline uint64x2_t
699 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddl_u32(uint32x2_t __a,uint32x2_t __b)700 vaddl_u32 (uint32x2_t __a, uint32x2_t __b)
701 {
702 return (uint64x2_t)__builtin_neon_vaddluv2si ((int32x2_t) __a, (int32x2_t) __b);
703 }
704
705 __extension__ extern __inline int16x8_t
706 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddw_s8(int16x8_t __a,int8x8_t __b)707 vaddw_s8 (int16x8_t __a, int8x8_t __b)
708 {
709 return (int16x8_t)__builtin_neon_vaddwsv8qi (__a, __b);
710 }
711
712 __extension__ extern __inline int32x4_t
713 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddw_s16(int32x4_t __a,int16x4_t __b)714 vaddw_s16 (int32x4_t __a, int16x4_t __b)
715 {
716 return (int32x4_t)__builtin_neon_vaddwsv4hi (__a, __b);
717 }
718
719 __extension__ extern __inline int64x2_t
720 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddw_s32(int64x2_t __a,int32x2_t __b)721 vaddw_s32 (int64x2_t __a, int32x2_t __b)
722 {
723 return (int64x2_t)__builtin_neon_vaddwsv2si (__a, __b);
724 }
725
726 __extension__ extern __inline uint16x8_t
727 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddw_u8(uint16x8_t __a,uint8x8_t __b)728 vaddw_u8 (uint16x8_t __a, uint8x8_t __b)
729 {
730 return (uint16x8_t)__builtin_neon_vaddwuv8qi ((int16x8_t) __a, (int8x8_t) __b);
731 }
732
733 __extension__ extern __inline uint32x4_t
734 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddw_u16(uint32x4_t __a,uint16x4_t __b)735 vaddw_u16 (uint32x4_t __a, uint16x4_t __b)
736 {
737 return (uint32x4_t)__builtin_neon_vaddwuv4hi ((int32x4_t) __a, (int16x4_t) __b);
738 }
739
740 __extension__ extern __inline uint64x2_t
741 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddw_u32(uint64x2_t __a,uint32x2_t __b)742 vaddw_u32 (uint64x2_t __a, uint32x2_t __b)
743 {
744 return (uint64x2_t)__builtin_neon_vaddwuv2si ((int64x2_t) __a, (int32x2_t) __b);
745 }
746
747 __extension__ extern __inline int8x8_t
748 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhadd_s8(int8x8_t __a,int8x8_t __b)749 vhadd_s8 (int8x8_t __a, int8x8_t __b)
750 {
751 return (int8x8_t)__builtin_neon_vhaddsv8qi (__a, __b);
752 }
753
754 __extension__ extern __inline int16x4_t
755 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhadd_s16(int16x4_t __a,int16x4_t __b)756 vhadd_s16 (int16x4_t __a, int16x4_t __b)
757 {
758 return (int16x4_t)__builtin_neon_vhaddsv4hi (__a, __b);
759 }
760
761 __extension__ extern __inline int32x2_t
762 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhadd_s32(int32x2_t __a,int32x2_t __b)763 vhadd_s32 (int32x2_t __a, int32x2_t __b)
764 {
765 return (int32x2_t)__builtin_neon_vhaddsv2si (__a, __b);
766 }
767
768 __extension__ extern __inline uint8x8_t
769 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhadd_u8(uint8x8_t __a,uint8x8_t __b)770 vhadd_u8 (uint8x8_t __a, uint8x8_t __b)
771 {
772 return (uint8x8_t)__builtin_neon_vhadduv8qi ((int8x8_t) __a, (int8x8_t) __b);
773 }
774
775 __extension__ extern __inline uint16x4_t
776 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhadd_u16(uint16x4_t __a,uint16x4_t __b)777 vhadd_u16 (uint16x4_t __a, uint16x4_t __b)
778 {
779 return (uint16x4_t)__builtin_neon_vhadduv4hi ((int16x4_t) __a, (int16x4_t) __b);
780 }
781
782 __extension__ extern __inline uint32x2_t
783 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhadd_u32(uint32x2_t __a,uint32x2_t __b)784 vhadd_u32 (uint32x2_t __a, uint32x2_t __b)
785 {
786 return (uint32x2_t)__builtin_neon_vhadduv2si ((int32x2_t) __a, (int32x2_t) __b);
787 }
788
789 __extension__ extern __inline int8x16_t
790 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhaddq_s8(int8x16_t __a,int8x16_t __b)791 vhaddq_s8 (int8x16_t __a, int8x16_t __b)
792 {
793 return (int8x16_t)__builtin_neon_vhaddsv16qi (__a, __b);
794 }
795
796 __extension__ extern __inline int16x8_t
797 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhaddq_s16(int16x8_t __a,int16x8_t __b)798 vhaddq_s16 (int16x8_t __a, int16x8_t __b)
799 {
800 return (int16x8_t)__builtin_neon_vhaddsv8hi (__a, __b);
801 }
802
803 __extension__ extern __inline int32x4_t
804 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhaddq_s32(int32x4_t __a,int32x4_t __b)805 vhaddq_s32 (int32x4_t __a, int32x4_t __b)
806 {
807 return (int32x4_t)__builtin_neon_vhaddsv4si (__a, __b);
808 }
809
810 __extension__ extern __inline uint8x16_t
811 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhaddq_u8(uint8x16_t __a,uint8x16_t __b)812 vhaddq_u8 (uint8x16_t __a, uint8x16_t __b)
813 {
814 return (uint8x16_t)__builtin_neon_vhadduv16qi ((int8x16_t) __a, (int8x16_t) __b);
815 }
816
817 __extension__ extern __inline uint16x8_t
818 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhaddq_u16(uint16x8_t __a,uint16x8_t __b)819 vhaddq_u16 (uint16x8_t __a, uint16x8_t __b)
820 {
821 return (uint16x8_t)__builtin_neon_vhadduv8hi ((int16x8_t) __a, (int16x8_t) __b);
822 }
823
824 __extension__ extern __inline uint32x4_t
825 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhaddq_u32(uint32x4_t __a,uint32x4_t __b)826 vhaddq_u32 (uint32x4_t __a, uint32x4_t __b)
827 {
828 return (uint32x4_t)__builtin_neon_vhadduv4si ((int32x4_t) __a, (int32x4_t) __b);
829 }
830
831 __extension__ extern __inline int8x8_t
832 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrhadd_s8(int8x8_t __a,int8x8_t __b)833 vrhadd_s8 (int8x8_t __a, int8x8_t __b)
834 {
835 return (int8x8_t)__builtin_neon_vrhaddsv8qi (__a, __b);
836 }
837
838 __extension__ extern __inline int16x4_t
839 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrhadd_s16(int16x4_t __a,int16x4_t __b)840 vrhadd_s16 (int16x4_t __a, int16x4_t __b)
841 {
842 return (int16x4_t)__builtin_neon_vrhaddsv4hi (__a, __b);
843 }
844
845 __extension__ extern __inline int32x2_t
846 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrhadd_s32(int32x2_t __a,int32x2_t __b)847 vrhadd_s32 (int32x2_t __a, int32x2_t __b)
848 {
849 return (int32x2_t)__builtin_neon_vrhaddsv2si (__a, __b);
850 }
851
852 __extension__ extern __inline uint8x8_t
853 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrhadd_u8(uint8x8_t __a,uint8x8_t __b)854 vrhadd_u8 (uint8x8_t __a, uint8x8_t __b)
855 {
856 return (uint8x8_t)__builtin_neon_vrhadduv8qi ((int8x8_t) __a, (int8x8_t) __b);
857 }
858
859 __extension__ extern __inline uint16x4_t
860 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrhadd_u16(uint16x4_t __a,uint16x4_t __b)861 vrhadd_u16 (uint16x4_t __a, uint16x4_t __b)
862 {
863 return (uint16x4_t)__builtin_neon_vrhadduv4hi ((int16x4_t) __a, (int16x4_t) __b);
864 }
865
866 __extension__ extern __inline uint32x2_t
867 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrhadd_u32(uint32x2_t __a,uint32x2_t __b)868 vrhadd_u32 (uint32x2_t __a, uint32x2_t __b)
869 {
870 return (uint32x2_t)__builtin_neon_vrhadduv2si ((int32x2_t) __a, (int32x2_t) __b);
871 }
872
873 __extension__ extern __inline int8x16_t
874 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrhaddq_s8(int8x16_t __a,int8x16_t __b)875 vrhaddq_s8 (int8x16_t __a, int8x16_t __b)
876 {
877 return (int8x16_t)__builtin_neon_vrhaddsv16qi (__a, __b);
878 }
879
880 __extension__ extern __inline int16x8_t
881 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrhaddq_s16(int16x8_t __a,int16x8_t __b)882 vrhaddq_s16 (int16x8_t __a, int16x8_t __b)
883 {
884 return (int16x8_t)__builtin_neon_vrhaddsv8hi (__a, __b);
885 }
886
887 __extension__ extern __inline int32x4_t
888 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrhaddq_s32(int32x4_t __a,int32x4_t __b)889 vrhaddq_s32 (int32x4_t __a, int32x4_t __b)
890 {
891 return (int32x4_t)__builtin_neon_vrhaddsv4si (__a, __b);
892 }
893
894 __extension__ extern __inline uint8x16_t
895 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrhaddq_u8(uint8x16_t __a,uint8x16_t __b)896 vrhaddq_u8 (uint8x16_t __a, uint8x16_t __b)
897 {
898 return (uint8x16_t)__builtin_neon_vrhadduv16qi ((int8x16_t) __a, (int8x16_t) __b);
899 }
900
901 __extension__ extern __inline uint16x8_t
902 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrhaddq_u16(uint16x8_t __a,uint16x8_t __b)903 vrhaddq_u16 (uint16x8_t __a, uint16x8_t __b)
904 {
905 return (uint16x8_t)__builtin_neon_vrhadduv8hi ((int16x8_t) __a, (int16x8_t) __b);
906 }
907
908 __extension__ extern __inline uint32x4_t
909 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrhaddq_u32(uint32x4_t __a,uint32x4_t __b)910 vrhaddq_u32 (uint32x4_t __a, uint32x4_t __b)
911 {
912 return (uint32x4_t)__builtin_neon_vrhadduv4si ((int32x4_t) __a, (int32x4_t) __b);
913 }
914
915 __extension__ extern __inline int8x8_t
916 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqadd_s8(int8x8_t __a,int8x8_t __b)917 vqadd_s8 (int8x8_t __a, int8x8_t __b)
918 {
919 return (int8x8_t)__builtin_neon_vqaddsv8qi (__a, __b);
920 }
921
922 __extension__ extern __inline int16x4_t
923 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqadd_s16(int16x4_t __a,int16x4_t __b)924 vqadd_s16 (int16x4_t __a, int16x4_t __b)
925 {
926 return (int16x4_t)__builtin_neon_vqaddsv4hi (__a, __b);
927 }
928
929 __extension__ extern __inline int32x2_t
930 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqadd_s32(int32x2_t __a,int32x2_t __b)931 vqadd_s32 (int32x2_t __a, int32x2_t __b)
932 {
933 return (int32x2_t)__builtin_neon_vqaddsv2si (__a, __b);
934 }
935
936 __extension__ extern __inline int64x1_t
937 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqadd_s64(int64x1_t __a,int64x1_t __b)938 vqadd_s64 (int64x1_t __a, int64x1_t __b)
939 {
940 return (int64x1_t)__builtin_neon_vqaddsdi (__a, __b);
941 }
942
943 __extension__ extern __inline uint8x8_t
944 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqadd_u8(uint8x8_t __a,uint8x8_t __b)945 vqadd_u8 (uint8x8_t __a, uint8x8_t __b)
946 {
947 return (uint8x8_t)__builtin_neon_vqadduv8qi ((int8x8_t) __a, (int8x8_t) __b);
948 }
949
950 __extension__ extern __inline uint16x4_t
951 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqadd_u16(uint16x4_t __a,uint16x4_t __b)952 vqadd_u16 (uint16x4_t __a, uint16x4_t __b)
953 {
954 return (uint16x4_t)__builtin_neon_vqadduv4hi ((int16x4_t) __a, (int16x4_t) __b);
955 }
956
957 __extension__ extern __inline uint32x2_t
958 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqadd_u32(uint32x2_t __a,uint32x2_t __b)959 vqadd_u32 (uint32x2_t __a, uint32x2_t __b)
960 {
961 return (uint32x2_t)__builtin_neon_vqadduv2si ((int32x2_t) __a, (int32x2_t) __b);
962 }
963
964 __extension__ extern __inline uint64x1_t
965 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqadd_u64(uint64x1_t __a,uint64x1_t __b)966 vqadd_u64 (uint64x1_t __a, uint64x1_t __b)
967 {
968 return (uint64x1_t)__builtin_neon_vqaddudi ((int64x1_t) __a, (int64x1_t) __b);
969 }
970
971 __extension__ extern __inline int8x16_t
972 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqaddq_s8(int8x16_t __a,int8x16_t __b)973 vqaddq_s8 (int8x16_t __a, int8x16_t __b)
974 {
975 return (int8x16_t)__builtin_neon_vqaddsv16qi (__a, __b);
976 }
977
978 __extension__ extern __inline int16x8_t
979 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqaddq_s16(int16x8_t __a,int16x8_t __b)980 vqaddq_s16 (int16x8_t __a, int16x8_t __b)
981 {
982 return (int16x8_t)__builtin_neon_vqaddsv8hi (__a, __b);
983 }
984
985 __extension__ extern __inline int32x4_t
986 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqaddq_s32(int32x4_t __a,int32x4_t __b)987 vqaddq_s32 (int32x4_t __a, int32x4_t __b)
988 {
989 return (int32x4_t)__builtin_neon_vqaddsv4si (__a, __b);
990 }
991
992 __extension__ extern __inline int64x2_t
993 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqaddq_s64(int64x2_t __a,int64x2_t __b)994 vqaddq_s64 (int64x2_t __a, int64x2_t __b)
995 {
996 return (int64x2_t)__builtin_neon_vqaddsv2di (__a, __b);
997 }
998
999 __extension__ extern __inline uint8x16_t
1000 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqaddq_u8(uint8x16_t __a,uint8x16_t __b)1001 vqaddq_u8 (uint8x16_t __a, uint8x16_t __b)
1002 {
1003 return (uint8x16_t)__builtin_neon_vqadduv16qi ((int8x16_t) __a, (int8x16_t) __b);
1004 }
1005
1006 __extension__ extern __inline uint16x8_t
1007 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqaddq_u16(uint16x8_t __a,uint16x8_t __b)1008 vqaddq_u16 (uint16x8_t __a, uint16x8_t __b)
1009 {
1010 return (uint16x8_t)__builtin_neon_vqadduv8hi ((int16x8_t) __a, (int16x8_t) __b);
1011 }
1012
1013 __extension__ extern __inline uint32x4_t
1014 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqaddq_u32(uint32x4_t __a,uint32x4_t __b)1015 vqaddq_u32 (uint32x4_t __a, uint32x4_t __b)
1016 {
1017 return (uint32x4_t)__builtin_neon_vqadduv4si ((int32x4_t) __a, (int32x4_t) __b);
1018 }
1019
1020 __extension__ extern __inline uint64x2_t
1021 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqaddq_u64(uint64x2_t __a,uint64x2_t __b)1022 vqaddq_u64 (uint64x2_t __a, uint64x2_t __b)
1023 {
1024 return (uint64x2_t)__builtin_neon_vqadduv2di ((int64x2_t) __a, (int64x2_t) __b);
1025 }
1026
1027 __extension__ extern __inline int8x8_t
1028 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddhn_s16(int16x8_t __a,int16x8_t __b)1029 vaddhn_s16 (int16x8_t __a, int16x8_t __b)
1030 {
1031 return (int8x8_t)__builtin_neon_vaddhnv8hi (__a, __b);
1032 }
1033
1034 __extension__ extern __inline int16x4_t
1035 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddhn_s32(int32x4_t __a,int32x4_t __b)1036 vaddhn_s32 (int32x4_t __a, int32x4_t __b)
1037 {
1038 return (int16x4_t)__builtin_neon_vaddhnv4si (__a, __b);
1039 }
1040
1041 __extension__ extern __inline int32x2_t
1042 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddhn_s64(int64x2_t __a,int64x2_t __b)1043 vaddhn_s64 (int64x2_t __a, int64x2_t __b)
1044 {
1045 return (int32x2_t)__builtin_neon_vaddhnv2di (__a, __b);
1046 }
1047
1048 __extension__ extern __inline uint8x8_t
1049 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddhn_u16(uint16x8_t __a,uint16x8_t __b)1050 vaddhn_u16 (uint16x8_t __a, uint16x8_t __b)
1051 {
1052 return (uint8x8_t)__builtin_neon_vaddhnv8hi ((int16x8_t) __a, (int16x8_t) __b);
1053 }
1054
1055 __extension__ extern __inline uint16x4_t
1056 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddhn_u32(uint32x4_t __a,uint32x4_t __b)1057 vaddhn_u32 (uint32x4_t __a, uint32x4_t __b)
1058 {
1059 return (uint16x4_t)__builtin_neon_vaddhnv4si ((int32x4_t) __a, (int32x4_t) __b);
1060 }
1061
1062 __extension__ extern __inline uint32x2_t
1063 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddhn_u64(uint64x2_t __a,uint64x2_t __b)1064 vaddhn_u64 (uint64x2_t __a, uint64x2_t __b)
1065 {
1066 return (uint32x2_t)__builtin_neon_vaddhnv2di ((int64x2_t) __a, (int64x2_t) __b);
1067 }
1068
1069 __extension__ extern __inline int8x8_t
1070 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vraddhn_s16(int16x8_t __a,int16x8_t __b)1071 vraddhn_s16 (int16x8_t __a, int16x8_t __b)
1072 {
1073 return (int8x8_t)__builtin_neon_vraddhnv8hi (__a, __b);
1074 }
1075
1076 __extension__ extern __inline int16x4_t
1077 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vraddhn_s32(int32x4_t __a,int32x4_t __b)1078 vraddhn_s32 (int32x4_t __a, int32x4_t __b)
1079 {
1080 return (int16x4_t)__builtin_neon_vraddhnv4si (__a, __b);
1081 }
1082
1083 __extension__ extern __inline int32x2_t
1084 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vraddhn_s64(int64x2_t __a,int64x2_t __b)1085 vraddhn_s64 (int64x2_t __a, int64x2_t __b)
1086 {
1087 return (int32x2_t)__builtin_neon_vraddhnv2di (__a, __b);
1088 }
1089
1090 __extension__ extern __inline uint8x8_t
1091 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vraddhn_u16(uint16x8_t __a,uint16x8_t __b)1092 vraddhn_u16 (uint16x8_t __a, uint16x8_t __b)
1093 {
1094 return (uint8x8_t)__builtin_neon_vraddhnv8hi ((int16x8_t) __a, (int16x8_t) __b);
1095 }
1096
1097 __extension__ extern __inline uint16x4_t
1098 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vraddhn_u32(uint32x4_t __a,uint32x4_t __b)1099 vraddhn_u32 (uint32x4_t __a, uint32x4_t __b)
1100 {
1101 return (uint16x4_t)__builtin_neon_vraddhnv4si ((int32x4_t) __a, (int32x4_t) __b);
1102 }
1103
1104 __extension__ extern __inline uint32x2_t
1105 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vraddhn_u64(uint64x2_t __a,uint64x2_t __b)1106 vraddhn_u64 (uint64x2_t __a, uint64x2_t __b)
1107 {
1108 return (uint32x2_t)__builtin_neon_vraddhnv2di ((int64x2_t) __a, (int64x2_t) __b);
1109 }
1110
1111 __extension__ extern __inline int8x8_t
1112 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_s8(int8x8_t __a,int8x8_t __b)1113 vmul_s8 (int8x8_t __a, int8x8_t __b)
1114 {
1115 return __a * __b;
1116 }
1117
1118 __extension__ extern __inline int16x4_t
1119 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_s16(int16x4_t __a,int16x4_t __b)1120 vmul_s16 (int16x4_t __a, int16x4_t __b)
1121 {
1122 return __a * __b;
1123 }
1124
1125 __extension__ extern __inline int32x2_t
1126 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_s32(int32x2_t __a,int32x2_t __b)1127 vmul_s32 (int32x2_t __a, int32x2_t __b)
1128 {
1129 return __a * __b;
1130 }
1131
1132 __extension__ extern __inline float32x2_t
1133 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_f32(float32x2_t __a,float32x2_t __b)1134 vmul_f32 (float32x2_t __a, float32x2_t __b)
1135 {
1136 #ifdef __FAST_MATH__
1137 return __a * __b;
1138 #else
1139 return (float32x2_t) __builtin_neon_vmulfv2sf (__a, __b);
1140 #endif
1141
1142 }
1143
1144 __extension__ extern __inline uint8x8_t
1145 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_u8(uint8x8_t __a,uint8x8_t __b)1146 vmul_u8 (uint8x8_t __a, uint8x8_t __b)
1147 {
1148 return __a * __b;
1149 }
1150
1151 __extension__ extern __inline uint16x4_t
1152 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_u16(uint16x4_t __a,uint16x4_t __b)1153 vmul_u16 (uint16x4_t __a, uint16x4_t __b)
1154 {
1155 return __a * __b;
1156 }
1157
1158 __extension__ extern __inline uint32x2_t
1159 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_u32(uint32x2_t __a,uint32x2_t __b)1160 vmul_u32 (uint32x2_t __a, uint32x2_t __b)
1161 {
1162 return __a * __b;
1163 }
1164
1165 __extension__ extern __inline int8x16_t
1166 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_s8(int8x16_t __a,int8x16_t __b)1167 vmulq_s8 (int8x16_t __a, int8x16_t __b)
1168 {
1169 return __a * __b;
1170 }
1171
1172 __extension__ extern __inline int16x8_t
1173 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_s16(int16x8_t __a,int16x8_t __b)1174 vmulq_s16 (int16x8_t __a, int16x8_t __b)
1175 {
1176 return __a * __b;
1177 }
1178
1179 __extension__ extern __inline int32x4_t
1180 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_s32(int32x4_t __a,int32x4_t __b)1181 vmulq_s32 (int32x4_t __a, int32x4_t __b)
1182 {
1183 return __a * __b;
1184 }
1185
1186 __extension__ extern __inline float32x4_t
1187 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_f32(float32x4_t __a,float32x4_t __b)1188 vmulq_f32 (float32x4_t __a, float32x4_t __b)
1189 {
1190 #ifdef __FAST_MATH__
1191 return __a * __b;
1192 #else
1193 return (float32x4_t) __builtin_neon_vmulfv4sf (__a, __b);
1194 #endif
1195 }
1196
1197 __extension__ extern __inline uint8x16_t
1198 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_u8(uint8x16_t __a,uint8x16_t __b)1199 vmulq_u8 (uint8x16_t __a, uint8x16_t __b)
1200 {
1201 return __a * __b;
1202 }
1203
1204 __extension__ extern __inline uint16x8_t
1205 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_u16(uint16x8_t __a,uint16x8_t __b)1206 vmulq_u16 (uint16x8_t __a, uint16x8_t __b)
1207 {
1208 return __a * __b;
1209 }
1210
1211 __extension__ extern __inline uint32x4_t
1212 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_u32(uint32x4_t __a,uint32x4_t __b)1213 vmulq_u32 (uint32x4_t __a, uint32x4_t __b)
1214 {
1215 return __a * __b;
1216 }
1217
1218 __extension__ extern __inline poly8x8_t
1219 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_p8(poly8x8_t __a,poly8x8_t __b)1220 vmul_p8 (poly8x8_t __a, poly8x8_t __b)
1221 {
1222 return (poly8x8_t)__builtin_neon_vmulpv8qi ((int8x8_t) __a, (int8x8_t) __b);
1223 }
1224
1225 __extension__ extern __inline poly8x16_t
1226 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_p8(poly8x16_t __a,poly8x16_t __b)1227 vmulq_p8 (poly8x16_t __a, poly8x16_t __b)
1228 {
1229 return (poly8x16_t)__builtin_neon_vmulpv16qi ((int8x16_t) __a, (int8x16_t) __b);
1230 }
1231
1232 __extension__ extern __inline int16x4_t
1233 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulh_s16(int16x4_t __a,int16x4_t __b)1234 vqdmulh_s16 (int16x4_t __a, int16x4_t __b)
1235 {
1236 return (int16x4_t)__builtin_neon_vqdmulhv4hi (__a, __b);
1237 }
1238
1239 __extension__ extern __inline int32x2_t
1240 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulh_s32(int32x2_t __a,int32x2_t __b)1241 vqdmulh_s32 (int32x2_t __a, int32x2_t __b)
1242 {
1243 return (int32x2_t)__builtin_neon_vqdmulhv2si (__a, __b);
1244 }
1245
1246 __extension__ extern __inline int16x8_t
1247 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulhq_s16(int16x8_t __a,int16x8_t __b)1248 vqdmulhq_s16 (int16x8_t __a, int16x8_t __b)
1249 {
1250 return (int16x8_t)__builtin_neon_vqdmulhv8hi (__a, __b);
1251 }
1252
1253 __extension__ extern __inline int32x4_t
1254 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulhq_s32(int32x4_t __a,int32x4_t __b)1255 vqdmulhq_s32 (int32x4_t __a, int32x4_t __b)
1256 {
1257 return (int32x4_t)__builtin_neon_vqdmulhv4si (__a, __b);
1258 }
1259
1260 __extension__ extern __inline int16x4_t
1261 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulh_s16(int16x4_t __a,int16x4_t __b)1262 vqrdmulh_s16 (int16x4_t __a, int16x4_t __b)
1263 {
1264 return (int16x4_t)__builtin_neon_vqrdmulhv4hi (__a, __b);
1265 }
1266
1267 __extension__ extern __inline int32x2_t
1268 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulh_s32(int32x2_t __a,int32x2_t __b)1269 vqrdmulh_s32 (int32x2_t __a, int32x2_t __b)
1270 {
1271 return (int32x2_t)__builtin_neon_vqrdmulhv2si (__a, __b);
1272 }
1273
1274 __extension__ extern __inline int16x8_t
1275 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulhq_s16(int16x8_t __a,int16x8_t __b)1276 vqrdmulhq_s16 (int16x8_t __a, int16x8_t __b)
1277 {
1278 return (int16x8_t)__builtin_neon_vqrdmulhv8hi (__a, __b);
1279 }
1280
1281 __extension__ extern __inline int32x4_t
1282 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulhq_s32(int32x4_t __a,int32x4_t __b)1283 vqrdmulhq_s32 (int32x4_t __a, int32x4_t __b)
1284 {
1285 return (int32x4_t)__builtin_neon_vqrdmulhv4si (__a, __b);
1286 }
1287
1288 #ifdef __ARM_FEATURE_QRDMX
1289 __extension__ extern __inline int16x4_t
1290 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlah_s16(int16x4_t __a,int16x4_t __b,int16x4_t __c)1291 vqrdmlah_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c)
1292 {
1293 return (int16x4_t)__builtin_neon_vqrdmlahv4hi (__a, __b, __c);
1294 }
1295
1296 __extension__ extern __inline int32x2_t
1297 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlah_s32(int32x2_t __a,int32x2_t __b,int32x2_t __c)1298 vqrdmlah_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c)
1299 {
1300 return (int32x2_t)__builtin_neon_vqrdmlahv2si (__a, __b, __c);
1301 }
1302
1303 __extension__ extern __inline int16x8_t
1304 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlahq_s16(int16x8_t __a,int16x8_t __b,int16x8_t __c)1305 vqrdmlahq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
1306 {
1307 return (int16x8_t)__builtin_neon_vqrdmlahv8hi (__a, __b, __c);
1308 }
1309
1310 __extension__ extern __inline int32x4_t
1311 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlahq_s32(int32x4_t __a,int32x4_t __b,int32x4_t __c)1312 vqrdmlahq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
1313 {
1314 return (int32x4_t)__builtin_neon_vqrdmlahv4si (__a, __b, __c);
1315 }
1316
1317 __extension__ extern __inline int16x4_t
1318 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlsh_s16(int16x4_t __a,int16x4_t __b,int16x4_t __c)1319 vqrdmlsh_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c)
1320 {
1321 return (int16x4_t)__builtin_neon_vqrdmlshv4hi (__a, __b, __c);
1322 }
1323
1324 __extension__ extern __inline int32x2_t
1325 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlsh_s32(int32x2_t __a,int32x2_t __b,int32x2_t __c)1326 vqrdmlsh_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c)
1327 {
1328 return (int32x2_t)__builtin_neon_vqrdmlshv2si (__a, __b, __c);
1329 }
1330
1331 __extension__ extern __inline int16x8_t
1332 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlshq_s16(int16x8_t __a,int16x8_t __b,int16x8_t __c)1333 vqrdmlshq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
1334 {
1335 return (int16x8_t)__builtin_neon_vqrdmlshv8hi (__a, __b, __c);
1336 }
1337
1338 __extension__ extern __inline int32x4_t
1339 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlshq_s32(int32x4_t __a,int32x4_t __b,int32x4_t __c)1340 vqrdmlshq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
1341 {
1342 return (int32x4_t)__builtin_neon_vqrdmlshv4si (__a, __b, __c);
1343 }
1344 #endif
1345
1346 __extension__ extern __inline int16x8_t
1347 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_s8(int8x8_t __a,int8x8_t __b)1348 vmull_s8 (int8x8_t __a, int8x8_t __b)
1349 {
1350 return (int16x8_t)__builtin_neon_vmullsv8qi (__a, __b);
1351 }
1352
1353 __extension__ extern __inline int32x4_t
1354 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_s16(int16x4_t __a,int16x4_t __b)1355 vmull_s16 (int16x4_t __a, int16x4_t __b)
1356 {
1357 return (int32x4_t)__builtin_neon_vmullsv4hi (__a, __b);
1358 }
1359
1360 __extension__ extern __inline int64x2_t
1361 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_s32(int32x2_t __a,int32x2_t __b)1362 vmull_s32 (int32x2_t __a, int32x2_t __b)
1363 {
1364 return (int64x2_t)__builtin_neon_vmullsv2si (__a, __b);
1365 }
1366
1367 __extension__ extern __inline uint16x8_t
1368 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_u8(uint8x8_t __a,uint8x8_t __b)1369 vmull_u8 (uint8x8_t __a, uint8x8_t __b)
1370 {
1371 return (uint16x8_t)__builtin_neon_vmulluv8qi ((int8x8_t) __a, (int8x8_t) __b);
1372 }
1373
1374 __extension__ extern __inline uint32x4_t
1375 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_u16(uint16x4_t __a,uint16x4_t __b)1376 vmull_u16 (uint16x4_t __a, uint16x4_t __b)
1377 {
1378 return (uint32x4_t)__builtin_neon_vmulluv4hi ((int16x4_t) __a, (int16x4_t) __b);
1379 }
1380
1381 __extension__ extern __inline uint64x2_t
1382 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_u32(uint32x2_t __a,uint32x2_t __b)1383 vmull_u32 (uint32x2_t __a, uint32x2_t __b)
1384 {
1385 return (uint64x2_t)__builtin_neon_vmulluv2si ((int32x2_t) __a, (int32x2_t) __b);
1386 }
1387
1388 __extension__ extern __inline poly16x8_t
1389 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_p8(poly8x8_t __a,poly8x8_t __b)1390 vmull_p8 (poly8x8_t __a, poly8x8_t __b)
1391 {
1392 return (poly16x8_t)__builtin_neon_vmullpv8qi ((int8x8_t) __a, (int8x8_t) __b);
1393 }
1394
1395 __extension__ extern __inline int32x4_t
1396 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmull_s16(int16x4_t __a,int16x4_t __b)1397 vqdmull_s16 (int16x4_t __a, int16x4_t __b)
1398 {
1399 return (int32x4_t)__builtin_neon_vqdmullv4hi (__a, __b);
1400 }
1401
1402 __extension__ extern __inline int64x2_t
1403 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmull_s32(int32x2_t __a,int32x2_t __b)1404 vqdmull_s32 (int32x2_t __a, int32x2_t __b)
1405 {
1406 return (int64x2_t)__builtin_neon_vqdmullv2si (__a, __b);
1407 }
1408
1409 __extension__ extern __inline int8x8_t
1410 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_s8(int8x8_t __a,int8x8_t __b,int8x8_t __c)1411 vmla_s8 (int8x8_t __a, int8x8_t __b, int8x8_t __c)
1412 {
1413 return (int8x8_t)__builtin_neon_vmlav8qi (__a, __b, __c);
1414 }
1415
1416 __extension__ extern __inline int16x4_t
1417 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_s16(int16x4_t __a,int16x4_t __b,int16x4_t __c)1418 vmla_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c)
1419 {
1420 return (int16x4_t)__builtin_neon_vmlav4hi (__a, __b, __c);
1421 }
1422
1423 __extension__ extern __inline int32x2_t
1424 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_s32(int32x2_t __a,int32x2_t __b,int32x2_t __c)1425 vmla_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c)
1426 {
1427 return (int32x2_t)__builtin_neon_vmlav2si (__a, __b, __c);
1428 }
1429
1430 __extension__ extern __inline float32x2_t
1431 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_f32(float32x2_t __a,float32x2_t __b,float32x2_t __c)1432 vmla_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c)
1433 {
1434 return (float32x2_t)__builtin_neon_vmlav2sf (__a, __b, __c);
1435 }
1436
1437 __extension__ extern __inline uint8x8_t
1438 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_u8(uint8x8_t __a,uint8x8_t __b,uint8x8_t __c)1439 vmla_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c)
1440 {
1441 return (uint8x8_t)__builtin_neon_vmlav8qi ((int8x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
1442 }
1443
1444 __extension__ extern __inline uint16x4_t
1445 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_u16(uint16x4_t __a,uint16x4_t __b,uint16x4_t __c)1446 vmla_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c)
1447 {
1448 return (uint16x4_t)__builtin_neon_vmlav4hi ((int16x4_t) __a, (int16x4_t) __b, (int16x4_t) __c);
1449 }
1450
1451 __extension__ extern __inline uint32x2_t
1452 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_u32(uint32x2_t __a,uint32x2_t __b,uint32x2_t __c)1453 vmla_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c)
1454 {
1455 return (uint32x2_t)__builtin_neon_vmlav2si ((int32x2_t) __a, (int32x2_t) __b, (int32x2_t) __c);
1456 }
1457
1458 __extension__ extern __inline int8x16_t
1459 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_s8(int8x16_t __a,int8x16_t __b,int8x16_t __c)1460 vmlaq_s8 (int8x16_t __a, int8x16_t __b, int8x16_t __c)
1461 {
1462 return (int8x16_t)__builtin_neon_vmlav16qi (__a, __b, __c);
1463 }
1464
1465 __extension__ extern __inline int16x8_t
1466 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_s16(int16x8_t __a,int16x8_t __b,int16x8_t __c)1467 vmlaq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
1468 {
1469 return (int16x8_t)__builtin_neon_vmlav8hi (__a, __b, __c);
1470 }
1471
1472 __extension__ extern __inline int32x4_t
1473 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_s32(int32x4_t __a,int32x4_t __b,int32x4_t __c)1474 vmlaq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
1475 {
1476 return (int32x4_t)__builtin_neon_vmlav4si (__a, __b, __c);
1477 }
1478
1479 __extension__ extern __inline float32x4_t
1480 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_f32(float32x4_t __a,float32x4_t __b,float32x4_t __c)1481 vmlaq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c)
1482 {
1483 return (float32x4_t)__builtin_neon_vmlav4sf (__a, __b, __c);
1484 }
1485
1486 __extension__ extern __inline uint8x16_t
1487 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_u8(uint8x16_t __a,uint8x16_t __b,uint8x16_t __c)1488 vmlaq_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c)
1489 {
1490 return (uint8x16_t)__builtin_neon_vmlav16qi ((int8x16_t) __a, (int8x16_t) __b, (int8x16_t) __c);
1491 }
1492
1493 __extension__ extern __inline uint16x8_t
1494 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_u16(uint16x8_t __a,uint16x8_t __b,uint16x8_t __c)1495 vmlaq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
1496 {
1497 return (uint16x8_t)__builtin_neon_vmlav8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x8_t) __c);
1498 }
1499
1500 __extension__ extern __inline uint32x4_t
1501 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_u32(uint32x4_t __a,uint32x4_t __b,uint32x4_t __c)1502 vmlaq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
1503 {
1504 return (uint32x4_t)__builtin_neon_vmlav4si ((int32x4_t) __a, (int32x4_t) __b, (int32x4_t) __c);
1505 }
1506
1507 __extension__ extern __inline int16x8_t
1508 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_s8(int16x8_t __a,int8x8_t __b,int8x8_t __c)1509 vmlal_s8 (int16x8_t __a, int8x8_t __b, int8x8_t __c)
1510 {
1511 return (int16x8_t)__builtin_neon_vmlalsv8qi (__a, __b, __c);
1512 }
1513
1514 __extension__ extern __inline int32x4_t
1515 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_s16(int32x4_t __a,int16x4_t __b,int16x4_t __c)1516 vmlal_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
1517 {
1518 return (int32x4_t)__builtin_neon_vmlalsv4hi (__a, __b, __c);
1519 }
1520
1521 __extension__ extern __inline int64x2_t
1522 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_s32(int64x2_t __a,int32x2_t __b,int32x2_t __c)1523 vmlal_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
1524 {
1525 return (int64x2_t)__builtin_neon_vmlalsv2si (__a, __b, __c);
1526 }
1527
1528 __extension__ extern __inline uint16x8_t
1529 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_u8(uint16x8_t __a,uint8x8_t __b,uint8x8_t __c)1530 vmlal_u8 (uint16x8_t __a, uint8x8_t __b, uint8x8_t __c)
1531 {
1532 return (uint16x8_t)__builtin_neon_vmlaluv8qi ((int16x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
1533 }
1534
1535 __extension__ extern __inline uint32x4_t
1536 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_u16(uint32x4_t __a,uint16x4_t __b,uint16x4_t __c)1537 vmlal_u16 (uint32x4_t __a, uint16x4_t __b, uint16x4_t __c)
1538 {
1539 return (uint32x4_t)__builtin_neon_vmlaluv4hi ((int32x4_t) __a, (int16x4_t) __b, (int16x4_t) __c);
1540 }
1541
1542 __extension__ extern __inline uint64x2_t
1543 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_u32(uint64x2_t __a,uint32x2_t __b,uint32x2_t __c)1544 vmlal_u32 (uint64x2_t __a, uint32x2_t __b, uint32x2_t __c)
1545 {
1546 return (uint64x2_t)__builtin_neon_vmlaluv2si ((int64x2_t) __a, (int32x2_t) __b, (int32x2_t) __c);
1547 }
1548
1549 __extension__ extern __inline int32x4_t
1550 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlal_s16(int32x4_t __a,int16x4_t __b,int16x4_t __c)1551 vqdmlal_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
1552 {
1553 return (int32x4_t)__builtin_neon_vqdmlalv4hi (__a, __b, __c);
1554 }
1555
1556 __extension__ extern __inline int64x2_t
1557 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlal_s32(int64x2_t __a,int32x2_t __b,int32x2_t __c)1558 vqdmlal_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
1559 {
1560 return (int64x2_t)__builtin_neon_vqdmlalv2si (__a, __b, __c);
1561 }
1562
1563 __extension__ extern __inline int8x8_t
1564 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_s8(int8x8_t __a,int8x8_t __b,int8x8_t __c)1565 vmls_s8 (int8x8_t __a, int8x8_t __b, int8x8_t __c)
1566 {
1567 return (int8x8_t)__builtin_neon_vmlsv8qi (__a, __b, __c);
1568 }
1569
1570 __extension__ extern __inline int16x4_t
1571 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_s16(int16x4_t __a,int16x4_t __b,int16x4_t __c)1572 vmls_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c)
1573 {
1574 return (int16x4_t)__builtin_neon_vmlsv4hi (__a, __b, __c);
1575 }
1576
1577 __extension__ extern __inline int32x2_t
1578 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_s32(int32x2_t __a,int32x2_t __b,int32x2_t __c)1579 vmls_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c)
1580 {
1581 return (int32x2_t)__builtin_neon_vmlsv2si (__a, __b, __c);
1582 }
1583
1584 __extension__ extern __inline float32x2_t
1585 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_f32(float32x2_t __a,float32x2_t __b,float32x2_t __c)1586 vmls_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c)
1587 {
1588 return (float32x2_t)__builtin_neon_vmlsv2sf (__a, __b, __c);
1589 }
1590
1591 __extension__ extern __inline uint8x8_t
1592 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_u8(uint8x8_t __a,uint8x8_t __b,uint8x8_t __c)1593 vmls_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c)
1594 {
1595 return (uint8x8_t)__builtin_neon_vmlsv8qi ((int8x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
1596 }
1597
1598 __extension__ extern __inline uint16x4_t
1599 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_u16(uint16x4_t __a,uint16x4_t __b,uint16x4_t __c)1600 vmls_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c)
1601 {
1602 return (uint16x4_t)__builtin_neon_vmlsv4hi ((int16x4_t) __a, (int16x4_t) __b, (int16x4_t) __c);
1603 }
1604
1605 __extension__ extern __inline uint32x2_t
1606 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_u32(uint32x2_t __a,uint32x2_t __b,uint32x2_t __c)1607 vmls_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c)
1608 {
1609 return (uint32x2_t)__builtin_neon_vmlsv2si ((int32x2_t) __a, (int32x2_t) __b, (int32x2_t) __c);
1610 }
1611
1612 __extension__ extern __inline int8x16_t
1613 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_s8(int8x16_t __a,int8x16_t __b,int8x16_t __c)1614 vmlsq_s8 (int8x16_t __a, int8x16_t __b, int8x16_t __c)
1615 {
1616 return (int8x16_t)__builtin_neon_vmlsv16qi (__a, __b, __c);
1617 }
1618
1619 __extension__ extern __inline int16x8_t
1620 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_s16(int16x8_t __a,int16x8_t __b,int16x8_t __c)1621 vmlsq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
1622 {
1623 return (int16x8_t)__builtin_neon_vmlsv8hi (__a, __b, __c);
1624 }
1625
1626 __extension__ extern __inline int32x4_t
1627 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_s32(int32x4_t __a,int32x4_t __b,int32x4_t __c)1628 vmlsq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
1629 {
1630 return (int32x4_t)__builtin_neon_vmlsv4si (__a, __b, __c);
1631 }
1632
1633 __extension__ extern __inline float32x4_t
1634 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_f32(float32x4_t __a,float32x4_t __b,float32x4_t __c)1635 vmlsq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c)
1636 {
1637 return (float32x4_t)__builtin_neon_vmlsv4sf (__a, __b, __c);
1638 }
1639
1640 __extension__ extern __inline uint8x16_t
1641 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_u8(uint8x16_t __a,uint8x16_t __b,uint8x16_t __c)1642 vmlsq_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c)
1643 {
1644 return (uint8x16_t)__builtin_neon_vmlsv16qi ((int8x16_t) __a, (int8x16_t) __b, (int8x16_t) __c);
1645 }
1646
1647 __extension__ extern __inline uint16x8_t
1648 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_u16(uint16x8_t __a,uint16x8_t __b,uint16x8_t __c)1649 vmlsq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
1650 {
1651 return (uint16x8_t)__builtin_neon_vmlsv8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x8_t) __c);
1652 }
1653
1654 __extension__ extern __inline uint32x4_t
1655 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_u32(uint32x4_t __a,uint32x4_t __b,uint32x4_t __c)1656 vmlsq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
1657 {
1658 return (uint32x4_t)__builtin_neon_vmlsv4si ((int32x4_t) __a, (int32x4_t) __b, (int32x4_t) __c);
1659 }
1660
1661 __extension__ extern __inline int16x8_t
1662 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_s8(int16x8_t __a,int8x8_t __b,int8x8_t __c)1663 vmlsl_s8 (int16x8_t __a, int8x8_t __b, int8x8_t __c)
1664 {
1665 return (int16x8_t)__builtin_neon_vmlslsv8qi (__a, __b, __c);
1666 }
1667
1668 __extension__ extern __inline int32x4_t
1669 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_s16(int32x4_t __a,int16x4_t __b,int16x4_t __c)1670 vmlsl_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
1671 {
1672 return (int32x4_t)__builtin_neon_vmlslsv4hi (__a, __b, __c);
1673 }
1674
1675 __extension__ extern __inline int64x2_t
1676 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_s32(int64x2_t __a,int32x2_t __b,int32x2_t __c)1677 vmlsl_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
1678 {
1679 return (int64x2_t)__builtin_neon_vmlslsv2si (__a, __b, __c);
1680 }
1681
1682 __extension__ extern __inline uint16x8_t
1683 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_u8(uint16x8_t __a,uint8x8_t __b,uint8x8_t __c)1684 vmlsl_u8 (uint16x8_t __a, uint8x8_t __b, uint8x8_t __c)
1685 {
1686 return (uint16x8_t)__builtin_neon_vmlsluv8qi ((int16x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
1687 }
1688
1689 __extension__ extern __inline uint32x4_t
1690 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_u16(uint32x4_t __a,uint16x4_t __b,uint16x4_t __c)1691 vmlsl_u16 (uint32x4_t __a, uint16x4_t __b, uint16x4_t __c)
1692 {
1693 return (uint32x4_t)__builtin_neon_vmlsluv4hi ((int32x4_t) __a, (int16x4_t) __b, (int16x4_t) __c);
1694 }
1695
1696 __extension__ extern __inline uint64x2_t
1697 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_u32(uint64x2_t __a,uint32x2_t __b,uint32x2_t __c)1698 vmlsl_u32 (uint64x2_t __a, uint32x2_t __b, uint32x2_t __c)
1699 {
1700 return (uint64x2_t)__builtin_neon_vmlsluv2si ((int64x2_t) __a, (int32x2_t) __b, (int32x2_t) __c);
1701 }
1702
1703 __extension__ extern __inline int32x4_t
1704 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlsl_s16(int32x4_t __a,int16x4_t __b,int16x4_t __c)1705 vqdmlsl_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
1706 {
1707 return (int32x4_t)__builtin_neon_vqdmlslv4hi (__a, __b, __c);
1708 }
1709
1710 __extension__ extern __inline int64x2_t
1711 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlsl_s32(int64x2_t __a,int32x2_t __b,int32x2_t __c)1712 vqdmlsl_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
1713 {
1714 return (int64x2_t)__builtin_neon_vqdmlslv2si (__a, __b, __c);
1715 }
1716
1717 #pragma GCC push_options
1718 #pragma GCC target ("fpu=neon-vfpv4")
1719 __extension__ extern __inline float32x2_t
1720 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfma_f32(float32x2_t __a,float32x2_t __b,float32x2_t __c)1721 vfma_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c)
1722 {
1723 return (float32x2_t)__builtin_neon_vfmav2sf (__a, __b, __c);
1724 }
1725
1726 __extension__ extern __inline float32x4_t
1727 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmaq_f32(float32x4_t __a,float32x4_t __b,float32x4_t __c)1728 vfmaq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c)
1729 {
1730 return (float32x4_t)__builtin_neon_vfmav4sf (__a, __b, __c);
1731 }
1732
1733 __extension__ extern __inline float32x2_t
1734 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfms_f32(float32x2_t __a,float32x2_t __b,float32x2_t __c)1735 vfms_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c)
1736 {
1737 return (float32x2_t)__builtin_neon_vfmsv2sf (__a, __b, __c);
1738 }
1739
1740 __extension__ extern __inline float32x4_t
1741 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmsq_f32(float32x4_t __a,float32x4_t __b,float32x4_t __c)1742 vfmsq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c)
1743 {
1744 return (float32x4_t)__builtin_neon_vfmsv4sf (__a, __b, __c);
1745 }
1746 #pragma GCC pop_options
1747
1748 #if __ARM_ARCH >= 8
1749 __extension__ extern __inline float32x2_t
1750 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndn_f32(float32x2_t __a)1751 vrndn_f32 (float32x2_t __a)
1752 {
1753 return (float32x2_t)__builtin_neon_vrintnv2sf (__a);
1754 }
1755
1756 #endif
1757 #if __ARM_ARCH >= 8
1758 __extension__ extern __inline float32x4_t
1759 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndnq_f32(float32x4_t __a)1760 vrndnq_f32 (float32x4_t __a)
1761 {
1762 return (float32x4_t)__builtin_neon_vrintnv4sf (__a);
1763 }
1764
1765 #endif
1766 #if __ARM_ARCH >= 8
1767 __extension__ extern __inline float32x2_t
1768 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrnda_f32(float32x2_t __a)1769 vrnda_f32 (float32x2_t __a)
1770 {
1771 return (float32x2_t)__builtin_neon_vrintav2sf (__a);
1772 }
1773
1774 #endif
1775 #if __ARM_ARCH >= 8
1776 __extension__ extern __inline float32x4_t
1777 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndaq_f32(float32x4_t __a)1778 vrndaq_f32 (float32x4_t __a)
1779 {
1780 return (float32x4_t)__builtin_neon_vrintav4sf (__a);
1781 }
1782
1783 #endif
1784 #if __ARM_ARCH >= 8
1785 __extension__ extern __inline float32x2_t
1786 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndp_f32(float32x2_t __a)1787 vrndp_f32 (float32x2_t __a)
1788 {
1789 return (float32x2_t)__builtin_neon_vrintpv2sf (__a);
1790 }
1791
1792 #endif
1793 #if __ARM_ARCH >= 8
1794 __extension__ extern __inline float32x4_t
1795 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndpq_f32(float32x4_t __a)1796 vrndpq_f32 (float32x4_t __a)
1797 {
1798 return (float32x4_t)__builtin_neon_vrintpv4sf (__a);
1799 }
1800
1801 #endif
1802 #if __ARM_ARCH >= 8
1803 __extension__ extern __inline float32x2_t
1804 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndm_f32(float32x2_t __a)1805 vrndm_f32 (float32x2_t __a)
1806 {
1807 return (float32x2_t)__builtin_neon_vrintmv2sf (__a);
1808 }
1809
1810 #endif
1811 #if __ARM_ARCH >= 8
1812 __extension__ extern __inline float32x4_t
1813 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndmq_f32(float32x4_t __a)1814 vrndmq_f32 (float32x4_t __a)
1815 {
1816 return (float32x4_t)__builtin_neon_vrintmv4sf (__a);
1817 }
1818
1819 #endif
1820
1821 #if __ARM_ARCH >= 8
1822 __extension__ extern __inline float32x2_t
1823 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndx_f32(float32x2_t __a)1824 vrndx_f32 (float32x2_t __a)
1825 {
1826 return (float32x2_t)__builtin_neon_vrintxv2sf (__a);
1827 }
1828
1829 #endif
1830
1831 #if __ARM_ARCH >= 8
1832 __extension__ extern __inline float32x4_t
1833 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndxq_f32(float32x4_t __a)1834 vrndxq_f32 (float32x4_t __a)
1835 {
1836 return (float32x4_t)__builtin_neon_vrintxv4sf (__a);
1837 }
1838
1839 #endif
1840
1841 #if __ARM_ARCH >= 8
1842 __extension__ extern __inline float32x2_t
1843 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrnd_f32(float32x2_t __a)1844 vrnd_f32 (float32x2_t __a)
1845 {
1846 return (float32x2_t)__builtin_neon_vrintzv2sf (__a);
1847 }
1848
1849 #endif
1850 #if __ARM_ARCH >= 8
1851 __extension__ extern __inline float32x4_t
1852 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndq_f32(float32x4_t __a)1853 vrndq_f32 (float32x4_t __a)
1854 {
1855 return (float32x4_t)__builtin_neon_vrintzv4sf (__a);
1856 }
1857
1858 #endif
1859
1860 __extension__ extern __inline int8x8_t
1861 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsub_s8(int8x8_t __a,int8x8_t __b)1862 vsub_s8 (int8x8_t __a, int8x8_t __b)
1863 {
1864 return __a - __b;
1865 }
1866
1867 __extension__ extern __inline int16x4_t
1868 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsub_s16(int16x4_t __a,int16x4_t __b)1869 vsub_s16 (int16x4_t __a, int16x4_t __b)
1870 {
1871 return __a - __b;
1872 }
1873
1874 __extension__ extern __inline int32x2_t
1875 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsub_s32(int32x2_t __a,int32x2_t __b)1876 vsub_s32 (int32x2_t __a, int32x2_t __b)
1877 {
1878 return __a - __b;
1879 }
1880
1881 __extension__ extern __inline float32x2_t
1882 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsub_f32(float32x2_t __a,float32x2_t __b)1883 vsub_f32 (float32x2_t __a, float32x2_t __b)
1884 {
1885 #ifdef __FAST_MATH__
1886 return __a - __b;
1887 #else
1888 return (float32x2_t) __builtin_neon_vsubv2sf (__a, __b);
1889 #endif
1890 }
1891
1892 __extension__ extern __inline uint8x8_t
1893 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsub_u8(uint8x8_t __a,uint8x8_t __b)1894 vsub_u8 (uint8x8_t __a, uint8x8_t __b)
1895 {
1896 return __a - __b;
1897 }
1898
1899 __extension__ extern __inline uint16x4_t
1900 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsub_u16(uint16x4_t __a,uint16x4_t __b)1901 vsub_u16 (uint16x4_t __a, uint16x4_t __b)
1902 {
1903 return __a - __b;
1904 }
1905
1906 __extension__ extern __inline uint32x2_t
1907 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsub_u32(uint32x2_t __a,uint32x2_t __b)1908 vsub_u32 (uint32x2_t __a, uint32x2_t __b)
1909 {
1910 return __a - __b;
1911 }
1912
1913 __extension__ extern __inline int64x1_t
1914 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsub_s64(int64x1_t __a,int64x1_t __b)1915 vsub_s64 (int64x1_t __a, int64x1_t __b)
1916 {
1917 return __a - __b;
1918 }
1919
1920 __extension__ extern __inline uint64x1_t
1921 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsub_u64(uint64x1_t __a,uint64x1_t __b)1922 vsub_u64 (uint64x1_t __a, uint64x1_t __b)
1923 {
1924 return __a - __b;
1925 }
1926
1927 __extension__ extern __inline int8x16_t
1928 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubq_s8(int8x16_t __a,int8x16_t __b)1929 vsubq_s8 (int8x16_t __a, int8x16_t __b)
1930 {
1931 return __a - __b;
1932 }
1933
1934 __extension__ extern __inline int16x8_t
1935 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubq_s16(int16x8_t __a,int16x8_t __b)1936 vsubq_s16 (int16x8_t __a, int16x8_t __b)
1937 {
1938 return __a - __b;
1939 }
1940
1941 __extension__ extern __inline int32x4_t
1942 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubq_s32(int32x4_t __a,int32x4_t __b)1943 vsubq_s32 (int32x4_t __a, int32x4_t __b)
1944 {
1945 return __a - __b;
1946 }
1947
1948 __extension__ extern __inline int64x2_t
1949 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubq_s64(int64x2_t __a,int64x2_t __b)1950 vsubq_s64 (int64x2_t __a, int64x2_t __b)
1951 {
1952 return __a - __b;
1953 }
1954
1955 __extension__ extern __inline float32x4_t
1956 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubq_f32(float32x4_t __a,float32x4_t __b)1957 vsubq_f32 (float32x4_t __a, float32x4_t __b)
1958 {
1959 #ifdef __FAST_MATH__
1960 return __a - __b;
1961 #else
1962 return (float32x4_t) __builtin_neon_vsubv4sf (__a, __b);
1963 #endif
1964 }
1965
1966 __extension__ extern __inline uint8x16_t
1967 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubq_u8(uint8x16_t __a,uint8x16_t __b)1968 vsubq_u8 (uint8x16_t __a, uint8x16_t __b)
1969 {
1970 return __a - __b;
1971 }
1972
1973 __extension__ extern __inline uint16x8_t
1974 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubq_u16(uint16x8_t __a,uint16x8_t __b)1975 vsubq_u16 (uint16x8_t __a, uint16x8_t __b)
1976 {
1977 return __a - __b;
1978 }
1979
1980 __extension__ extern __inline uint32x4_t
1981 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubq_u32(uint32x4_t __a,uint32x4_t __b)1982 vsubq_u32 (uint32x4_t __a, uint32x4_t __b)
1983 {
1984 return __a - __b;
1985 }
1986
1987 __extension__ extern __inline uint64x2_t
1988 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubq_u64(uint64x2_t __a,uint64x2_t __b)1989 vsubq_u64 (uint64x2_t __a, uint64x2_t __b)
1990 {
1991 return __a - __b;
1992 }
1993
1994 __extension__ extern __inline int16x8_t
1995 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubl_s8(int8x8_t __a,int8x8_t __b)1996 vsubl_s8 (int8x8_t __a, int8x8_t __b)
1997 {
1998 return (int16x8_t)__builtin_neon_vsublsv8qi (__a, __b);
1999 }
2000
2001 __extension__ extern __inline int32x4_t
2002 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubl_s16(int16x4_t __a,int16x4_t __b)2003 vsubl_s16 (int16x4_t __a, int16x4_t __b)
2004 {
2005 return (int32x4_t)__builtin_neon_vsublsv4hi (__a, __b);
2006 }
2007
2008 __extension__ extern __inline int64x2_t
2009 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubl_s32(int32x2_t __a,int32x2_t __b)2010 vsubl_s32 (int32x2_t __a, int32x2_t __b)
2011 {
2012 return (int64x2_t)__builtin_neon_vsublsv2si (__a, __b);
2013 }
2014
2015 __extension__ extern __inline uint16x8_t
2016 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubl_u8(uint8x8_t __a,uint8x8_t __b)2017 vsubl_u8 (uint8x8_t __a, uint8x8_t __b)
2018 {
2019 return (uint16x8_t)__builtin_neon_vsubluv8qi ((int8x8_t) __a, (int8x8_t) __b);
2020 }
2021
2022 __extension__ extern __inline uint32x4_t
2023 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubl_u16(uint16x4_t __a,uint16x4_t __b)2024 vsubl_u16 (uint16x4_t __a, uint16x4_t __b)
2025 {
2026 return (uint32x4_t)__builtin_neon_vsubluv4hi ((int16x4_t) __a, (int16x4_t) __b);
2027 }
2028
2029 __extension__ extern __inline uint64x2_t
2030 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubl_u32(uint32x2_t __a,uint32x2_t __b)2031 vsubl_u32 (uint32x2_t __a, uint32x2_t __b)
2032 {
2033 return (uint64x2_t)__builtin_neon_vsubluv2si ((int32x2_t) __a, (int32x2_t) __b);
2034 }
2035
2036 __extension__ extern __inline int16x8_t
2037 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubw_s8(int16x8_t __a,int8x8_t __b)2038 vsubw_s8 (int16x8_t __a, int8x8_t __b)
2039 {
2040 return (int16x8_t)__builtin_neon_vsubwsv8qi (__a, __b);
2041 }
2042
2043 __extension__ extern __inline int32x4_t
2044 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubw_s16(int32x4_t __a,int16x4_t __b)2045 vsubw_s16 (int32x4_t __a, int16x4_t __b)
2046 {
2047 return (int32x4_t)__builtin_neon_vsubwsv4hi (__a, __b);
2048 }
2049
2050 __extension__ extern __inline int64x2_t
2051 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubw_s32(int64x2_t __a,int32x2_t __b)2052 vsubw_s32 (int64x2_t __a, int32x2_t __b)
2053 {
2054 return (int64x2_t)__builtin_neon_vsubwsv2si (__a, __b);
2055 }
2056
2057 __extension__ extern __inline uint16x8_t
2058 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubw_u8(uint16x8_t __a,uint8x8_t __b)2059 vsubw_u8 (uint16x8_t __a, uint8x8_t __b)
2060 {
2061 return (uint16x8_t)__builtin_neon_vsubwuv8qi ((int16x8_t) __a, (int8x8_t) __b);
2062 }
2063
2064 __extension__ extern __inline uint32x4_t
2065 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubw_u16(uint32x4_t __a,uint16x4_t __b)2066 vsubw_u16 (uint32x4_t __a, uint16x4_t __b)
2067 {
2068 return (uint32x4_t)__builtin_neon_vsubwuv4hi ((int32x4_t) __a, (int16x4_t) __b);
2069 }
2070
2071 __extension__ extern __inline uint64x2_t
2072 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubw_u32(uint64x2_t __a,uint32x2_t __b)2073 vsubw_u32 (uint64x2_t __a, uint32x2_t __b)
2074 {
2075 return (uint64x2_t)__builtin_neon_vsubwuv2si ((int64x2_t) __a, (int32x2_t) __b);
2076 }
2077
2078 __extension__ extern __inline int8x8_t
2079 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhsub_s8(int8x8_t __a,int8x8_t __b)2080 vhsub_s8 (int8x8_t __a, int8x8_t __b)
2081 {
2082 return (int8x8_t)__builtin_neon_vhsubsv8qi (__a, __b);
2083 }
2084
2085 __extension__ extern __inline int16x4_t
2086 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhsub_s16(int16x4_t __a,int16x4_t __b)2087 vhsub_s16 (int16x4_t __a, int16x4_t __b)
2088 {
2089 return (int16x4_t)__builtin_neon_vhsubsv4hi (__a, __b);
2090 }
2091
2092 __extension__ extern __inline int32x2_t
2093 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhsub_s32(int32x2_t __a,int32x2_t __b)2094 vhsub_s32 (int32x2_t __a, int32x2_t __b)
2095 {
2096 return (int32x2_t)__builtin_neon_vhsubsv2si (__a, __b);
2097 }
2098
2099 __extension__ extern __inline uint8x8_t
2100 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhsub_u8(uint8x8_t __a,uint8x8_t __b)2101 vhsub_u8 (uint8x8_t __a, uint8x8_t __b)
2102 {
2103 return (uint8x8_t)__builtin_neon_vhsubuv8qi ((int8x8_t) __a, (int8x8_t) __b);
2104 }
2105
2106 __extension__ extern __inline uint16x4_t
2107 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhsub_u16(uint16x4_t __a,uint16x4_t __b)2108 vhsub_u16 (uint16x4_t __a, uint16x4_t __b)
2109 {
2110 return (uint16x4_t)__builtin_neon_vhsubuv4hi ((int16x4_t) __a, (int16x4_t) __b);
2111 }
2112
2113 __extension__ extern __inline uint32x2_t
2114 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhsub_u32(uint32x2_t __a,uint32x2_t __b)2115 vhsub_u32 (uint32x2_t __a, uint32x2_t __b)
2116 {
2117 return (uint32x2_t)__builtin_neon_vhsubuv2si ((int32x2_t) __a, (int32x2_t) __b);
2118 }
2119
2120 __extension__ extern __inline int8x16_t
2121 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhsubq_s8(int8x16_t __a,int8x16_t __b)2122 vhsubq_s8 (int8x16_t __a, int8x16_t __b)
2123 {
2124 return (int8x16_t)__builtin_neon_vhsubsv16qi (__a, __b);
2125 }
2126
2127 __extension__ extern __inline int16x8_t
2128 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhsubq_s16(int16x8_t __a,int16x8_t __b)2129 vhsubq_s16 (int16x8_t __a, int16x8_t __b)
2130 {
2131 return (int16x8_t)__builtin_neon_vhsubsv8hi (__a, __b);
2132 }
2133
2134 __extension__ extern __inline int32x4_t
2135 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhsubq_s32(int32x4_t __a,int32x4_t __b)2136 vhsubq_s32 (int32x4_t __a, int32x4_t __b)
2137 {
2138 return (int32x4_t)__builtin_neon_vhsubsv4si (__a, __b);
2139 }
2140
2141 __extension__ extern __inline uint8x16_t
2142 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhsubq_u8(uint8x16_t __a,uint8x16_t __b)2143 vhsubq_u8 (uint8x16_t __a, uint8x16_t __b)
2144 {
2145 return (uint8x16_t)__builtin_neon_vhsubuv16qi ((int8x16_t) __a, (int8x16_t) __b);
2146 }
2147
2148 __extension__ extern __inline uint16x8_t
2149 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhsubq_u16(uint16x8_t __a,uint16x8_t __b)2150 vhsubq_u16 (uint16x8_t __a, uint16x8_t __b)
2151 {
2152 return (uint16x8_t)__builtin_neon_vhsubuv8hi ((int16x8_t) __a, (int16x8_t) __b);
2153 }
2154
2155 __extension__ extern __inline uint32x4_t
2156 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhsubq_u32(uint32x4_t __a,uint32x4_t __b)2157 vhsubq_u32 (uint32x4_t __a, uint32x4_t __b)
2158 {
2159 return (uint32x4_t)__builtin_neon_vhsubuv4si ((int32x4_t) __a, (int32x4_t) __b);
2160 }
2161
2162 __extension__ extern __inline int8x8_t
2163 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsub_s8(int8x8_t __a,int8x8_t __b)2164 vqsub_s8 (int8x8_t __a, int8x8_t __b)
2165 {
2166 return (int8x8_t)__builtin_neon_vqsubsv8qi (__a, __b);
2167 }
2168
2169 __extension__ extern __inline int16x4_t
2170 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsub_s16(int16x4_t __a,int16x4_t __b)2171 vqsub_s16 (int16x4_t __a, int16x4_t __b)
2172 {
2173 return (int16x4_t)__builtin_neon_vqsubsv4hi (__a, __b);
2174 }
2175
2176 __extension__ extern __inline int32x2_t
2177 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsub_s32(int32x2_t __a,int32x2_t __b)2178 vqsub_s32 (int32x2_t __a, int32x2_t __b)
2179 {
2180 return (int32x2_t)__builtin_neon_vqsubsv2si (__a, __b);
2181 }
2182
2183 __extension__ extern __inline int64x1_t
2184 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsub_s64(int64x1_t __a,int64x1_t __b)2185 vqsub_s64 (int64x1_t __a, int64x1_t __b)
2186 {
2187 return (int64x1_t)__builtin_neon_vqsubsdi (__a, __b);
2188 }
2189
2190 __extension__ extern __inline uint8x8_t
2191 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsub_u8(uint8x8_t __a,uint8x8_t __b)2192 vqsub_u8 (uint8x8_t __a, uint8x8_t __b)
2193 {
2194 return (uint8x8_t)__builtin_neon_vqsubuv8qi ((int8x8_t) __a, (int8x8_t) __b);
2195 }
2196
2197 __extension__ extern __inline uint16x4_t
2198 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsub_u16(uint16x4_t __a,uint16x4_t __b)2199 vqsub_u16 (uint16x4_t __a, uint16x4_t __b)
2200 {
2201 return (uint16x4_t)__builtin_neon_vqsubuv4hi ((int16x4_t) __a, (int16x4_t) __b);
2202 }
2203
2204 __extension__ extern __inline uint32x2_t
2205 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsub_u32(uint32x2_t __a,uint32x2_t __b)2206 vqsub_u32 (uint32x2_t __a, uint32x2_t __b)
2207 {
2208 return (uint32x2_t)__builtin_neon_vqsubuv2si ((int32x2_t) __a, (int32x2_t) __b);
2209 }
2210
2211 __extension__ extern __inline uint64x1_t
2212 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsub_u64(uint64x1_t __a,uint64x1_t __b)2213 vqsub_u64 (uint64x1_t __a, uint64x1_t __b)
2214 {
2215 return (uint64x1_t)__builtin_neon_vqsubudi ((int64x1_t) __a, (int64x1_t) __b);
2216 }
2217
2218 __extension__ extern __inline int8x16_t
2219 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsubq_s8(int8x16_t __a,int8x16_t __b)2220 vqsubq_s8 (int8x16_t __a, int8x16_t __b)
2221 {
2222 return (int8x16_t)__builtin_neon_vqsubsv16qi (__a, __b);
2223 }
2224
2225 __extension__ extern __inline int16x8_t
2226 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsubq_s16(int16x8_t __a,int16x8_t __b)2227 vqsubq_s16 (int16x8_t __a, int16x8_t __b)
2228 {
2229 return (int16x8_t)__builtin_neon_vqsubsv8hi (__a, __b);
2230 }
2231
2232 __extension__ extern __inline int32x4_t
2233 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsubq_s32(int32x4_t __a,int32x4_t __b)2234 vqsubq_s32 (int32x4_t __a, int32x4_t __b)
2235 {
2236 return (int32x4_t)__builtin_neon_vqsubsv4si (__a, __b);
2237 }
2238
2239 __extension__ extern __inline int64x2_t
2240 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsubq_s64(int64x2_t __a,int64x2_t __b)2241 vqsubq_s64 (int64x2_t __a, int64x2_t __b)
2242 {
2243 return (int64x2_t)__builtin_neon_vqsubsv2di (__a, __b);
2244 }
2245
2246 __extension__ extern __inline uint8x16_t
2247 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsubq_u8(uint8x16_t __a,uint8x16_t __b)2248 vqsubq_u8 (uint8x16_t __a, uint8x16_t __b)
2249 {
2250 return (uint8x16_t)__builtin_neon_vqsubuv16qi ((int8x16_t) __a, (int8x16_t) __b);
2251 }
2252
2253 __extension__ extern __inline uint16x8_t
2254 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsubq_u16(uint16x8_t __a,uint16x8_t __b)2255 vqsubq_u16 (uint16x8_t __a, uint16x8_t __b)
2256 {
2257 return (uint16x8_t)__builtin_neon_vqsubuv8hi ((int16x8_t) __a, (int16x8_t) __b);
2258 }
2259
2260 __extension__ extern __inline uint32x4_t
2261 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsubq_u32(uint32x4_t __a,uint32x4_t __b)2262 vqsubq_u32 (uint32x4_t __a, uint32x4_t __b)
2263 {
2264 return (uint32x4_t)__builtin_neon_vqsubuv4si ((int32x4_t) __a, (int32x4_t) __b);
2265 }
2266
2267 __extension__ extern __inline uint64x2_t
2268 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsubq_u64(uint64x2_t __a,uint64x2_t __b)2269 vqsubq_u64 (uint64x2_t __a, uint64x2_t __b)
2270 {
2271 return (uint64x2_t)__builtin_neon_vqsubuv2di ((int64x2_t) __a, (int64x2_t) __b);
2272 }
2273
2274 __extension__ extern __inline int8x8_t
2275 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubhn_s16(int16x8_t __a,int16x8_t __b)2276 vsubhn_s16 (int16x8_t __a, int16x8_t __b)
2277 {
2278 return (int8x8_t)__builtin_neon_vsubhnv8hi (__a, __b);
2279 }
2280
2281 __extension__ extern __inline int16x4_t
2282 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubhn_s32(int32x4_t __a,int32x4_t __b)2283 vsubhn_s32 (int32x4_t __a, int32x4_t __b)
2284 {
2285 return (int16x4_t)__builtin_neon_vsubhnv4si (__a, __b);
2286 }
2287
2288 __extension__ extern __inline int32x2_t
2289 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubhn_s64(int64x2_t __a,int64x2_t __b)2290 vsubhn_s64 (int64x2_t __a, int64x2_t __b)
2291 {
2292 return (int32x2_t)__builtin_neon_vsubhnv2di (__a, __b);
2293 }
2294
2295 __extension__ extern __inline uint8x8_t
2296 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubhn_u16(uint16x8_t __a,uint16x8_t __b)2297 vsubhn_u16 (uint16x8_t __a, uint16x8_t __b)
2298 {
2299 return (uint8x8_t)__builtin_neon_vsubhnv8hi ((int16x8_t) __a, (int16x8_t) __b);
2300 }
2301
2302 __extension__ extern __inline uint16x4_t
2303 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubhn_u32(uint32x4_t __a,uint32x4_t __b)2304 vsubhn_u32 (uint32x4_t __a, uint32x4_t __b)
2305 {
2306 return (uint16x4_t)__builtin_neon_vsubhnv4si ((int32x4_t) __a, (int32x4_t) __b);
2307 }
2308
2309 __extension__ extern __inline uint32x2_t
2310 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubhn_u64(uint64x2_t __a,uint64x2_t __b)2311 vsubhn_u64 (uint64x2_t __a, uint64x2_t __b)
2312 {
2313 return (uint32x2_t)__builtin_neon_vsubhnv2di ((int64x2_t) __a, (int64x2_t) __b);
2314 }
2315
2316 __extension__ extern __inline int8x8_t
2317 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsubhn_s16(int16x8_t __a,int16x8_t __b)2318 vrsubhn_s16 (int16x8_t __a, int16x8_t __b)
2319 {
2320 return (int8x8_t)__builtin_neon_vrsubhnv8hi (__a, __b);
2321 }
2322
2323 __extension__ extern __inline int16x4_t
2324 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsubhn_s32(int32x4_t __a,int32x4_t __b)2325 vrsubhn_s32 (int32x4_t __a, int32x4_t __b)
2326 {
2327 return (int16x4_t)__builtin_neon_vrsubhnv4si (__a, __b);
2328 }
2329
2330 __extension__ extern __inline int32x2_t
2331 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsubhn_s64(int64x2_t __a,int64x2_t __b)2332 vrsubhn_s64 (int64x2_t __a, int64x2_t __b)
2333 {
2334 return (int32x2_t)__builtin_neon_vrsubhnv2di (__a, __b);
2335 }
2336
2337 __extension__ extern __inline uint8x8_t
2338 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsubhn_u16(uint16x8_t __a,uint16x8_t __b)2339 vrsubhn_u16 (uint16x8_t __a, uint16x8_t __b)
2340 {
2341 return (uint8x8_t)__builtin_neon_vrsubhnv8hi ((int16x8_t) __a, (int16x8_t) __b);
2342 }
2343
2344 __extension__ extern __inline uint16x4_t
2345 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsubhn_u32(uint32x4_t __a,uint32x4_t __b)2346 vrsubhn_u32 (uint32x4_t __a, uint32x4_t __b)
2347 {
2348 return (uint16x4_t)__builtin_neon_vrsubhnv4si ((int32x4_t) __a, (int32x4_t) __b);
2349 }
2350
2351 __extension__ extern __inline uint32x2_t
2352 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsubhn_u64(uint64x2_t __a,uint64x2_t __b)2353 vrsubhn_u64 (uint64x2_t __a, uint64x2_t __b)
2354 {
2355 return (uint32x2_t)__builtin_neon_vrsubhnv2di ((int64x2_t) __a, (int64x2_t) __b);
2356 }
2357
2358 __extension__ extern __inline uint8x8_t
2359 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceq_s8(int8x8_t __a,int8x8_t __b)2360 vceq_s8 (int8x8_t __a, int8x8_t __b)
2361 {
2362 return (uint8x8_t)__builtin_neon_vceqv8qi (__a, __b);
2363 }
2364
2365 __extension__ extern __inline uint16x4_t
2366 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceq_s16(int16x4_t __a,int16x4_t __b)2367 vceq_s16 (int16x4_t __a, int16x4_t __b)
2368 {
2369 return (uint16x4_t)__builtin_neon_vceqv4hi (__a, __b);
2370 }
2371
2372 __extension__ extern __inline uint32x2_t
2373 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceq_s32(int32x2_t __a,int32x2_t __b)2374 vceq_s32 (int32x2_t __a, int32x2_t __b)
2375 {
2376 return (uint32x2_t)__builtin_neon_vceqv2si (__a, __b);
2377 }
2378
2379 __extension__ extern __inline uint32x2_t
2380 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceq_f32(float32x2_t __a,float32x2_t __b)2381 vceq_f32 (float32x2_t __a, float32x2_t __b)
2382 {
2383 return (uint32x2_t)__builtin_neon_vceqv2sf (__a, __b);
2384 }
2385
2386 __extension__ extern __inline uint8x8_t
2387 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceq_u8(uint8x8_t __a,uint8x8_t __b)2388 vceq_u8 (uint8x8_t __a, uint8x8_t __b)
2389 {
2390 return (uint8x8_t)__builtin_neon_vceqv8qi ((int8x8_t) __a, (int8x8_t) __b);
2391 }
2392
2393 __extension__ extern __inline uint16x4_t
2394 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceq_u16(uint16x4_t __a,uint16x4_t __b)2395 vceq_u16 (uint16x4_t __a, uint16x4_t __b)
2396 {
2397 return (uint16x4_t)__builtin_neon_vceqv4hi ((int16x4_t) __a, (int16x4_t) __b);
2398 }
2399
2400 __extension__ extern __inline uint32x2_t
2401 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceq_u32(uint32x2_t __a,uint32x2_t __b)2402 vceq_u32 (uint32x2_t __a, uint32x2_t __b)
2403 {
2404 return (uint32x2_t)__builtin_neon_vceqv2si ((int32x2_t) __a, (int32x2_t) __b);
2405 }
2406
2407 __extension__ extern __inline uint8x8_t
2408 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceq_p8(poly8x8_t __a,poly8x8_t __b)2409 vceq_p8 (poly8x8_t __a, poly8x8_t __b)
2410 {
2411 return (uint8x8_t)__builtin_neon_vceqv8qi ((int8x8_t) __a, (int8x8_t) __b);
2412 }
2413
2414 __extension__ extern __inline uint8x16_t
2415 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqq_s8(int8x16_t __a,int8x16_t __b)2416 vceqq_s8 (int8x16_t __a, int8x16_t __b)
2417 {
2418 return (uint8x16_t)__builtin_neon_vceqv16qi (__a, __b);
2419 }
2420
2421 __extension__ extern __inline uint16x8_t
2422 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqq_s16(int16x8_t __a,int16x8_t __b)2423 vceqq_s16 (int16x8_t __a, int16x8_t __b)
2424 {
2425 return (uint16x8_t)__builtin_neon_vceqv8hi (__a, __b);
2426 }
2427
2428 __extension__ extern __inline uint32x4_t
2429 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqq_s32(int32x4_t __a,int32x4_t __b)2430 vceqq_s32 (int32x4_t __a, int32x4_t __b)
2431 {
2432 return (uint32x4_t)__builtin_neon_vceqv4si (__a, __b);
2433 }
2434
2435 __extension__ extern __inline uint32x4_t
2436 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqq_f32(float32x4_t __a,float32x4_t __b)2437 vceqq_f32 (float32x4_t __a, float32x4_t __b)
2438 {
2439 return (uint32x4_t)__builtin_neon_vceqv4sf (__a, __b);
2440 }
2441
2442 __extension__ extern __inline uint8x16_t
2443 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqq_u8(uint8x16_t __a,uint8x16_t __b)2444 vceqq_u8 (uint8x16_t __a, uint8x16_t __b)
2445 {
2446 return (uint8x16_t)__builtin_neon_vceqv16qi ((int8x16_t) __a, (int8x16_t) __b);
2447 }
2448
2449 __extension__ extern __inline uint16x8_t
2450 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqq_u16(uint16x8_t __a,uint16x8_t __b)2451 vceqq_u16 (uint16x8_t __a, uint16x8_t __b)
2452 {
2453 return (uint16x8_t)__builtin_neon_vceqv8hi ((int16x8_t) __a, (int16x8_t) __b);
2454 }
2455
2456 __extension__ extern __inline uint32x4_t
2457 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqq_u32(uint32x4_t __a,uint32x4_t __b)2458 vceqq_u32 (uint32x4_t __a, uint32x4_t __b)
2459 {
2460 return (uint32x4_t)__builtin_neon_vceqv4si ((int32x4_t) __a, (int32x4_t) __b);
2461 }
2462
2463 __extension__ extern __inline uint8x16_t
2464 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqq_p8(poly8x16_t __a,poly8x16_t __b)2465 vceqq_p8 (poly8x16_t __a, poly8x16_t __b)
2466 {
2467 return (uint8x16_t)__builtin_neon_vceqv16qi ((int8x16_t) __a, (int8x16_t) __b);
2468 }
2469
2470 __extension__ extern __inline uint8x8_t
2471 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcge_s8(int8x8_t __a,int8x8_t __b)2472 vcge_s8 (int8x8_t __a, int8x8_t __b)
2473 {
2474 return (uint8x8_t)__builtin_neon_vcgev8qi (__a, __b);
2475 }
2476
2477 __extension__ extern __inline uint16x4_t
2478 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcge_s16(int16x4_t __a,int16x4_t __b)2479 vcge_s16 (int16x4_t __a, int16x4_t __b)
2480 {
2481 return (uint16x4_t)__builtin_neon_vcgev4hi (__a, __b);
2482 }
2483
2484 __extension__ extern __inline uint32x2_t
2485 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcge_s32(int32x2_t __a,int32x2_t __b)2486 vcge_s32 (int32x2_t __a, int32x2_t __b)
2487 {
2488 return (uint32x2_t)__builtin_neon_vcgev2si (__a, __b);
2489 }
2490
2491 __extension__ extern __inline uint32x2_t
2492 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcge_f32(float32x2_t __a,float32x2_t __b)2493 vcge_f32 (float32x2_t __a, float32x2_t __b)
2494 {
2495 return (uint32x2_t)__builtin_neon_vcgev2sf (__a, __b);
2496 }
2497
2498 __extension__ extern __inline uint8x8_t
2499 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcge_u8(uint8x8_t __a,uint8x8_t __b)2500 vcge_u8 (uint8x8_t __a, uint8x8_t __b)
2501 {
2502 return (uint8x8_t)__builtin_neon_vcgeuv8qi ((int8x8_t) __a, (int8x8_t) __b);
2503 }
2504
2505 __extension__ extern __inline uint16x4_t
2506 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcge_u16(uint16x4_t __a,uint16x4_t __b)2507 vcge_u16 (uint16x4_t __a, uint16x4_t __b)
2508 {
2509 return (uint16x4_t)__builtin_neon_vcgeuv4hi ((int16x4_t) __a, (int16x4_t) __b);
2510 }
2511
2512 __extension__ extern __inline uint32x2_t
2513 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcge_u32(uint32x2_t __a,uint32x2_t __b)2514 vcge_u32 (uint32x2_t __a, uint32x2_t __b)
2515 {
2516 return (uint32x2_t)__builtin_neon_vcgeuv2si ((int32x2_t) __a, (int32x2_t) __b);
2517 }
2518
2519 __extension__ extern __inline uint8x16_t
2520 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgeq_s8(int8x16_t __a,int8x16_t __b)2521 vcgeq_s8 (int8x16_t __a, int8x16_t __b)
2522 {
2523 return (uint8x16_t)__builtin_neon_vcgev16qi (__a, __b);
2524 }
2525
2526 __extension__ extern __inline uint16x8_t
2527 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgeq_s16(int16x8_t __a,int16x8_t __b)2528 vcgeq_s16 (int16x8_t __a, int16x8_t __b)
2529 {
2530 return (uint16x8_t)__builtin_neon_vcgev8hi (__a, __b);
2531 }
2532
2533 __extension__ extern __inline uint32x4_t
2534 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgeq_s32(int32x4_t __a,int32x4_t __b)2535 vcgeq_s32 (int32x4_t __a, int32x4_t __b)
2536 {
2537 return (uint32x4_t)__builtin_neon_vcgev4si (__a, __b);
2538 }
2539
2540 __extension__ extern __inline uint32x4_t
2541 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgeq_f32(float32x4_t __a,float32x4_t __b)2542 vcgeq_f32 (float32x4_t __a, float32x4_t __b)
2543 {
2544 return (uint32x4_t)__builtin_neon_vcgev4sf (__a, __b);
2545 }
2546
2547 __extension__ extern __inline uint8x16_t
2548 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgeq_u8(uint8x16_t __a,uint8x16_t __b)2549 vcgeq_u8 (uint8x16_t __a, uint8x16_t __b)
2550 {
2551 return (uint8x16_t)__builtin_neon_vcgeuv16qi ((int8x16_t) __a, (int8x16_t) __b);
2552 }
2553
2554 __extension__ extern __inline uint16x8_t
2555 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgeq_u16(uint16x8_t __a,uint16x8_t __b)2556 vcgeq_u16 (uint16x8_t __a, uint16x8_t __b)
2557 {
2558 return (uint16x8_t)__builtin_neon_vcgeuv8hi ((int16x8_t) __a, (int16x8_t) __b);
2559 }
2560
2561 __extension__ extern __inline uint32x4_t
2562 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgeq_u32(uint32x4_t __a,uint32x4_t __b)2563 vcgeq_u32 (uint32x4_t __a, uint32x4_t __b)
2564 {
2565 return (uint32x4_t)__builtin_neon_vcgeuv4si ((int32x4_t) __a, (int32x4_t) __b);
2566 }
2567
2568 __extension__ extern __inline uint8x8_t
2569 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcle_s8(int8x8_t __a,int8x8_t __b)2570 vcle_s8 (int8x8_t __a, int8x8_t __b)
2571 {
2572 return (uint8x8_t)__builtin_neon_vcgev8qi (__b, __a);
2573 }
2574
2575 __extension__ extern __inline uint16x4_t
2576 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcle_s16(int16x4_t __a,int16x4_t __b)2577 vcle_s16 (int16x4_t __a, int16x4_t __b)
2578 {
2579 return (uint16x4_t)__builtin_neon_vcgev4hi (__b, __a);
2580 }
2581
2582 __extension__ extern __inline uint32x2_t
2583 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcle_s32(int32x2_t __a,int32x2_t __b)2584 vcle_s32 (int32x2_t __a, int32x2_t __b)
2585 {
2586 return (uint32x2_t)__builtin_neon_vcgev2si (__b, __a);
2587 }
2588
2589 __extension__ extern __inline uint32x2_t
2590 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcle_f32(float32x2_t __a,float32x2_t __b)2591 vcle_f32 (float32x2_t __a, float32x2_t __b)
2592 {
2593 return (uint32x2_t)__builtin_neon_vcgev2sf (__b, __a);
2594 }
2595
2596 __extension__ extern __inline uint8x8_t
2597 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcle_u8(uint8x8_t __a,uint8x8_t __b)2598 vcle_u8 (uint8x8_t __a, uint8x8_t __b)
2599 {
2600 return (uint8x8_t)__builtin_neon_vcgeuv8qi ((int8x8_t) __b, (int8x8_t) __a);
2601 }
2602
2603 __extension__ extern __inline uint16x4_t
2604 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcle_u16(uint16x4_t __a,uint16x4_t __b)2605 vcle_u16 (uint16x4_t __a, uint16x4_t __b)
2606 {
2607 return (uint16x4_t)__builtin_neon_vcgeuv4hi ((int16x4_t) __b, (int16x4_t) __a);
2608 }
2609
2610 __extension__ extern __inline uint32x2_t
2611 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcle_u32(uint32x2_t __a,uint32x2_t __b)2612 vcle_u32 (uint32x2_t __a, uint32x2_t __b)
2613 {
2614 return (uint32x2_t)__builtin_neon_vcgeuv2si ((int32x2_t) __b, (int32x2_t) __a);
2615 }
2616
2617 __extension__ extern __inline uint8x16_t
2618 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcleq_s8(int8x16_t __a,int8x16_t __b)2619 vcleq_s8 (int8x16_t __a, int8x16_t __b)
2620 {
2621 return (uint8x16_t)__builtin_neon_vcgev16qi (__b, __a);
2622 }
2623
2624 __extension__ extern __inline uint16x8_t
2625 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcleq_s16(int16x8_t __a,int16x8_t __b)2626 vcleq_s16 (int16x8_t __a, int16x8_t __b)
2627 {
2628 return (uint16x8_t)__builtin_neon_vcgev8hi (__b, __a);
2629 }
2630
2631 __extension__ extern __inline uint32x4_t
2632 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcleq_s32(int32x4_t __a,int32x4_t __b)2633 vcleq_s32 (int32x4_t __a, int32x4_t __b)
2634 {
2635 return (uint32x4_t)__builtin_neon_vcgev4si (__b, __a);
2636 }
2637
2638 __extension__ extern __inline uint32x4_t
2639 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcleq_f32(float32x4_t __a,float32x4_t __b)2640 vcleq_f32 (float32x4_t __a, float32x4_t __b)
2641 {
2642 return (uint32x4_t)__builtin_neon_vcgev4sf (__b, __a);
2643 }
2644
2645 __extension__ extern __inline uint8x16_t
2646 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcleq_u8(uint8x16_t __a,uint8x16_t __b)2647 vcleq_u8 (uint8x16_t __a, uint8x16_t __b)
2648 {
2649 return (uint8x16_t)__builtin_neon_vcgeuv16qi ((int8x16_t) __b, (int8x16_t) __a);
2650 }
2651
2652 __extension__ extern __inline uint16x8_t
2653 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcleq_u16(uint16x8_t __a,uint16x8_t __b)2654 vcleq_u16 (uint16x8_t __a, uint16x8_t __b)
2655 {
2656 return (uint16x8_t)__builtin_neon_vcgeuv8hi ((int16x8_t) __b, (int16x8_t) __a);
2657 }
2658
2659 __extension__ extern __inline uint32x4_t
2660 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcleq_u32(uint32x4_t __a,uint32x4_t __b)2661 vcleq_u32 (uint32x4_t __a, uint32x4_t __b)
2662 {
2663 return (uint32x4_t)__builtin_neon_vcgeuv4si ((int32x4_t) __b, (int32x4_t) __a);
2664 }
2665
2666 __extension__ extern __inline uint8x8_t
2667 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgt_s8(int8x8_t __a,int8x8_t __b)2668 vcgt_s8 (int8x8_t __a, int8x8_t __b)
2669 {
2670 return (uint8x8_t)__builtin_neon_vcgtv8qi (__a, __b);
2671 }
2672
2673 __extension__ extern __inline uint16x4_t
2674 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgt_s16(int16x4_t __a,int16x4_t __b)2675 vcgt_s16 (int16x4_t __a, int16x4_t __b)
2676 {
2677 return (uint16x4_t)__builtin_neon_vcgtv4hi (__a, __b);
2678 }
2679
2680 __extension__ extern __inline uint32x2_t
2681 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgt_s32(int32x2_t __a,int32x2_t __b)2682 vcgt_s32 (int32x2_t __a, int32x2_t __b)
2683 {
2684 return (uint32x2_t)__builtin_neon_vcgtv2si (__a, __b);
2685 }
2686
2687 __extension__ extern __inline uint32x2_t
2688 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgt_f32(float32x2_t __a,float32x2_t __b)2689 vcgt_f32 (float32x2_t __a, float32x2_t __b)
2690 {
2691 return (uint32x2_t)__builtin_neon_vcgtv2sf (__a, __b);
2692 }
2693
2694 __extension__ extern __inline uint8x8_t
2695 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgt_u8(uint8x8_t __a,uint8x8_t __b)2696 vcgt_u8 (uint8x8_t __a, uint8x8_t __b)
2697 {
2698 return (uint8x8_t)__builtin_neon_vcgtuv8qi ((int8x8_t) __a, (int8x8_t) __b);
2699 }
2700
2701 __extension__ extern __inline uint16x4_t
2702 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgt_u16(uint16x4_t __a,uint16x4_t __b)2703 vcgt_u16 (uint16x4_t __a, uint16x4_t __b)
2704 {
2705 return (uint16x4_t)__builtin_neon_vcgtuv4hi ((int16x4_t) __a, (int16x4_t) __b);
2706 }
2707
2708 __extension__ extern __inline uint32x2_t
2709 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgt_u32(uint32x2_t __a,uint32x2_t __b)2710 vcgt_u32 (uint32x2_t __a, uint32x2_t __b)
2711 {
2712 return (uint32x2_t)__builtin_neon_vcgtuv2si ((int32x2_t) __a, (int32x2_t) __b);
2713 }
2714
2715 __extension__ extern __inline uint8x16_t
2716 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtq_s8(int8x16_t __a,int8x16_t __b)2717 vcgtq_s8 (int8x16_t __a, int8x16_t __b)
2718 {
2719 return (uint8x16_t)__builtin_neon_vcgtv16qi (__a, __b);
2720 }
2721
2722 __extension__ extern __inline uint16x8_t
2723 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtq_s16(int16x8_t __a,int16x8_t __b)2724 vcgtq_s16 (int16x8_t __a, int16x8_t __b)
2725 {
2726 return (uint16x8_t)__builtin_neon_vcgtv8hi (__a, __b);
2727 }
2728
2729 __extension__ extern __inline uint32x4_t
2730 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtq_s32(int32x4_t __a,int32x4_t __b)2731 vcgtq_s32 (int32x4_t __a, int32x4_t __b)
2732 {
2733 return (uint32x4_t)__builtin_neon_vcgtv4si (__a, __b);
2734 }
2735
2736 __extension__ extern __inline uint32x4_t
2737 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtq_f32(float32x4_t __a,float32x4_t __b)2738 vcgtq_f32 (float32x4_t __a, float32x4_t __b)
2739 {
2740 return (uint32x4_t)__builtin_neon_vcgtv4sf (__a, __b);
2741 }
2742
2743 __extension__ extern __inline uint8x16_t
2744 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtq_u8(uint8x16_t __a,uint8x16_t __b)2745 vcgtq_u8 (uint8x16_t __a, uint8x16_t __b)
2746 {
2747 return (uint8x16_t)__builtin_neon_vcgtuv16qi ((int8x16_t) __a, (int8x16_t) __b);
2748 }
2749
2750 __extension__ extern __inline uint16x8_t
2751 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtq_u16(uint16x8_t __a,uint16x8_t __b)2752 vcgtq_u16 (uint16x8_t __a, uint16x8_t __b)
2753 {
2754 return (uint16x8_t)__builtin_neon_vcgtuv8hi ((int16x8_t) __a, (int16x8_t) __b);
2755 }
2756
2757 __extension__ extern __inline uint32x4_t
2758 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtq_u32(uint32x4_t __a,uint32x4_t __b)2759 vcgtq_u32 (uint32x4_t __a, uint32x4_t __b)
2760 {
2761 return (uint32x4_t)__builtin_neon_vcgtuv4si ((int32x4_t) __a, (int32x4_t) __b);
2762 }
2763
2764 __extension__ extern __inline uint8x8_t
2765 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclt_s8(int8x8_t __a,int8x8_t __b)2766 vclt_s8 (int8x8_t __a, int8x8_t __b)
2767 {
2768 return (uint8x8_t)__builtin_neon_vcgtv8qi (__b, __a);
2769 }
2770
2771 __extension__ extern __inline uint16x4_t
2772 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclt_s16(int16x4_t __a,int16x4_t __b)2773 vclt_s16 (int16x4_t __a, int16x4_t __b)
2774 {
2775 return (uint16x4_t)__builtin_neon_vcgtv4hi (__b, __a);
2776 }
2777
2778 __extension__ extern __inline uint32x2_t
2779 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclt_s32(int32x2_t __a,int32x2_t __b)2780 vclt_s32 (int32x2_t __a, int32x2_t __b)
2781 {
2782 return (uint32x2_t)__builtin_neon_vcgtv2si (__b, __a);
2783 }
2784
2785 __extension__ extern __inline uint32x2_t
2786 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclt_f32(float32x2_t __a,float32x2_t __b)2787 vclt_f32 (float32x2_t __a, float32x2_t __b)
2788 {
2789 return (uint32x2_t)__builtin_neon_vcgtv2sf (__b, __a);
2790 }
2791
2792 __extension__ extern __inline uint8x8_t
2793 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclt_u8(uint8x8_t __a,uint8x8_t __b)2794 vclt_u8 (uint8x8_t __a, uint8x8_t __b)
2795 {
2796 return (uint8x8_t)__builtin_neon_vcgtuv8qi ((int8x8_t) __b, (int8x8_t) __a);
2797 }
2798
2799 __extension__ extern __inline uint16x4_t
2800 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclt_u16(uint16x4_t __a,uint16x4_t __b)2801 vclt_u16 (uint16x4_t __a, uint16x4_t __b)
2802 {
2803 return (uint16x4_t)__builtin_neon_vcgtuv4hi ((int16x4_t) __b, (int16x4_t) __a);
2804 }
2805
2806 __extension__ extern __inline uint32x2_t
2807 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclt_u32(uint32x2_t __a,uint32x2_t __b)2808 vclt_u32 (uint32x2_t __a, uint32x2_t __b)
2809 {
2810 return (uint32x2_t)__builtin_neon_vcgtuv2si ((int32x2_t) __b, (int32x2_t) __a);
2811 }
2812
2813 __extension__ extern __inline uint8x16_t
2814 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltq_s8(int8x16_t __a,int8x16_t __b)2815 vcltq_s8 (int8x16_t __a, int8x16_t __b)
2816 {
2817 return (uint8x16_t)__builtin_neon_vcgtv16qi (__b, __a);
2818 }
2819
2820 __extension__ extern __inline uint16x8_t
2821 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltq_s16(int16x8_t __a,int16x8_t __b)2822 vcltq_s16 (int16x8_t __a, int16x8_t __b)
2823 {
2824 return (uint16x8_t)__builtin_neon_vcgtv8hi (__b, __a);
2825 }
2826
2827 __extension__ extern __inline uint32x4_t
2828 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltq_s32(int32x4_t __a,int32x4_t __b)2829 vcltq_s32 (int32x4_t __a, int32x4_t __b)
2830 {
2831 return (uint32x4_t)__builtin_neon_vcgtv4si (__b, __a);
2832 }
2833
2834 __extension__ extern __inline uint32x4_t
2835 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltq_f32(float32x4_t __a,float32x4_t __b)2836 vcltq_f32 (float32x4_t __a, float32x4_t __b)
2837 {
2838 return (uint32x4_t)__builtin_neon_vcgtv4sf (__b, __a);
2839 }
2840
2841 __extension__ extern __inline uint8x16_t
2842 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltq_u8(uint8x16_t __a,uint8x16_t __b)2843 vcltq_u8 (uint8x16_t __a, uint8x16_t __b)
2844 {
2845 return (uint8x16_t)__builtin_neon_vcgtuv16qi ((int8x16_t) __b, (int8x16_t) __a);
2846 }
2847
2848 __extension__ extern __inline uint16x8_t
2849 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltq_u16(uint16x8_t __a,uint16x8_t __b)2850 vcltq_u16 (uint16x8_t __a, uint16x8_t __b)
2851 {
2852 return (uint16x8_t)__builtin_neon_vcgtuv8hi ((int16x8_t) __b, (int16x8_t) __a);
2853 }
2854
2855 __extension__ extern __inline uint32x4_t
2856 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltq_u32(uint32x4_t __a,uint32x4_t __b)2857 vcltq_u32 (uint32x4_t __a, uint32x4_t __b)
2858 {
2859 return (uint32x4_t)__builtin_neon_vcgtuv4si ((int32x4_t) __b, (int32x4_t) __a);
2860 }
2861
2862 __extension__ extern __inline uint32x2_t
2863 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcage_f32(float32x2_t __a,float32x2_t __b)2864 vcage_f32 (float32x2_t __a, float32x2_t __b)
2865 {
2866 return (uint32x2_t)__builtin_neon_vcagev2sf (__a, __b);
2867 }
2868
2869 __extension__ extern __inline uint32x4_t
2870 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcageq_f32(float32x4_t __a,float32x4_t __b)2871 vcageq_f32 (float32x4_t __a, float32x4_t __b)
2872 {
2873 return (uint32x4_t)__builtin_neon_vcagev4sf (__a, __b);
2874 }
2875
2876 __extension__ extern __inline uint32x2_t
2877 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcale_f32(float32x2_t __a,float32x2_t __b)2878 vcale_f32 (float32x2_t __a, float32x2_t __b)
2879 {
2880 return (uint32x2_t)__builtin_neon_vcagev2sf (__b, __a);
2881 }
2882
2883 __extension__ extern __inline uint32x4_t
2884 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcaleq_f32(float32x4_t __a,float32x4_t __b)2885 vcaleq_f32 (float32x4_t __a, float32x4_t __b)
2886 {
2887 return (uint32x4_t)__builtin_neon_vcagev4sf (__b, __a);
2888 }
2889
2890 __extension__ extern __inline uint32x2_t
2891 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcagt_f32(float32x2_t __a,float32x2_t __b)2892 vcagt_f32 (float32x2_t __a, float32x2_t __b)
2893 {
2894 return (uint32x2_t)__builtin_neon_vcagtv2sf (__a, __b);
2895 }
2896
2897 __extension__ extern __inline uint32x4_t
2898 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcagtq_f32(float32x4_t __a,float32x4_t __b)2899 vcagtq_f32 (float32x4_t __a, float32x4_t __b)
2900 {
2901 return (uint32x4_t)__builtin_neon_vcagtv4sf (__a, __b);
2902 }
2903
2904 __extension__ extern __inline uint32x2_t
2905 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcalt_f32(float32x2_t __a,float32x2_t __b)2906 vcalt_f32 (float32x2_t __a, float32x2_t __b)
2907 {
2908 return (uint32x2_t)__builtin_neon_vcagtv2sf (__b, __a);
2909 }
2910
2911 __extension__ extern __inline uint32x4_t
2912 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcaltq_f32(float32x4_t __a,float32x4_t __b)2913 vcaltq_f32 (float32x4_t __a, float32x4_t __b)
2914 {
2915 return (uint32x4_t)__builtin_neon_vcagtv4sf (__b, __a);
2916 }
2917
2918 __extension__ extern __inline uint8x8_t
2919 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtst_s8(int8x8_t __a,int8x8_t __b)2920 vtst_s8 (int8x8_t __a, int8x8_t __b)
2921 {
2922 return (uint8x8_t)__builtin_neon_vtstv8qi (__a, __b);
2923 }
2924
2925 __extension__ extern __inline uint16x4_t
2926 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtst_s16(int16x4_t __a,int16x4_t __b)2927 vtst_s16 (int16x4_t __a, int16x4_t __b)
2928 {
2929 return (uint16x4_t)__builtin_neon_vtstv4hi (__a, __b);
2930 }
2931
2932 __extension__ extern __inline uint32x2_t
2933 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtst_s32(int32x2_t __a,int32x2_t __b)2934 vtst_s32 (int32x2_t __a, int32x2_t __b)
2935 {
2936 return (uint32x2_t)__builtin_neon_vtstv2si (__a, __b);
2937 }
2938
2939 __extension__ extern __inline uint8x8_t
2940 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtst_u8(uint8x8_t __a,uint8x8_t __b)2941 vtst_u8 (uint8x8_t __a, uint8x8_t __b)
2942 {
2943 return (uint8x8_t)__builtin_neon_vtstv8qi ((int8x8_t) __a, (int8x8_t) __b);
2944 }
2945
2946 __extension__ extern __inline uint16x4_t
2947 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtst_u16(uint16x4_t __a,uint16x4_t __b)2948 vtst_u16 (uint16x4_t __a, uint16x4_t __b)
2949 {
2950 return (uint16x4_t)__builtin_neon_vtstv4hi ((int16x4_t) __a, (int16x4_t) __b);
2951 }
2952
2953 __extension__ extern __inline uint32x2_t
2954 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtst_u32(uint32x2_t __a,uint32x2_t __b)2955 vtst_u32 (uint32x2_t __a, uint32x2_t __b)
2956 {
2957 return (uint32x2_t)__builtin_neon_vtstv2si ((int32x2_t) __a, (int32x2_t) __b);
2958 }
2959
2960 __extension__ extern __inline uint8x8_t
2961 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtst_p8(poly8x8_t __a,poly8x8_t __b)2962 vtst_p8 (poly8x8_t __a, poly8x8_t __b)
2963 {
2964 return (uint8x8_t)__builtin_neon_vtstv8qi ((int8x8_t) __a, (int8x8_t) __b);
2965 }
2966
2967 __extension__ extern __inline uint16x4_t
2968 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtst_p16(poly16x4_t __a,poly16x4_t __b)2969 vtst_p16 (poly16x4_t __a, poly16x4_t __b)
2970 {
2971 return (uint16x4_t)__builtin_neon_vtstv4hi ((int16x4_t) __a, (int16x4_t) __b);
2972 }
2973
2974 __extension__ extern __inline uint8x16_t
2975 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtstq_s8(int8x16_t __a,int8x16_t __b)2976 vtstq_s8 (int8x16_t __a, int8x16_t __b)
2977 {
2978 return (uint8x16_t)__builtin_neon_vtstv16qi (__a, __b);
2979 }
2980
2981 __extension__ extern __inline uint16x8_t
2982 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtstq_s16(int16x8_t __a,int16x8_t __b)2983 vtstq_s16 (int16x8_t __a, int16x8_t __b)
2984 {
2985 return (uint16x8_t)__builtin_neon_vtstv8hi (__a, __b);
2986 }
2987
2988 __extension__ extern __inline uint32x4_t
2989 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtstq_s32(int32x4_t __a,int32x4_t __b)2990 vtstq_s32 (int32x4_t __a, int32x4_t __b)
2991 {
2992 return (uint32x4_t)__builtin_neon_vtstv4si (__a, __b);
2993 }
2994
2995 __extension__ extern __inline uint8x16_t
2996 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtstq_u8(uint8x16_t __a,uint8x16_t __b)2997 vtstq_u8 (uint8x16_t __a, uint8x16_t __b)
2998 {
2999 return (uint8x16_t)__builtin_neon_vtstv16qi ((int8x16_t) __a, (int8x16_t) __b);
3000 }
3001
3002 __extension__ extern __inline uint16x8_t
3003 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtstq_u16(uint16x8_t __a,uint16x8_t __b)3004 vtstq_u16 (uint16x8_t __a, uint16x8_t __b)
3005 {
3006 return (uint16x8_t)__builtin_neon_vtstv8hi ((int16x8_t) __a, (int16x8_t) __b);
3007 }
3008
3009 __extension__ extern __inline uint32x4_t
3010 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtstq_u32(uint32x4_t __a,uint32x4_t __b)3011 vtstq_u32 (uint32x4_t __a, uint32x4_t __b)
3012 {
3013 return (uint32x4_t)__builtin_neon_vtstv4si ((int32x4_t) __a, (int32x4_t) __b);
3014 }
3015
3016 __extension__ extern __inline uint8x16_t
3017 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtstq_p8(poly8x16_t __a,poly8x16_t __b)3018 vtstq_p8 (poly8x16_t __a, poly8x16_t __b)
3019 {
3020 return (uint8x16_t)__builtin_neon_vtstv16qi ((int8x16_t) __a, (int8x16_t) __b);
3021 }
3022
3023 __extension__ extern __inline uint16x8_t
3024 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtstq_p16(poly16x8_t __a,poly16x8_t __b)3025 vtstq_p16 (poly16x8_t __a, poly16x8_t __b)
3026 {
3027 return (uint16x8_t)__builtin_neon_vtstv8hi ((int16x8_t) __a, (int16x8_t) __b);
3028 }
3029
3030 __extension__ extern __inline int8x8_t
3031 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabd_s8(int8x8_t __a,int8x8_t __b)3032 vabd_s8 (int8x8_t __a, int8x8_t __b)
3033 {
3034 return (int8x8_t)__builtin_neon_vabdsv8qi (__a, __b);
3035 }
3036
3037 __extension__ extern __inline int16x4_t
3038 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabd_s16(int16x4_t __a,int16x4_t __b)3039 vabd_s16 (int16x4_t __a, int16x4_t __b)
3040 {
3041 return (int16x4_t)__builtin_neon_vabdsv4hi (__a, __b);
3042 }
3043
3044 __extension__ extern __inline int32x2_t
3045 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabd_s32(int32x2_t __a,int32x2_t __b)3046 vabd_s32 (int32x2_t __a, int32x2_t __b)
3047 {
3048 return (int32x2_t)__builtin_neon_vabdsv2si (__a, __b);
3049 }
3050
3051 __extension__ extern __inline float32x2_t
3052 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabd_f32(float32x2_t __a,float32x2_t __b)3053 vabd_f32 (float32x2_t __a, float32x2_t __b)
3054 {
3055 return (float32x2_t)__builtin_neon_vabdfv2sf (__a, __b);
3056 }
3057
3058 __extension__ extern __inline uint8x8_t
3059 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabd_u8(uint8x8_t __a,uint8x8_t __b)3060 vabd_u8 (uint8x8_t __a, uint8x8_t __b)
3061 {
3062 return (uint8x8_t)__builtin_neon_vabduv8qi ((int8x8_t) __a, (int8x8_t) __b);
3063 }
3064
3065 __extension__ extern __inline uint16x4_t
3066 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabd_u16(uint16x4_t __a,uint16x4_t __b)3067 vabd_u16 (uint16x4_t __a, uint16x4_t __b)
3068 {
3069 return (uint16x4_t)__builtin_neon_vabduv4hi ((int16x4_t) __a, (int16x4_t) __b);
3070 }
3071
3072 __extension__ extern __inline uint32x2_t
3073 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabd_u32(uint32x2_t __a,uint32x2_t __b)3074 vabd_u32 (uint32x2_t __a, uint32x2_t __b)
3075 {
3076 return (uint32x2_t)__builtin_neon_vabduv2si ((int32x2_t) __a, (int32x2_t) __b);
3077 }
3078
3079 __extension__ extern __inline int8x16_t
3080 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdq_s8(int8x16_t __a,int8x16_t __b)3081 vabdq_s8 (int8x16_t __a, int8x16_t __b)
3082 {
3083 return (int8x16_t)__builtin_neon_vabdsv16qi (__a, __b);
3084 }
3085
3086 __extension__ extern __inline int16x8_t
3087 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdq_s16(int16x8_t __a,int16x8_t __b)3088 vabdq_s16 (int16x8_t __a, int16x8_t __b)
3089 {
3090 return (int16x8_t)__builtin_neon_vabdsv8hi (__a, __b);
3091 }
3092
3093 __extension__ extern __inline int32x4_t
3094 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdq_s32(int32x4_t __a,int32x4_t __b)3095 vabdq_s32 (int32x4_t __a, int32x4_t __b)
3096 {
3097 return (int32x4_t)__builtin_neon_vabdsv4si (__a, __b);
3098 }
3099
3100 __extension__ extern __inline float32x4_t
3101 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdq_f32(float32x4_t __a,float32x4_t __b)3102 vabdq_f32 (float32x4_t __a, float32x4_t __b)
3103 {
3104 return (float32x4_t)__builtin_neon_vabdfv4sf (__a, __b);
3105 }
3106
3107 __extension__ extern __inline uint8x16_t
3108 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdq_u8(uint8x16_t __a,uint8x16_t __b)3109 vabdq_u8 (uint8x16_t __a, uint8x16_t __b)
3110 {
3111 return (uint8x16_t)__builtin_neon_vabduv16qi ((int8x16_t) __a, (int8x16_t) __b);
3112 }
3113
3114 __extension__ extern __inline uint16x8_t
3115 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdq_u16(uint16x8_t __a,uint16x8_t __b)3116 vabdq_u16 (uint16x8_t __a, uint16x8_t __b)
3117 {
3118 return (uint16x8_t)__builtin_neon_vabduv8hi ((int16x8_t) __a, (int16x8_t) __b);
3119 }
3120
3121 __extension__ extern __inline uint32x4_t
3122 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdq_u32(uint32x4_t __a,uint32x4_t __b)3123 vabdq_u32 (uint32x4_t __a, uint32x4_t __b)
3124 {
3125 return (uint32x4_t)__builtin_neon_vabduv4si ((int32x4_t) __a, (int32x4_t) __b);
3126 }
3127
3128 __extension__ extern __inline int16x8_t
3129 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdl_s8(int8x8_t __a,int8x8_t __b)3130 vabdl_s8 (int8x8_t __a, int8x8_t __b)
3131 {
3132 return (int16x8_t)__builtin_neon_vabdlsv8qi (__a, __b);
3133 }
3134
3135 __extension__ extern __inline int32x4_t
3136 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdl_s16(int16x4_t __a,int16x4_t __b)3137 vabdl_s16 (int16x4_t __a, int16x4_t __b)
3138 {
3139 return (int32x4_t)__builtin_neon_vabdlsv4hi (__a, __b);
3140 }
3141
3142 __extension__ extern __inline int64x2_t
3143 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdl_s32(int32x2_t __a,int32x2_t __b)3144 vabdl_s32 (int32x2_t __a, int32x2_t __b)
3145 {
3146 return (int64x2_t)__builtin_neon_vabdlsv2si (__a, __b);
3147 }
3148
3149 __extension__ extern __inline uint16x8_t
3150 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdl_u8(uint8x8_t __a,uint8x8_t __b)3151 vabdl_u8 (uint8x8_t __a, uint8x8_t __b)
3152 {
3153 return (uint16x8_t)__builtin_neon_vabdluv8qi ((int8x8_t) __a, (int8x8_t) __b);
3154 }
3155
3156 __extension__ extern __inline uint32x4_t
3157 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdl_u16(uint16x4_t __a,uint16x4_t __b)3158 vabdl_u16 (uint16x4_t __a, uint16x4_t __b)
3159 {
3160 return (uint32x4_t)__builtin_neon_vabdluv4hi ((int16x4_t) __a, (int16x4_t) __b);
3161 }
3162
3163 __extension__ extern __inline uint64x2_t
3164 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdl_u32(uint32x2_t __a,uint32x2_t __b)3165 vabdl_u32 (uint32x2_t __a, uint32x2_t __b)
3166 {
3167 return (uint64x2_t)__builtin_neon_vabdluv2si ((int32x2_t) __a, (int32x2_t) __b);
3168 }
3169
3170 __extension__ extern __inline int8x8_t
3171 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaba_s8(int8x8_t __a,int8x8_t __b,int8x8_t __c)3172 vaba_s8 (int8x8_t __a, int8x8_t __b, int8x8_t __c)
3173 {
3174 return (int8x8_t)__builtin_neon_vabasv8qi (__a, __b, __c);
3175 }
3176
3177 __extension__ extern __inline int16x4_t
3178 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaba_s16(int16x4_t __a,int16x4_t __b,int16x4_t __c)3179 vaba_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c)
3180 {
3181 return (int16x4_t)__builtin_neon_vabasv4hi (__a, __b, __c);
3182 }
3183
3184 __extension__ extern __inline int32x2_t
3185 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaba_s32(int32x2_t __a,int32x2_t __b,int32x2_t __c)3186 vaba_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c)
3187 {
3188 return (int32x2_t)__builtin_neon_vabasv2si (__a, __b, __c);
3189 }
3190
3191 __extension__ extern __inline uint8x8_t
3192 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaba_u8(uint8x8_t __a,uint8x8_t __b,uint8x8_t __c)3193 vaba_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c)
3194 {
3195 return (uint8x8_t)__builtin_neon_vabauv8qi ((int8x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
3196 }
3197
3198 __extension__ extern __inline uint16x4_t
3199 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaba_u16(uint16x4_t __a,uint16x4_t __b,uint16x4_t __c)3200 vaba_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c)
3201 {
3202 return (uint16x4_t)__builtin_neon_vabauv4hi ((int16x4_t) __a, (int16x4_t) __b, (int16x4_t) __c);
3203 }
3204
3205 __extension__ extern __inline uint32x2_t
3206 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaba_u32(uint32x2_t __a,uint32x2_t __b,uint32x2_t __c)3207 vaba_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c)
3208 {
3209 return (uint32x2_t)__builtin_neon_vabauv2si ((int32x2_t) __a, (int32x2_t) __b, (int32x2_t) __c);
3210 }
3211
3212 __extension__ extern __inline int8x16_t
3213 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabaq_s8(int8x16_t __a,int8x16_t __b,int8x16_t __c)3214 vabaq_s8 (int8x16_t __a, int8x16_t __b, int8x16_t __c)
3215 {
3216 return (int8x16_t)__builtin_neon_vabasv16qi (__a, __b, __c);
3217 }
3218
3219 __extension__ extern __inline int16x8_t
3220 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabaq_s16(int16x8_t __a,int16x8_t __b,int16x8_t __c)3221 vabaq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
3222 {
3223 return (int16x8_t)__builtin_neon_vabasv8hi (__a, __b, __c);
3224 }
3225
3226 __extension__ extern __inline int32x4_t
3227 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabaq_s32(int32x4_t __a,int32x4_t __b,int32x4_t __c)3228 vabaq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
3229 {
3230 return (int32x4_t)__builtin_neon_vabasv4si (__a, __b, __c);
3231 }
3232
3233 __extension__ extern __inline uint8x16_t
3234 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabaq_u8(uint8x16_t __a,uint8x16_t __b,uint8x16_t __c)3235 vabaq_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c)
3236 {
3237 return (uint8x16_t)__builtin_neon_vabauv16qi ((int8x16_t) __a, (int8x16_t) __b, (int8x16_t) __c);
3238 }
3239
3240 __extension__ extern __inline uint16x8_t
3241 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabaq_u16(uint16x8_t __a,uint16x8_t __b,uint16x8_t __c)3242 vabaq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
3243 {
3244 return (uint16x8_t)__builtin_neon_vabauv8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x8_t) __c);
3245 }
3246
3247 __extension__ extern __inline uint32x4_t
3248 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabaq_u32(uint32x4_t __a,uint32x4_t __b,uint32x4_t __c)3249 vabaq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
3250 {
3251 return (uint32x4_t)__builtin_neon_vabauv4si ((int32x4_t) __a, (int32x4_t) __b, (int32x4_t) __c);
3252 }
3253
3254 __extension__ extern __inline int16x8_t
3255 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabal_s8(int16x8_t __a,int8x8_t __b,int8x8_t __c)3256 vabal_s8 (int16x8_t __a, int8x8_t __b, int8x8_t __c)
3257 {
3258 return (int16x8_t)__builtin_neon_vabalsv8qi (__a, __b, __c);
3259 }
3260
3261 __extension__ extern __inline int32x4_t
3262 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabal_s16(int32x4_t __a,int16x4_t __b,int16x4_t __c)3263 vabal_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
3264 {
3265 return (int32x4_t)__builtin_neon_vabalsv4hi (__a, __b, __c);
3266 }
3267
3268 __extension__ extern __inline int64x2_t
3269 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabal_s32(int64x2_t __a,int32x2_t __b,int32x2_t __c)3270 vabal_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
3271 {
3272 return (int64x2_t)__builtin_neon_vabalsv2si (__a, __b, __c);
3273 }
3274
3275 __extension__ extern __inline uint16x8_t
3276 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabal_u8(uint16x8_t __a,uint8x8_t __b,uint8x8_t __c)3277 vabal_u8 (uint16x8_t __a, uint8x8_t __b, uint8x8_t __c)
3278 {
3279 return (uint16x8_t)__builtin_neon_vabaluv8qi ((int16x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
3280 }
3281
3282 __extension__ extern __inline uint32x4_t
3283 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabal_u16(uint32x4_t __a,uint16x4_t __b,uint16x4_t __c)3284 vabal_u16 (uint32x4_t __a, uint16x4_t __b, uint16x4_t __c)
3285 {
3286 return (uint32x4_t)__builtin_neon_vabaluv4hi ((int32x4_t) __a, (int16x4_t) __b, (int16x4_t) __c);
3287 }
3288
3289 __extension__ extern __inline uint64x2_t
3290 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabal_u32(uint64x2_t __a,uint32x2_t __b,uint32x2_t __c)3291 vabal_u32 (uint64x2_t __a, uint32x2_t __b, uint32x2_t __c)
3292 {
3293 return (uint64x2_t)__builtin_neon_vabaluv2si ((int64x2_t) __a, (int32x2_t) __b, (int32x2_t) __c);
3294 }
3295
3296 __extension__ extern __inline int8x8_t
3297 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmax_s8(int8x8_t __a,int8x8_t __b)3298 vmax_s8 (int8x8_t __a, int8x8_t __b)
3299 {
3300 return (int8x8_t)__builtin_neon_vmaxsv8qi (__a, __b);
3301 }
3302
3303 __extension__ extern __inline int16x4_t
3304 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmax_s16(int16x4_t __a,int16x4_t __b)3305 vmax_s16 (int16x4_t __a, int16x4_t __b)
3306 {
3307 return (int16x4_t)__builtin_neon_vmaxsv4hi (__a, __b);
3308 }
3309
3310 __extension__ extern __inline int32x2_t
3311 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmax_s32(int32x2_t __a,int32x2_t __b)3312 vmax_s32 (int32x2_t __a, int32x2_t __b)
3313 {
3314 return (int32x2_t)__builtin_neon_vmaxsv2si (__a, __b);
3315 }
3316
3317 __extension__ extern __inline float32x2_t
3318 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmax_f32(float32x2_t __a,float32x2_t __b)3319 vmax_f32 (float32x2_t __a, float32x2_t __b)
3320 {
3321 return (float32x2_t)__builtin_neon_vmaxfv2sf (__a, __b);
3322 }
3323
3324 __extension__ extern __inline uint8x8_t
3325 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmax_u8(uint8x8_t __a,uint8x8_t __b)3326 vmax_u8 (uint8x8_t __a, uint8x8_t __b)
3327 {
3328 return (uint8x8_t)__builtin_neon_vmaxuv8qi ((int8x8_t) __a, (int8x8_t) __b);
3329 }
3330
3331 __extension__ extern __inline uint16x4_t
3332 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmax_u16(uint16x4_t __a,uint16x4_t __b)3333 vmax_u16 (uint16x4_t __a, uint16x4_t __b)
3334 {
3335 return (uint16x4_t)__builtin_neon_vmaxuv4hi ((int16x4_t) __a, (int16x4_t) __b);
3336 }
3337
3338 __extension__ extern __inline uint32x2_t
3339 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmax_u32(uint32x2_t __a,uint32x2_t __b)3340 vmax_u32 (uint32x2_t __a, uint32x2_t __b)
3341 {
3342 return (uint32x2_t)__builtin_neon_vmaxuv2si ((int32x2_t) __a, (int32x2_t) __b);
3343 }
3344
3345 __extension__ extern __inline int8x16_t
3346 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxq_s8(int8x16_t __a,int8x16_t __b)3347 vmaxq_s8 (int8x16_t __a, int8x16_t __b)
3348 {
3349 return (int8x16_t)__builtin_neon_vmaxsv16qi (__a, __b);
3350 }
3351
3352 __extension__ extern __inline int16x8_t
3353 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxq_s16(int16x8_t __a,int16x8_t __b)3354 vmaxq_s16 (int16x8_t __a, int16x8_t __b)
3355 {
3356 return (int16x8_t)__builtin_neon_vmaxsv8hi (__a, __b);
3357 }
3358
3359 __extension__ extern __inline int32x4_t
3360 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxq_s32(int32x4_t __a,int32x4_t __b)3361 vmaxq_s32 (int32x4_t __a, int32x4_t __b)
3362 {
3363 return (int32x4_t)__builtin_neon_vmaxsv4si (__a, __b);
3364 }
3365
3366 __extension__ extern __inline float32x4_t
3367 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxq_f32(float32x4_t __a,float32x4_t __b)3368 vmaxq_f32 (float32x4_t __a, float32x4_t __b)
3369 {
3370 return (float32x4_t)__builtin_neon_vmaxfv4sf (__a, __b);
3371 }
3372
3373 #pragma GCC push_options
3374 #pragma GCC target ("fpu=neon-fp-armv8")
3375 __extension__ extern __inline float32x2_t
3376 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxnm_f32(float32x2_t a,float32x2_t b)3377 vmaxnm_f32 (float32x2_t a, float32x2_t b)
3378 {
3379 return (float32x2_t)__builtin_neon_vmaxnmv2sf (a, b);
3380 }
3381
3382 __extension__ extern __inline float32x4_t
3383 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxnmq_f32(float32x4_t a,float32x4_t b)3384 vmaxnmq_f32 (float32x4_t a, float32x4_t b)
3385 {
3386 return (float32x4_t)__builtin_neon_vmaxnmv4sf (a, b);
3387 }
3388
3389 __extension__ extern __inline float32x2_t
3390 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminnm_f32(float32x2_t a,float32x2_t b)3391 vminnm_f32 (float32x2_t a, float32x2_t b)
3392 {
3393 return (float32x2_t)__builtin_neon_vminnmv2sf (a, b);
3394 }
3395
3396 __extension__ extern __inline float32x4_t
3397 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminnmq_f32(float32x4_t a,float32x4_t b)3398 vminnmq_f32 (float32x4_t a, float32x4_t b)
3399 {
3400 return (float32x4_t)__builtin_neon_vminnmv4sf (a, b);
3401 }
3402 #pragma GCC pop_options
3403
3404
3405 __extension__ extern __inline uint8x16_t
3406 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxq_u8(uint8x16_t __a,uint8x16_t __b)3407 vmaxq_u8 (uint8x16_t __a, uint8x16_t __b)
3408 {
3409 return (uint8x16_t)__builtin_neon_vmaxuv16qi ((int8x16_t) __a, (int8x16_t) __b);
3410 }
3411
3412 __extension__ extern __inline uint16x8_t
3413 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxq_u16(uint16x8_t __a,uint16x8_t __b)3414 vmaxq_u16 (uint16x8_t __a, uint16x8_t __b)
3415 {
3416 return (uint16x8_t)__builtin_neon_vmaxuv8hi ((int16x8_t) __a, (int16x8_t) __b);
3417 }
3418
3419 __extension__ extern __inline uint32x4_t
3420 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxq_u32(uint32x4_t __a,uint32x4_t __b)3421 vmaxq_u32 (uint32x4_t __a, uint32x4_t __b)
3422 {
3423 return (uint32x4_t)__builtin_neon_vmaxuv4si ((int32x4_t) __a, (int32x4_t) __b);
3424 }
3425
3426 __extension__ extern __inline int8x8_t
3427 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmin_s8(int8x8_t __a,int8x8_t __b)3428 vmin_s8 (int8x8_t __a, int8x8_t __b)
3429 {
3430 return (int8x8_t)__builtin_neon_vminsv8qi (__a, __b);
3431 }
3432
3433 __extension__ extern __inline int16x4_t
3434 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmin_s16(int16x4_t __a,int16x4_t __b)3435 vmin_s16 (int16x4_t __a, int16x4_t __b)
3436 {
3437 return (int16x4_t)__builtin_neon_vminsv4hi (__a, __b);
3438 }
3439
3440 __extension__ extern __inline int32x2_t
3441 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmin_s32(int32x2_t __a,int32x2_t __b)3442 vmin_s32 (int32x2_t __a, int32x2_t __b)
3443 {
3444 return (int32x2_t)__builtin_neon_vminsv2si (__a, __b);
3445 }
3446
3447 __extension__ extern __inline float32x2_t
3448 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmin_f32(float32x2_t __a,float32x2_t __b)3449 vmin_f32 (float32x2_t __a, float32x2_t __b)
3450 {
3451 return (float32x2_t)__builtin_neon_vminfv2sf (__a, __b);
3452 }
3453
3454 __extension__ extern __inline uint8x8_t
3455 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmin_u8(uint8x8_t __a,uint8x8_t __b)3456 vmin_u8 (uint8x8_t __a, uint8x8_t __b)
3457 {
3458 return (uint8x8_t)__builtin_neon_vminuv8qi ((int8x8_t) __a, (int8x8_t) __b);
3459 }
3460
3461 __extension__ extern __inline uint16x4_t
3462 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmin_u16(uint16x4_t __a,uint16x4_t __b)3463 vmin_u16 (uint16x4_t __a, uint16x4_t __b)
3464 {
3465 return (uint16x4_t)__builtin_neon_vminuv4hi ((int16x4_t) __a, (int16x4_t) __b);
3466 }
3467
3468 __extension__ extern __inline uint32x2_t
3469 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmin_u32(uint32x2_t __a,uint32x2_t __b)3470 vmin_u32 (uint32x2_t __a, uint32x2_t __b)
3471 {
3472 return (uint32x2_t)__builtin_neon_vminuv2si ((int32x2_t) __a, (int32x2_t) __b);
3473 }
3474
3475 __extension__ extern __inline int8x16_t
3476 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminq_s8(int8x16_t __a,int8x16_t __b)3477 vminq_s8 (int8x16_t __a, int8x16_t __b)
3478 {
3479 return (int8x16_t)__builtin_neon_vminsv16qi (__a, __b);
3480 }
3481
3482 __extension__ extern __inline int16x8_t
3483 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminq_s16(int16x8_t __a,int16x8_t __b)3484 vminq_s16 (int16x8_t __a, int16x8_t __b)
3485 {
3486 return (int16x8_t)__builtin_neon_vminsv8hi (__a, __b);
3487 }
3488
3489 __extension__ extern __inline int32x4_t
3490 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminq_s32(int32x4_t __a,int32x4_t __b)3491 vminq_s32 (int32x4_t __a, int32x4_t __b)
3492 {
3493 return (int32x4_t)__builtin_neon_vminsv4si (__a, __b);
3494 }
3495
3496 __extension__ extern __inline float32x4_t
3497 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminq_f32(float32x4_t __a,float32x4_t __b)3498 vminq_f32 (float32x4_t __a, float32x4_t __b)
3499 {
3500 return (float32x4_t)__builtin_neon_vminfv4sf (__a, __b);
3501 }
3502
3503 __extension__ extern __inline uint8x16_t
3504 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminq_u8(uint8x16_t __a,uint8x16_t __b)3505 vminq_u8 (uint8x16_t __a, uint8x16_t __b)
3506 {
3507 return (uint8x16_t)__builtin_neon_vminuv16qi ((int8x16_t) __a, (int8x16_t) __b);
3508 }
3509
3510 __extension__ extern __inline uint16x8_t
3511 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminq_u16(uint16x8_t __a,uint16x8_t __b)3512 vminq_u16 (uint16x8_t __a, uint16x8_t __b)
3513 {
3514 return (uint16x8_t)__builtin_neon_vminuv8hi ((int16x8_t) __a, (int16x8_t) __b);
3515 }
3516
3517 __extension__ extern __inline uint32x4_t
3518 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminq_u32(uint32x4_t __a,uint32x4_t __b)3519 vminq_u32 (uint32x4_t __a, uint32x4_t __b)
3520 {
3521 return (uint32x4_t)__builtin_neon_vminuv4si ((int32x4_t) __a, (int32x4_t) __b);
3522 }
3523
3524 __extension__ extern __inline int8x8_t
3525 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadd_s8(int8x8_t __a,int8x8_t __b)3526 vpadd_s8 (int8x8_t __a, int8x8_t __b)
3527 {
3528 return (int8x8_t)__builtin_neon_vpaddv8qi (__a, __b);
3529 }
3530
3531 __extension__ extern __inline int16x4_t
3532 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadd_s16(int16x4_t __a,int16x4_t __b)3533 vpadd_s16 (int16x4_t __a, int16x4_t __b)
3534 {
3535 return (int16x4_t)__builtin_neon_vpaddv4hi (__a, __b);
3536 }
3537
3538 __extension__ extern __inline int32x2_t
3539 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadd_s32(int32x2_t __a,int32x2_t __b)3540 vpadd_s32 (int32x2_t __a, int32x2_t __b)
3541 {
3542 return (int32x2_t)__builtin_neon_vpaddv2si (__a, __b);
3543 }
3544
3545 __extension__ extern __inline float32x2_t
3546 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadd_f32(float32x2_t __a,float32x2_t __b)3547 vpadd_f32 (float32x2_t __a, float32x2_t __b)
3548 {
3549 return (float32x2_t)__builtin_neon_vpaddv2sf (__a, __b);
3550 }
3551
3552 __extension__ extern __inline uint8x8_t
3553 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadd_u8(uint8x8_t __a,uint8x8_t __b)3554 vpadd_u8 (uint8x8_t __a, uint8x8_t __b)
3555 {
3556 return (uint8x8_t)__builtin_neon_vpaddv8qi ((int8x8_t) __a, (int8x8_t) __b);
3557 }
3558
3559 __extension__ extern __inline uint16x4_t
3560 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadd_u16(uint16x4_t __a,uint16x4_t __b)3561 vpadd_u16 (uint16x4_t __a, uint16x4_t __b)
3562 {
3563 return (uint16x4_t)__builtin_neon_vpaddv4hi ((int16x4_t) __a, (int16x4_t) __b);
3564 }
3565
3566 __extension__ extern __inline uint32x2_t
3567 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadd_u32(uint32x2_t __a,uint32x2_t __b)3568 vpadd_u32 (uint32x2_t __a, uint32x2_t __b)
3569 {
3570 return (uint32x2_t)__builtin_neon_vpaddv2si ((int32x2_t) __a, (int32x2_t) __b);
3571 }
3572
3573 __extension__ extern __inline int16x4_t
3574 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddl_s8(int8x8_t __a)3575 vpaddl_s8 (int8x8_t __a)
3576 {
3577 return (int16x4_t)__builtin_neon_vpaddlsv8qi (__a);
3578 }
3579
3580 __extension__ extern __inline int32x2_t
3581 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddl_s16(int16x4_t __a)3582 vpaddl_s16 (int16x4_t __a)
3583 {
3584 return (int32x2_t)__builtin_neon_vpaddlsv4hi (__a);
3585 }
3586
3587 __extension__ extern __inline int64x1_t
3588 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddl_s32(int32x2_t __a)3589 vpaddl_s32 (int32x2_t __a)
3590 {
3591 return (int64x1_t)__builtin_neon_vpaddlsv2si (__a);
3592 }
3593
3594 __extension__ extern __inline uint16x4_t
3595 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddl_u8(uint8x8_t __a)3596 vpaddl_u8 (uint8x8_t __a)
3597 {
3598 return (uint16x4_t)__builtin_neon_vpaddluv8qi ((int8x8_t) __a);
3599 }
3600
3601 __extension__ extern __inline uint32x2_t
3602 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddl_u16(uint16x4_t __a)3603 vpaddl_u16 (uint16x4_t __a)
3604 {
3605 return (uint32x2_t)__builtin_neon_vpaddluv4hi ((int16x4_t) __a);
3606 }
3607
3608 __extension__ extern __inline uint64x1_t
3609 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddl_u32(uint32x2_t __a)3610 vpaddl_u32 (uint32x2_t __a)
3611 {
3612 return (uint64x1_t)__builtin_neon_vpaddluv2si ((int32x2_t) __a);
3613 }
3614
3615 __extension__ extern __inline int16x8_t
3616 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddlq_s8(int8x16_t __a)3617 vpaddlq_s8 (int8x16_t __a)
3618 {
3619 return (int16x8_t)__builtin_neon_vpaddlsv16qi (__a);
3620 }
3621
3622 __extension__ extern __inline int32x4_t
3623 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddlq_s16(int16x8_t __a)3624 vpaddlq_s16 (int16x8_t __a)
3625 {
3626 return (int32x4_t)__builtin_neon_vpaddlsv8hi (__a);
3627 }
3628
3629 __extension__ extern __inline int64x2_t
3630 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddlq_s32(int32x4_t __a)3631 vpaddlq_s32 (int32x4_t __a)
3632 {
3633 return (int64x2_t)__builtin_neon_vpaddlsv4si (__a);
3634 }
3635
3636 __extension__ extern __inline uint16x8_t
3637 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddlq_u8(uint8x16_t __a)3638 vpaddlq_u8 (uint8x16_t __a)
3639 {
3640 return (uint16x8_t)__builtin_neon_vpaddluv16qi ((int8x16_t) __a);
3641 }
3642
3643 __extension__ extern __inline uint32x4_t
3644 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddlq_u16(uint16x8_t __a)3645 vpaddlq_u16 (uint16x8_t __a)
3646 {
3647 return (uint32x4_t)__builtin_neon_vpaddluv8hi ((int16x8_t) __a);
3648 }
3649
3650 __extension__ extern __inline uint64x2_t
3651 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddlq_u32(uint32x4_t __a)3652 vpaddlq_u32 (uint32x4_t __a)
3653 {
3654 return (uint64x2_t)__builtin_neon_vpaddluv4si ((int32x4_t) __a);
3655 }
3656
3657 __extension__ extern __inline int16x4_t
3658 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadal_s8(int16x4_t __a,int8x8_t __b)3659 vpadal_s8 (int16x4_t __a, int8x8_t __b)
3660 {
3661 return (int16x4_t)__builtin_neon_vpadalsv8qi (__a, __b);
3662 }
3663
3664 __extension__ extern __inline int32x2_t
3665 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadal_s16(int32x2_t __a,int16x4_t __b)3666 vpadal_s16 (int32x2_t __a, int16x4_t __b)
3667 {
3668 return (int32x2_t)__builtin_neon_vpadalsv4hi (__a, __b);
3669 }
3670
3671 __extension__ extern __inline int64x1_t
3672 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadal_s32(int64x1_t __a,int32x2_t __b)3673 vpadal_s32 (int64x1_t __a, int32x2_t __b)
3674 {
3675 return (int64x1_t)__builtin_neon_vpadalsv2si (__a, __b);
3676 }
3677
3678 __extension__ extern __inline uint16x4_t
3679 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadal_u8(uint16x4_t __a,uint8x8_t __b)3680 vpadal_u8 (uint16x4_t __a, uint8x8_t __b)
3681 {
3682 return (uint16x4_t)__builtin_neon_vpadaluv8qi ((int16x4_t) __a, (int8x8_t) __b);
3683 }
3684
3685 __extension__ extern __inline uint32x2_t
3686 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadal_u16(uint32x2_t __a,uint16x4_t __b)3687 vpadal_u16 (uint32x2_t __a, uint16x4_t __b)
3688 {
3689 return (uint32x2_t)__builtin_neon_vpadaluv4hi ((int32x2_t) __a, (int16x4_t) __b);
3690 }
3691
3692 __extension__ extern __inline uint64x1_t
3693 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadal_u32(uint64x1_t __a,uint32x2_t __b)3694 vpadal_u32 (uint64x1_t __a, uint32x2_t __b)
3695 {
3696 return (uint64x1_t)__builtin_neon_vpadaluv2si ((int64x1_t) __a, (int32x2_t) __b);
3697 }
3698
3699 __extension__ extern __inline int16x8_t
3700 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadalq_s8(int16x8_t __a,int8x16_t __b)3701 vpadalq_s8 (int16x8_t __a, int8x16_t __b)
3702 {
3703 return (int16x8_t)__builtin_neon_vpadalsv16qi (__a, __b);
3704 }
3705
3706 __extension__ extern __inline int32x4_t
3707 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadalq_s16(int32x4_t __a,int16x8_t __b)3708 vpadalq_s16 (int32x4_t __a, int16x8_t __b)
3709 {
3710 return (int32x4_t)__builtin_neon_vpadalsv8hi (__a, __b);
3711 }
3712
3713 __extension__ extern __inline int64x2_t
3714 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadalq_s32(int64x2_t __a,int32x4_t __b)3715 vpadalq_s32 (int64x2_t __a, int32x4_t __b)
3716 {
3717 return (int64x2_t)__builtin_neon_vpadalsv4si (__a, __b);
3718 }
3719
3720 __extension__ extern __inline uint16x8_t
3721 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadalq_u8(uint16x8_t __a,uint8x16_t __b)3722 vpadalq_u8 (uint16x8_t __a, uint8x16_t __b)
3723 {
3724 return (uint16x8_t)__builtin_neon_vpadaluv16qi ((int16x8_t) __a, (int8x16_t) __b);
3725 }
3726
3727 __extension__ extern __inline uint32x4_t
3728 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadalq_u16(uint32x4_t __a,uint16x8_t __b)3729 vpadalq_u16 (uint32x4_t __a, uint16x8_t __b)
3730 {
3731 return (uint32x4_t)__builtin_neon_vpadaluv8hi ((int32x4_t) __a, (int16x8_t) __b);
3732 }
3733
3734 __extension__ extern __inline uint64x2_t
3735 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadalq_u32(uint64x2_t __a,uint32x4_t __b)3736 vpadalq_u32 (uint64x2_t __a, uint32x4_t __b)
3737 {
3738 return (uint64x2_t)__builtin_neon_vpadaluv4si ((int64x2_t) __a, (int32x4_t) __b);
3739 }
3740
3741 __extension__ extern __inline int8x8_t
3742 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmax_s8(int8x8_t __a,int8x8_t __b)3743 vpmax_s8 (int8x8_t __a, int8x8_t __b)
3744 {
3745 return (int8x8_t)__builtin_neon_vpmaxsv8qi (__a, __b);
3746 }
3747
3748 __extension__ extern __inline int16x4_t
3749 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmax_s16(int16x4_t __a,int16x4_t __b)3750 vpmax_s16 (int16x4_t __a, int16x4_t __b)
3751 {
3752 return (int16x4_t)__builtin_neon_vpmaxsv4hi (__a, __b);
3753 }
3754
3755 __extension__ extern __inline int32x2_t
3756 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmax_s32(int32x2_t __a,int32x2_t __b)3757 vpmax_s32 (int32x2_t __a, int32x2_t __b)
3758 {
3759 return (int32x2_t)__builtin_neon_vpmaxsv2si (__a, __b);
3760 }
3761
3762 __extension__ extern __inline float32x2_t
3763 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmax_f32(float32x2_t __a,float32x2_t __b)3764 vpmax_f32 (float32x2_t __a, float32x2_t __b)
3765 {
3766 return (float32x2_t)__builtin_neon_vpmaxfv2sf (__a, __b);
3767 }
3768
3769 __extension__ extern __inline uint8x8_t
3770 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmax_u8(uint8x8_t __a,uint8x8_t __b)3771 vpmax_u8 (uint8x8_t __a, uint8x8_t __b)
3772 {
3773 return (uint8x8_t)__builtin_neon_vpmaxuv8qi ((int8x8_t) __a, (int8x8_t) __b);
3774 }
3775
3776 __extension__ extern __inline uint16x4_t
3777 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmax_u16(uint16x4_t __a,uint16x4_t __b)3778 vpmax_u16 (uint16x4_t __a, uint16x4_t __b)
3779 {
3780 return (uint16x4_t)__builtin_neon_vpmaxuv4hi ((int16x4_t) __a, (int16x4_t) __b);
3781 }
3782
3783 __extension__ extern __inline uint32x2_t
3784 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmax_u32(uint32x2_t __a,uint32x2_t __b)3785 vpmax_u32 (uint32x2_t __a, uint32x2_t __b)
3786 {
3787 return (uint32x2_t)__builtin_neon_vpmaxuv2si ((int32x2_t) __a, (int32x2_t) __b);
3788 }
3789
3790 __extension__ extern __inline int8x8_t
3791 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmin_s8(int8x8_t __a,int8x8_t __b)3792 vpmin_s8 (int8x8_t __a, int8x8_t __b)
3793 {
3794 return (int8x8_t)__builtin_neon_vpminsv8qi (__a, __b);
3795 }
3796
3797 __extension__ extern __inline int16x4_t
3798 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmin_s16(int16x4_t __a,int16x4_t __b)3799 vpmin_s16 (int16x4_t __a, int16x4_t __b)
3800 {
3801 return (int16x4_t)__builtin_neon_vpminsv4hi (__a, __b);
3802 }
3803
3804 __extension__ extern __inline int32x2_t
3805 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmin_s32(int32x2_t __a,int32x2_t __b)3806 vpmin_s32 (int32x2_t __a, int32x2_t __b)
3807 {
3808 return (int32x2_t)__builtin_neon_vpminsv2si (__a, __b);
3809 }
3810
3811 __extension__ extern __inline float32x2_t
3812 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmin_f32(float32x2_t __a,float32x2_t __b)3813 vpmin_f32 (float32x2_t __a, float32x2_t __b)
3814 {
3815 return (float32x2_t)__builtin_neon_vpminfv2sf (__a, __b);
3816 }
3817
3818 __extension__ extern __inline uint8x8_t
3819 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmin_u8(uint8x8_t __a,uint8x8_t __b)3820 vpmin_u8 (uint8x8_t __a, uint8x8_t __b)
3821 {
3822 return (uint8x8_t)__builtin_neon_vpminuv8qi ((int8x8_t) __a, (int8x8_t) __b);
3823 }
3824
3825 __extension__ extern __inline uint16x4_t
3826 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmin_u16(uint16x4_t __a,uint16x4_t __b)3827 vpmin_u16 (uint16x4_t __a, uint16x4_t __b)
3828 {
3829 return (uint16x4_t)__builtin_neon_vpminuv4hi ((int16x4_t) __a, (int16x4_t) __b);
3830 }
3831
3832 __extension__ extern __inline uint32x2_t
3833 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmin_u32(uint32x2_t __a,uint32x2_t __b)3834 vpmin_u32 (uint32x2_t __a, uint32x2_t __b)
3835 {
3836 return (uint32x2_t)__builtin_neon_vpminuv2si ((int32x2_t) __a, (int32x2_t) __b);
3837 }
3838
3839 __extension__ extern __inline float32x2_t
3840 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrecps_f32(float32x2_t __a,float32x2_t __b)3841 vrecps_f32 (float32x2_t __a, float32x2_t __b)
3842 {
3843 return (float32x2_t)__builtin_neon_vrecpsv2sf (__a, __b);
3844 }
3845
3846 __extension__ extern __inline float32x4_t
3847 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrecpsq_f32(float32x4_t __a,float32x4_t __b)3848 vrecpsq_f32 (float32x4_t __a, float32x4_t __b)
3849 {
3850 return (float32x4_t)__builtin_neon_vrecpsv4sf (__a, __b);
3851 }
3852
3853 __extension__ extern __inline float32x2_t
3854 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsqrts_f32(float32x2_t __a,float32x2_t __b)3855 vrsqrts_f32 (float32x2_t __a, float32x2_t __b)
3856 {
3857 return (float32x2_t)__builtin_neon_vrsqrtsv2sf (__a, __b);
3858 }
3859
3860 __extension__ extern __inline float32x4_t
3861 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsqrtsq_f32(float32x4_t __a,float32x4_t __b)3862 vrsqrtsq_f32 (float32x4_t __a, float32x4_t __b)
3863 {
3864 return (float32x4_t)__builtin_neon_vrsqrtsv4sf (__a, __b);
3865 }
3866
3867 __extension__ extern __inline int8x8_t
3868 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshl_s8(int8x8_t __a,int8x8_t __b)3869 vshl_s8 (int8x8_t __a, int8x8_t __b)
3870 {
3871 return (int8x8_t)__builtin_neon_vshlsv8qi (__a, __b);
3872 }
3873
3874 __extension__ extern __inline int16x4_t
3875 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshl_s16(int16x4_t __a,int16x4_t __b)3876 vshl_s16 (int16x4_t __a, int16x4_t __b)
3877 {
3878 return (int16x4_t)__builtin_neon_vshlsv4hi (__a, __b);
3879 }
3880
3881 __extension__ extern __inline int32x2_t
3882 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshl_s32(int32x2_t __a,int32x2_t __b)3883 vshl_s32 (int32x2_t __a, int32x2_t __b)
3884 {
3885 return (int32x2_t)__builtin_neon_vshlsv2si (__a, __b);
3886 }
3887
3888 __extension__ extern __inline int64x1_t
3889 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshl_s64(int64x1_t __a,int64x1_t __b)3890 vshl_s64 (int64x1_t __a, int64x1_t __b)
3891 {
3892 return (int64x1_t)__builtin_neon_vshlsdi (__a, __b);
3893 }
3894
3895 __extension__ extern __inline uint8x8_t
3896 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshl_u8(uint8x8_t __a,int8x8_t __b)3897 vshl_u8 (uint8x8_t __a, int8x8_t __b)
3898 {
3899 return (uint8x8_t)__builtin_neon_vshluv8qi ((int8x8_t) __a, __b);
3900 }
3901
3902 __extension__ extern __inline uint16x4_t
3903 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshl_u16(uint16x4_t __a,int16x4_t __b)3904 vshl_u16 (uint16x4_t __a, int16x4_t __b)
3905 {
3906 return (uint16x4_t)__builtin_neon_vshluv4hi ((int16x4_t) __a, __b);
3907 }
3908
3909 __extension__ extern __inline uint32x2_t
3910 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshl_u32(uint32x2_t __a,int32x2_t __b)3911 vshl_u32 (uint32x2_t __a, int32x2_t __b)
3912 {
3913 return (uint32x2_t)__builtin_neon_vshluv2si ((int32x2_t) __a, __b);
3914 }
3915
3916 __extension__ extern __inline uint64x1_t
3917 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshl_u64(uint64x1_t __a,int64x1_t __b)3918 vshl_u64 (uint64x1_t __a, int64x1_t __b)
3919 {
3920 return (uint64x1_t)__builtin_neon_vshludi ((int64x1_t) __a, __b);
3921 }
3922
3923 __extension__ extern __inline int8x16_t
3924 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshlq_s8(int8x16_t __a,int8x16_t __b)3925 vshlq_s8 (int8x16_t __a, int8x16_t __b)
3926 {
3927 return (int8x16_t)__builtin_neon_vshlsv16qi (__a, __b);
3928 }
3929
3930 __extension__ extern __inline int16x8_t
3931 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshlq_s16(int16x8_t __a,int16x8_t __b)3932 vshlq_s16 (int16x8_t __a, int16x8_t __b)
3933 {
3934 return (int16x8_t)__builtin_neon_vshlsv8hi (__a, __b);
3935 }
3936
3937 __extension__ extern __inline int32x4_t
3938 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshlq_s32(int32x4_t __a,int32x4_t __b)3939 vshlq_s32 (int32x4_t __a, int32x4_t __b)
3940 {
3941 return (int32x4_t)__builtin_neon_vshlsv4si (__a, __b);
3942 }
3943
3944 __extension__ extern __inline int64x2_t
3945 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshlq_s64(int64x2_t __a,int64x2_t __b)3946 vshlq_s64 (int64x2_t __a, int64x2_t __b)
3947 {
3948 return (int64x2_t)__builtin_neon_vshlsv2di (__a, __b);
3949 }
3950
3951 __extension__ extern __inline uint8x16_t
3952 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshlq_u8(uint8x16_t __a,int8x16_t __b)3953 vshlq_u8 (uint8x16_t __a, int8x16_t __b)
3954 {
3955 return (uint8x16_t)__builtin_neon_vshluv16qi ((int8x16_t) __a, __b);
3956 }
3957
3958 __extension__ extern __inline uint16x8_t
3959 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshlq_u16(uint16x8_t __a,int16x8_t __b)3960 vshlq_u16 (uint16x8_t __a, int16x8_t __b)
3961 {
3962 return (uint16x8_t)__builtin_neon_vshluv8hi ((int16x8_t) __a, __b);
3963 }
3964
3965 __extension__ extern __inline uint32x4_t
3966 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshlq_u32(uint32x4_t __a,int32x4_t __b)3967 vshlq_u32 (uint32x4_t __a, int32x4_t __b)
3968 {
3969 return (uint32x4_t)__builtin_neon_vshluv4si ((int32x4_t) __a, __b);
3970 }
3971
3972 __extension__ extern __inline uint64x2_t
3973 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshlq_u64(uint64x2_t __a,int64x2_t __b)3974 vshlq_u64 (uint64x2_t __a, int64x2_t __b)
3975 {
3976 return (uint64x2_t)__builtin_neon_vshluv2di ((int64x2_t) __a, __b);
3977 }
3978
3979 __extension__ extern __inline int8x8_t
3980 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshl_s8(int8x8_t __a,int8x8_t __b)3981 vrshl_s8 (int8x8_t __a, int8x8_t __b)
3982 {
3983 return (int8x8_t)__builtin_neon_vrshlsv8qi (__a, __b);
3984 }
3985
3986 __extension__ extern __inline int16x4_t
3987 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshl_s16(int16x4_t __a,int16x4_t __b)3988 vrshl_s16 (int16x4_t __a, int16x4_t __b)
3989 {
3990 return (int16x4_t)__builtin_neon_vrshlsv4hi (__a, __b);
3991 }
3992
3993 __extension__ extern __inline int32x2_t
3994 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshl_s32(int32x2_t __a,int32x2_t __b)3995 vrshl_s32 (int32x2_t __a, int32x2_t __b)
3996 {
3997 return (int32x2_t)__builtin_neon_vrshlsv2si (__a, __b);
3998 }
3999
4000 __extension__ extern __inline int64x1_t
4001 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshl_s64(int64x1_t __a,int64x1_t __b)4002 vrshl_s64 (int64x1_t __a, int64x1_t __b)
4003 {
4004 return (int64x1_t)__builtin_neon_vrshlsdi (__a, __b);
4005 }
4006
4007 __extension__ extern __inline uint8x8_t
4008 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshl_u8(uint8x8_t __a,int8x8_t __b)4009 vrshl_u8 (uint8x8_t __a, int8x8_t __b)
4010 {
4011 return (uint8x8_t)__builtin_neon_vrshluv8qi ((int8x8_t) __a, __b);
4012 }
4013
4014 __extension__ extern __inline uint16x4_t
4015 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshl_u16(uint16x4_t __a,int16x4_t __b)4016 vrshl_u16 (uint16x4_t __a, int16x4_t __b)
4017 {
4018 return (uint16x4_t)__builtin_neon_vrshluv4hi ((int16x4_t) __a, __b);
4019 }
4020
4021 __extension__ extern __inline uint32x2_t
4022 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshl_u32(uint32x2_t __a,int32x2_t __b)4023 vrshl_u32 (uint32x2_t __a, int32x2_t __b)
4024 {
4025 return (uint32x2_t)__builtin_neon_vrshluv2si ((int32x2_t) __a, __b);
4026 }
4027
4028 __extension__ extern __inline uint64x1_t
4029 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshl_u64(uint64x1_t __a,int64x1_t __b)4030 vrshl_u64 (uint64x1_t __a, int64x1_t __b)
4031 {
4032 return (uint64x1_t)__builtin_neon_vrshludi ((int64x1_t) __a, __b);
4033 }
4034
4035 __extension__ extern __inline int8x16_t
4036 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshlq_s8(int8x16_t __a,int8x16_t __b)4037 vrshlq_s8 (int8x16_t __a, int8x16_t __b)
4038 {
4039 return (int8x16_t)__builtin_neon_vrshlsv16qi (__a, __b);
4040 }
4041
4042 __extension__ extern __inline int16x8_t
4043 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshlq_s16(int16x8_t __a,int16x8_t __b)4044 vrshlq_s16 (int16x8_t __a, int16x8_t __b)
4045 {
4046 return (int16x8_t)__builtin_neon_vrshlsv8hi (__a, __b);
4047 }
4048
4049 __extension__ extern __inline int32x4_t
4050 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshlq_s32(int32x4_t __a,int32x4_t __b)4051 vrshlq_s32 (int32x4_t __a, int32x4_t __b)
4052 {
4053 return (int32x4_t)__builtin_neon_vrshlsv4si (__a, __b);
4054 }
4055
4056 __extension__ extern __inline int64x2_t
4057 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshlq_s64(int64x2_t __a,int64x2_t __b)4058 vrshlq_s64 (int64x2_t __a, int64x2_t __b)
4059 {
4060 return (int64x2_t)__builtin_neon_vrshlsv2di (__a, __b);
4061 }
4062
4063 __extension__ extern __inline uint8x16_t
4064 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshlq_u8(uint8x16_t __a,int8x16_t __b)4065 vrshlq_u8 (uint8x16_t __a, int8x16_t __b)
4066 {
4067 return (uint8x16_t)__builtin_neon_vrshluv16qi ((int8x16_t) __a, __b);
4068 }
4069
4070 __extension__ extern __inline uint16x8_t
4071 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshlq_u16(uint16x8_t __a,int16x8_t __b)4072 vrshlq_u16 (uint16x8_t __a, int16x8_t __b)
4073 {
4074 return (uint16x8_t)__builtin_neon_vrshluv8hi ((int16x8_t) __a, __b);
4075 }
4076
4077 __extension__ extern __inline uint32x4_t
4078 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshlq_u32(uint32x4_t __a,int32x4_t __b)4079 vrshlq_u32 (uint32x4_t __a, int32x4_t __b)
4080 {
4081 return (uint32x4_t)__builtin_neon_vrshluv4si ((int32x4_t) __a, __b);
4082 }
4083
4084 __extension__ extern __inline uint64x2_t
4085 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshlq_u64(uint64x2_t __a,int64x2_t __b)4086 vrshlq_u64 (uint64x2_t __a, int64x2_t __b)
4087 {
4088 return (uint64x2_t)__builtin_neon_vrshluv2di ((int64x2_t) __a, __b);
4089 }
4090
4091 __extension__ extern __inline int8x8_t
4092 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshl_s8(int8x8_t __a,int8x8_t __b)4093 vqshl_s8 (int8x8_t __a, int8x8_t __b)
4094 {
4095 return (int8x8_t)__builtin_neon_vqshlsv8qi (__a, __b);
4096 }
4097
4098 __extension__ extern __inline int16x4_t
4099 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshl_s16(int16x4_t __a,int16x4_t __b)4100 vqshl_s16 (int16x4_t __a, int16x4_t __b)
4101 {
4102 return (int16x4_t)__builtin_neon_vqshlsv4hi (__a, __b);
4103 }
4104
4105 __extension__ extern __inline int32x2_t
4106 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshl_s32(int32x2_t __a,int32x2_t __b)4107 vqshl_s32 (int32x2_t __a, int32x2_t __b)
4108 {
4109 return (int32x2_t)__builtin_neon_vqshlsv2si (__a, __b);
4110 }
4111
4112 __extension__ extern __inline int64x1_t
4113 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshl_s64(int64x1_t __a,int64x1_t __b)4114 vqshl_s64 (int64x1_t __a, int64x1_t __b)
4115 {
4116 return (int64x1_t)__builtin_neon_vqshlsdi (__a, __b);
4117 }
4118
4119 __extension__ extern __inline uint8x8_t
4120 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshl_u8(uint8x8_t __a,int8x8_t __b)4121 vqshl_u8 (uint8x8_t __a, int8x8_t __b)
4122 {
4123 return (uint8x8_t)__builtin_neon_vqshluv8qi ((int8x8_t) __a, __b);
4124 }
4125
4126 __extension__ extern __inline uint16x4_t
4127 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshl_u16(uint16x4_t __a,int16x4_t __b)4128 vqshl_u16 (uint16x4_t __a, int16x4_t __b)
4129 {
4130 return (uint16x4_t)__builtin_neon_vqshluv4hi ((int16x4_t) __a, __b);
4131 }
4132
4133 __extension__ extern __inline uint32x2_t
4134 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshl_u32(uint32x2_t __a,int32x2_t __b)4135 vqshl_u32 (uint32x2_t __a, int32x2_t __b)
4136 {
4137 return (uint32x2_t)__builtin_neon_vqshluv2si ((int32x2_t) __a, __b);
4138 }
4139
4140 __extension__ extern __inline uint64x1_t
4141 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshl_u64(uint64x1_t __a,int64x1_t __b)4142 vqshl_u64 (uint64x1_t __a, int64x1_t __b)
4143 {
4144 return (uint64x1_t)__builtin_neon_vqshludi ((int64x1_t) __a, __b);
4145 }
4146
4147 __extension__ extern __inline int8x16_t
4148 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlq_s8(int8x16_t __a,int8x16_t __b)4149 vqshlq_s8 (int8x16_t __a, int8x16_t __b)
4150 {
4151 return (int8x16_t)__builtin_neon_vqshlsv16qi (__a, __b);
4152 }
4153
4154 __extension__ extern __inline int16x8_t
4155 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlq_s16(int16x8_t __a,int16x8_t __b)4156 vqshlq_s16 (int16x8_t __a, int16x8_t __b)
4157 {
4158 return (int16x8_t)__builtin_neon_vqshlsv8hi (__a, __b);
4159 }
4160
4161 __extension__ extern __inline int32x4_t
4162 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlq_s32(int32x4_t __a,int32x4_t __b)4163 vqshlq_s32 (int32x4_t __a, int32x4_t __b)
4164 {
4165 return (int32x4_t)__builtin_neon_vqshlsv4si (__a, __b);
4166 }
4167
4168 __extension__ extern __inline int64x2_t
4169 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlq_s64(int64x2_t __a,int64x2_t __b)4170 vqshlq_s64 (int64x2_t __a, int64x2_t __b)
4171 {
4172 return (int64x2_t)__builtin_neon_vqshlsv2di (__a, __b);
4173 }
4174
4175 __extension__ extern __inline uint8x16_t
4176 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlq_u8(uint8x16_t __a,int8x16_t __b)4177 vqshlq_u8 (uint8x16_t __a, int8x16_t __b)
4178 {
4179 return (uint8x16_t)__builtin_neon_vqshluv16qi ((int8x16_t) __a, __b);
4180 }
4181
4182 __extension__ extern __inline uint16x8_t
4183 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlq_u16(uint16x8_t __a,int16x8_t __b)4184 vqshlq_u16 (uint16x8_t __a, int16x8_t __b)
4185 {
4186 return (uint16x8_t)__builtin_neon_vqshluv8hi ((int16x8_t) __a, __b);
4187 }
4188
4189 __extension__ extern __inline uint32x4_t
4190 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlq_u32(uint32x4_t __a,int32x4_t __b)4191 vqshlq_u32 (uint32x4_t __a, int32x4_t __b)
4192 {
4193 return (uint32x4_t)__builtin_neon_vqshluv4si ((int32x4_t) __a, __b);
4194 }
4195
4196 __extension__ extern __inline uint64x2_t
4197 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlq_u64(uint64x2_t __a,int64x2_t __b)4198 vqshlq_u64 (uint64x2_t __a, int64x2_t __b)
4199 {
4200 return (uint64x2_t)__builtin_neon_vqshluv2di ((int64x2_t) __a, __b);
4201 }
4202
4203 __extension__ extern __inline int8x8_t
4204 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshl_s8(int8x8_t __a,int8x8_t __b)4205 vqrshl_s8 (int8x8_t __a, int8x8_t __b)
4206 {
4207 return (int8x8_t)__builtin_neon_vqrshlsv8qi (__a, __b);
4208 }
4209
4210 __extension__ extern __inline int16x4_t
4211 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshl_s16(int16x4_t __a,int16x4_t __b)4212 vqrshl_s16 (int16x4_t __a, int16x4_t __b)
4213 {
4214 return (int16x4_t)__builtin_neon_vqrshlsv4hi (__a, __b);
4215 }
4216
4217 __extension__ extern __inline int32x2_t
4218 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshl_s32(int32x2_t __a,int32x2_t __b)4219 vqrshl_s32 (int32x2_t __a, int32x2_t __b)
4220 {
4221 return (int32x2_t)__builtin_neon_vqrshlsv2si (__a, __b);
4222 }
4223
4224 __extension__ extern __inline int64x1_t
4225 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshl_s64(int64x1_t __a,int64x1_t __b)4226 vqrshl_s64 (int64x1_t __a, int64x1_t __b)
4227 {
4228 return (int64x1_t)__builtin_neon_vqrshlsdi (__a, __b);
4229 }
4230
4231 __extension__ extern __inline uint8x8_t
4232 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshl_u8(uint8x8_t __a,int8x8_t __b)4233 vqrshl_u8 (uint8x8_t __a, int8x8_t __b)
4234 {
4235 return (uint8x8_t)__builtin_neon_vqrshluv8qi ((int8x8_t) __a, __b);
4236 }
4237
4238 __extension__ extern __inline uint16x4_t
4239 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshl_u16(uint16x4_t __a,int16x4_t __b)4240 vqrshl_u16 (uint16x4_t __a, int16x4_t __b)
4241 {
4242 return (uint16x4_t)__builtin_neon_vqrshluv4hi ((int16x4_t) __a, __b);
4243 }
4244
4245 __extension__ extern __inline uint32x2_t
4246 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshl_u32(uint32x2_t __a,int32x2_t __b)4247 vqrshl_u32 (uint32x2_t __a, int32x2_t __b)
4248 {
4249 return (uint32x2_t)__builtin_neon_vqrshluv2si ((int32x2_t) __a, __b);
4250 }
4251
4252 __extension__ extern __inline uint64x1_t
4253 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshl_u64(uint64x1_t __a,int64x1_t __b)4254 vqrshl_u64 (uint64x1_t __a, int64x1_t __b)
4255 {
4256 return (uint64x1_t)__builtin_neon_vqrshludi ((int64x1_t) __a, __b);
4257 }
4258
4259 __extension__ extern __inline int8x16_t
4260 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshlq_s8(int8x16_t __a,int8x16_t __b)4261 vqrshlq_s8 (int8x16_t __a, int8x16_t __b)
4262 {
4263 return (int8x16_t)__builtin_neon_vqrshlsv16qi (__a, __b);
4264 }
4265
4266 __extension__ extern __inline int16x8_t
4267 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshlq_s16(int16x8_t __a,int16x8_t __b)4268 vqrshlq_s16 (int16x8_t __a, int16x8_t __b)
4269 {
4270 return (int16x8_t)__builtin_neon_vqrshlsv8hi (__a, __b);
4271 }
4272
4273 __extension__ extern __inline int32x4_t
4274 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshlq_s32(int32x4_t __a,int32x4_t __b)4275 vqrshlq_s32 (int32x4_t __a, int32x4_t __b)
4276 {
4277 return (int32x4_t)__builtin_neon_vqrshlsv4si (__a, __b);
4278 }
4279
4280 __extension__ extern __inline int64x2_t
4281 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshlq_s64(int64x2_t __a,int64x2_t __b)4282 vqrshlq_s64 (int64x2_t __a, int64x2_t __b)
4283 {
4284 return (int64x2_t)__builtin_neon_vqrshlsv2di (__a, __b);
4285 }
4286
4287 __extension__ extern __inline uint8x16_t
4288 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshlq_u8(uint8x16_t __a,int8x16_t __b)4289 vqrshlq_u8 (uint8x16_t __a, int8x16_t __b)
4290 {
4291 return (uint8x16_t)__builtin_neon_vqrshluv16qi ((int8x16_t) __a, __b);
4292 }
4293
4294 __extension__ extern __inline uint16x8_t
4295 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshlq_u16(uint16x8_t __a,int16x8_t __b)4296 vqrshlq_u16 (uint16x8_t __a, int16x8_t __b)
4297 {
4298 return (uint16x8_t)__builtin_neon_vqrshluv8hi ((int16x8_t) __a, __b);
4299 }
4300
4301 __extension__ extern __inline uint32x4_t
4302 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshlq_u32(uint32x4_t __a,int32x4_t __b)4303 vqrshlq_u32 (uint32x4_t __a, int32x4_t __b)
4304 {
4305 return (uint32x4_t)__builtin_neon_vqrshluv4si ((int32x4_t) __a, __b);
4306 }
4307
4308 __extension__ extern __inline uint64x2_t
4309 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshlq_u64(uint64x2_t __a,int64x2_t __b)4310 vqrshlq_u64 (uint64x2_t __a, int64x2_t __b)
4311 {
4312 return (uint64x2_t)__builtin_neon_vqrshluv2di ((int64x2_t) __a, __b);
4313 }
4314
4315 __extension__ extern __inline int8x8_t
4316 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshr_n_s8(int8x8_t __a,const int __b)4317 vshr_n_s8 (int8x8_t __a, const int __b)
4318 {
4319 return (int8x8_t)__builtin_neon_vshrs_nv8qi (__a, __b);
4320 }
4321
4322 __extension__ extern __inline int16x4_t
4323 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshr_n_s16(int16x4_t __a,const int __b)4324 vshr_n_s16 (int16x4_t __a, const int __b)
4325 {
4326 return (int16x4_t)__builtin_neon_vshrs_nv4hi (__a, __b);
4327 }
4328
4329 __extension__ extern __inline int32x2_t
4330 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshr_n_s32(int32x2_t __a,const int __b)4331 vshr_n_s32 (int32x2_t __a, const int __b)
4332 {
4333 return (int32x2_t)__builtin_neon_vshrs_nv2si (__a, __b);
4334 }
4335
4336 __extension__ extern __inline int64x1_t
4337 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshr_n_s64(int64x1_t __a,const int __b)4338 vshr_n_s64 (int64x1_t __a, const int __b)
4339 {
4340 return (int64x1_t)__builtin_neon_vshrs_ndi (__a, __b);
4341 }
4342
4343 __extension__ extern __inline uint8x8_t
4344 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshr_n_u8(uint8x8_t __a,const int __b)4345 vshr_n_u8 (uint8x8_t __a, const int __b)
4346 {
4347 return (uint8x8_t)__builtin_neon_vshru_nv8qi ((int8x8_t) __a, __b);
4348 }
4349
4350 __extension__ extern __inline uint16x4_t
4351 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshr_n_u16(uint16x4_t __a,const int __b)4352 vshr_n_u16 (uint16x4_t __a, const int __b)
4353 {
4354 return (uint16x4_t)__builtin_neon_vshru_nv4hi ((int16x4_t) __a, __b);
4355 }
4356
4357 __extension__ extern __inline uint32x2_t
4358 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshr_n_u32(uint32x2_t __a,const int __b)4359 vshr_n_u32 (uint32x2_t __a, const int __b)
4360 {
4361 return (uint32x2_t)__builtin_neon_vshru_nv2si ((int32x2_t) __a, __b);
4362 }
4363
4364 __extension__ extern __inline uint64x1_t
4365 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshr_n_u64(uint64x1_t __a,const int __b)4366 vshr_n_u64 (uint64x1_t __a, const int __b)
4367 {
4368 return (uint64x1_t)__builtin_neon_vshru_ndi ((int64x1_t) __a, __b);
4369 }
4370
4371 __extension__ extern __inline int8x16_t
4372 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshrq_n_s8(int8x16_t __a,const int __b)4373 vshrq_n_s8 (int8x16_t __a, const int __b)
4374 {
4375 return (int8x16_t)__builtin_neon_vshrs_nv16qi (__a, __b);
4376 }
4377
4378 __extension__ extern __inline int16x8_t
4379 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshrq_n_s16(int16x8_t __a,const int __b)4380 vshrq_n_s16 (int16x8_t __a, const int __b)
4381 {
4382 return (int16x8_t)__builtin_neon_vshrs_nv8hi (__a, __b);
4383 }
4384
4385 __extension__ extern __inline int32x4_t
4386 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshrq_n_s32(int32x4_t __a,const int __b)4387 vshrq_n_s32 (int32x4_t __a, const int __b)
4388 {
4389 return (int32x4_t)__builtin_neon_vshrs_nv4si (__a, __b);
4390 }
4391
4392 __extension__ extern __inline int64x2_t
4393 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshrq_n_s64(int64x2_t __a,const int __b)4394 vshrq_n_s64 (int64x2_t __a, const int __b)
4395 {
4396 return (int64x2_t)__builtin_neon_vshrs_nv2di (__a, __b);
4397 }
4398
4399 __extension__ extern __inline uint8x16_t
4400 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshrq_n_u8(uint8x16_t __a,const int __b)4401 vshrq_n_u8 (uint8x16_t __a, const int __b)
4402 {
4403 return (uint8x16_t)__builtin_neon_vshru_nv16qi ((int8x16_t) __a, __b);
4404 }
4405
4406 __extension__ extern __inline uint16x8_t
4407 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshrq_n_u16(uint16x8_t __a,const int __b)4408 vshrq_n_u16 (uint16x8_t __a, const int __b)
4409 {
4410 return (uint16x8_t)__builtin_neon_vshru_nv8hi ((int16x8_t) __a, __b);
4411 }
4412
4413 __extension__ extern __inline uint32x4_t
4414 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshrq_n_u32(uint32x4_t __a,const int __b)4415 vshrq_n_u32 (uint32x4_t __a, const int __b)
4416 {
4417 return (uint32x4_t)__builtin_neon_vshru_nv4si ((int32x4_t) __a, __b);
4418 }
4419
4420 __extension__ extern __inline uint64x2_t
4421 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshrq_n_u64(uint64x2_t __a,const int __b)4422 vshrq_n_u64 (uint64x2_t __a, const int __b)
4423 {
4424 return (uint64x2_t)__builtin_neon_vshru_nv2di ((int64x2_t) __a, __b);
4425 }
4426
4427 __extension__ extern __inline int8x8_t
4428 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshr_n_s8(int8x8_t __a,const int __b)4429 vrshr_n_s8 (int8x8_t __a, const int __b)
4430 {
4431 return (int8x8_t)__builtin_neon_vrshrs_nv8qi (__a, __b);
4432 }
4433
4434 __extension__ extern __inline int16x4_t
4435 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshr_n_s16(int16x4_t __a,const int __b)4436 vrshr_n_s16 (int16x4_t __a, const int __b)
4437 {
4438 return (int16x4_t)__builtin_neon_vrshrs_nv4hi (__a, __b);
4439 }
4440
4441 __extension__ extern __inline int32x2_t
4442 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshr_n_s32(int32x2_t __a,const int __b)4443 vrshr_n_s32 (int32x2_t __a, const int __b)
4444 {
4445 return (int32x2_t)__builtin_neon_vrshrs_nv2si (__a, __b);
4446 }
4447
4448 __extension__ extern __inline int64x1_t
4449 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshr_n_s64(int64x1_t __a,const int __b)4450 vrshr_n_s64 (int64x1_t __a, const int __b)
4451 {
4452 return (int64x1_t)__builtin_neon_vrshrs_ndi (__a, __b);
4453 }
4454
4455 __extension__ extern __inline uint8x8_t
4456 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshr_n_u8(uint8x8_t __a,const int __b)4457 vrshr_n_u8 (uint8x8_t __a, const int __b)
4458 {
4459 return (uint8x8_t)__builtin_neon_vrshru_nv8qi ((int8x8_t) __a, __b);
4460 }
4461
4462 __extension__ extern __inline uint16x4_t
4463 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshr_n_u16(uint16x4_t __a,const int __b)4464 vrshr_n_u16 (uint16x4_t __a, const int __b)
4465 {
4466 return (uint16x4_t)__builtin_neon_vrshru_nv4hi ((int16x4_t) __a, __b);
4467 }
4468
4469 __extension__ extern __inline uint32x2_t
4470 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshr_n_u32(uint32x2_t __a,const int __b)4471 vrshr_n_u32 (uint32x2_t __a, const int __b)
4472 {
4473 return (uint32x2_t)__builtin_neon_vrshru_nv2si ((int32x2_t) __a, __b);
4474 }
4475
4476 __extension__ extern __inline uint64x1_t
4477 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshr_n_u64(uint64x1_t __a,const int __b)4478 vrshr_n_u64 (uint64x1_t __a, const int __b)
4479 {
4480 return (uint64x1_t)__builtin_neon_vrshru_ndi ((int64x1_t) __a, __b);
4481 }
4482
4483 __extension__ extern __inline int8x16_t
4484 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshrq_n_s8(int8x16_t __a,const int __b)4485 vrshrq_n_s8 (int8x16_t __a, const int __b)
4486 {
4487 return (int8x16_t)__builtin_neon_vrshrs_nv16qi (__a, __b);
4488 }
4489
4490 __extension__ extern __inline int16x8_t
4491 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshrq_n_s16(int16x8_t __a,const int __b)4492 vrshrq_n_s16 (int16x8_t __a, const int __b)
4493 {
4494 return (int16x8_t)__builtin_neon_vrshrs_nv8hi (__a, __b);
4495 }
4496
4497 __extension__ extern __inline int32x4_t
4498 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshrq_n_s32(int32x4_t __a,const int __b)4499 vrshrq_n_s32 (int32x4_t __a, const int __b)
4500 {
4501 return (int32x4_t)__builtin_neon_vrshrs_nv4si (__a, __b);
4502 }
4503
4504 __extension__ extern __inline int64x2_t
4505 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshrq_n_s64(int64x2_t __a,const int __b)4506 vrshrq_n_s64 (int64x2_t __a, const int __b)
4507 {
4508 return (int64x2_t)__builtin_neon_vrshrs_nv2di (__a, __b);
4509 }
4510
4511 __extension__ extern __inline uint8x16_t
4512 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshrq_n_u8(uint8x16_t __a,const int __b)4513 vrshrq_n_u8 (uint8x16_t __a, const int __b)
4514 {
4515 return (uint8x16_t)__builtin_neon_vrshru_nv16qi ((int8x16_t) __a, __b);
4516 }
4517
4518 __extension__ extern __inline uint16x8_t
4519 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshrq_n_u16(uint16x8_t __a,const int __b)4520 vrshrq_n_u16 (uint16x8_t __a, const int __b)
4521 {
4522 return (uint16x8_t)__builtin_neon_vrshru_nv8hi ((int16x8_t) __a, __b);
4523 }
4524
4525 __extension__ extern __inline uint32x4_t
4526 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshrq_n_u32(uint32x4_t __a,const int __b)4527 vrshrq_n_u32 (uint32x4_t __a, const int __b)
4528 {
4529 return (uint32x4_t)__builtin_neon_vrshru_nv4si ((int32x4_t) __a, __b);
4530 }
4531
4532 __extension__ extern __inline uint64x2_t
4533 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshrq_n_u64(uint64x2_t __a,const int __b)4534 vrshrq_n_u64 (uint64x2_t __a, const int __b)
4535 {
4536 return (uint64x2_t)__builtin_neon_vrshru_nv2di ((int64x2_t) __a, __b);
4537 }
4538
4539 __extension__ extern __inline int8x8_t
4540 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshrn_n_s16(int16x8_t __a,const int __b)4541 vshrn_n_s16 (int16x8_t __a, const int __b)
4542 {
4543 return (int8x8_t)__builtin_neon_vshrn_nv8hi (__a, __b);
4544 }
4545
4546 __extension__ extern __inline int16x4_t
4547 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshrn_n_s32(int32x4_t __a,const int __b)4548 vshrn_n_s32 (int32x4_t __a, const int __b)
4549 {
4550 return (int16x4_t)__builtin_neon_vshrn_nv4si (__a, __b);
4551 }
4552
4553 __extension__ extern __inline int32x2_t
4554 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshrn_n_s64(int64x2_t __a,const int __b)4555 vshrn_n_s64 (int64x2_t __a, const int __b)
4556 {
4557 return (int32x2_t)__builtin_neon_vshrn_nv2di (__a, __b);
4558 }
4559
4560 __extension__ extern __inline uint8x8_t
4561 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshrn_n_u16(uint16x8_t __a,const int __b)4562 vshrn_n_u16 (uint16x8_t __a, const int __b)
4563 {
4564 return (uint8x8_t)__builtin_neon_vshrn_nv8hi ((int16x8_t) __a, __b);
4565 }
4566
4567 __extension__ extern __inline uint16x4_t
4568 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshrn_n_u32(uint32x4_t __a,const int __b)4569 vshrn_n_u32 (uint32x4_t __a, const int __b)
4570 {
4571 return (uint16x4_t)__builtin_neon_vshrn_nv4si ((int32x4_t) __a, __b);
4572 }
4573
4574 __extension__ extern __inline uint32x2_t
4575 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshrn_n_u64(uint64x2_t __a,const int __b)4576 vshrn_n_u64 (uint64x2_t __a, const int __b)
4577 {
4578 return (uint32x2_t)__builtin_neon_vshrn_nv2di ((int64x2_t) __a, __b);
4579 }
4580
4581 __extension__ extern __inline int8x8_t
4582 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshrn_n_s16(int16x8_t __a,const int __b)4583 vrshrn_n_s16 (int16x8_t __a, const int __b)
4584 {
4585 return (int8x8_t)__builtin_neon_vrshrn_nv8hi (__a, __b);
4586 }
4587
4588 __extension__ extern __inline int16x4_t
4589 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshrn_n_s32(int32x4_t __a,const int __b)4590 vrshrn_n_s32 (int32x4_t __a, const int __b)
4591 {
4592 return (int16x4_t)__builtin_neon_vrshrn_nv4si (__a, __b);
4593 }
4594
4595 __extension__ extern __inline int32x2_t
4596 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshrn_n_s64(int64x2_t __a,const int __b)4597 vrshrn_n_s64 (int64x2_t __a, const int __b)
4598 {
4599 return (int32x2_t)__builtin_neon_vrshrn_nv2di (__a, __b);
4600 }
4601
4602 __extension__ extern __inline uint8x8_t
4603 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshrn_n_u16(uint16x8_t __a,const int __b)4604 vrshrn_n_u16 (uint16x8_t __a, const int __b)
4605 {
4606 return (uint8x8_t)__builtin_neon_vrshrn_nv8hi ((int16x8_t) __a, __b);
4607 }
4608
4609 __extension__ extern __inline uint16x4_t
4610 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshrn_n_u32(uint32x4_t __a,const int __b)4611 vrshrn_n_u32 (uint32x4_t __a, const int __b)
4612 {
4613 return (uint16x4_t)__builtin_neon_vrshrn_nv4si ((int32x4_t) __a, __b);
4614 }
4615
4616 __extension__ extern __inline uint32x2_t
4617 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshrn_n_u64(uint64x2_t __a,const int __b)4618 vrshrn_n_u64 (uint64x2_t __a, const int __b)
4619 {
4620 return (uint32x2_t)__builtin_neon_vrshrn_nv2di ((int64x2_t) __a, __b);
4621 }
4622
4623 __extension__ extern __inline int8x8_t
4624 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshrn_n_s16(int16x8_t __a,const int __b)4625 vqshrn_n_s16 (int16x8_t __a, const int __b)
4626 {
4627 return (int8x8_t)__builtin_neon_vqshrns_nv8hi (__a, __b);
4628 }
4629
4630 __extension__ extern __inline int16x4_t
4631 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshrn_n_s32(int32x4_t __a,const int __b)4632 vqshrn_n_s32 (int32x4_t __a, const int __b)
4633 {
4634 return (int16x4_t)__builtin_neon_vqshrns_nv4si (__a, __b);
4635 }
4636
4637 __extension__ extern __inline int32x2_t
4638 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshrn_n_s64(int64x2_t __a,const int __b)4639 vqshrn_n_s64 (int64x2_t __a, const int __b)
4640 {
4641 return (int32x2_t)__builtin_neon_vqshrns_nv2di (__a, __b);
4642 }
4643
4644 __extension__ extern __inline uint8x8_t
4645 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshrn_n_u16(uint16x8_t __a,const int __b)4646 vqshrn_n_u16 (uint16x8_t __a, const int __b)
4647 {
4648 return (uint8x8_t)__builtin_neon_vqshrnu_nv8hi ((int16x8_t) __a, __b);
4649 }
4650
4651 __extension__ extern __inline uint16x4_t
4652 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshrn_n_u32(uint32x4_t __a,const int __b)4653 vqshrn_n_u32 (uint32x4_t __a, const int __b)
4654 {
4655 return (uint16x4_t)__builtin_neon_vqshrnu_nv4si ((int32x4_t) __a, __b);
4656 }
4657
4658 __extension__ extern __inline uint32x2_t
4659 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshrn_n_u64(uint64x2_t __a,const int __b)4660 vqshrn_n_u64 (uint64x2_t __a, const int __b)
4661 {
4662 return (uint32x2_t)__builtin_neon_vqshrnu_nv2di ((int64x2_t) __a, __b);
4663 }
4664
4665 __extension__ extern __inline int8x8_t
4666 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshrn_n_s16(int16x8_t __a,const int __b)4667 vqrshrn_n_s16 (int16x8_t __a, const int __b)
4668 {
4669 return (int8x8_t)__builtin_neon_vqrshrns_nv8hi (__a, __b);
4670 }
4671
4672 __extension__ extern __inline int16x4_t
4673 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshrn_n_s32(int32x4_t __a,const int __b)4674 vqrshrn_n_s32 (int32x4_t __a, const int __b)
4675 {
4676 return (int16x4_t)__builtin_neon_vqrshrns_nv4si (__a, __b);
4677 }
4678
4679 __extension__ extern __inline int32x2_t
4680 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshrn_n_s64(int64x2_t __a,const int __b)4681 vqrshrn_n_s64 (int64x2_t __a, const int __b)
4682 {
4683 return (int32x2_t)__builtin_neon_vqrshrns_nv2di (__a, __b);
4684 }
4685
4686 __extension__ extern __inline uint8x8_t
4687 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshrn_n_u16(uint16x8_t __a,const int __b)4688 vqrshrn_n_u16 (uint16x8_t __a, const int __b)
4689 {
4690 return (uint8x8_t)__builtin_neon_vqrshrnu_nv8hi ((int16x8_t) __a, __b);
4691 }
4692
4693 __extension__ extern __inline uint16x4_t
4694 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshrn_n_u32(uint32x4_t __a,const int __b)4695 vqrshrn_n_u32 (uint32x4_t __a, const int __b)
4696 {
4697 return (uint16x4_t)__builtin_neon_vqrshrnu_nv4si ((int32x4_t) __a, __b);
4698 }
4699
4700 __extension__ extern __inline uint32x2_t
4701 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshrn_n_u64(uint64x2_t __a,const int __b)4702 vqrshrn_n_u64 (uint64x2_t __a, const int __b)
4703 {
4704 return (uint32x2_t)__builtin_neon_vqrshrnu_nv2di ((int64x2_t) __a, __b);
4705 }
4706
4707 __extension__ extern __inline uint8x8_t
4708 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshrun_n_s16(int16x8_t __a,const int __b)4709 vqshrun_n_s16 (int16x8_t __a, const int __b)
4710 {
4711 return (uint8x8_t)__builtin_neon_vqshrun_nv8hi (__a, __b);
4712 }
4713
4714 __extension__ extern __inline uint16x4_t
4715 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshrun_n_s32(int32x4_t __a,const int __b)4716 vqshrun_n_s32 (int32x4_t __a, const int __b)
4717 {
4718 return (uint16x4_t)__builtin_neon_vqshrun_nv4si (__a, __b);
4719 }
4720
4721 __extension__ extern __inline uint32x2_t
4722 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshrun_n_s64(int64x2_t __a,const int __b)4723 vqshrun_n_s64 (int64x2_t __a, const int __b)
4724 {
4725 return (uint32x2_t)__builtin_neon_vqshrun_nv2di (__a, __b);
4726 }
4727
4728 __extension__ extern __inline uint8x8_t
4729 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshrun_n_s16(int16x8_t __a,const int __b)4730 vqrshrun_n_s16 (int16x8_t __a, const int __b)
4731 {
4732 return (uint8x8_t)__builtin_neon_vqrshrun_nv8hi (__a, __b);
4733 }
4734
4735 __extension__ extern __inline uint16x4_t
4736 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshrun_n_s32(int32x4_t __a,const int __b)4737 vqrshrun_n_s32 (int32x4_t __a, const int __b)
4738 {
4739 return (uint16x4_t)__builtin_neon_vqrshrun_nv4si (__a, __b);
4740 }
4741
4742 __extension__ extern __inline uint32x2_t
4743 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshrun_n_s64(int64x2_t __a,const int __b)4744 vqrshrun_n_s64 (int64x2_t __a, const int __b)
4745 {
4746 return (uint32x2_t)__builtin_neon_vqrshrun_nv2di (__a, __b);
4747 }
4748
4749 __extension__ extern __inline int8x8_t
4750 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshl_n_s8(int8x8_t __a,const int __b)4751 vshl_n_s8 (int8x8_t __a, const int __b)
4752 {
4753 return (int8x8_t)__builtin_neon_vshl_nv8qi (__a, __b);
4754 }
4755
4756 __extension__ extern __inline int16x4_t
4757 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshl_n_s16(int16x4_t __a,const int __b)4758 vshl_n_s16 (int16x4_t __a, const int __b)
4759 {
4760 return (int16x4_t)__builtin_neon_vshl_nv4hi (__a, __b);
4761 }
4762
4763 __extension__ extern __inline int32x2_t
4764 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshl_n_s32(int32x2_t __a,const int __b)4765 vshl_n_s32 (int32x2_t __a, const int __b)
4766 {
4767 return (int32x2_t)__builtin_neon_vshl_nv2si (__a, __b);
4768 }
4769
4770 __extension__ extern __inline int64x1_t
4771 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshl_n_s64(int64x1_t __a,const int __b)4772 vshl_n_s64 (int64x1_t __a, const int __b)
4773 {
4774 return (int64x1_t)__builtin_neon_vshl_ndi (__a, __b);
4775 }
4776
4777 __extension__ extern __inline uint8x8_t
4778 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshl_n_u8(uint8x8_t __a,const int __b)4779 vshl_n_u8 (uint8x8_t __a, const int __b)
4780 {
4781 return (uint8x8_t)__builtin_neon_vshl_nv8qi ((int8x8_t) __a, __b);
4782 }
4783
4784 __extension__ extern __inline uint16x4_t
4785 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshl_n_u16(uint16x4_t __a,const int __b)4786 vshl_n_u16 (uint16x4_t __a, const int __b)
4787 {
4788 return (uint16x4_t)__builtin_neon_vshl_nv4hi ((int16x4_t) __a, __b);
4789 }
4790
4791 __extension__ extern __inline uint32x2_t
4792 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshl_n_u32(uint32x2_t __a,const int __b)4793 vshl_n_u32 (uint32x2_t __a, const int __b)
4794 {
4795 return (uint32x2_t)__builtin_neon_vshl_nv2si ((int32x2_t) __a, __b);
4796 }
4797
4798 __extension__ extern __inline uint64x1_t
4799 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshl_n_u64(uint64x1_t __a,const int __b)4800 vshl_n_u64 (uint64x1_t __a, const int __b)
4801 {
4802 return (uint64x1_t)__builtin_neon_vshl_ndi ((int64x1_t) __a, __b);
4803 }
4804
4805 __extension__ extern __inline int8x16_t
4806 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshlq_n_s8(int8x16_t __a,const int __b)4807 vshlq_n_s8 (int8x16_t __a, const int __b)
4808 {
4809 return (int8x16_t)__builtin_neon_vshl_nv16qi (__a, __b);
4810 }
4811
4812 __extension__ extern __inline int16x8_t
4813 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshlq_n_s16(int16x8_t __a,const int __b)4814 vshlq_n_s16 (int16x8_t __a, const int __b)
4815 {
4816 return (int16x8_t)__builtin_neon_vshl_nv8hi (__a, __b);
4817 }
4818
4819 __extension__ extern __inline int32x4_t
4820 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshlq_n_s32(int32x4_t __a,const int __b)4821 vshlq_n_s32 (int32x4_t __a, const int __b)
4822 {
4823 return (int32x4_t)__builtin_neon_vshl_nv4si (__a, __b);
4824 }
4825
4826 __extension__ extern __inline int64x2_t
4827 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshlq_n_s64(int64x2_t __a,const int __b)4828 vshlq_n_s64 (int64x2_t __a, const int __b)
4829 {
4830 return (int64x2_t)__builtin_neon_vshl_nv2di (__a, __b);
4831 }
4832
4833 __extension__ extern __inline uint8x16_t
4834 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshlq_n_u8(uint8x16_t __a,const int __b)4835 vshlq_n_u8 (uint8x16_t __a, const int __b)
4836 {
4837 return (uint8x16_t)__builtin_neon_vshl_nv16qi ((int8x16_t) __a, __b);
4838 }
4839
4840 __extension__ extern __inline uint16x8_t
4841 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshlq_n_u16(uint16x8_t __a,const int __b)4842 vshlq_n_u16 (uint16x8_t __a, const int __b)
4843 {
4844 return (uint16x8_t)__builtin_neon_vshl_nv8hi ((int16x8_t) __a, __b);
4845 }
4846
4847 __extension__ extern __inline uint32x4_t
4848 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshlq_n_u32(uint32x4_t __a,const int __b)4849 vshlq_n_u32 (uint32x4_t __a, const int __b)
4850 {
4851 return (uint32x4_t)__builtin_neon_vshl_nv4si ((int32x4_t) __a, __b);
4852 }
4853
4854 __extension__ extern __inline uint64x2_t
4855 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshlq_n_u64(uint64x2_t __a,const int __b)4856 vshlq_n_u64 (uint64x2_t __a, const int __b)
4857 {
4858 return (uint64x2_t)__builtin_neon_vshl_nv2di ((int64x2_t) __a, __b);
4859 }
4860
4861 __extension__ extern __inline int8x8_t
4862 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshl_n_s8(int8x8_t __a,const int __b)4863 vqshl_n_s8 (int8x8_t __a, const int __b)
4864 {
4865 return (int8x8_t)__builtin_neon_vqshl_s_nv8qi (__a, __b);
4866 }
4867
4868 __extension__ extern __inline int16x4_t
4869 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshl_n_s16(int16x4_t __a,const int __b)4870 vqshl_n_s16 (int16x4_t __a, const int __b)
4871 {
4872 return (int16x4_t)__builtin_neon_vqshl_s_nv4hi (__a, __b);
4873 }
4874
4875 __extension__ extern __inline int32x2_t
4876 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshl_n_s32(int32x2_t __a,const int __b)4877 vqshl_n_s32 (int32x2_t __a, const int __b)
4878 {
4879 return (int32x2_t)__builtin_neon_vqshl_s_nv2si (__a, __b);
4880 }
4881
4882 __extension__ extern __inline int64x1_t
4883 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshl_n_s64(int64x1_t __a,const int __b)4884 vqshl_n_s64 (int64x1_t __a, const int __b)
4885 {
4886 return (int64x1_t)__builtin_neon_vqshl_s_ndi (__a, __b);
4887 }
4888
4889 __extension__ extern __inline uint8x8_t
4890 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshl_n_u8(uint8x8_t __a,const int __b)4891 vqshl_n_u8 (uint8x8_t __a, const int __b)
4892 {
4893 return (uint8x8_t)__builtin_neon_vqshl_u_nv8qi ((int8x8_t) __a, __b);
4894 }
4895
4896 __extension__ extern __inline uint16x4_t
4897 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshl_n_u16(uint16x4_t __a,const int __b)4898 vqshl_n_u16 (uint16x4_t __a, const int __b)
4899 {
4900 return (uint16x4_t)__builtin_neon_vqshl_u_nv4hi ((int16x4_t) __a, __b);
4901 }
4902
4903 __extension__ extern __inline uint32x2_t
4904 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshl_n_u32(uint32x2_t __a,const int __b)4905 vqshl_n_u32 (uint32x2_t __a, const int __b)
4906 {
4907 return (uint32x2_t)__builtin_neon_vqshl_u_nv2si ((int32x2_t) __a, __b);
4908 }
4909
4910 __extension__ extern __inline uint64x1_t
4911 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshl_n_u64(uint64x1_t __a,const int __b)4912 vqshl_n_u64 (uint64x1_t __a, const int __b)
4913 {
4914 return (uint64x1_t)__builtin_neon_vqshl_u_ndi ((int64x1_t) __a, __b);
4915 }
4916
4917 __extension__ extern __inline int8x16_t
4918 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlq_n_s8(int8x16_t __a,const int __b)4919 vqshlq_n_s8 (int8x16_t __a, const int __b)
4920 {
4921 return (int8x16_t)__builtin_neon_vqshl_s_nv16qi (__a, __b);
4922 }
4923
4924 __extension__ extern __inline int16x8_t
4925 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlq_n_s16(int16x8_t __a,const int __b)4926 vqshlq_n_s16 (int16x8_t __a, const int __b)
4927 {
4928 return (int16x8_t)__builtin_neon_vqshl_s_nv8hi (__a, __b);
4929 }
4930
4931 __extension__ extern __inline int32x4_t
4932 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlq_n_s32(int32x4_t __a,const int __b)4933 vqshlq_n_s32 (int32x4_t __a, const int __b)
4934 {
4935 return (int32x4_t)__builtin_neon_vqshl_s_nv4si (__a, __b);
4936 }
4937
4938 __extension__ extern __inline int64x2_t
4939 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlq_n_s64(int64x2_t __a,const int __b)4940 vqshlq_n_s64 (int64x2_t __a, const int __b)
4941 {
4942 return (int64x2_t)__builtin_neon_vqshl_s_nv2di (__a, __b);
4943 }
4944
4945 __extension__ extern __inline uint8x16_t
4946 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlq_n_u8(uint8x16_t __a,const int __b)4947 vqshlq_n_u8 (uint8x16_t __a, const int __b)
4948 {
4949 return (uint8x16_t)__builtin_neon_vqshl_u_nv16qi ((int8x16_t) __a, __b);
4950 }
4951
4952 __extension__ extern __inline uint16x8_t
4953 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlq_n_u16(uint16x8_t __a,const int __b)4954 vqshlq_n_u16 (uint16x8_t __a, const int __b)
4955 {
4956 return (uint16x8_t)__builtin_neon_vqshl_u_nv8hi ((int16x8_t) __a, __b);
4957 }
4958
4959 __extension__ extern __inline uint32x4_t
4960 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlq_n_u32(uint32x4_t __a,const int __b)4961 vqshlq_n_u32 (uint32x4_t __a, const int __b)
4962 {
4963 return (uint32x4_t)__builtin_neon_vqshl_u_nv4si ((int32x4_t) __a, __b);
4964 }
4965
4966 __extension__ extern __inline uint64x2_t
4967 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlq_n_u64(uint64x2_t __a,const int __b)4968 vqshlq_n_u64 (uint64x2_t __a, const int __b)
4969 {
4970 return (uint64x2_t)__builtin_neon_vqshl_u_nv2di ((int64x2_t) __a, __b);
4971 }
4972
4973 __extension__ extern __inline uint8x8_t
4974 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlu_n_s8(int8x8_t __a,const int __b)4975 vqshlu_n_s8 (int8x8_t __a, const int __b)
4976 {
4977 return (uint8x8_t)__builtin_neon_vqshlu_nv8qi (__a, __b);
4978 }
4979
4980 __extension__ extern __inline uint16x4_t
4981 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlu_n_s16(int16x4_t __a,const int __b)4982 vqshlu_n_s16 (int16x4_t __a, const int __b)
4983 {
4984 return (uint16x4_t)__builtin_neon_vqshlu_nv4hi (__a, __b);
4985 }
4986
4987 __extension__ extern __inline uint32x2_t
4988 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlu_n_s32(int32x2_t __a,const int __b)4989 vqshlu_n_s32 (int32x2_t __a, const int __b)
4990 {
4991 return (uint32x2_t)__builtin_neon_vqshlu_nv2si (__a, __b);
4992 }
4993
4994 __extension__ extern __inline uint64x1_t
4995 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlu_n_s64(int64x1_t __a,const int __b)4996 vqshlu_n_s64 (int64x1_t __a, const int __b)
4997 {
4998 return (uint64x1_t)__builtin_neon_vqshlu_ndi (__a, __b);
4999 }
5000
5001 __extension__ extern __inline uint8x16_t
5002 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshluq_n_s8(int8x16_t __a,const int __b)5003 vqshluq_n_s8 (int8x16_t __a, const int __b)
5004 {
5005 return (uint8x16_t)__builtin_neon_vqshlu_nv16qi (__a, __b);
5006 }
5007
5008 __extension__ extern __inline uint16x8_t
5009 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshluq_n_s16(int16x8_t __a,const int __b)5010 vqshluq_n_s16 (int16x8_t __a, const int __b)
5011 {
5012 return (uint16x8_t)__builtin_neon_vqshlu_nv8hi (__a, __b);
5013 }
5014
5015 __extension__ extern __inline uint32x4_t
5016 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshluq_n_s32(int32x4_t __a,const int __b)5017 vqshluq_n_s32 (int32x4_t __a, const int __b)
5018 {
5019 return (uint32x4_t)__builtin_neon_vqshlu_nv4si (__a, __b);
5020 }
5021
5022 __extension__ extern __inline uint64x2_t
5023 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshluq_n_s64(int64x2_t __a,const int __b)5024 vqshluq_n_s64 (int64x2_t __a, const int __b)
5025 {
5026 return (uint64x2_t)__builtin_neon_vqshlu_nv2di (__a, __b);
5027 }
5028
5029 __extension__ extern __inline int16x8_t
5030 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshll_n_s8(int8x8_t __a,const int __b)5031 vshll_n_s8 (int8x8_t __a, const int __b)
5032 {
5033 return (int16x8_t)__builtin_neon_vshlls_nv8qi (__a, __b);
5034 }
5035
5036 __extension__ extern __inline int32x4_t
5037 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshll_n_s16(int16x4_t __a,const int __b)5038 vshll_n_s16 (int16x4_t __a, const int __b)
5039 {
5040 return (int32x4_t)__builtin_neon_vshlls_nv4hi (__a, __b);
5041 }
5042
5043 __extension__ extern __inline int64x2_t
5044 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshll_n_s32(int32x2_t __a,const int __b)5045 vshll_n_s32 (int32x2_t __a, const int __b)
5046 {
5047 return (int64x2_t)__builtin_neon_vshlls_nv2si (__a, __b);
5048 }
5049
5050 __extension__ extern __inline uint16x8_t
5051 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshll_n_u8(uint8x8_t __a,const int __b)5052 vshll_n_u8 (uint8x8_t __a, const int __b)
5053 {
5054 return (uint16x8_t)__builtin_neon_vshllu_nv8qi ((int8x8_t) __a, __b);
5055 }
5056
5057 __extension__ extern __inline uint32x4_t
5058 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshll_n_u16(uint16x4_t __a,const int __b)5059 vshll_n_u16 (uint16x4_t __a, const int __b)
5060 {
5061 return (uint32x4_t)__builtin_neon_vshllu_nv4hi ((int16x4_t) __a, __b);
5062 }
5063
5064 __extension__ extern __inline uint64x2_t
5065 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshll_n_u32(uint32x2_t __a,const int __b)5066 vshll_n_u32 (uint32x2_t __a, const int __b)
5067 {
5068 return (uint64x2_t)__builtin_neon_vshllu_nv2si ((int32x2_t) __a, __b);
5069 }
5070
5071 __extension__ extern __inline int8x8_t
5072 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsra_n_s8(int8x8_t __a,int8x8_t __b,const int __c)5073 vsra_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
5074 {
5075 return (int8x8_t)__builtin_neon_vsras_nv8qi (__a, __b, __c);
5076 }
5077
5078 __extension__ extern __inline int16x4_t
5079 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsra_n_s16(int16x4_t __a,int16x4_t __b,const int __c)5080 vsra_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
5081 {
5082 return (int16x4_t)__builtin_neon_vsras_nv4hi (__a, __b, __c);
5083 }
5084
5085 __extension__ extern __inline int32x2_t
5086 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsra_n_s32(int32x2_t __a,int32x2_t __b,const int __c)5087 vsra_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
5088 {
5089 return (int32x2_t)__builtin_neon_vsras_nv2si (__a, __b, __c);
5090 }
5091
5092 __extension__ extern __inline int64x1_t
5093 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsra_n_s64(int64x1_t __a,int64x1_t __b,const int __c)5094 vsra_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
5095 {
5096 return (int64x1_t)__builtin_neon_vsras_ndi (__a, __b, __c);
5097 }
5098
5099 __extension__ extern __inline uint8x8_t
5100 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsra_n_u8(uint8x8_t __a,uint8x8_t __b,const int __c)5101 vsra_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
5102 {
5103 return (uint8x8_t)__builtin_neon_vsrau_nv8qi ((int8x8_t) __a, (int8x8_t) __b, __c);
5104 }
5105
5106 __extension__ extern __inline uint16x4_t
5107 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsra_n_u16(uint16x4_t __a,uint16x4_t __b,const int __c)5108 vsra_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
5109 {
5110 return (uint16x4_t)__builtin_neon_vsrau_nv4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
5111 }
5112
5113 __extension__ extern __inline uint32x2_t
5114 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsra_n_u32(uint32x2_t __a,uint32x2_t __b,const int __c)5115 vsra_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
5116 {
5117 return (uint32x2_t)__builtin_neon_vsrau_nv2si ((int32x2_t) __a, (int32x2_t) __b, __c);
5118 }
5119
5120 __extension__ extern __inline uint64x1_t
5121 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsra_n_u64(uint64x1_t __a,uint64x1_t __b,const int __c)5122 vsra_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
5123 {
5124 return (uint64x1_t)__builtin_neon_vsrau_ndi ((int64x1_t) __a, (int64x1_t) __b, __c);
5125 }
5126
5127 __extension__ extern __inline int8x16_t
5128 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsraq_n_s8(int8x16_t __a,int8x16_t __b,const int __c)5129 vsraq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
5130 {
5131 return (int8x16_t)__builtin_neon_vsras_nv16qi (__a, __b, __c);
5132 }
5133
5134 __extension__ extern __inline int16x8_t
5135 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsraq_n_s16(int16x8_t __a,int16x8_t __b,const int __c)5136 vsraq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
5137 {
5138 return (int16x8_t)__builtin_neon_vsras_nv8hi (__a, __b, __c);
5139 }
5140
5141 __extension__ extern __inline int32x4_t
5142 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsraq_n_s32(int32x4_t __a,int32x4_t __b,const int __c)5143 vsraq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
5144 {
5145 return (int32x4_t)__builtin_neon_vsras_nv4si (__a, __b, __c);
5146 }
5147
5148 __extension__ extern __inline int64x2_t
5149 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsraq_n_s64(int64x2_t __a,int64x2_t __b,const int __c)5150 vsraq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
5151 {
5152 return (int64x2_t)__builtin_neon_vsras_nv2di (__a, __b, __c);
5153 }
5154
5155 __extension__ extern __inline uint8x16_t
5156 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsraq_n_u8(uint8x16_t __a,uint8x16_t __b,const int __c)5157 vsraq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
5158 {
5159 return (uint8x16_t)__builtin_neon_vsrau_nv16qi ((int8x16_t) __a, (int8x16_t) __b, __c);
5160 }
5161
5162 __extension__ extern __inline uint16x8_t
5163 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsraq_n_u16(uint16x8_t __a,uint16x8_t __b,const int __c)5164 vsraq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
5165 {
5166 return (uint16x8_t)__builtin_neon_vsrau_nv8hi ((int16x8_t) __a, (int16x8_t) __b, __c);
5167 }
5168
5169 __extension__ extern __inline uint32x4_t
5170 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsraq_n_u32(uint32x4_t __a,uint32x4_t __b,const int __c)5171 vsraq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
5172 {
5173 return (uint32x4_t)__builtin_neon_vsrau_nv4si ((int32x4_t) __a, (int32x4_t) __b, __c);
5174 }
5175
5176 __extension__ extern __inline uint64x2_t
5177 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsraq_n_u64(uint64x2_t __a,uint64x2_t __b,const int __c)5178 vsraq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
5179 {
5180 return (uint64x2_t)__builtin_neon_vsrau_nv2di ((int64x2_t) __a, (int64x2_t) __b, __c);
5181 }
5182
5183 __extension__ extern __inline int8x8_t
5184 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsra_n_s8(int8x8_t __a,int8x8_t __b,const int __c)5185 vrsra_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
5186 {
5187 return (int8x8_t)__builtin_neon_vrsras_nv8qi (__a, __b, __c);
5188 }
5189
5190 __extension__ extern __inline int16x4_t
5191 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsra_n_s16(int16x4_t __a,int16x4_t __b,const int __c)5192 vrsra_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
5193 {
5194 return (int16x4_t)__builtin_neon_vrsras_nv4hi (__a, __b, __c);
5195 }
5196
5197 __extension__ extern __inline int32x2_t
5198 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsra_n_s32(int32x2_t __a,int32x2_t __b,const int __c)5199 vrsra_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
5200 {
5201 return (int32x2_t)__builtin_neon_vrsras_nv2si (__a, __b, __c);
5202 }
5203
5204 __extension__ extern __inline int64x1_t
5205 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsra_n_s64(int64x1_t __a,int64x1_t __b,const int __c)5206 vrsra_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
5207 {
5208 return (int64x1_t)__builtin_neon_vrsras_ndi (__a, __b, __c);
5209 }
5210
5211 __extension__ extern __inline uint8x8_t
5212 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsra_n_u8(uint8x8_t __a,uint8x8_t __b,const int __c)5213 vrsra_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
5214 {
5215 return (uint8x8_t)__builtin_neon_vrsrau_nv8qi ((int8x8_t) __a, (int8x8_t) __b, __c);
5216 }
5217
5218 __extension__ extern __inline uint16x4_t
5219 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsra_n_u16(uint16x4_t __a,uint16x4_t __b,const int __c)5220 vrsra_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
5221 {
5222 return (uint16x4_t)__builtin_neon_vrsrau_nv4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
5223 }
5224
5225 __extension__ extern __inline uint32x2_t
5226 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsra_n_u32(uint32x2_t __a,uint32x2_t __b,const int __c)5227 vrsra_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
5228 {
5229 return (uint32x2_t)__builtin_neon_vrsrau_nv2si ((int32x2_t) __a, (int32x2_t) __b, __c);
5230 }
5231
5232 __extension__ extern __inline uint64x1_t
5233 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsra_n_u64(uint64x1_t __a,uint64x1_t __b,const int __c)5234 vrsra_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
5235 {
5236 return (uint64x1_t)__builtin_neon_vrsrau_ndi ((int64x1_t) __a, (int64x1_t) __b, __c);
5237 }
5238
5239 __extension__ extern __inline int8x16_t
5240 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsraq_n_s8(int8x16_t __a,int8x16_t __b,const int __c)5241 vrsraq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
5242 {
5243 return (int8x16_t)__builtin_neon_vrsras_nv16qi (__a, __b, __c);
5244 }
5245
5246 __extension__ extern __inline int16x8_t
5247 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsraq_n_s16(int16x8_t __a,int16x8_t __b,const int __c)5248 vrsraq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
5249 {
5250 return (int16x8_t)__builtin_neon_vrsras_nv8hi (__a, __b, __c);
5251 }
5252
5253 __extension__ extern __inline int32x4_t
5254 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsraq_n_s32(int32x4_t __a,int32x4_t __b,const int __c)5255 vrsraq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
5256 {
5257 return (int32x4_t)__builtin_neon_vrsras_nv4si (__a, __b, __c);
5258 }
5259
5260 __extension__ extern __inline int64x2_t
5261 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsraq_n_s64(int64x2_t __a,int64x2_t __b,const int __c)5262 vrsraq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
5263 {
5264 return (int64x2_t)__builtin_neon_vrsras_nv2di (__a, __b, __c);
5265 }
5266
5267 __extension__ extern __inline uint8x16_t
5268 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsraq_n_u8(uint8x16_t __a,uint8x16_t __b,const int __c)5269 vrsraq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
5270 {
5271 return (uint8x16_t)__builtin_neon_vrsrau_nv16qi ((int8x16_t) __a, (int8x16_t) __b, __c);
5272 }
5273
5274 __extension__ extern __inline uint16x8_t
5275 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsraq_n_u16(uint16x8_t __a,uint16x8_t __b,const int __c)5276 vrsraq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
5277 {
5278 return (uint16x8_t)__builtin_neon_vrsrau_nv8hi ((int16x8_t) __a, (int16x8_t) __b, __c);
5279 }
5280
5281 __extension__ extern __inline uint32x4_t
5282 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsraq_n_u32(uint32x4_t __a,uint32x4_t __b,const int __c)5283 vrsraq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
5284 {
5285 return (uint32x4_t)__builtin_neon_vrsrau_nv4si ((int32x4_t) __a, (int32x4_t) __b, __c);
5286 }
5287
5288 __extension__ extern __inline uint64x2_t
5289 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsraq_n_u64(uint64x2_t __a,uint64x2_t __b,const int __c)5290 vrsraq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
5291 {
5292 return (uint64x2_t)__builtin_neon_vrsrau_nv2di ((int64x2_t) __a, (int64x2_t) __b, __c);
5293 }
5294
5295 #pragma GCC push_options
5296 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
5297 __extension__ extern __inline poly64x1_t
5298 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsri_n_p64(poly64x1_t __a,poly64x1_t __b,const int __c)5299 vsri_n_p64 (poly64x1_t __a, poly64x1_t __b, const int __c)
5300 {
5301 return (poly64x1_t)__builtin_neon_vsri_ndi (__a, __b, __c);
5302 }
5303
5304 #pragma GCC pop_options
5305 __extension__ extern __inline int8x8_t
5306 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsri_n_s8(int8x8_t __a,int8x8_t __b,const int __c)5307 vsri_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
5308 {
5309 return (int8x8_t)__builtin_neon_vsri_nv8qi (__a, __b, __c);
5310 }
5311
5312 __extension__ extern __inline int16x4_t
5313 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsri_n_s16(int16x4_t __a,int16x4_t __b,const int __c)5314 vsri_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
5315 {
5316 return (int16x4_t)__builtin_neon_vsri_nv4hi (__a, __b, __c);
5317 }
5318
5319 __extension__ extern __inline int32x2_t
5320 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsri_n_s32(int32x2_t __a,int32x2_t __b,const int __c)5321 vsri_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
5322 {
5323 return (int32x2_t)__builtin_neon_vsri_nv2si (__a, __b, __c);
5324 }
5325
5326 __extension__ extern __inline int64x1_t
5327 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsri_n_s64(int64x1_t __a,int64x1_t __b,const int __c)5328 vsri_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
5329 {
5330 return (int64x1_t)__builtin_neon_vsri_ndi (__a, __b, __c);
5331 }
5332
5333 __extension__ extern __inline uint8x8_t
5334 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsri_n_u8(uint8x8_t __a,uint8x8_t __b,const int __c)5335 vsri_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
5336 {
5337 return (uint8x8_t)__builtin_neon_vsri_nv8qi ((int8x8_t) __a, (int8x8_t) __b, __c);
5338 }
5339
5340 __extension__ extern __inline uint16x4_t
5341 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsri_n_u16(uint16x4_t __a,uint16x4_t __b,const int __c)5342 vsri_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
5343 {
5344 return (uint16x4_t)__builtin_neon_vsri_nv4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
5345 }
5346
5347 __extension__ extern __inline uint32x2_t
5348 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsri_n_u32(uint32x2_t __a,uint32x2_t __b,const int __c)5349 vsri_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
5350 {
5351 return (uint32x2_t)__builtin_neon_vsri_nv2si ((int32x2_t) __a, (int32x2_t) __b, __c);
5352 }
5353
5354 __extension__ extern __inline uint64x1_t
5355 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsri_n_u64(uint64x1_t __a,uint64x1_t __b,const int __c)5356 vsri_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
5357 {
5358 return (uint64x1_t)__builtin_neon_vsri_ndi ((int64x1_t) __a, (int64x1_t) __b, __c);
5359 }
5360
5361 __extension__ extern __inline poly8x8_t
5362 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsri_n_p8(poly8x8_t __a,poly8x8_t __b,const int __c)5363 vsri_n_p8 (poly8x8_t __a, poly8x8_t __b, const int __c)
5364 {
5365 return (poly8x8_t)__builtin_neon_vsri_nv8qi ((int8x8_t) __a, (int8x8_t) __b, __c);
5366 }
5367
5368 __extension__ extern __inline poly16x4_t
5369 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsri_n_p16(poly16x4_t __a,poly16x4_t __b,const int __c)5370 vsri_n_p16 (poly16x4_t __a, poly16x4_t __b, const int __c)
5371 {
5372 return (poly16x4_t)__builtin_neon_vsri_nv4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
5373 }
5374
5375 #pragma GCC push_options
5376 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
5377 __extension__ extern __inline poly64x2_t
5378 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsriq_n_p64(poly64x2_t __a,poly64x2_t __b,const int __c)5379 vsriq_n_p64 (poly64x2_t __a, poly64x2_t __b, const int __c)
5380 {
5381 return (poly64x2_t)__builtin_neon_vsri_nv2di ((int64x2_t) __a, (int64x2_t) __b, __c);
5382 }
5383
5384 #pragma GCC pop_options
5385 __extension__ extern __inline int8x16_t
5386 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsriq_n_s8(int8x16_t __a,int8x16_t __b,const int __c)5387 vsriq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
5388 {
5389 return (int8x16_t)__builtin_neon_vsri_nv16qi (__a, __b, __c);
5390 }
5391
5392 __extension__ extern __inline int16x8_t
5393 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsriq_n_s16(int16x8_t __a,int16x8_t __b,const int __c)5394 vsriq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
5395 {
5396 return (int16x8_t)__builtin_neon_vsri_nv8hi (__a, __b, __c);
5397 }
5398
5399 __extension__ extern __inline int32x4_t
5400 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsriq_n_s32(int32x4_t __a,int32x4_t __b,const int __c)5401 vsriq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
5402 {
5403 return (int32x4_t)__builtin_neon_vsri_nv4si (__a, __b, __c);
5404 }
5405
5406 __extension__ extern __inline int64x2_t
5407 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsriq_n_s64(int64x2_t __a,int64x2_t __b,const int __c)5408 vsriq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
5409 {
5410 return (int64x2_t)__builtin_neon_vsri_nv2di (__a, __b, __c);
5411 }
5412
5413 __extension__ extern __inline uint8x16_t
5414 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsriq_n_u8(uint8x16_t __a,uint8x16_t __b,const int __c)5415 vsriq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
5416 {
5417 return (uint8x16_t)__builtin_neon_vsri_nv16qi ((int8x16_t) __a, (int8x16_t) __b, __c);
5418 }
5419
5420 __extension__ extern __inline uint16x8_t
5421 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsriq_n_u16(uint16x8_t __a,uint16x8_t __b,const int __c)5422 vsriq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
5423 {
5424 return (uint16x8_t)__builtin_neon_vsri_nv8hi ((int16x8_t) __a, (int16x8_t) __b, __c);
5425 }
5426
5427 __extension__ extern __inline uint32x4_t
5428 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsriq_n_u32(uint32x4_t __a,uint32x4_t __b,const int __c)5429 vsriq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
5430 {
5431 return (uint32x4_t)__builtin_neon_vsri_nv4si ((int32x4_t) __a, (int32x4_t) __b, __c);
5432 }
5433
5434 __extension__ extern __inline uint64x2_t
5435 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsriq_n_u64(uint64x2_t __a,uint64x2_t __b,const int __c)5436 vsriq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
5437 {
5438 return (uint64x2_t)__builtin_neon_vsri_nv2di ((int64x2_t) __a, (int64x2_t) __b, __c);
5439 }
5440
5441 __extension__ extern __inline poly8x16_t
5442 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsriq_n_p8(poly8x16_t __a,poly8x16_t __b,const int __c)5443 vsriq_n_p8 (poly8x16_t __a, poly8x16_t __b, const int __c)
5444 {
5445 return (poly8x16_t)__builtin_neon_vsri_nv16qi ((int8x16_t) __a, (int8x16_t) __b, __c);
5446 }
5447
5448 __extension__ extern __inline poly16x8_t
5449 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsriq_n_p16(poly16x8_t __a,poly16x8_t __b,const int __c)5450 vsriq_n_p16 (poly16x8_t __a, poly16x8_t __b, const int __c)
5451 {
5452 return (poly16x8_t)__builtin_neon_vsri_nv8hi ((int16x8_t) __a, (int16x8_t) __b, __c);
5453 }
5454
5455 #pragma GCC push_options
5456 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
5457 __extension__ extern __inline poly64x1_t
5458 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsli_n_p64(poly64x1_t __a,poly64x1_t __b,const int __c)5459 vsli_n_p64 (poly64x1_t __a, poly64x1_t __b, const int __c)
5460 {
5461 return (poly64x1_t)__builtin_neon_vsli_ndi (__a, __b, __c);
5462 }
5463
5464 #pragma GCC pop_options
5465 __extension__ extern __inline int8x8_t
5466 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsli_n_s8(int8x8_t __a,int8x8_t __b,const int __c)5467 vsli_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
5468 {
5469 return (int8x8_t)__builtin_neon_vsli_nv8qi (__a, __b, __c);
5470 }
5471
5472 __extension__ extern __inline int16x4_t
5473 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsli_n_s16(int16x4_t __a,int16x4_t __b,const int __c)5474 vsli_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
5475 {
5476 return (int16x4_t)__builtin_neon_vsli_nv4hi (__a, __b, __c);
5477 }
5478
5479 __extension__ extern __inline int32x2_t
5480 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsli_n_s32(int32x2_t __a,int32x2_t __b,const int __c)5481 vsli_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
5482 {
5483 return (int32x2_t)__builtin_neon_vsli_nv2si (__a, __b, __c);
5484 }
5485
5486 __extension__ extern __inline int64x1_t
5487 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsli_n_s64(int64x1_t __a,int64x1_t __b,const int __c)5488 vsli_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
5489 {
5490 return (int64x1_t)__builtin_neon_vsli_ndi (__a, __b, __c);
5491 }
5492
5493 __extension__ extern __inline uint8x8_t
5494 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsli_n_u8(uint8x8_t __a,uint8x8_t __b,const int __c)5495 vsli_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
5496 {
5497 return (uint8x8_t)__builtin_neon_vsli_nv8qi ((int8x8_t) __a, (int8x8_t) __b, __c);
5498 }
5499
5500 __extension__ extern __inline uint16x4_t
5501 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsli_n_u16(uint16x4_t __a,uint16x4_t __b,const int __c)5502 vsli_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
5503 {
5504 return (uint16x4_t)__builtin_neon_vsli_nv4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
5505 }
5506
5507 __extension__ extern __inline uint32x2_t
5508 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsli_n_u32(uint32x2_t __a,uint32x2_t __b,const int __c)5509 vsli_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
5510 {
5511 return (uint32x2_t)__builtin_neon_vsli_nv2si ((int32x2_t) __a, (int32x2_t) __b, __c);
5512 }
5513
5514 __extension__ extern __inline uint64x1_t
5515 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsli_n_u64(uint64x1_t __a,uint64x1_t __b,const int __c)5516 vsli_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
5517 {
5518 return (uint64x1_t)__builtin_neon_vsli_ndi ((int64x1_t) __a, (int64x1_t) __b, __c);
5519 }
5520
5521 __extension__ extern __inline poly8x8_t
5522 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsli_n_p8(poly8x8_t __a,poly8x8_t __b,const int __c)5523 vsli_n_p8 (poly8x8_t __a, poly8x8_t __b, const int __c)
5524 {
5525 return (poly8x8_t)__builtin_neon_vsli_nv8qi ((int8x8_t) __a, (int8x8_t) __b, __c);
5526 }
5527
5528 __extension__ extern __inline poly16x4_t
5529 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsli_n_p16(poly16x4_t __a,poly16x4_t __b,const int __c)5530 vsli_n_p16 (poly16x4_t __a, poly16x4_t __b, const int __c)
5531 {
5532 return (poly16x4_t)__builtin_neon_vsli_nv4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
5533 }
5534
5535 #pragma GCC push_options
5536 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
5537 __extension__ extern __inline poly64x2_t
5538 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsliq_n_p64(poly64x2_t __a,poly64x2_t __b,const int __c)5539 vsliq_n_p64 (poly64x2_t __a, poly64x2_t __b, const int __c)
5540 {
5541 return (poly64x2_t)__builtin_neon_vsli_nv2di ((int64x2_t) __a, (int64x2_t) __b, __c);
5542 }
5543
5544 #pragma GCC pop_options
5545 __extension__ extern __inline int8x16_t
5546 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsliq_n_s8(int8x16_t __a,int8x16_t __b,const int __c)5547 vsliq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
5548 {
5549 return (int8x16_t)__builtin_neon_vsli_nv16qi (__a, __b, __c);
5550 }
5551
5552 __extension__ extern __inline int16x8_t
5553 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsliq_n_s16(int16x8_t __a,int16x8_t __b,const int __c)5554 vsliq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
5555 {
5556 return (int16x8_t)__builtin_neon_vsli_nv8hi (__a, __b, __c);
5557 }
5558
5559 __extension__ extern __inline int32x4_t
5560 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsliq_n_s32(int32x4_t __a,int32x4_t __b,const int __c)5561 vsliq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
5562 {
5563 return (int32x4_t)__builtin_neon_vsli_nv4si (__a, __b, __c);
5564 }
5565
5566 __extension__ extern __inline int64x2_t
5567 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsliq_n_s64(int64x2_t __a,int64x2_t __b,const int __c)5568 vsliq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
5569 {
5570 return (int64x2_t)__builtin_neon_vsli_nv2di (__a, __b, __c);
5571 }
5572
5573 __extension__ extern __inline uint8x16_t
5574 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsliq_n_u8(uint8x16_t __a,uint8x16_t __b,const int __c)5575 vsliq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
5576 {
5577 return (uint8x16_t)__builtin_neon_vsli_nv16qi ((int8x16_t) __a, (int8x16_t) __b, __c);
5578 }
5579
5580 __extension__ extern __inline uint16x8_t
5581 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsliq_n_u16(uint16x8_t __a,uint16x8_t __b,const int __c)5582 vsliq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
5583 {
5584 return (uint16x8_t)__builtin_neon_vsli_nv8hi ((int16x8_t) __a, (int16x8_t) __b, __c);
5585 }
5586
5587 __extension__ extern __inline uint32x4_t
5588 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsliq_n_u32(uint32x4_t __a,uint32x4_t __b,const int __c)5589 vsliq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
5590 {
5591 return (uint32x4_t)__builtin_neon_vsli_nv4si ((int32x4_t) __a, (int32x4_t) __b, __c);
5592 }
5593
5594 __extension__ extern __inline uint64x2_t
5595 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsliq_n_u64(uint64x2_t __a,uint64x2_t __b,const int __c)5596 vsliq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
5597 {
5598 return (uint64x2_t)__builtin_neon_vsli_nv2di ((int64x2_t) __a, (int64x2_t) __b, __c);
5599 }
5600
5601 __extension__ extern __inline poly8x16_t
5602 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsliq_n_p8(poly8x16_t __a,poly8x16_t __b,const int __c)5603 vsliq_n_p8 (poly8x16_t __a, poly8x16_t __b, const int __c)
5604 {
5605 return (poly8x16_t)__builtin_neon_vsli_nv16qi ((int8x16_t) __a, (int8x16_t) __b, __c);
5606 }
5607
5608 __extension__ extern __inline poly16x8_t
5609 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsliq_n_p16(poly16x8_t __a,poly16x8_t __b,const int __c)5610 vsliq_n_p16 (poly16x8_t __a, poly16x8_t __b, const int __c)
5611 {
5612 return (poly16x8_t)__builtin_neon_vsli_nv8hi ((int16x8_t) __a, (int16x8_t) __b, __c);
5613 }
5614
5615 __extension__ extern __inline int8x8_t
5616 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabs_s8(int8x8_t __a)5617 vabs_s8 (int8x8_t __a)
5618 {
5619 return (int8x8_t)__builtin_neon_vabsv8qi (__a);
5620 }
5621
5622 __extension__ extern __inline int16x4_t
5623 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabs_s16(int16x4_t __a)5624 vabs_s16 (int16x4_t __a)
5625 {
5626 return (int16x4_t)__builtin_neon_vabsv4hi (__a);
5627 }
5628
5629 __extension__ extern __inline int32x2_t
5630 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabs_s32(int32x2_t __a)5631 vabs_s32 (int32x2_t __a)
5632 {
5633 return (int32x2_t)__builtin_neon_vabsv2si (__a);
5634 }
5635
5636 __extension__ extern __inline float32x2_t
5637 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabs_f32(float32x2_t __a)5638 vabs_f32 (float32x2_t __a)
5639 {
5640 return (float32x2_t)__builtin_neon_vabsv2sf (__a);
5641 }
5642
5643 __extension__ extern __inline int8x16_t
5644 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabsq_s8(int8x16_t __a)5645 vabsq_s8 (int8x16_t __a)
5646 {
5647 return (int8x16_t)__builtin_neon_vabsv16qi (__a);
5648 }
5649
5650 __extension__ extern __inline int16x8_t
5651 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabsq_s16(int16x8_t __a)5652 vabsq_s16 (int16x8_t __a)
5653 {
5654 return (int16x8_t)__builtin_neon_vabsv8hi (__a);
5655 }
5656
5657 __extension__ extern __inline int32x4_t
5658 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabsq_s32(int32x4_t __a)5659 vabsq_s32 (int32x4_t __a)
5660 {
5661 return (int32x4_t)__builtin_neon_vabsv4si (__a);
5662 }
5663
5664 __extension__ extern __inline float32x4_t
5665 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabsq_f32(float32x4_t __a)5666 vabsq_f32 (float32x4_t __a)
5667 {
5668 return (float32x4_t)__builtin_neon_vabsv4sf (__a);
5669 }
5670
5671 __extension__ extern __inline int8x8_t
5672 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqabs_s8(int8x8_t __a)5673 vqabs_s8 (int8x8_t __a)
5674 {
5675 return (int8x8_t)__builtin_neon_vqabsv8qi (__a);
5676 }
5677
5678 __extension__ extern __inline int16x4_t
5679 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqabs_s16(int16x4_t __a)5680 vqabs_s16 (int16x4_t __a)
5681 {
5682 return (int16x4_t)__builtin_neon_vqabsv4hi (__a);
5683 }
5684
5685 __extension__ extern __inline int32x2_t
5686 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqabs_s32(int32x2_t __a)5687 vqabs_s32 (int32x2_t __a)
5688 {
5689 return (int32x2_t)__builtin_neon_vqabsv2si (__a);
5690 }
5691
5692 __extension__ extern __inline int8x16_t
5693 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqabsq_s8(int8x16_t __a)5694 vqabsq_s8 (int8x16_t __a)
5695 {
5696 return (int8x16_t)__builtin_neon_vqabsv16qi (__a);
5697 }
5698
5699 __extension__ extern __inline int16x8_t
5700 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqabsq_s16(int16x8_t __a)5701 vqabsq_s16 (int16x8_t __a)
5702 {
5703 return (int16x8_t)__builtin_neon_vqabsv8hi (__a);
5704 }
5705
5706 __extension__ extern __inline int32x4_t
5707 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqabsq_s32(int32x4_t __a)5708 vqabsq_s32 (int32x4_t __a)
5709 {
5710 return (int32x4_t)__builtin_neon_vqabsv4si (__a);
5711 }
5712
5713 __extension__ extern __inline int8x8_t
5714 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vneg_s8(int8x8_t __a)5715 vneg_s8 (int8x8_t __a)
5716 {
5717 return (int8x8_t)__builtin_neon_vnegv8qi (__a);
5718 }
5719
5720 __extension__ extern __inline int16x4_t
5721 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vneg_s16(int16x4_t __a)5722 vneg_s16 (int16x4_t __a)
5723 {
5724 return (int16x4_t)__builtin_neon_vnegv4hi (__a);
5725 }
5726
5727 __extension__ extern __inline int32x2_t
5728 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vneg_s32(int32x2_t __a)5729 vneg_s32 (int32x2_t __a)
5730 {
5731 return (int32x2_t)__builtin_neon_vnegv2si (__a);
5732 }
5733
5734 __extension__ extern __inline float32x2_t
5735 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vneg_f32(float32x2_t __a)5736 vneg_f32 (float32x2_t __a)
5737 {
5738 return (float32x2_t)__builtin_neon_vnegv2sf (__a);
5739 }
5740
5741 __extension__ extern __inline int8x16_t
5742 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vnegq_s8(int8x16_t __a)5743 vnegq_s8 (int8x16_t __a)
5744 {
5745 return (int8x16_t)__builtin_neon_vnegv16qi (__a);
5746 }
5747
5748 __extension__ extern __inline int16x8_t
5749 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vnegq_s16(int16x8_t __a)5750 vnegq_s16 (int16x8_t __a)
5751 {
5752 return (int16x8_t)__builtin_neon_vnegv8hi (__a);
5753 }
5754
5755 __extension__ extern __inline int32x4_t
5756 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vnegq_s32(int32x4_t __a)5757 vnegq_s32 (int32x4_t __a)
5758 {
5759 return (int32x4_t)__builtin_neon_vnegv4si (__a);
5760 }
5761
5762 __extension__ extern __inline float32x4_t
5763 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vnegq_f32(float32x4_t __a)5764 vnegq_f32 (float32x4_t __a)
5765 {
5766 return (float32x4_t)__builtin_neon_vnegv4sf (__a);
5767 }
5768
5769 __extension__ extern __inline int8x8_t
5770 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqneg_s8(int8x8_t __a)5771 vqneg_s8 (int8x8_t __a)
5772 {
5773 return (int8x8_t)__builtin_neon_vqnegv8qi (__a);
5774 }
5775
5776 __extension__ extern __inline int16x4_t
5777 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqneg_s16(int16x4_t __a)5778 vqneg_s16 (int16x4_t __a)
5779 {
5780 return (int16x4_t)__builtin_neon_vqnegv4hi (__a);
5781 }
5782
5783 __extension__ extern __inline int32x2_t
5784 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqneg_s32(int32x2_t __a)5785 vqneg_s32 (int32x2_t __a)
5786 {
5787 return (int32x2_t)__builtin_neon_vqnegv2si (__a);
5788 }
5789
5790 __extension__ extern __inline int8x16_t
5791 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqnegq_s8(int8x16_t __a)5792 vqnegq_s8 (int8x16_t __a)
5793 {
5794 return (int8x16_t)__builtin_neon_vqnegv16qi (__a);
5795 }
5796
5797 __extension__ extern __inline int16x8_t
5798 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqnegq_s16(int16x8_t __a)5799 vqnegq_s16 (int16x8_t __a)
5800 {
5801 return (int16x8_t)__builtin_neon_vqnegv8hi (__a);
5802 }
5803
5804 __extension__ extern __inline int32x4_t
5805 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqnegq_s32(int32x4_t __a)5806 vqnegq_s32 (int32x4_t __a)
5807 {
5808 return (int32x4_t)__builtin_neon_vqnegv4si (__a);
5809 }
5810
5811 __extension__ extern __inline int8x8_t
5812 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmvn_s8(int8x8_t __a)5813 vmvn_s8 (int8x8_t __a)
5814 {
5815 return (int8x8_t)__builtin_neon_vmvnv8qi (__a);
5816 }
5817
5818 __extension__ extern __inline int16x4_t
5819 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmvn_s16(int16x4_t __a)5820 vmvn_s16 (int16x4_t __a)
5821 {
5822 return (int16x4_t)__builtin_neon_vmvnv4hi (__a);
5823 }
5824
5825 __extension__ extern __inline int32x2_t
5826 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmvn_s32(int32x2_t __a)5827 vmvn_s32 (int32x2_t __a)
5828 {
5829 return (int32x2_t)__builtin_neon_vmvnv2si (__a);
5830 }
5831
5832 __extension__ extern __inline uint8x8_t
5833 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmvn_u8(uint8x8_t __a)5834 vmvn_u8 (uint8x8_t __a)
5835 {
5836 return (uint8x8_t)__builtin_neon_vmvnv8qi ((int8x8_t) __a);
5837 }
5838
5839 __extension__ extern __inline uint16x4_t
5840 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmvn_u16(uint16x4_t __a)5841 vmvn_u16 (uint16x4_t __a)
5842 {
5843 return (uint16x4_t)__builtin_neon_vmvnv4hi ((int16x4_t) __a);
5844 }
5845
5846 __extension__ extern __inline uint32x2_t
5847 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmvn_u32(uint32x2_t __a)5848 vmvn_u32 (uint32x2_t __a)
5849 {
5850 return (uint32x2_t)__builtin_neon_vmvnv2si ((int32x2_t) __a);
5851 }
5852
5853 __extension__ extern __inline poly8x8_t
5854 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmvn_p8(poly8x8_t __a)5855 vmvn_p8 (poly8x8_t __a)
5856 {
5857 return (poly8x8_t)__builtin_neon_vmvnv8qi ((int8x8_t) __a);
5858 }
5859
5860 __extension__ extern __inline int8x16_t
5861 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmvnq_s8(int8x16_t __a)5862 vmvnq_s8 (int8x16_t __a)
5863 {
5864 return (int8x16_t)__builtin_neon_vmvnv16qi (__a);
5865 }
5866
5867 __extension__ extern __inline int16x8_t
5868 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmvnq_s16(int16x8_t __a)5869 vmvnq_s16 (int16x8_t __a)
5870 {
5871 return (int16x8_t)__builtin_neon_vmvnv8hi (__a);
5872 }
5873
5874 __extension__ extern __inline int32x4_t
5875 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmvnq_s32(int32x4_t __a)5876 vmvnq_s32 (int32x4_t __a)
5877 {
5878 return (int32x4_t)__builtin_neon_vmvnv4si (__a);
5879 }
5880
5881 __extension__ extern __inline uint8x16_t
5882 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmvnq_u8(uint8x16_t __a)5883 vmvnq_u8 (uint8x16_t __a)
5884 {
5885 return (uint8x16_t)__builtin_neon_vmvnv16qi ((int8x16_t) __a);
5886 }
5887
5888 __extension__ extern __inline uint16x8_t
5889 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmvnq_u16(uint16x8_t __a)5890 vmvnq_u16 (uint16x8_t __a)
5891 {
5892 return (uint16x8_t)__builtin_neon_vmvnv8hi ((int16x8_t) __a);
5893 }
5894
5895 __extension__ extern __inline uint32x4_t
5896 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmvnq_u32(uint32x4_t __a)5897 vmvnq_u32 (uint32x4_t __a)
5898 {
5899 return (uint32x4_t)__builtin_neon_vmvnv4si ((int32x4_t) __a);
5900 }
5901
5902 __extension__ extern __inline poly8x16_t
5903 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmvnq_p8(poly8x16_t __a)5904 vmvnq_p8 (poly8x16_t __a)
5905 {
5906 return (poly8x16_t)__builtin_neon_vmvnv16qi ((int8x16_t) __a);
5907 }
5908
5909 __extension__ extern __inline int8x8_t
5910 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcls_s8(int8x8_t __a)5911 vcls_s8 (int8x8_t __a)
5912 {
5913 return (int8x8_t)__builtin_neon_vclsv8qi (__a);
5914 }
5915
5916 __extension__ extern __inline int16x4_t
5917 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcls_s16(int16x4_t __a)5918 vcls_s16 (int16x4_t __a)
5919 {
5920 return (int16x4_t)__builtin_neon_vclsv4hi (__a);
5921 }
5922
5923 __extension__ extern __inline int32x2_t
5924 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcls_s32(int32x2_t __a)5925 vcls_s32 (int32x2_t __a)
5926 {
5927 return (int32x2_t)__builtin_neon_vclsv2si (__a);
5928 }
5929
5930 __extension__ extern __inline int8x16_t
5931 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclsq_s8(int8x16_t __a)5932 vclsq_s8 (int8x16_t __a)
5933 {
5934 return (int8x16_t)__builtin_neon_vclsv16qi (__a);
5935 }
5936
5937 __extension__ extern __inline int16x8_t
5938 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclsq_s16(int16x8_t __a)5939 vclsq_s16 (int16x8_t __a)
5940 {
5941 return (int16x8_t)__builtin_neon_vclsv8hi (__a);
5942 }
5943
5944 __extension__ extern __inline int32x4_t
5945 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclsq_s32(int32x4_t __a)5946 vclsq_s32 (int32x4_t __a)
5947 {
5948 return (int32x4_t)__builtin_neon_vclsv4si (__a);
5949 }
5950
5951 __extension__ extern __inline int8x8_t
5952 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclz_s8(int8x8_t __a)5953 vclz_s8 (int8x8_t __a)
5954 {
5955 return (int8x8_t)__builtin_neon_vclzv8qi (__a);
5956 }
5957
5958 __extension__ extern __inline int16x4_t
5959 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclz_s16(int16x4_t __a)5960 vclz_s16 (int16x4_t __a)
5961 {
5962 return (int16x4_t)__builtin_neon_vclzv4hi (__a);
5963 }
5964
5965 __extension__ extern __inline int32x2_t
5966 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclz_s32(int32x2_t __a)5967 vclz_s32 (int32x2_t __a)
5968 {
5969 return (int32x2_t)__builtin_neon_vclzv2si (__a);
5970 }
5971
5972 __extension__ extern __inline uint8x8_t
5973 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclz_u8(uint8x8_t __a)5974 vclz_u8 (uint8x8_t __a)
5975 {
5976 return (uint8x8_t)__builtin_neon_vclzv8qi ((int8x8_t) __a);
5977 }
5978
5979 __extension__ extern __inline uint16x4_t
5980 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclz_u16(uint16x4_t __a)5981 vclz_u16 (uint16x4_t __a)
5982 {
5983 return (uint16x4_t)__builtin_neon_vclzv4hi ((int16x4_t) __a);
5984 }
5985
5986 __extension__ extern __inline uint32x2_t
5987 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclz_u32(uint32x2_t __a)5988 vclz_u32 (uint32x2_t __a)
5989 {
5990 return (uint32x2_t)__builtin_neon_vclzv2si ((int32x2_t) __a);
5991 }
5992
5993 __extension__ extern __inline int8x16_t
5994 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclzq_s8(int8x16_t __a)5995 vclzq_s8 (int8x16_t __a)
5996 {
5997 return (int8x16_t)__builtin_neon_vclzv16qi (__a);
5998 }
5999
6000 __extension__ extern __inline int16x8_t
6001 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclzq_s16(int16x8_t __a)6002 vclzq_s16 (int16x8_t __a)
6003 {
6004 return (int16x8_t)__builtin_neon_vclzv8hi (__a);
6005 }
6006
6007 __extension__ extern __inline int32x4_t
6008 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclzq_s32(int32x4_t __a)6009 vclzq_s32 (int32x4_t __a)
6010 {
6011 return (int32x4_t)__builtin_neon_vclzv4si (__a);
6012 }
6013
6014 __extension__ extern __inline uint8x16_t
6015 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclzq_u8(uint8x16_t __a)6016 vclzq_u8 (uint8x16_t __a)
6017 {
6018 return (uint8x16_t)__builtin_neon_vclzv16qi ((int8x16_t) __a);
6019 }
6020
6021 __extension__ extern __inline uint16x8_t
6022 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclzq_u16(uint16x8_t __a)6023 vclzq_u16 (uint16x8_t __a)
6024 {
6025 return (uint16x8_t)__builtin_neon_vclzv8hi ((int16x8_t) __a);
6026 }
6027
6028 __extension__ extern __inline uint32x4_t
6029 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclzq_u32(uint32x4_t __a)6030 vclzq_u32 (uint32x4_t __a)
6031 {
6032 return (uint32x4_t)__builtin_neon_vclzv4si ((int32x4_t) __a);
6033 }
6034
6035 __extension__ extern __inline int8x8_t
6036 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcnt_s8(int8x8_t __a)6037 vcnt_s8 (int8x8_t __a)
6038 {
6039 return (int8x8_t)__builtin_neon_vcntv8qi (__a);
6040 }
6041
6042 __extension__ extern __inline uint8x8_t
6043 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcnt_u8(uint8x8_t __a)6044 vcnt_u8 (uint8x8_t __a)
6045 {
6046 return (uint8x8_t)__builtin_neon_vcntv8qi ((int8x8_t) __a);
6047 }
6048
6049 __extension__ extern __inline poly8x8_t
6050 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcnt_p8(poly8x8_t __a)6051 vcnt_p8 (poly8x8_t __a)
6052 {
6053 return (poly8x8_t)__builtin_neon_vcntv8qi ((int8x8_t) __a);
6054 }
6055
6056 __extension__ extern __inline int8x16_t
6057 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcntq_s8(int8x16_t __a)6058 vcntq_s8 (int8x16_t __a)
6059 {
6060 return (int8x16_t)__builtin_neon_vcntv16qi (__a);
6061 }
6062
6063 __extension__ extern __inline uint8x16_t
6064 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcntq_u8(uint8x16_t __a)6065 vcntq_u8 (uint8x16_t __a)
6066 {
6067 return (uint8x16_t)__builtin_neon_vcntv16qi ((int8x16_t) __a);
6068 }
6069
6070 __extension__ extern __inline poly8x16_t
6071 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcntq_p8(poly8x16_t __a)6072 vcntq_p8 (poly8x16_t __a)
6073 {
6074 return (poly8x16_t)__builtin_neon_vcntv16qi ((int8x16_t) __a);
6075 }
6076
6077 __extension__ extern __inline float32x2_t
6078 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrecpe_f32(float32x2_t __a)6079 vrecpe_f32 (float32x2_t __a)
6080 {
6081 return (float32x2_t)__builtin_neon_vrecpev2sf (__a);
6082 }
6083
6084 __extension__ extern __inline uint32x2_t
6085 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrecpe_u32(uint32x2_t __a)6086 vrecpe_u32 (uint32x2_t __a)
6087 {
6088 return (uint32x2_t)__builtin_neon_vrecpev2si ((int32x2_t) __a);
6089 }
6090
6091 __extension__ extern __inline float32x4_t
6092 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrecpeq_f32(float32x4_t __a)6093 vrecpeq_f32 (float32x4_t __a)
6094 {
6095 return (float32x4_t)__builtin_neon_vrecpev4sf (__a);
6096 }
6097
6098 __extension__ extern __inline uint32x4_t
6099 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrecpeq_u32(uint32x4_t __a)6100 vrecpeq_u32 (uint32x4_t __a)
6101 {
6102 return (uint32x4_t)__builtin_neon_vrecpev4si ((int32x4_t) __a);
6103 }
6104
6105 __extension__ extern __inline float32x2_t
6106 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsqrte_f32(float32x2_t __a)6107 vrsqrte_f32 (float32x2_t __a)
6108 {
6109 return (float32x2_t)__builtin_neon_vrsqrtev2sf (__a);
6110 }
6111
6112 __extension__ extern __inline uint32x2_t
6113 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsqrte_u32(uint32x2_t __a)6114 vrsqrte_u32 (uint32x2_t __a)
6115 {
6116 return (uint32x2_t)__builtin_neon_vrsqrtev2si ((int32x2_t) __a);
6117 }
6118
6119 __extension__ extern __inline float32x4_t
6120 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsqrteq_f32(float32x4_t __a)6121 vrsqrteq_f32 (float32x4_t __a)
6122 {
6123 return (float32x4_t)__builtin_neon_vrsqrtev4sf (__a);
6124 }
6125
6126 __extension__ extern __inline uint32x4_t
6127 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsqrteq_u32(uint32x4_t __a)6128 vrsqrteq_u32 (uint32x4_t __a)
6129 {
6130 return (uint32x4_t)__builtin_neon_vrsqrtev4si ((int32x4_t) __a);
6131 }
6132
6133 __extension__ extern __inline int8_t
6134 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_lane_s8(int8x8_t __a,const int __b)6135 vget_lane_s8 (int8x8_t __a, const int __b)
6136 {
6137 return (int8_t)__builtin_neon_vget_lanev8qi (__a, __b);
6138 }
6139
6140 __extension__ extern __inline int16_t
6141 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_lane_s16(int16x4_t __a,const int __b)6142 vget_lane_s16 (int16x4_t __a, const int __b)
6143 {
6144 return (int16_t)__builtin_neon_vget_lanev4hi (__a, __b);
6145 }
6146
6147 __extension__ extern __inline int32_t
6148 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_lane_s32(int32x2_t __a,const int __b)6149 vget_lane_s32 (int32x2_t __a, const int __b)
6150 {
6151 return (int32_t)__builtin_neon_vget_lanev2si (__a, __b);
6152 }
6153
6154 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
6155 /* Functions cannot accept or return __FP16 types. Even if the function
6156 were marked always-inline so there were no call sites, the declaration
6157 would nonetheless raise an error. Hence, we must use a macro instead. */
6158
6159 #define vget_lane_f16(__v, __idx) \
6160 __extension__ \
6161 ({ \
6162 float16x4_t __vec = (__v); \
6163 __builtin_arm_lane_check (4, __idx); \
6164 float16_t __res = __vec[__arm_lane(__vec, __idx)]; \
6165 __res; \
6166 })
6167 #endif
6168
6169 __extension__ extern __inline float32_t
6170 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_lane_f32(float32x2_t __a,const int __b)6171 vget_lane_f32 (float32x2_t __a, const int __b)
6172 {
6173 return (float32_t)__builtin_neon_vget_lanev2sf (__a, __b);
6174 }
6175
6176 __extension__ extern __inline uint8_t
6177 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_lane_u8(uint8x8_t __a,const int __b)6178 vget_lane_u8 (uint8x8_t __a, const int __b)
6179 {
6180 return (uint8_t)__builtin_neon_vget_laneuv8qi ((int8x8_t) __a, __b);
6181 }
6182
6183 __extension__ extern __inline uint16_t
6184 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_lane_u16(uint16x4_t __a,const int __b)6185 vget_lane_u16 (uint16x4_t __a, const int __b)
6186 {
6187 return (uint16_t)__builtin_neon_vget_laneuv4hi ((int16x4_t) __a, __b);
6188 }
6189
6190 __extension__ extern __inline uint32_t
6191 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_lane_u32(uint32x2_t __a,const int __b)6192 vget_lane_u32 (uint32x2_t __a, const int __b)
6193 {
6194 return (uint32_t)__builtin_neon_vget_laneuv2si ((int32x2_t) __a, __b);
6195 }
6196
6197 __extension__ extern __inline poly8_t
6198 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_lane_p8(poly8x8_t __a,const int __b)6199 vget_lane_p8 (poly8x8_t __a, const int __b)
6200 {
6201 return (poly8_t)__builtin_neon_vget_laneuv8qi ((int8x8_t) __a, __b);
6202 }
6203
6204 __extension__ extern __inline poly16_t
6205 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_lane_p16(poly16x4_t __a,const int __b)6206 vget_lane_p16 (poly16x4_t __a, const int __b)
6207 {
6208 return (poly16_t)__builtin_neon_vget_laneuv4hi ((int16x4_t) __a, __b);
6209 }
6210
6211 __extension__ extern __inline int64_t
6212 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_lane_s64(int64x1_t __a,const int __b)6213 vget_lane_s64 (int64x1_t __a, const int __b)
6214 {
6215 return (int64_t)__builtin_neon_vget_lanedi (__a, __b);
6216 }
6217
6218 #pragma GCC push_options
6219 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
6220 __extension__ extern __inline poly64_t
6221 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_lane_p64(poly64x1_t __a,const int __b)6222 vget_lane_p64 (poly64x1_t __a, const int __b)
6223 {
6224 return (poly64_t)__builtin_neon_vget_lanedi ((int64x1_t) __a, __b);
6225 }
6226
6227 #pragma GCC pop_options
6228 __extension__ extern __inline uint64_t
6229 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_lane_u64(uint64x1_t __a,const int __b)6230 vget_lane_u64 (uint64x1_t __a, const int __b)
6231 {
6232 return (uint64_t)__builtin_neon_vget_lanedi ((int64x1_t) __a, __b);
6233 }
6234
6235 __extension__ extern __inline int8_t
6236 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vgetq_lane_s8(int8x16_t __a,const int __b)6237 vgetq_lane_s8 (int8x16_t __a, const int __b)
6238 {
6239 return (int8_t)__builtin_neon_vget_lanev16qi (__a, __b);
6240 }
6241
6242 __extension__ extern __inline int16_t
6243 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vgetq_lane_s16(int16x8_t __a,const int __b)6244 vgetq_lane_s16 (int16x8_t __a, const int __b)
6245 {
6246 return (int16_t)__builtin_neon_vget_lanev8hi (__a, __b);
6247 }
6248
6249 __extension__ extern __inline int32_t
6250 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vgetq_lane_s32(int32x4_t __a,const int __b)6251 vgetq_lane_s32 (int32x4_t __a, const int __b)
6252 {
6253 return (int32_t)__builtin_neon_vget_lanev4si (__a, __b);
6254 }
6255
6256 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
6257 #define vgetq_lane_f16(__v, __idx) \
6258 __extension__ \
6259 ({ \
6260 float16x8_t __vec = (__v); \
6261 __builtin_arm_lane_check (8, __idx); \
6262 float16_t __res = __vec[__arm_laneq(__vec, __idx)]; \
6263 __res; \
6264 })
6265 #endif
6266
6267 __extension__ extern __inline float32_t
6268 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vgetq_lane_f32(float32x4_t __a,const int __b)6269 vgetq_lane_f32 (float32x4_t __a, const int __b)
6270 {
6271 return (float32_t)__builtin_neon_vget_lanev4sf (__a, __b);
6272 }
6273
6274 __extension__ extern __inline uint8_t
6275 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vgetq_lane_u8(uint8x16_t __a,const int __b)6276 vgetq_lane_u8 (uint8x16_t __a, const int __b)
6277 {
6278 return (uint8_t)__builtin_neon_vget_laneuv16qi ((int8x16_t) __a, __b);
6279 }
6280
6281 __extension__ extern __inline uint16_t
6282 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vgetq_lane_u16(uint16x8_t __a,const int __b)6283 vgetq_lane_u16 (uint16x8_t __a, const int __b)
6284 {
6285 return (uint16_t)__builtin_neon_vget_laneuv8hi ((int16x8_t) __a, __b);
6286 }
6287
6288 __extension__ extern __inline uint32_t
6289 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vgetq_lane_u32(uint32x4_t __a,const int __b)6290 vgetq_lane_u32 (uint32x4_t __a, const int __b)
6291 {
6292 return (uint32_t)__builtin_neon_vget_laneuv4si ((int32x4_t) __a, __b);
6293 }
6294
6295 __extension__ extern __inline poly8_t
6296 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vgetq_lane_p8(poly8x16_t __a,const int __b)6297 vgetq_lane_p8 (poly8x16_t __a, const int __b)
6298 {
6299 return (poly8_t)__builtin_neon_vget_laneuv16qi ((int8x16_t) __a, __b);
6300 }
6301
6302 __extension__ extern __inline poly16_t
6303 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vgetq_lane_p16(poly16x8_t __a,const int __b)6304 vgetq_lane_p16 (poly16x8_t __a, const int __b)
6305 {
6306 return (poly16_t)__builtin_neon_vget_laneuv8hi ((int16x8_t) __a, __b);
6307 }
6308
6309 __extension__ extern __inline int64_t
6310 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vgetq_lane_s64(int64x2_t __a,const int __b)6311 vgetq_lane_s64 (int64x2_t __a, const int __b)
6312 {
6313 return (int64_t)__builtin_neon_vget_lanev2di (__a, __b);
6314 }
6315
6316 #pragma GCC push_options
6317 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
6318 __extension__ extern __inline poly64_t
6319 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vgetq_lane_p64(poly64x2_t __a,const int __b)6320 vgetq_lane_p64 (poly64x2_t __a, const int __b)
6321 {
6322 return (poly64_t)__builtin_neon_vget_lanev2di ((int64x2_t) __a, __b);
6323 }
6324
6325 #pragma GCC pop_options
6326 __extension__ extern __inline uint64_t
6327 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vgetq_lane_u64(uint64x2_t __a,const int __b)6328 vgetq_lane_u64 (uint64x2_t __a, const int __b)
6329 {
6330 return (uint64_t)__builtin_neon_vget_lanev2di ((int64x2_t) __a, __b);
6331 }
6332
6333 __extension__ extern __inline int8x8_t
6334 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vset_lane_s8(int8_t __a,int8x8_t __b,const int __c)6335 vset_lane_s8 (int8_t __a, int8x8_t __b, const int __c)
6336 {
6337 return (int8x8_t)__builtin_neon_vset_lanev8qi ((__builtin_neon_qi) __a, __b, __c);
6338 }
6339
6340 __extension__ extern __inline int16x4_t
6341 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vset_lane_s16(int16_t __a,int16x4_t __b,const int __c)6342 vset_lane_s16 (int16_t __a, int16x4_t __b, const int __c)
6343 {
6344 return (int16x4_t)__builtin_neon_vset_lanev4hi ((__builtin_neon_hi) __a, __b, __c);
6345 }
6346
6347 __extension__ extern __inline int32x2_t
6348 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vset_lane_s32(int32_t __a,int32x2_t __b,const int __c)6349 vset_lane_s32 (int32_t __a, int32x2_t __b, const int __c)
6350 {
6351 return (int32x2_t)__builtin_neon_vset_lanev2si ((__builtin_neon_si) __a, __b, __c);
6352 }
6353
6354 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
6355 #define vset_lane_f16(__e, __v, __idx) \
6356 __extension__ \
6357 ({ \
6358 float16_t __elem = (__e); \
6359 float16x4_t __vec = (__v); \
6360 __builtin_arm_lane_check (4, __idx); \
6361 __vec[__arm_lane (__vec, __idx)] = __elem; \
6362 __vec; \
6363 })
6364 #endif
6365
6366 __extension__ extern __inline float32x2_t
6367 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vset_lane_f32(float32_t __a,float32x2_t __b,const int __c)6368 vset_lane_f32 (float32_t __a, float32x2_t __b, const int __c)
6369 {
6370 return (float32x2_t)__builtin_neon_vset_lanev2sf ((__builtin_neon_sf) __a, __b, __c);
6371 }
6372
6373 __extension__ extern __inline uint8x8_t
6374 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vset_lane_u8(uint8_t __a,uint8x8_t __b,const int __c)6375 vset_lane_u8 (uint8_t __a, uint8x8_t __b, const int __c)
6376 {
6377 return (uint8x8_t)__builtin_neon_vset_lanev8qi ((__builtin_neon_qi) __a, (int8x8_t) __b, __c);
6378 }
6379
6380 __extension__ extern __inline uint16x4_t
6381 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vset_lane_u16(uint16_t __a,uint16x4_t __b,const int __c)6382 vset_lane_u16 (uint16_t __a, uint16x4_t __b, const int __c)
6383 {
6384 return (uint16x4_t)__builtin_neon_vset_lanev4hi ((__builtin_neon_hi) __a, (int16x4_t) __b, __c);
6385 }
6386
6387 __extension__ extern __inline uint32x2_t
6388 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vset_lane_u32(uint32_t __a,uint32x2_t __b,const int __c)6389 vset_lane_u32 (uint32_t __a, uint32x2_t __b, const int __c)
6390 {
6391 return (uint32x2_t)__builtin_neon_vset_lanev2si ((__builtin_neon_si) __a, (int32x2_t) __b, __c);
6392 }
6393
6394 __extension__ extern __inline poly8x8_t
6395 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vset_lane_p8(poly8_t __a,poly8x8_t __b,const int __c)6396 vset_lane_p8 (poly8_t __a, poly8x8_t __b, const int __c)
6397 {
6398 return (poly8x8_t)__builtin_neon_vset_lanev8qi ((__builtin_neon_qi) __a, (int8x8_t) __b, __c);
6399 }
6400
6401 __extension__ extern __inline poly16x4_t
6402 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vset_lane_p16(poly16_t __a,poly16x4_t __b,const int __c)6403 vset_lane_p16 (poly16_t __a, poly16x4_t __b, const int __c)
6404 {
6405 return (poly16x4_t)__builtin_neon_vset_lanev4hi ((__builtin_neon_hi) __a, (int16x4_t) __b, __c);
6406 }
6407
6408 __extension__ extern __inline int64x1_t
6409 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vset_lane_s64(int64_t __a,int64x1_t __b,const int __c)6410 vset_lane_s64 (int64_t __a, int64x1_t __b, const int __c)
6411 {
6412 return (int64x1_t)__builtin_neon_vset_lanedi ((__builtin_neon_di) __a, __b, __c);
6413 }
6414
6415 __extension__ extern __inline uint64x1_t
6416 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vset_lane_u64(uint64_t __a,uint64x1_t __b,const int __c)6417 vset_lane_u64 (uint64_t __a, uint64x1_t __b, const int __c)
6418 {
6419 return (uint64x1_t)__builtin_neon_vset_lanedi ((__builtin_neon_di) __a, (int64x1_t) __b, __c);
6420 }
6421
6422 #pragma GCC push_options
6423 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
6424 __extension__ extern __inline poly64x1_t
6425 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vset_lane_p64(poly64_t __a,poly64x1_t __b,const int __c)6426 vset_lane_p64 (poly64_t __a, poly64x1_t __b, const int __c)
6427 {
6428 return (poly64x1_t)__builtin_neon_vset_lanedi ((__builtin_neon_di) __a, (int64x1_t) __b, __c);
6429 }
6430
6431 #pragma GCC pop_options
6432 __extension__ extern __inline int8x16_t
6433 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsetq_lane_s8(int8_t __a,int8x16_t __b,const int __c)6434 vsetq_lane_s8 (int8_t __a, int8x16_t __b, const int __c)
6435 {
6436 return (int8x16_t)__builtin_neon_vset_lanev16qi ((__builtin_neon_qi) __a, __b, __c);
6437 }
6438
6439 __extension__ extern __inline int16x8_t
6440 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsetq_lane_s16(int16_t __a,int16x8_t __b,const int __c)6441 vsetq_lane_s16 (int16_t __a, int16x8_t __b, const int __c)
6442 {
6443 return (int16x8_t)__builtin_neon_vset_lanev8hi ((__builtin_neon_hi) __a, __b, __c);
6444 }
6445
6446 __extension__ extern __inline int32x4_t
6447 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsetq_lane_s32(int32_t __a,int32x4_t __b,const int __c)6448 vsetq_lane_s32 (int32_t __a, int32x4_t __b, const int __c)
6449 {
6450 return (int32x4_t)__builtin_neon_vset_lanev4si ((__builtin_neon_si) __a, __b, __c);
6451 }
6452
6453 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
6454 #define vsetq_lane_f16(__e, __v, __idx) \
6455 __extension__ \
6456 ({ \
6457 float16_t __elem = (__e); \
6458 float16x8_t __vec = (__v); \
6459 __builtin_arm_lane_check (8, __idx); \
6460 __vec[__arm_laneq (__vec, __idx)] = __elem; \
6461 __vec; \
6462 })
6463 #endif
6464
6465 __extension__ extern __inline float32x4_t
6466 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsetq_lane_f32(float32_t __a,float32x4_t __b,const int __c)6467 vsetq_lane_f32 (float32_t __a, float32x4_t __b, const int __c)
6468 {
6469 return (float32x4_t)__builtin_neon_vset_lanev4sf ((__builtin_neon_sf) __a, __b, __c);
6470 }
6471
6472 __extension__ extern __inline uint8x16_t
6473 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsetq_lane_u8(uint8_t __a,uint8x16_t __b,const int __c)6474 vsetq_lane_u8 (uint8_t __a, uint8x16_t __b, const int __c)
6475 {
6476 return (uint8x16_t)__builtin_neon_vset_lanev16qi ((__builtin_neon_qi) __a, (int8x16_t) __b, __c);
6477 }
6478
6479 __extension__ extern __inline uint16x8_t
6480 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsetq_lane_u16(uint16_t __a,uint16x8_t __b,const int __c)6481 vsetq_lane_u16 (uint16_t __a, uint16x8_t __b, const int __c)
6482 {
6483 return (uint16x8_t)__builtin_neon_vset_lanev8hi ((__builtin_neon_hi) __a, (int16x8_t) __b, __c);
6484 }
6485
6486 __extension__ extern __inline uint32x4_t
6487 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsetq_lane_u32(uint32_t __a,uint32x4_t __b,const int __c)6488 vsetq_lane_u32 (uint32_t __a, uint32x4_t __b, const int __c)
6489 {
6490 return (uint32x4_t)__builtin_neon_vset_lanev4si ((__builtin_neon_si) __a, (int32x4_t) __b, __c);
6491 }
6492
6493 __extension__ extern __inline poly8x16_t
6494 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsetq_lane_p8(poly8_t __a,poly8x16_t __b,const int __c)6495 vsetq_lane_p8 (poly8_t __a, poly8x16_t __b, const int __c)
6496 {
6497 return (poly8x16_t)__builtin_neon_vset_lanev16qi ((__builtin_neon_qi) __a, (int8x16_t) __b, __c);
6498 }
6499
6500 __extension__ extern __inline poly16x8_t
6501 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsetq_lane_p16(poly16_t __a,poly16x8_t __b,const int __c)6502 vsetq_lane_p16 (poly16_t __a, poly16x8_t __b, const int __c)
6503 {
6504 return (poly16x8_t)__builtin_neon_vset_lanev8hi ((__builtin_neon_hi) __a, (int16x8_t) __b, __c);
6505 }
6506
6507 __extension__ extern __inline int64x2_t
6508 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsetq_lane_s64(int64_t __a,int64x2_t __b,const int __c)6509 vsetq_lane_s64 (int64_t __a, int64x2_t __b, const int __c)
6510 {
6511 return (int64x2_t)__builtin_neon_vset_lanev2di ((__builtin_neon_di) __a, __b, __c);
6512 }
6513
6514 __extension__ extern __inline uint64x2_t
6515 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsetq_lane_u64(uint64_t __a,uint64x2_t __b,const int __c)6516 vsetq_lane_u64 (uint64_t __a, uint64x2_t __b, const int __c)
6517 {
6518 return (uint64x2_t)__builtin_neon_vset_lanev2di ((__builtin_neon_di) __a, (int64x2_t) __b, __c);
6519 }
6520
6521 #pragma GCC push_options
6522 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
6523 __extension__ extern __inline poly64x2_t
6524 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsetq_lane_p64(poly64_t __a,poly64x2_t __b,const int __c)6525 vsetq_lane_p64 (poly64_t __a, poly64x2_t __b, const int __c)
6526 {
6527 return (poly64x2_t)__builtin_neon_vset_lanev2di ((__builtin_neon_di) __a, (int64x2_t) __b, __c);
6528 }
6529
6530 __extension__ extern __inline poly64x1_t
6531 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcreate_p64(uint64_t __a)6532 vcreate_p64 (uint64_t __a)
6533 {
6534 return (poly64x1_t)__builtin_neon_vcreatedi ((__builtin_neon_di) __a);
6535 }
6536
6537 #pragma GCC pop_options
6538 __extension__ extern __inline int8x8_t
6539 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcreate_s8(uint64_t __a)6540 vcreate_s8 (uint64_t __a)
6541 {
6542 return (int8x8_t)__builtin_neon_vcreatev8qi ((__builtin_neon_di) __a);
6543 }
6544
6545 __extension__ extern __inline int16x4_t
6546 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcreate_s16(uint64_t __a)6547 vcreate_s16 (uint64_t __a)
6548 {
6549 return (int16x4_t)__builtin_neon_vcreatev4hi ((__builtin_neon_di) __a);
6550 }
6551
6552 __extension__ extern __inline int32x2_t
6553 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcreate_s32(uint64_t __a)6554 vcreate_s32 (uint64_t __a)
6555 {
6556 return (int32x2_t)__builtin_neon_vcreatev2si ((__builtin_neon_di) __a);
6557 }
6558
6559 __extension__ extern __inline int64x1_t
6560 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcreate_s64(uint64_t __a)6561 vcreate_s64 (uint64_t __a)
6562 {
6563 return (int64x1_t)__builtin_neon_vcreatedi ((__builtin_neon_di) __a);
6564 }
6565
6566 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
6567 __extension__ extern __inline float16x4_t
6568 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcreate_f16(uint64_t __a)6569 vcreate_f16 (uint64_t __a)
6570 {
6571 return (float16x4_t) __a;
6572 }
6573 #endif
6574
6575 __extension__ extern __inline float32x2_t
6576 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcreate_f32(uint64_t __a)6577 vcreate_f32 (uint64_t __a)
6578 {
6579 return (float32x2_t)__builtin_neon_vcreatev2sf ((__builtin_neon_di) __a);
6580 }
6581
6582 __extension__ extern __inline uint8x8_t
6583 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcreate_u8(uint64_t __a)6584 vcreate_u8 (uint64_t __a)
6585 {
6586 return (uint8x8_t)__builtin_neon_vcreatev8qi ((__builtin_neon_di) __a);
6587 }
6588
6589 __extension__ extern __inline uint16x4_t
6590 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcreate_u16(uint64_t __a)6591 vcreate_u16 (uint64_t __a)
6592 {
6593 return (uint16x4_t)__builtin_neon_vcreatev4hi ((__builtin_neon_di) __a);
6594 }
6595
6596 __extension__ extern __inline uint32x2_t
6597 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcreate_u32(uint64_t __a)6598 vcreate_u32 (uint64_t __a)
6599 {
6600 return (uint32x2_t)__builtin_neon_vcreatev2si ((__builtin_neon_di) __a);
6601 }
6602
6603 __extension__ extern __inline uint64x1_t
6604 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcreate_u64(uint64_t __a)6605 vcreate_u64 (uint64_t __a)
6606 {
6607 return (uint64x1_t)__builtin_neon_vcreatedi ((__builtin_neon_di) __a);
6608 }
6609
6610 __extension__ extern __inline poly8x8_t
6611 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcreate_p8(uint64_t __a)6612 vcreate_p8 (uint64_t __a)
6613 {
6614 return (poly8x8_t)__builtin_neon_vcreatev8qi ((__builtin_neon_di) __a);
6615 }
6616
6617 __extension__ extern __inline poly16x4_t
6618 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcreate_p16(uint64_t __a)6619 vcreate_p16 (uint64_t __a)
6620 {
6621 return (poly16x4_t)__builtin_neon_vcreatev4hi ((__builtin_neon_di) __a);
6622 }
6623
6624 __extension__ extern __inline int8x8_t
6625 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_n_s8(int8_t __a)6626 vdup_n_s8 (int8_t __a)
6627 {
6628 return (int8x8_t)__builtin_neon_vdup_nv8qi ((__builtin_neon_qi) __a);
6629 }
6630
6631 __extension__ extern __inline int16x4_t
6632 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_n_s16(int16_t __a)6633 vdup_n_s16 (int16_t __a)
6634 {
6635 return (int16x4_t)__builtin_neon_vdup_nv4hi ((__builtin_neon_hi) __a);
6636 }
6637
6638 __extension__ extern __inline int32x2_t
6639 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_n_s32(int32_t __a)6640 vdup_n_s32 (int32_t __a)
6641 {
6642 return (int32x2_t)__builtin_neon_vdup_nv2si ((__builtin_neon_si) __a);
6643 }
6644
6645 __extension__ extern __inline float32x2_t
6646 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_n_f32(float32_t __a)6647 vdup_n_f32 (float32_t __a)
6648 {
6649 return (float32x2_t)__builtin_neon_vdup_nv2sf ((__builtin_neon_sf) __a);
6650 }
6651
6652 __extension__ extern __inline uint8x8_t
6653 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_n_u8(uint8_t __a)6654 vdup_n_u8 (uint8_t __a)
6655 {
6656 return (uint8x8_t)__builtin_neon_vdup_nv8qi ((__builtin_neon_qi) __a);
6657 }
6658
6659 __extension__ extern __inline uint16x4_t
6660 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_n_u16(uint16_t __a)6661 vdup_n_u16 (uint16_t __a)
6662 {
6663 return (uint16x4_t)__builtin_neon_vdup_nv4hi ((__builtin_neon_hi) __a);
6664 }
6665
6666 __extension__ extern __inline uint32x2_t
6667 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_n_u32(uint32_t __a)6668 vdup_n_u32 (uint32_t __a)
6669 {
6670 return (uint32x2_t)__builtin_neon_vdup_nv2si ((__builtin_neon_si) __a);
6671 }
6672
6673 __extension__ extern __inline poly8x8_t
6674 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_n_p8(poly8_t __a)6675 vdup_n_p8 (poly8_t __a)
6676 {
6677 return (poly8x8_t)__builtin_neon_vdup_nv8qi ((__builtin_neon_qi) __a);
6678 }
6679
6680 __extension__ extern __inline poly16x4_t
6681 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_n_p16(poly16_t __a)6682 vdup_n_p16 (poly16_t __a)
6683 {
6684 return (poly16x4_t)__builtin_neon_vdup_nv4hi ((__builtin_neon_hi) __a);
6685 }
6686
6687 #pragma GCC push_options
6688 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
6689 __extension__ extern __inline poly64x1_t
6690 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_n_p64(poly64_t __a)6691 vdup_n_p64 (poly64_t __a)
6692 {
6693 return (poly64x1_t)__builtin_neon_vdup_ndi ((__builtin_neon_di) __a);
6694 }
6695
6696 #pragma GCC pop_options
6697 __extension__ extern __inline int64x1_t
6698 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_n_s64(int64_t __a)6699 vdup_n_s64 (int64_t __a)
6700 {
6701 return (int64x1_t)__builtin_neon_vdup_ndi ((__builtin_neon_di) __a);
6702 }
6703
6704 __extension__ extern __inline uint64x1_t
6705 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_n_u64(uint64_t __a)6706 vdup_n_u64 (uint64_t __a)
6707 {
6708 return (uint64x1_t)__builtin_neon_vdup_ndi ((__builtin_neon_di) __a);
6709 }
6710
6711 #pragma GCC push_options
6712 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
6713 __extension__ extern __inline poly64x2_t
6714 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_n_p64(poly64_t __a)6715 vdupq_n_p64 (poly64_t __a)
6716 {
6717 return (poly64x2_t)__builtin_neon_vdup_nv2di ((__builtin_neon_di) __a);
6718 }
6719
6720 #pragma GCC pop_options
6721 __extension__ extern __inline int8x16_t
6722 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_n_s8(int8_t __a)6723 vdupq_n_s8 (int8_t __a)
6724 {
6725 return (int8x16_t)__builtin_neon_vdup_nv16qi ((__builtin_neon_qi) __a);
6726 }
6727
6728 __extension__ extern __inline int16x8_t
6729 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_n_s16(int16_t __a)6730 vdupq_n_s16 (int16_t __a)
6731 {
6732 return (int16x8_t)__builtin_neon_vdup_nv8hi ((__builtin_neon_hi) __a);
6733 }
6734
6735 __extension__ extern __inline int32x4_t
6736 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_n_s32(int32_t __a)6737 vdupq_n_s32 (int32_t __a)
6738 {
6739 return (int32x4_t)__builtin_neon_vdup_nv4si ((__builtin_neon_si) __a);
6740 }
6741
6742 __extension__ extern __inline float32x4_t
6743 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_n_f32(float32_t __a)6744 vdupq_n_f32 (float32_t __a)
6745 {
6746 return (float32x4_t)__builtin_neon_vdup_nv4sf ((__builtin_neon_sf) __a);
6747 }
6748
6749 __extension__ extern __inline uint8x16_t
6750 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_n_u8(uint8_t __a)6751 vdupq_n_u8 (uint8_t __a)
6752 {
6753 return (uint8x16_t)__builtin_neon_vdup_nv16qi ((__builtin_neon_qi) __a);
6754 }
6755
6756 __extension__ extern __inline uint16x8_t
6757 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_n_u16(uint16_t __a)6758 vdupq_n_u16 (uint16_t __a)
6759 {
6760 return (uint16x8_t)__builtin_neon_vdup_nv8hi ((__builtin_neon_hi) __a);
6761 }
6762
6763 __extension__ extern __inline uint32x4_t
6764 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_n_u32(uint32_t __a)6765 vdupq_n_u32 (uint32_t __a)
6766 {
6767 return (uint32x4_t)__builtin_neon_vdup_nv4si ((__builtin_neon_si) __a);
6768 }
6769
6770 __extension__ extern __inline poly8x16_t
6771 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_n_p8(poly8_t __a)6772 vdupq_n_p8 (poly8_t __a)
6773 {
6774 return (poly8x16_t)__builtin_neon_vdup_nv16qi ((__builtin_neon_qi) __a);
6775 }
6776
6777 __extension__ extern __inline poly16x8_t
6778 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_n_p16(poly16_t __a)6779 vdupq_n_p16 (poly16_t __a)
6780 {
6781 return (poly16x8_t)__builtin_neon_vdup_nv8hi ((__builtin_neon_hi) __a);
6782 }
6783
6784 __extension__ extern __inline int64x2_t
6785 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_n_s64(int64_t __a)6786 vdupq_n_s64 (int64_t __a)
6787 {
6788 return (int64x2_t)__builtin_neon_vdup_nv2di ((__builtin_neon_di) __a);
6789 }
6790
6791 __extension__ extern __inline uint64x2_t
6792 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_n_u64(uint64_t __a)6793 vdupq_n_u64 (uint64_t __a)
6794 {
6795 return (uint64x2_t)__builtin_neon_vdup_nv2di ((__builtin_neon_di) __a);
6796 }
6797
6798 __extension__ extern __inline int8x8_t
6799 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmov_n_s8(int8_t __a)6800 vmov_n_s8 (int8_t __a)
6801 {
6802 return (int8x8_t)__builtin_neon_vdup_nv8qi ((__builtin_neon_qi) __a);
6803 }
6804
6805 __extension__ extern __inline int16x4_t
6806 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmov_n_s16(int16_t __a)6807 vmov_n_s16 (int16_t __a)
6808 {
6809 return (int16x4_t)__builtin_neon_vdup_nv4hi ((__builtin_neon_hi) __a);
6810 }
6811
6812 __extension__ extern __inline int32x2_t
6813 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmov_n_s32(int32_t __a)6814 vmov_n_s32 (int32_t __a)
6815 {
6816 return (int32x2_t)__builtin_neon_vdup_nv2si ((__builtin_neon_si) __a);
6817 }
6818
6819 __extension__ extern __inline float32x2_t
6820 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmov_n_f32(float32_t __a)6821 vmov_n_f32 (float32_t __a)
6822 {
6823 return (float32x2_t)__builtin_neon_vdup_nv2sf ((__builtin_neon_sf) __a);
6824 }
6825
6826 __extension__ extern __inline uint8x8_t
6827 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmov_n_u8(uint8_t __a)6828 vmov_n_u8 (uint8_t __a)
6829 {
6830 return (uint8x8_t)__builtin_neon_vdup_nv8qi ((__builtin_neon_qi) __a);
6831 }
6832
6833 __extension__ extern __inline uint16x4_t
6834 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmov_n_u16(uint16_t __a)6835 vmov_n_u16 (uint16_t __a)
6836 {
6837 return (uint16x4_t)__builtin_neon_vdup_nv4hi ((__builtin_neon_hi) __a);
6838 }
6839
6840 __extension__ extern __inline uint32x2_t
6841 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmov_n_u32(uint32_t __a)6842 vmov_n_u32 (uint32_t __a)
6843 {
6844 return (uint32x2_t)__builtin_neon_vdup_nv2si ((__builtin_neon_si) __a);
6845 }
6846
6847 __extension__ extern __inline poly8x8_t
6848 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmov_n_p8(poly8_t __a)6849 vmov_n_p8 (poly8_t __a)
6850 {
6851 return (poly8x8_t)__builtin_neon_vdup_nv8qi ((__builtin_neon_qi) __a);
6852 }
6853
6854 __extension__ extern __inline poly16x4_t
6855 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmov_n_p16(poly16_t __a)6856 vmov_n_p16 (poly16_t __a)
6857 {
6858 return (poly16x4_t)__builtin_neon_vdup_nv4hi ((__builtin_neon_hi) __a);
6859 }
6860
6861 __extension__ extern __inline int64x1_t
6862 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmov_n_s64(int64_t __a)6863 vmov_n_s64 (int64_t __a)
6864 {
6865 return (int64x1_t)__builtin_neon_vdup_ndi ((__builtin_neon_di) __a);
6866 }
6867
6868 __extension__ extern __inline uint64x1_t
6869 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmov_n_u64(uint64_t __a)6870 vmov_n_u64 (uint64_t __a)
6871 {
6872 return (uint64x1_t)__builtin_neon_vdup_ndi ((__builtin_neon_di) __a);
6873 }
6874
6875 __extension__ extern __inline int8x16_t
6876 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovq_n_s8(int8_t __a)6877 vmovq_n_s8 (int8_t __a)
6878 {
6879 return (int8x16_t)__builtin_neon_vdup_nv16qi ((__builtin_neon_qi) __a);
6880 }
6881
6882 __extension__ extern __inline int16x8_t
6883 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovq_n_s16(int16_t __a)6884 vmovq_n_s16 (int16_t __a)
6885 {
6886 return (int16x8_t)__builtin_neon_vdup_nv8hi ((__builtin_neon_hi) __a);
6887 }
6888
6889 __extension__ extern __inline int32x4_t
6890 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovq_n_s32(int32_t __a)6891 vmovq_n_s32 (int32_t __a)
6892 {
6893 return (int32x4_t)__builtin_neon_vdup_nv4si ((__builtin_neon_si) __a);
6894 }
6895
6896 __extension__ extern __inline float32x4_t
6897 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovq_n_f32(float32_t __a)6898 vmovq_n_f32 (float32_t __a)
6899 {
6900 return (float32x4_t)__builtin_neon_vdup_nv4sf ((__builtin_neon_sf) __a);
6901 }
6902
6903 __extension__ extern __inline uint8x16_t
6904 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovq_n_u8(uint8_t __a)6905 vmovq_n_u8 (uint8_t __a)
6906 {
6907 return (uint8x16_t)__builtin_neon_vdup_nv16qi ((__builtin_neon_qi) __a);
6908 }
6909
6910 __extension__ extern __inline uint16x8_t
6911 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovq_n_u16(uint16_t __a)6912 vmovq_n_u16 (uint16_t __a)
6913 {
6914 return (uint16x8_t)__builtin_neon_vdup_nv8hi ((__builtin_neon_hi) __a);
6915 }
6916
6917 __extension__ extern __inline uint32x4_t
6918 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovq_n_u32(uint32_t __a)6919 vmovq_n_u32 (uint32_t __a)
6920 {
6921 return (uint32x4_t)__builtin_neon_vdup_nv4si ((__builtin_neon_si) __a);
6922 }
6923
6924 __extension__ extern __inline poly8x16_t
6925 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovq_n_p8(poly8_t __a)6926 vmovq_n_p8 (poly8_t __a)
6927 {
6928 return (poly8x16_t)__builtin_neon_vdup_nv16qi ((__builtin_neon_qi) __a);
6929 }
6930
6931 __extension__ extern __inline poly16x8_t
6932 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovq_n_p16(poly16_t __a)6933 vmovq_n_p16 (poly16_t __a)
6934 {
6935 return (poly16x8_t)__builtin_neon_vdup_nv8hi ((__builtin_neon_hi) __a);
6936 }
6937
6938 __extension__ extern __inline int64x2_t
6939 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovq_n_s64(int64_t __a)6940 vmovq_n_s64 (int64_t __a)
6941 {
6942 return (int64x2_t)__builtin_neon_vdup_nv2di ((__builtin_neon_di) __a);
6943 }
6944
6945 __extension__ extern __inline uint64x2_t
6946 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovq_n_u64(uint64_t __a)6947 vmovq_n_u64 (uint64_t __a)
6948 {
6949 return (uint64x2_t)__builtin_neon_vdup_nv2di ((__builtin_neon_di) __a);
6950 }
6951
6952 __extension__ extern __inline int8x8_t
6953 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_lane_s8(int8x8_t __a,const int __b)6954 vdup_lane_s8 (int8x8_t __a, const int __b)
6955 {
6956 return (int8x8_t)__builtin_neon_vdup_lanev8qi (__a, __b);
6957 }
6958
6959 __extension__ extern __inline int16x4_t
6960 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_lane_s16(int16x4_t __a,const int __b)6961 vdup_lane_s16 (int16x4_t __a, const int __b)
6962 {
6963 return (int16x4_t)__builtin_neon_vdup_lanev4hi (__a, __b);
6964 }
6965
6966 __extension__ extern __inline int32x2_t
6967 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_lane_s32(int32x2_t __a,const int __b)6968 vdup_lane_s32 (int32x2_t __a, const int __b)
6969 {
6970 return (int32x2_t)__builtin_neon_vdup_lanev2si (__a, __b);
6971 }
6972
6973 __extension__ extern __inline float32x2_t
6974 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_lane_f32(float32x2_t __a,const int __b)6975 vdup_lane_f32 (float32x2_t __a, const int __b)
6976 {
6977 return (float32x2_t)__builtin_neon_vdup_lanev2sf (__a, __b);
6978 }
6979
6980 __extension__ extern __inline uint8x8_t
6981 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_lane_u8(uint8x8_t __a,const int __b)6982 vdup_lane_u8 (uint8x8_t __a, const int __b)
6983 {
6984 return (uint8x8_t)__builtin_neon_vdup_lanev8qi ((int8x8_t) __a, __b);
6985 }
6986
6987 __extension__ extern __inline uint16x4_t
6988 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_lane_u16(uint16x4_t __a,const int __b)6989 vdup_lane_u16 (uint16x4_t __a, const int __b)
6990 {
6991 return (uint16x4_t)__builtin_neon_vdup_lanev4hi ((int16x4_t) __a, __b);
6992 }
6993
6994 __extension__ extern __inline uint32x2_t
6995 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_lane_u32(uint32x2_t __a,const int __b)6996 vdup_lane_u32 (uint32x2_t __a, const int __b)
6997 {
6998 return (uint32x2_t)__builtin_neon_vdup_lanev2si ((int32x2_t) __a, __b);
6999 }
7000
7001 __extension__ extern __inline poly8x8_t
7002 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_lane_p8(poly8x8_t __a,const int __b)7003 vdup_lane_p8 (poly8x8_t __a, const int __b)
7004 {
7005 return (poly8x8_t)__builtin_neon_vdup_lanev8qi ((int8x8_t) __a, __b);
7006 }
7007
7008 __extension__ extern __inline poly16x4_t
7009 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_lane_p16(poly16x4_t __a,const int __b)7010 vdup_lane_p16 (poly16x4_t __a, const int __b)
7011 {
7012 return (poly16x4_t)__builtin_neon_vdup_lanev4hi ((int16x4_t) __a, __b);
7013 }
7014
7015 #pragma GCC push_options
7016 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
7017 __extension__ extern __inline poly64x1_t
7018 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_lane_p64(poly64x1_t __a,const int __b)7019 vdup_lane_p64 (poly64x1_t __a, const int __b)
7020 {
7021 return (poly64x1_t)__builtin_neon_vdup_lanedi (__a, __b);
7022 }
7023
7024 #pragma GCC pop_options
7025 __extension__ extern __inline int64x1_t
7026 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_lane_s64(int64x1_t __a,const int __b)7027 vdup_lane_s64 (int64x1_t __a, const int __b)
7028 {
7029 return (int64x1_t)__builtin_neon_vdup_lanedi (__a, __b);
7030 }
7031
7032 __extension__ extern __inline uint64x1_t
7033 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_lane_u64(uint64x1_t __a,const int __b)7034 vdup_lane_u64 (uint64x1_t __a, const int __b)
7035 {
7036 return (uint64x1_t)__builtin_neon_vdup_lanedi ((int64x1_t) __a, __b);
7037 }
7038
7039 __extension__ extern __inline int8x16_t
7040 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_lane_s8(int8x8_t __a,const int __b)7041 vdupq_lane_s8 (int8x8_t __a, const int __b)
7042 {
7043 return (int8x16_t)__builtin_neon_vdup_lanev16qi (__a, __b);
7044 }
7045
7046 __extension__ extern __inline int16x8_t
7047 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_lane_s16(int16x4_t __a,const int __b)7048 vdupq_lane_s16 (int16x4_t __a, const int __b)
7049 {
7050 return (int16x8_t)__builtin_neon_vdup_lanev8hi (__a, __b);
7051 }
7052
7053 __extension__ extern __inline int32x4_t
7054 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_lane_s32(int32x2_t __a,const int __b)7055 vdupq_lane_s32 (int32x2_t __a, const int __b)
7056 {
7057 return (int32x4_t)__builtin_neon_vdup_lanev4si (__a, __b);
7058 }
7059
7060 __extension__ extern __inline float32x4_t
7061 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_lane_f32(float32x2_t __a,const int __b)7062 vdupq_lane_f32 (float32x2_t __a, const int __b)
7063 {
7064 return (float32x4_t)__builtin_neon_vdup_lanev4sf (__a, __b);
7065 }
7066
7067 __extension__ extern __inline uint8x16_t
7068 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_lane_u8(uint8x8_t __a,const int __b)7069 vdupq_lane_u8 (uint8x8_t __a, const int __b)
7070 {
7071 return (uint8x16_t)__builtin_neon_vdup_lanev16qi ((int8x8_t) __a, __b);
7072 }
7073
7074 __extension__ extern __inline uint16x8_t
7075 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_lane_u16(uint16x4_t __a,const int __b)7076 vdupq_lane_u16 (uint16x4_t __a, const int __b)
7077 {
7078 return (uint16x8_t)__builtin_neon_vdup_lanev8hi ((int16x4_t) __a, __b);
7079 }
7080
7081 __extension__ extern __inline uint32x4_t
7082 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_lane_u32(uint32x2_t __a,const int __b)7083 vdupq_lane_u32 (uint32x2_t __a, const int __b)
7084 {
7085 return (uint32x4_t)__builtin_neon_vdup_lanev4si ((int32x2_t) __a, __b);
7086 }
7087
7088 __extension__ extern __inline poly8x16_t
7089 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_lane_p8(poly8x8_t __a,const int __b)7090 vdupq_lane_p8 (poly8x8_t __a, const int __b)
7091 {
7092 return (poly8x16_t)__builtin_neon_vdup_lanev16qi ((int8x8_t) __a, __b);
7093 }
7094
7095 __extension__ extern __inline poly16x8_t
7096 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_lane_p16(poly16x4_t __a,const int __b)7097 vdupq_lane_p16 (poly16x4_t __a, const int __b)
7098 {
7099 return (poly16x8_t)__builtin_neon_vdup_lanev8hi ((int16x4_t) __a, __b);
7100 }
7101
7102 #pragma GCC push_options
7103 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
7104 __extension__ extern __inline poly64x2_t
7105 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_lane_p64(poly64x1_t __a,const int __b)7106 vdupq_lane_p64 (poly64x1_t __a, const int __b)
7107 {
7108 return (poly64x2_t)__builtin_neon_vdup_lanev2di (__a, __b);
7109 }
7110
7111 #pragma GCC pop_options
7112 __extension__ extern __inline int64x2_t
7113 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_lane_s64(int64x1_t __a,const int __b)7114 vdupq_lane_s64 (int64x1_t __a, const int __b)
7115 {
7116 return (int64x2_t)__builtin_neon_vdup_lanev2di (__a, __b);
7117 }
7118
7119 __extension__ extern __inline uint64x2_t
7120 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_lane_u64(uint64x1_t __a,const int __b)7121 vdupq_lane_u64 (uint64x1_t __a, const int __b)
7122 {
7123 return (uint64x2_t)__builtin_neon_vdup_lanev2di ((int64x1_t) __a, __b);
7124 }
7125
7126 #pragma GCC push_options
7127 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
7128 __extension__ extern __inline poly64x2_t
7129 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcombine_p64(poly64x1_t __a,poly64x1_t __b)7130 vcombine_p64 (poly64x1_t __a, poly64x1_t __b)
7131 {
7132 return (poly64x2_t)__builtin_neon_vcombinedi (__a, __b);
7133 }
7134
7135 #pragma GCC pop_options
7136 __extension__ extern __inline int8x16_t
7137 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcombine_s8(int8x8_t __a,int8x8_t __b)7138 vcombine_s8 (int8x8_t __a, int8x8_t __b)
7139 {
7140 return (int8x16_t)__builtin_neon_vcombinev8qi (__a, __b);
7141 }
7142
7143 __extension__ extern __inline int16x8_t
7144 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcombine_s16(int16x4_t __a,int16x4_t __b)7145 vcombine_s16 (int16x4_t __a, int16x4_t __b)
7146 {
7147 return (int16x8_t)__builtin_neon_vcombinev4hi (__a, __b);
7148 }
7149
7150 __extension__ extern __inline int32x4_t
7151 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcombine_s32(int32x2_t __a,int32x2_t __b)7152 vcombine_s32 (int32x2_t __a, int32x2_t __b)
7153 {
7154 return (int32x4_t)__builtin_neon_vcombinev2si (__a, __b);
7155 }
7156
7157 __extension__ extern __inline int64x2_t
7158 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcombine_s64(int64x1_t __a,int64x1_t __b)7159 vcombine_s64 (int64x1_t __a, int64x1_t __b)
7160 {
7161 return (int64x2_t)__builtin_neon_vcombinedi (__a, __b);
7162 }
7163
7164 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
7165 __extension__ extern __inline float16x8_t
7166 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcombine_f16(float16x4_t __a,float16x4_t __b)7167 vcombine_f16 (float16x4_t __a, float16x4_t __b)
7168 {
7169 return __builtin_neon_vcombinev4hf (__a, __b);
7170 }
7171 #endif
7172
7173 __extension__ extern __inline float32x4_t
7174 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcombine_f32(float32x2_t __a,float32x2_t __b)7175 vcombine_f32 (float32x2_t __a, float32x2_t __b)
7176 {
7177 return (float32x4_t)__builtin_neon_vcombinev2sf (__a, __b);
7178 }
7179
7180 __extension__ extern __inline uint8x16_t
7181 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcombine_u8(uint8x8_t __a,uint8x8_t __b)7182 vcombine_u8 (uint8x8_t __a, uint8x8_t __b)
7183 {
7184 return (uint8x16_t)__builtin_neon_vcombinev8qi ((int8x8_t) __a, (int8x8_t) __b);
7185 }
7186
7187 __extension__ extern __inline uint16x8_t
7188 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcombine_u16(uint16x4_t __a,uint16x4_t __b)7189 vcombine_u16 (uint16x4_t __a, uint16x4_t __b)
7190 {
7191 return (uint16x8_t)__builtin_neon_vcombinev4hi ((int16x4_t) __a, (int16x4_t) __b);
7192 }
7193
7194 __extension__ extern __inline uint32x4_t
7195 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcombine_u32(uint32x2_t __a,uint32x2_t __b)7196 vcombine_u32 (uint32x2_t __a, uint32x2_t __b)
7197 {
7198 return (uint32x4_t)__builtin_neon_vcombinev2si ((int32x2_t) __a, (int32x2_t) __b);
7199 }
7200
7201 __extension__ extern __inline uint64x2_t
7202 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcombine_u64(uint64x1_t __a,uint64x1_t __b)7203 vcombine_u64 (uint64x1_t __a, uint64x1_t __b)
7204 {
7205 return (uint64x2_t)__builtin_neon_vcombinedi ((int64x1_t) __a, (int64x1_t) __b);
7206 }
7207
7208 __extension__ extern __inline poly8x16_t
7209 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcombine_p8(poly8x8_t __a,poly8x8_t __b)7210 vcombine_p8 (poly8x8_t __a, poly8x8_t __b)
7211 {
7212 return (poly8x16_t)__builtin_neon_vcombinev8qi ((int8x8_t) __a, (int8x8_t) __b);
7213 }
7214
7215 __extension__ extern __inline poly16x8_t
7216 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcombine_p16(poly16x4_t __a,poly16x4_t __b)7217 vcombine_p16 (poly16x4_t __a, poly16x4_t __b)
7218 {
7219 return (poly16x8_t)__builtin_neon_vcombinev4hi ((int16x4_t) __a, (int16x4_t) __b);
7220 }
7221
7222 #pragma GCC push_options
7223 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
7224 __extension__ extern __inline poly64x1_t
7225 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_high_p64(poly64x2_t __a)7226 vget_high_p64 (poly64x2_t __a)
7227 {
7228 return (poly64x1_t)__builtin_neon_vget_highv2di ((int64x2_t) __a);
7229 }
7230
7231 #pragma GCC pop_options
7232 __extension__ extern __inline int8x8_t
7233 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_high_s8(int8x16_t __a)7234 vget_high_s8 (int8x16_t __a)
7235 {
7236 return (int8x8_t)__builtin_neon_vget_highv16qi (__a);
7237 }
7238
7239 __extension__ extern __inline int16x4_t
7240 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_high_s16(int16x8_t __a)7241 vget_high_s16 (int16x8_t __a)
7242 {
7243 return (int16x4_t)__builtin_neon_vget_highv8hi (__a);
7244 }
7245
7246 __extension__ extern __inline int32x2_t
7247 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_high_s32(int32x4_t __a)7248 vget_high_s32 (int32x4_t __a)
7249 {
7250 return (int32x2_t)__builtin_neon_vget_highv4si (__a);
7251 }
7252
7253 __extension__ extern __inline int64x1_t
7254 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_high_s64(int64x2_t __a)7255 vget_high_s64 (int64x2_t __a)
7256 {
7257 return (int64x1_t)__builtin_neon_vget_highv2di (__a);
7258 }
7259
7260 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
7261 __extension__ extern __inline float16x4_t
7262 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_high_f16(float16x8_t __a)7263 vget_high_f16 (float16x8_t __a)
7264 {
7265 return __builtin_neon_vget_highv8hf (__a);
7266 }
7267 #endif
7268
7269 __extension__ extern __inline float32x2_t
7270 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_high_f32(float32x4_t __a)7271 vget_high_f32 (float32x4_t __a)
7272 {
7273 return (float32x2_t)__builtin_neon_vget_highv4sf (__a);
7274 }
7275
7276 __extension__ extern __inline uint8x8_t
7277 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_high_u8(uint8x16_t __a)7278 vget_high_u8 (uint8x16_t __a)
7279 {
7280 return (uint8x8_t)__builtin_neon_vget_highv16qi ((int8x16_t) __a);
7281 }
7282
7283 __extension__ extern __inline uint16x4_t
7284 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_high_u16(uint16x8_t __a)7285 vget_high_u16 (uint16x8_t __a)
7286 {
7287 return (uint16x4_t)__builtin_neon_vget_highv8hi ((int16x8_t) __a);
7288 }
7289
7290 __extension__ extern __inline uint32x2_t
7291 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_high_u32(uint32x4_t __a)7292 vget_high_u32 (uint32x4_t __a)
7293 {
7294 return (uint32x2_t)__builtin_neon_vget_highv4si ((int32x4_t) __a);
7295 }
7296
7297 __extension__ extern __inline uint64x1_t
7298 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_high_u64(uint64x2_t __a)7299 vget_high_u64 (uint64x2_t __a)
7300 {
7301 return (uint64x1_t)__builtin_neon_vget_highv2di ((int64x2_t) __a);
7302 }
7303
7304 __extension__ extern __inline poly8x8_t
7305 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_high_p8(poly8x16_t __a)7306 vget_high_p8 (poly8x16_t __a)
7307 {
7308 return (poly8x8_t)__builtin_neon_vget_highv16qi ((int8x16_t) __a);
7309 }
7310
7311 __extension__ extern __inline poly16x4_t
7312 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_high_p16(poly16x8_t __a)7313 vget_high_p16 (poly16x8_t __a)
7314 {
7315 return (poly16x4_t)__builtin_neon_vget_highv8hi ((int16x8_t) __a);
7316 }
7317
7318 __extension__ extern __inline int8x8_t
7319 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_low_s8(int8x16_t __a)7320 vget_low_s8 (int8x16_t __a)
7321 {
7322 return (int8x8_t)__builtin_neon_vget_lowv16qi (__a);
7323 }
7324
7325 __extension__ extern __inline int16x4_t
7326 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_low_s16(int16x8_t __a)7327 vget_low_s16 (int16x8_t __a)
7328 {
7329 return (int16x4_t)__builtin_neon_vget_lowv8hi (__a);
7330 }
7331
7332 __extension__ extern __inline int32x2_t
7333 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_low_s32(int32x4_t __a)7334 vget_low_s32 (int32x4_t __a)
7335 {
7336 return (int32x2_t)__builtin_neon_vget_lowv4si (__a);
7337 }
7338
7339 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
7340 __extension__ extern __inline float16x4_t
7341 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_low_f16(float16x8_t __a)7342 vget_low_f16 (float16x8_t __a)
7343 {
7344 return __builtin_neon_vget_lowv8hf (__a);
7345 }
7346 #endif
7347
7348 __extension__ extern __inline float32x2_t
7349 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_low_f32(float32x4_t __a)7350 vget_low_f32 (float32x4_t __a)
7351 {
7352 return (float32x2_t)__builtin_neon_vget_lowv4sf (__a);
7353 }
7354
7355 __extension__ extern __inline uint8x8_t
7356 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_low_u8(uint8x16_t __a)7357 vget_low_u8 (uint8x16_t __a)
7358 {
7359 return (uint8x8_t)__builtin_neon_vget_lowv16qi ((int8x16_t) __a);
7360 }
7361
7362 __extension__ extern __inline uint16x4_t
7363 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_low_u16(uint16x8_t __a)7364 vget_low_u16 (uint16x8_t __a)
7365 {
7366 return (uint16x4_t)__builtin_neon_vget_lowv8hi ((int16x8_t) __a);
7367 }
7368
7369 __extension__ extern __inline uint32x2_t
7370 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_low_u32(uint32x4_t __a)7371 vget_low_u32 (uint32x4_t __a)
7372 {
7373 return (uint32x2_t)__builtin_neon_vget_lowv4si ((int32x4_t) __a);
7374 }
7375
7376 __extension__ extern __inline poly8x8_t
7377 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_low_p8(poly8x16_t __a)7378 vget_low_p8 (poly8x16_t __a)
7379 {
7380 return (poly8x8_t)__builtin_neon_vget_lowv16qi ((int8x16_t) __a);
7381 }
7382
7383 __extension__ extern __inline poly16x4_t
7384 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_low_p16(poly16x8_t __a)7385 vget_low_p16 (poly16x8_t __a)
7386 {
7387 return (poly16x4_t)__builtin_neon_vget_lowv8hi ((int16x8_t) __a);
7388 }
7389
7390 #pragma GCC push_options
7391 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
7392 __extension__ extern __inline poly64x1_t
7393 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_low_p64(poly64x2_t __a)7394 vget_low_p64 (poly64x2_t __a)
7395 {
7396 return (poly64x1_t)__builtin_neon_vget_lowv2di ((int64x2_t) __a);
7397 }
7398
7399 #pragma GCC pop_options
7400 __extension__ extern __inline int64x1_t
7401 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_low_s64(int64x2_t __a)7402 vget_low_s64 (int64x2_t __a)
7403 {
7404 return (int64x1_t)__builtin_neon_vget_lowv2di (__a);
7405 }
7406
7407 __extension__ extern __inline uint64x1_t
7408 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_low_u64(uint64x2_t __a)7409 vget_low_u64 (uint64x2_t __a)
7410 {
7411 return (uint64x1_t)__builtin_neon_vget_lowv2di ((int64x2_t) __a);
7412 }
7413
7414 __extension__ extern __inline int32x2_t
7415 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_s32_f32(float32x2_t __a)7416 vcvt_s32_f32 (float32x2_t __a)
7417 {
7418 return (int32x2_t)__builtin_neon_vcvtsv2sf (__a);
7419 }
7420
7421 __extension__ extern __inline float32x2_t
7422 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_f32_s32(int32x2_t __a)7423 vcvt_f32_s32 (int32x2_t __a)
7424 {
7425 return (float32x2_t)__builtin_neon_vcvtsv2si (__a);
7426 }
7427
7428 __extension__ extern __inline float32x2_t
7429 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_f32_u32(uint32x2_t __a)7430 vcvt_f32_u32 (uint32x2_t __a)
7431 {
7432 return (float32x2_t)__builtin_neon_vcvtuv2si ((int32x2_t) __a);
7433 }
7434
7435 __extension__ extern __inline uint32x2_t
7436 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_u32_f32(float32x2_t __a)7437 vcvt_u32_f32 (float32x2_t __a)
7438 {
7439 return (uint32x2_t)__builtin_neon_vcvtuv2sf (__a);
7440 }
7441
7442 __extension__ extern __inline int32x4_t
7443 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_s32_f32(float32x4_t __a)7444 vcvtq_s32_f32 (float32x4_t __a)
7445 {
7446 return (int32x4_t)__builtin_neon_vcvtsv4sf (__a);
7447 }
7448
7449 __extension__ extern __inline float32x4_t
7450 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_f32_s32(int32x4_t __a)7451 vcvtq_f32_s32 (int32x4_t __a)
7452 {
7453 return (float32x4_t)__builtin_neon_vcvtsv4si (__a);
7454 }
7455
7456 __extension__ extern __inline float32x4_t
7457 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_f32_u32(uint32x4_t __a)7458 vcvtq_f32_u32 (uint32x4_t __a)
7459 {
7460 return (float32x4_t)__builtin_neon_vcvtuv4si ((int32x4_t) __a);
7461 }
7462
7463 __extension__ extern __inline uint32x4_t
7464 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_u32_f32(float32x4_t __a)7465 vcvtq_u32_f32 (float32x4_t __a)
7466 {
7467 return (uint32x4_t)__builtin_neon_vcvtuv4sf (__a);
7468 }
7469
7470 #pragma GCC push_options
7471 #pragma GCC target ("fpu=neon-fp16")
7472 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
7473 __extension__ extern __inline float16x4_t
7474 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_f16_f32(float32x4_t __a)7475 vcvt_f16_f32 (float32x4_t __a)
7476 {
7477 return (float16x4_t)__builtin_neon_vcvtv4hfv4sf (__a);
7478 }
7479 #endif
7480
7481 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
7482 __extension__ extern __inline float32x4_t
7483 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_f32_f16(float16x4_t __a)7484 vcvt_f32_f16 (float16x4_t __a)
7485 {
7486 return (float32x4_t)__builtin_neon_vcvtv4sfv4hf (__a);
7487 }
7488 #endif
7489 #pragma GCC pop_options
7490
7491 __extension__ extern __inline int32x2_t
7492 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_n_s32_f32(float32x2_t __a,const int __b)7493 vcvt_n_s32_f32 (float32x2_t __a, const int __b)
7494 {
7495 return (int32x2_t)__builtin_neon_vcvts_nv2sf (__a, __b);
7496 }
7497
7498 __extension__ extern __inline float32x2_t
7499 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_n_f32_s32(int32x2_t __a,const int __b)7500 vcvt_n_f32_s32 (int32x2_t __a, const int __b)
7501 {
7502 return (float32x2_t)__builtin_neon_vcvts_nv2si (__a, __b);
7503 }
7504
7505 __extension__ extern __inline float32x2_t
7506 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_n_f32_u32(uint32x2_t __a,const int __b)7507 vcvt_n_f32_u32 (uint32x2_t __a, const int __b)
7508 {
7509 return (float32x2_t)__builtin_neon_vcvtu_nv2si ((int32x2_t) __a, __b);
7510 }
7511
7512 __extension__ extern __inline uint32x2_t
7513 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_n_u32_f32(float32x2_t __a,const int __b)7514 vcvt_n_u32_f32 (float32x2_t __a, const int __b)
7515 {
7516 return (uint32x2_t)__builtin_neon_vcvtu_nv2sf (__a, __b);
7517 }
7518
7519 __extension__ extern __inline int32x4_t
7520 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_n_s32_f32(float32x4_t __a,const int __b)7521 vcvtq_n_s32_f32 (float32x4_t __a, const int __b)
7522 {
7523 return (int32x4_t)__builtin_neon_vcvts_nv4sf (__a, __b);
7524 }
7525
7526 __extension__ extern __inline float32x4_t
7527 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_n_f32_s32(int32x4_t __a,const int __b)7528 vcvtq_n_f32_s32 (int32x4_t __a, const int __b)
7529 {
7530 return (float32x4_t)__builtin_neon_vcvts_nv4si (__a, __b);
7531 }
7532
7533 __extension__ extern __inline float32x4_t
7534 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_n_f32_u32(uint32x4_t __a,const int __b)7535 vcvtq_n_f32_u32 (uint32x4_t __a, const int __b)
7536 {
7537 return (float32x4_t)__builtin_neon_vcvtu_nv4si ((int32x4_t) __a, __b);
7538 }
7539
7540 __extension__ extern __inline uint32x4_t
7541 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_n_u32_f32(float32x4_t __a,const int __b)7542 vcvtq_n_u32_f32 (float32x4_t __a, const int __b)
7543 {
7544 return (uint32x4_t)__builtin_neon_vcvtu_nv4sf (__a, __b);
7545 }
7546
7547 __extension__ extern __inline int8x8_t
7548 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovn_s16(int16x8_t __a)7549 vmovn_s16 (int16x8_t __a)
7550 {
7551 return (int8x8_t)__builtin_neon_vmovnv8hi (__a);
7552 }
7553
7554 __extension__ extern __inline int16x4_t
7555 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovn_s32(int32x4_t __a)7556 vmovn_s32 (int32x4_t __a)
7557 {
7558 return (int16x4_t)__builtin_neon_vmovnv4si (__a);
7559 }
7560
7561 __extension__ extern __inline int32x2_t
7562 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovn_s64(int64x2_t __a)7563 vmovn_s64 (int64x2_t __a)
7564 {
7565 return (int32x2_t)__builtin_neon_vmovnv2di (__a);
7566 }
7567
7568 __extension__ extern __inline uint8x8_t
7569 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovn_u16(uint16x8_t __a)7570 vmovn_u16 (uint16x8_t __a)
7571 {
7572 return (uint8x8_t)__builtin_neon_vmovnv8hi ((int16x8_t) __a);
7573 }
7574
7575 __extension__ extern __inline uint16x4_t
7576 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovn_u32(uint32x4_t __a)7577 vmovn_u32 (uint32x4_t __a)
7578 {
7579 return (uint16x4_t)__builtin_neon_vmovnv4si ((int32x4_t) __a);
7580 }
7581
7582 __extension__ extern __inline uint32x2_t
7583 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovn_u64(uint64x2_t __a)7584 vmovn_u64 (uint64x2_t __a)
7585 {
7586 return (uint32x2_t)__builtin_neon_vmovnv2di ((int64x2_t) __a);
7587 }
7588
7589 __extension__ extern __inline int8x8_t
7590 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovn_s16(int16x8_t __a)7591 vqmovn_s16 (int16x8_t __a)
7592 {
7593 return (int8x8_t)__builtin_neon_vqmovnsv8hi (__a);
7594 }
7595
7596 __extension__ extern __inline int16x4_t
7597 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovn_s32(int32x4_t __a)7598 vqmovn_s32 (int32x4_t __a)
7599 {
7600 return (int16x4_t)__builtin_neon_vqmovnsv4si (__a);
7601 }
7602
7603 __extension__ extern __inline int32x2_t
7604 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovn_s64(int64x2_t __a)7605 vqmovn_s64 (int64x2_t __a)
7606 {
7607 return (int32x2_t)__builtin_neon_vqmovnsv2di (__a);
7608 }
7609
7610 __extension__ extern __inline uint8x8_t
7611 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovn_u16(uint16x8_t __a)7612 vqmovn_u16 (uint16x8_t __a)
7613 {
7614 return (uint8x8_t)__builtin_neon_vqmovnuv8hi ((int16x8_t) __a);
7615 }
7616
7617 __extension__ extern __inline uint16x4_t
7618 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovn_u32(uint32x4_t __a)7619 vqmovn_u32 (uint32x4_t __a)
7620 {
7621 return (uint16x4_t)__builtin_neon_vqmovnuv4si ((int32x4_t) __a);
7622 }
7623
7624 __extension__ extern __inline uint32x2_t
7625 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovn_u64(uint64x2_t __a)7626 vqmovn_u64 (uint64x2_t __a)
7627 {
7628 return (uint32x2_t)__builtin_neon_vqmovnuv2di ((int64x2_t) __a);
7629 }
7630
7631 __extension__ extern __inline uint8x8_t
7632 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovun_s16(int16x8_t __a)7633 vqmovun_s16 (int16x8_t __a)
7634 {
7635 return (uint8x8_t)__builtin_neon_vqmovunv8hi (__a);
7636 }
7637
7638 __extension__ extern __inline uint16x4_t
7639 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovun_s32(int32x4_t __a)7640 vqmovun_s32 (int32x4_t __a)
7641 {
7642 return (uint16x4_t)__builtin_neon_vqmovunv4si (__a);
7643 }
7644
7645 __extension__ extern __inline uint32x2_t
7646 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovun_s64(int64x2_t __a)7647 vqmovun_s64 (int64x2_t __a)
7648 {
7649 return (uint32x2_t)__builtin_neon_vqmovunv2di (__a);
7650 }
7651
7652 __extension__ extern __inline int16x8_t
7653 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovl_s8(int8x8_t __a)7654 vmovl_s8 (int8x8_t __a)
7655 {
7656 return (int16x8_t)__builtin_neon_vmovlsv8qi (__a);
7657 }
7658
7659 __extension__ extern __inline int32x4_t
7660 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovl_s16(int16x4_t __a)7661 vmovl_s16 (int16x4_t __a)
7662 {
7663 return (int32x4_t)__builtin_neon_vmovlsv4hi (__a);
7664 }
7665
7666 __extension__ extern __inline int64x2_t
7667 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovl_s32(int32x2_t __a)7668 vmovl_s32 (int32x2_t __a)
7669 {
7670 return (int64x2_t)__builtin_neon_vmovlsv2si (__a);
7671 }
7672
7673 __extension__ extern __inline uint16x8_t
7674 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovl_u8(uint8x8_t __a)7675 vmovl_u8 (uint8x8_t __a)
7676 {
7677 return (uint16x8_t)__builtin_neon_vmovluv8qi ((int8x8_t) __a);
7678 }
7679
7680 __extension__ extern __inline uint32x4_t
7681 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovl_u16(uint16x4_t __a)7682 vmovl_u16 (uint16x4_t __a)
7683 {
7684 return (uint32x4_t)__builtin_neon_vmovluv4hi ((int16x4_t) __a);
7685 }
7686
7687 __extension__ extern __inline uint64x2_t
7688 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovl_u32(uint32x2_t __a)7689 vmovl_u32 (uint32x2_t __a)
7690 {
7691 return (uint64x2_t)__builtin_neon_vmovluv2si ((int32x2_t) __a);
7692 }
7693
7694 __extension__ extern __inline int8x8_t
7695 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbl1_s8(int8x8_t __a,int8x8_t __b)7696 vtbl1_s8 (int8x8_t __a, int8x8_t __b)
7697 {
7698 return (int8x8_t)__builtin_neon_vtbl1v8qi (__a, __b);
7699 }
7700
7701 __extension__ extern __inline uint8x8_t
7702 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbl1_u8(uint8x8_t __a,uint8x8_t __b)7703 vtbl1_u8 (uint8x8_t __a, uint8x8_t __b)
7704 {
7705 return (uint8x8_t)__builtin_neon_vtbl1v8qi ((int8x8_t) __a, (int8x8_t) __b);
7706 }
7707
7708 __extension__ extern __inline poly8x8_t
7709 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbl1_p8(poly8x8_t __a,uint8x8_t __b)7710 vtbl1_p8 (poly8x8_t __a, uint8x8_t __b)
7711 {
7712 return (poly8x8_t)__builtin_neon_vtbl1v8qi ((int8x8_t) __a, (int8x8_t) __b);
7713 }
7714
7715 __extension__ extern __inline int8x8_t
7716 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbl2_s8(int8x8x2_t __a,int8x8_t __b)7717 vtbl2_s8 (int8x8x2_t __a, int8x8_t __b)
7718 {
7719 union { int8x8x2_t __i; __builtin_neon_ti __o; } __au = { __a };
7720 return (int8x8_t)__builtin_neon_vtbl2v8qi (__au.__o, __b);
7721 }
7722
7723 __extension__ extern __inline uint8x8_t
7724 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbl2_u8(uint8x8x2_t __a,uint8x8_t __b)7725 vtbl2_u8 (uint8x8x2_t __a, uint8x8_t __b)
7726 {
7727 union { uint8x8x2_t __i; __builtin_neon_ti __o; } __au = { __a };
7728 return (uint8x8_t)__builtin_neon_vtbl2v8qi (__au.__o, (int8x8_t) __b);
7729 }
7730
7731 __extension__ extern __inline poly8x8_t
7732 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbl2_p8(poly8x8x2_t __a,uint8x8_t __b)7733 vtbl2_p8 (poly8x8x2_t __a, uint8x8_t __b)
7734 {
7735 union { poly8x8x2_t __i; __builtin_neon_ti __o; } __au = { __a };
7736 return (poly8x8_t)__builtin_neon_vtbl2v8qi (__au.__o, (int8x8_t) __b);
7737 }
7738
7739 __extension__ extern __inline int8x8_t
7740 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbl3_s8(int8x8x3_t __a,int8x8_t __b)7741 vtbl3_s8 (int8x8x3_t __a, int8x8_t __b)
7742 {
7743 union { int8x8x3_t __i; __builtin_neon_ei __o; } __au = { __a };
7744 return (int8x8_t)__builtin_neon_vtbl3v8qi (__au.__o, __b);
7745 }
7746
7747 __extension__ extern __inline uint8x8_t
7748 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbl3_u8(uint8x8x3_t __a,uint8x8_t __b)7749 vtbl3_u8 (uint8x8x3_t __a, uint8x8_t __b)
7750 {
7751 union { uint8x8x3_t __i; __builtin_neon_ei __o; } __au = { __a };
7752 return (uint8x8_t)__builtin_neon_vtbl3v8qi (__au.__o, (int8x8_t) __b);
7753 }
7754
7755 __extension__ extern __inline poly8x8_t
7756 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbl3_p8(poly8x8x3_t __a,uint8x8_t __b)7757 vtbl3_p8 (poly8x8x3_t __a, uint8x8_t __b)
7758 {
7759 union { poly8x8x3_t __i; __builtin_neon_ei __o; } __au = { __a };
7760 return (poly8x8_t)__builtin_neon_vtbl3v8qi (__au.__o, (int8x8_t) __b);
7761 }
7762
7763 __extension__ extern __inline int8x8_t
7764 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbl4_s8(int8x8x4_t __a,int8x8_t __b)7765 vtbl4_s8 (int8x8x4_t __a, int8x8_t __b)
7766 {
7767 union { int8x8x4_t __i; __builtin_neon_oi __o; } __au = { __a };
7768 return (int8x8_t)__builtin_neon_vtbl4v8qi (__au.__o, __b);
7769 }
7770
7771 __extension__ extern __inline uint8x8_t
7772 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbl4_u8(uint8x8x4_t __a,uint8x8_t __b)7773 vtbl4_u8 (uint8x8x4_t __a, uint8x8_t __b)
7774 {
7775 union { uint8x8x4_t __i; __builtin_neon_oi __o; } __au = { __a };
7776 return (uint8x8_t)__builtin_neon_vtbl4v8qi (__au.__o, (int8x8_t) __b);
7777 }
7778
7779 __extension__ extern __inline poly8x8_t
7780 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbl4_p8(poly8x8x4_t __a,uint8x8_t __b)7781 vtbl4_p8 (poly8x8x4_t __a, uint8x8_t __b)
7782 {
7783 union { poly8x8x4_t __i; __builtin_neon_oi __o; } __au = { __a };
7784 return (poly8x8_t)__builtin_neon_vtbl4v8qi (__au.__o, (int8x8_t) __b);
7785 }
7786
7787 __extension__ extern __inline int8x8_t
7788 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbx1_s8(int8x8_t __a,int8x8_t __b,int8x8_t __c)7789 vtbx1_s8 (int8x8_t __a, int8x8_t __b, int8x8_t __c)
7790 {
7791 return (int8x8_t)__builtin_neon_vtbx1v8qi (__a, __b, __c);
7792 }
7793
7794 __extension__ extern __inline uint8x8_t
7795 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbx1_u8(uint8x8_t __a,uint8x8_t __b,uint8x8_t __c)7796 vtbx1_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c)
7797 {
7798 return (uint8x8_t)__builtin_neon_vtbx1v8qi ((int8x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
7799 }
7800
7801 __extension__ extern __inline poly8x8_t
7802 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbx1_p8(poly8x8_t __a,poly8x8_t __b,uint8x8_t __c)7803 vtbx1_p8 (poly8x8_t __a, poly8x8_t __b, uint8x8_t __c)
7804 {
7805 return (poly8x8_t)__builtin_neon_vtbx1v8qi ((int8x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
7806 }
7807
7808 __extension__ extern __inline int8x8_t
7809 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbx2_s8(int8x8_t __a,int8x8x2_t __b,int8x8_t __c)7810 vtbx2_s8 (int8x8_t __a, int8x8x2_t __b, int8x8_t __c)
7811 {
7812 union { int8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
7813 return (int8x8_t)__builtin_neon_vtbx2v8qi (__a, __bu.__o, __c);
7814 }
7815
7816 __extension__ extern __inline uint8x8_t
7817 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbx2_u8(uint8x8_t __a,uint8x8x2_t __b,uint8x8_t __c)7818 vtbx2_u8 (uint8x8_t __a, uint8x8x2_t __b, uint8x8_t __c)
7819 {
7820 union { uint8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
7821 return (uint8x8_t)__builtin_neon_vtbx2v8qi ((int8x8_t) __a, __bu.__o, (int8x8_t) __c);
7822 }
7823
7824 __extension__ extern __inline poly8x8_t
7825 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbx2_p8(poly8x8_t __a,poly8x8x2_t __b,uint8x8_t __c)7826 vtbx2_p8 (poly8x8_t __a, poly8x8x2_t __b, uint8x8_t __c)
7827 {
7828 union { poly8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
7829 return (poly8x8_t)__builtin_neon_vtbx2v8qi ((int8x8_t) __a, __bu.__o, (int8x8_t) __c);
7830 }
7831
7832 __extension__ extern __inline int8x8_t
7833 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbx3_s8(int8x8_t __a,int8x8x3_t __b,int8x8_t __c)7834 vtbx3_s8 (int8x8_t __a, int8x8x3_t __b, int8x8_t __c)
7835 {
7836 union { int8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
7837 return (int8x8_t)__builtin_neon_vtbx3v8qi (__a, __bu.__o, __c);
7838 }
7839
7840 __extension__ extern __inline uint8x8_t
7841 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbx3_u8(uint8x8_t __a,uint8x8x3_t __b,uint8x8_t __c)7842 vtbx3_u8 (uint8x8_t __a, uint8x8x3_t __b, uint8x8_t __c)
7843 {
7844 union { uint8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
7845 return (uint8x8_t)__builtin_neon_vtbx3v8qi ((int8x8_t) __a, __bu.__o, (int8x8_t) __c);
7846 }
7847
7848 __extension__ extern __inline poly8x8_t
7849 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbx3_p8(poly8x8_t __a,poly8x8x3_t __b,uint8x8_t __c)7850 vtbx3_p8 (poly8x8_t __a, poly8x8x3_t __b, uint8x8_t __c)
7851 {
7852 union { poly8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
7853 return (poly8x8_t)__builtin_neon_vtbx3v8qi ((int8x8_t) __a, __bu.__o, (int8x8_t) __c);
7854 }
7855
7856 __extension__ extern __inline int8x8_t
7857 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbx4_s8(int8x8_t __a,int8x8x4_t __b,int8x8_t __c)7858 vtbx4_s8 (int8x8_t __a, int8x8x4_t __b, int8x8_t __c)
7859 {
7860 union { int8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
7861 return (int8x8_t)__builtin_neon_vtbx4v8qi (__a, __bu.__o, __c);
7862 }
7863
7864 __extension__ extern __inline uint8x8_t
7865 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbx4_u8(uint8x8_t __a,uint8x8x4_t __b,uint8x8_t __c)7866 vtbx4_u8 (uint8x8_t __a, uint8x8x4_t __b, uint8x8_t __c)
7867 {
7868 union { uint8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
7869 return (uint8x8_t)__builtin_neon_vtbx4v8qi ((int8x8_t) __a, __bu.__o, (int8x8_t) __c);
7870 }
7871
7872 __extension__ extern __inline poly8x8_t
7873 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbx4_p8(poly8x8_t __a,poly8x8x4_t __b,uint8x8_t __c)7874 vtbx4_p8 (poly8x8_t __a, poly8x8x4_t __b, uint8x8_t __c)
7875 {
7876 union { poly8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
7877 return (poly8x8_t)__builtin_neon_vtbx4v8qi ((int8x8_t) __a, __bu.__o, (int8x8_t) __c);
7878 }
7879
7880 __extension__ extern __inline int16x4_t
7881 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_lane_s16(int16x4_t __a,int16x4_t __b,const int __c)7882 vmul_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c)
7883 {
7884 return (int16x4_t)__builtin_neon_vmul_lanev4hi (__a, __b, __c);
7885 }
7886
7887 __extension__ extern __inline int32x2_t
7888 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_lane_s32(int32x2_t __a,int32x2_t __b,const int __c)7889 vmul_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c)
7890 {
7891 return (int32x2_t)__builtin_neon_vmul_lanev2si (__a, __b, __c);
7892 }
7893
7894 __extension__ extern __inline float32x2_t
7895 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_lane_f32(float32x2_t __a,float32x2_t __b,const int __c)7896 vmul_lane_f32 (float32x2_t __a, float32x2_t __b, const int __c)
7897 {
7898 return (float32x2_t)__builtin_neon_vmul_lanev2sf (__a, __b, __c);
7899 }
7900
7901 __extension__ extern __inline uint16x4_t
7902 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_lane_u16(uint16x4_t __a,uint16x4_t __b,const int __c)7903 vmul_lane_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
7904 {
7905 return (uint16x4_t)__builtin_neon_vmul_lanev4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
7906 }
7907
7908 __extension__ extern __inline uint32x2_t
7909 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_lane_u32(uint32x2_t __a,uint32x2_t __b,const int __c)7910 vmul_lane_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
7911 {
7912 return (uint32x2_t)__builtin_neon_vmul_lanev2si ((int32x2_t) __a, (int32x2_t) __b, __c);
7913 }
7914
7915 __extension__ extern __inline int16x8_t
7916 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_lane_s16(int16x8_t __a,int16x4_t __b,const int __c)7917 vmulq_lane_s16 (int16x8_t __a, int16x4_t __b, const int __c)
7918 {
7919 return (int16x8_t)__builtin_neon_vmul_lanev8hi (__a, __b, __c);
7920 }
7921
7922 __extension__ extern __inline int32x4_t
7923 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_lane_s32(int32x4_t __a,int32x2_t __b,const int __c)7924 vmulq_lane_s32 (int32x4_t __a, int32x2_t __b, const int __c)
7925 {
7926 return (int32x4_t)__builtin_neon_vmul_lanev4si (__a, __b, __c);
7927 }
7928
7929 __extension__ extern __inline float32x4_t
7930 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_lane_f32(float32x4_t __a,float32x2_t __b,const int __c)7931 vmulq_lane_f32 (float32x4_t __a, float32x2_t __b, const int __c)
7932 {
7933 return (float32x4_t)__builtin_neon_vmul_lanev4sf (__a, __b, __c);
7934 }
7935
7936 __extension__ extern __inline uint16x8_t
7937 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_lane_u16(uint16x8_t __a,uint16x4_t __b,const int __c)7938 vmulq_lane_u16 (uint16x8_t __a, uint16x4_t __b, const int __c)
7939 {
7940 return (uint16x8_t)__builtin_neon_vmul_lanev8hi ((int16x8_t) __a, (int16x4_t) __b, __c);
7941 }
7942
7943 __extension__ extern __inline uint32x4_t
7944 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_lane_u32(uint32x4_t __a,uint32x2_t __b,const int __c)7945 vmulq_lane_u32 (uint32x4_t __a, uint32x2_t __b, const int __c)
7946 {
7947 return (uint32x4_t)__builtin_neon_vmul_lanev4si ((int32x4_t) __a, (int32x2_t) __b, __c);
7948 }
7949
7950 __extension__ extern __inline int16x4_t
7951 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_lane_s16(int16x4_t __a,int16x4_t __b,int16x4_t __c,const int __d)7952 vmla_lane_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
7953 {
7954 return (int16x4_t)__builtin_neon_vmla_lanev4hi (__a, __b, __c, __d);
7955 }
7956
7957 __extension__ extern __inline int32x2_t
7958 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_lane_s32(int32x2_t __a,int32x2_t __b,int32x2_t __c,const int __d)7959 vmla_lane_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
7960 {
7961 return (int32x2_t)__builtin_neon_vmla_lanev2si (__a, __b, __c, __d);
7962 }
7963
7964 __extension__ extern __inline float32x2_t
7965 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_lane_f32(float32x2_t __a,float32x2_t __b,float32x2_t __c,const int __d)7966 vmla_lane_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c, const int __d)
7967 {
7968 return (float32x2_t)__builtin_neon_vmla_lanev2sf (__a, __b, __c, __d);
7969 }
7970
7971 __extension__ extern __inline uint16x4_t
7972 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_lane_u16(uint16x4_t __a,uint16x4_t __b,uint16x4_t __c,const int __d)7973 vmla_lane_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c, const int __d)
7974 {
7975 return (uint16x4_t)__builtin_neon_vmla_lanev4hi ((int16x4_t) __a, (int16x4_t) __b, (int16x4_t) __c, __d);
7976 }
7977
7978 __extension__ extern __inline uint32x2_t
7979 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_lane_u32(uint32x2_t __a,uint32x2_t __b,uint32x2_t __c,const int __d)7980 vmla_lane_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c, const int __d)
7981 {
7982 return (uint32x2_t)__builtin_neon_vmla_lanev2si ((int32x2_t) __a, (int32x2_t) __b, (int32x2_t) __c, __d);
7983 }
7984
7985 __extension__ extern __inline int16x8_t
7986 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_lane_s16(int16x8_t __a,int16x8_t __b,int16x4_t __c,const int __d)7987 vmlaq_lane_s16 (int16x8_t __a, int16x8_t __b, int16x4_t __c, const int __d)
7988 {
7989 return (int16x8_t)__builtin_neon_vmla_lanev8hi (__a, __b, __c, __d);
7990 }
7991
7992 __extension__ extern __inline int32x4_t
7993 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_lane_s32(int32x4_t __a,int32x4_t __b,int32x2_t __c,const int __d)7994 vmlaq_lane_s32 (int32x4_t __a, int32x4_t __b, int32x2_t __c, const int __d)
7995 {
7996 return (int32x4_t)__builtin_neon_vmla_lanev4si (__a, __b, __c, __d);
7997 }
7998
7999 __extension__ extern __inline float32x4_t
8000 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_lane_f32(float32x4_t __a,float32x4_t __b,float32x2_t __c,const int __d)8001 vmlaq_lane_f32 (float32x4_t __a, float32x4_t __b, float32x2_t __c, const int __d)
8002 {
8003 return (float32x4_t)__builtin_neon_vmla_lanev4sf (__a, __b, __c, __d);
8004 }
8005
8006 __extension__ extern __inline uint16x8_t
8007 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_lane_u16(uint16x8_t __a,uint16x8_t __b,uint16x4_t __c,const int __d)8008 vmlaq_lane_u16 (uint16x8_t __a, uint16x8_t __b, uint16x4_t __c, const int __d)
8009 {
8010 return (uint16x8_t)__builtin_neon_vmla_lanev8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x4_t) __c, __d);
8011 }
8012
8013 __extension__ extern __inline uint32x4_t
8014 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_lane_u32(uint32x4_t __a,uint32x4_t __b,uint32x2_t __c,const int __d)8015 vmlaq_lane_u32 (uint32x4_t __a, uint32x4_t __b, uint32x2_t __c, const int __d)
8016 {
8017 return (uint32x4_t)__builtin_neon_vmla_lanev4si ((int32x4_t) __a, (int32x4_t) __b, (int32x2_t) __c, __d);
8018 }
8019
8020 __extension__ extern __inline int32x4_t
8021 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_lane_s16(int32x4_t __a,int16x4_t __b,int16x4_t __c,const int __d)8022 vmlal_lane_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
8023 {
8024 return (int32x4_t)__builtin_neon_vmlals_lanev4hi (__a, __b, __c, __d);
8025 }
8026
8027 __extension__ extern __inline int64x2_t
8028 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_lane_s32(int64x2_t __a,int32x2_t __b,int32x2_t __c,const int __d)8029 vmlal_lane_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
8030 {
8031 return (int64x2_t)__builtin_neon_vmlals_lanev2si (__a, __b, __c, __d);
8032 }
8033
8034 __extension__ extern __inline uint32x4_t
8035 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_lane_u16(uint32x4_t __a,uint16x4_t __b,uint16x4_t __c,const int __d)8036 vmlal_lane_u16 (uint32x4_t __a, uint16x4_t __b, uint16x4_t __c, const int __d)
8037 {
8038 return (uint32x4_t)__builtin_neon_vmlalu_lanev4hi ((int32x4_t) __a, (int16x4_t) __b, (int16x4_t) __c, __d);
8039 }
8040
8041 __extension__ extern __inline uint64x2_t
8042 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_lane_u32(uint64x2_t __a,uint32x2_t __b,uint32x2_t __c,const int __d)8043 vmlal_lane_u32 (uint64x2_t __a, uint32x2_t __b, uint32x2_t __c, const int __d)
8044 {
8045 return (uint64x2_t)__builtin_neon_vmlalu_lanev2si ((int64x2_t) __a, (int32x2_t) __b, (int32x2_t) __c, __d);
8046 }
8047
8048 __extension__ extern __inline int32x4_t
8049 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlal_lane_s16(int32x4_t __a,int16x4_t __b,int16x4_t __c,const int __d)8050 vqdmlal_lane_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
8051 {
8052 return (int32x4_t)__builtin_neon_vqdmlal_lanev4hi (__a, __b, __c, __d);
8053 }
8054
8055 __extension__ extern __inline int64x2_t
8056 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlal_lane_s32(int64x2_t __a,int32x2_t __b,int32x2_t __c,const int __d)8057 vqdmlal_lane_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
8058 {
8059 return (int64x2_t)__builtin_neon_vqdmlal_lanev2si (__a, __b, __c, __d);
8060 }
8061
8062 __extension__ extern __inline int16x4_t
8063 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_lane_s16(int16x4_t __a,int16x4_t __b,int16x4_t __c,const int __d)8064 vmls_lane_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
8065 {
8066 return (int16x4_t)__builtin_neon_vmls_lanev4hi (__a, __b, __c, __d);
8067 }
8068
8069 __extension__ extern __inline int32x2_t
8070 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_lane_s32(int32x2_t __a,int32x2_t __b,int32x2_t __c,const int __d)8071 vmls_lane_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
8072 {
8073 return (int32x2_t)__builtin_neon_vmls_lanev2si (__a, __b, __c, __d);
8074 }
8075
8076 __extension__ extern __inline float32x2_t
8077 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_lane_f32(float32x2_t __a,float32x2_t __b,float32x2_t __c,const int __d)8078 vmls_lane_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c, const int __d)
8079 {
8080 return (float32x2_t)__builtin_neon_vmls_lanev2sf (__a, __b, __c, __d);
8081 }
8082
8083 __extension__ extern __inline uint16x4_t
8084 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_lane_u16(uint16x4_t __a,uint16x4_t __b,uint16x4_t __c,const int __d)8085 vmls_lane_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c, const int __d)
8086 {
8087 return (uint16x4_t)__builtin_neon_vmls_lanev4hi ((int16x4_t) __a, (int16x4_t) __b, (int16x4_t) __c, __d);
8088 }
8089
8090 __extension__ extern __inline uint32x2_t
8091 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_lane_u32(uint32x2_t __a,uint32x2_t __b,uint32x2_t __c,const int __d)8092 vmls_lane_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c, const int __d)
8093 {
8094 return (uint32x2_t)__builtin_neon_vmls_lanev2si ((int32x2_t) __a, (int32x2_t) __b, (int32x2_t) __c, __d);
8095 }
8096
8097 __extension__ extern __inline int16x8_t
8098 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_lane_s16(int16x8_t __a,int16x8_t __b,int16x4_t __c,const int __d)8099 vmlsq_lane_s16 (int16x8_t __a, int16x8_t __b, int16x4_t __c, const int __d)
8100 {
8101 return (int16x8_t)__builtin_neon_vmls_lanev8hi (__a, __b, __c, __d);
8102 }
8103
8104 __extension__ extern __inline int32x4_t
8105 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_lane_s32(int32x4_t __a,int32x4_t __b,int32x2_t __c,const int __d)8106 vmlsq_lane_s32 (int32x4_t __a, int32x4_t __b, int32x2_t __c, const int __d)
8107 {
8108 return (int32x4_t)__builtin_neon_vmls_lanev4si (__a, __b, __c, __d);
8109 }
8110
8111 __extension__ extern __inline float32x4_t
8112 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_lane_f32(float32x4_t __a,float32x4_t __b,float32x2_t __c,const int __d)8113 vmlsq_lane_f32 (float32x4_t __a, float32x4_t __b, float32x2_t __c, const int __d)
8114 {
8115 return (float32x4_t)__builtin_neon_vmls_lanev4sf (__a, __b, __c, __d);
8116 }
8117
8118 __extension__ extern __inline uint16x8_t
8119 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_lane_u16(uint16x8_t __a,uint16x8_t __b,uint16x4_t __c,const int __d)8120 vmlsq_lane_u16 (uint16x8_t __a, uint16x8_t __b, uint16x4_t __c, const int __d)
8121 {
8122 return (uint16x8_t)__builtin_neon_vmls_lanev8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x4_t) __c, __d);
8123 }
8124
8125 __extension__ extern __inline uint32x4_t
8126 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_lane_u32(uint32x4_t __a,uint32x4_t __b,uint32x2_t __c,const int __d)8127 vmlsq_lane_u32 (uint32x4_t __a, uint32x4_t __b, uint32x2_t __c, const int __d)
8128 {
8129 return (uint32x4_t)__builtin_neon_vmls_lanev4si ((int32x4_t) __a, (int32x4_t) __b, (int32x2_t) __c, __d);
8130 }
8131
8132 __extension__ extern __inline int32x4_t
8133 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_lane_s16(int32x4_t __a,int16x4_t __b,int16x4_t __c,const int __d)8134 vmlsl_lane_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
8135 {
8136 return (int32x4_t)__builtin_neon_vmlsls_lanev4hi (__a, __b, __c, __d);
8137 }
8138
8139 __extension__ extern __inline int64x2_t
8140 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_lane_s32(int64x2_t __a,int32x2_t __b,int32x2_t __c,const int __d)8141 vmlsl_lane_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
8142 {
8143 return (int64x2_t)__builtin_neon_vmlsls_lanev2si (__a, __b, __c, __d);
8144 }
8145
8146 __extension__ extern __inline uint32x4_t
8147 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_lane_u16(uint32x4_t __a,uint16x4_t __b,uint16x4_t __c,const int __d)8148 vmlsl_lane_u16 (uint32x4_t __a, uint16x4_t __b, uint16x4_t __c, const int __d)
8149 {
8150 return (uint32x4_t)__builtin_neon_vmlslu_lanev4hi ((int32x4_t) __a, (int16x4_t) __b, (int16x4_t) __c, __d);
8151 }
8152
8153 __extension__ extern __inline uint64x2_t
8154 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_lane_u32(uint64x2_t __a,uint32x2_t __b,uint32x2_t __c,const int __d)8155 vmlsl_lane_u32 (uint64x2_t __a, uint32x2_t __b, uint32x2_t __c, const int __d)
8156 {
8157 return (uint64x2_t)__builtin_neon_vmlslu_lanev2si ((int64x2_t) __a, (int32x2_t) __b, (int32x2_t) __c, __d);
8158 }
8159
8160 __extension__ extern __inline int32x4_t
8161 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlsl_lane_s16(int32x4_t __a,int16x4_t __b,int16x4_t __c,const int __d)8162 vqdmlsl_lane_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
8163 {
8164 return (int32x4_t)__builtin_neon_vqdmlsl_lanev4hi (__a, __b, __c, __d);
8165 }
8166
8167 __extension__ extern __inline int64x2_t
8168 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlsl_lane_s32(int64x2_t __a,int32x2_t __b,int32x2_t __c,const int __d)8169 vqdmlsl_lane_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
8170 {
8171 return (int64x2_t)__builtin_neon_vqdmlsl_lanev2si (__a, __b, __c, __d);
8172 }
8173
8174 __extension__ extern __inline int32x4_t
8175 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_lane_s16(int16x4_t __a,int16x4_t __b,const int __c)8176 vmull_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c)
8177 {
8178 return (int32x4_t)__builtin_neon_vmulls_lanev4hi (__a, __b, __c);
8179 }
8180
8181 __extension__ extern __inline int64x2_t
8182 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_lane_s32(int32x2_t __a,int32x2_t __b,const int __c)8183 vmull_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c)
8184 {
8185 return (int64x2_t)__builtin_neon_vmulls_lanev2si (__a, __b, __c);
8186 }
8187
8188 __extension__ extern __inline uint32x4_t
8189 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_lane_u16(uint16x4_t __a,uint16x4_t __b,const int __c)8190 vmull_lane_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
8191 {
8192 return (uint32x4_t)__builtin_neon_vmullu_lanev4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
8193 }
8194
8195 __extension__ extern __inline uint64x2_t
8196 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_lane_u32(uint32x2_t __a,uint32x2_t __b,const int __c)8197 vmull_lane_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
8198 {
8199 return (uint64x2_t)__builtin_neon_vmullu_lanev2si ((int32x2_t) __a, (int32x2_t) __b, __c);
8200 }
8201
8202 __extension__ extern __inline int32x4_t
8203 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmull_lane_s16(int16x4_t __a,int16x4_t __b,const int __c)8204 vqdmull_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c)
8205 {
8206 return (int32x4_t)__builtin_neon_vqdmull_lanev4hi (__a, __b, __c);
8207 }
8208
8209 __extension__ extern __inline int64x2_t
8210 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmull_lane_s32(int32x2_t __a,int32x2_t __b,const int __c)8211 vqdmull_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c)
8212 {
8213 return (int64x2_t)__builtin_neon_vqdmull_lanev2si (__a, __b, __c);
8214 }
8215
8216 __extension__ extern __inline int16x8_t
8217 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulhq_lane_s16(int16x8_t __a,int16x4_t __b,const int __c)8218 vqdmulhq_lane_s16 (int16x8_t __a, int16x4_t __b, const int __c)
8219 {
8220 return (int16x8_t)__builtin_neon_vqdmulh_lanev8hi (__a, __b, __c);
8221 }
8222
8223 __extension__ extern __inline int32x4_t
8224 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulhq_lane_s32(int32x4_t __a,int32x2_t __b,const int __c)8225 vqdmulhq_lane_s32 (int32x4_t __a, int32x2_t __b, const int __c)
8226 {
8227 return (int32x4_t)__builtin_neon_vqdmulh_lanev4si (__a, __b, __c);
8228 }
8229
8230 __extension__ extern __inline int16x4_t
8231 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulh_lane_s16(int16x4_t __a,int16x4_t __b,const int __c)8232 vqdmulh_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c)
8233 {
8234 return (int16x4_t)__builtin_neon_vqdmulh_lanev4hi (__a, __b, __c);
8235 }
8236
8237 __extension__ extern __inline int32x2_t
8238 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulh_lane_s32(int32x2_t __a,int32x2_t __b,const int __c)8239 vqdmulh_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c)
8240 {
8241 return (int32x2_t)__builtin_neon_vqdmulh_lanev2si (__a, __b, __c);
8242 }
8243
8244 __extension__ extern __inline int16x8_t
8245 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulhq_lane_s16(int16x8_t __a,int16x4_t __b,const int __c)8246 vqrdmulhq_lane_s16 (int16x8_t __a, int16x4_t __b, const int __c)
8247 {
8248 return (int16x8_t)__builtin_neon_vqrdmulh_lanev8hi (__a, __b, __c);
8249 }
8250
8251 __extension__ extern __inline int32x4_t
8252 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulhq_lane_s32(int32x4_t __a,int32x2_t __b,const int __c)8253 vqrdmulhq_lane_s32 (int32x4_t __a, int32x2_t __b, const int __c)
8254 {
8255 return (int32x4_t)__builtin_neon_vqrdmulh_lanev4si (__a, __b, __c);
8256 }
8257
8258 __extension__ extern __inline int16x4_t
8259 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulh_lane_s16(int16x4_t __a,int16x4_t __b,const int __c)8260 vqrdmulh_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c)
8261 {
8262 return (int16x4_t)__builtin_neon_vqrdmulh_lanev4hi (__a, __b, __c);
8263 }
8264
8265 __extension__ extern __inline int32x2_t
8266 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulh_lane_s32(int32x2_t __a,int32x2_t __b,const int __c)8267 vqrdmulh_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c)
8268 {
8269 return (int32x2_t)__builtin_neon_vqrdmulh_lanev2si (__a, __b, __c);
8270 }
8271
8272 #ifdef __ARM_FEATURE_QRDMX
8273 __extension__ extern __inline int16x8_t
8274 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlahq_lane_s16(int16x8_t __a,int16x8_t __b,int16x4_t __c,const int __d)8275 vqrdmlahq_lane_s16 (int16x8_t __a, int16x8_t __b, int16x4_t __c, const int __d)
8276 {
8277 return (int16x8_t)__builtin_neon_vqrdmlah_lanev8hi (__a, __b, __c, __d);
8278 }
8279
8280 __extension__ extern __inline int32x4_t
8281 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlahq_lane_s32(int32x4_t __a,int32x4_t __b,int32x2_t __c,const int __d)8282 vqrdmlahq_lane_s32 (int32x4_t __a, int32x4_t __b, int32x2_t __c, const int __d)
8283 {
8284 return (int32x4_t)__builtin_neon_vqrdmlah_lanev4si (__a, __b, __c, __d);
8285 }
8286
8287 __extension__ extern __inline int16x4_t
8288 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlah_lane_s16(int16x4_t __a,int16x4_t __b,int16x4_t __c,const int __d)8289 vqrdmlah_lane_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
8290 {
8291 return (int16x4_t)__builtin_neon_vqrdmlah_lanev4hi (__a, __b, __c, __d);
8292 }
8293
8294 __extension__ extern __inline int32x2_t
8295 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlah_lane_s32(int32x2_t __a,int32x2_t __b,int32x2_t __c,const int __d)8296 vqrdmlah_lane_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
8297 {
8298 return (int32x2_t)__builtin_neon_vqrdmlah_lanev2si (__a, __b, __c, __d);
8299 }
8300
8301 __extension__ extern __inline int16x8_t
8302 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlshq_lane_s16(int16x8_t __a,int16x8_t __b,int16x4_t __c,const int __d)8303 vqrdmlshq_lane_s16 (int16x8_t __a, int16x8_t __b, int16x4_t __c, const int __d)
8304 {
8305 return (int16x8_t)__builtin_neon_vqrdmlsh_lanev8hi (__a, __b, __c, __d);
8306 }
8307
8308 __extension__ extern __inline int32x4_t
8309 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlshq_lane_s32(int32x4_t __a,int32x4_t __b,int32x2_t __c,const int __d)8310 vqrdmlshq_lane_s32 (int32x4_t __a, int32x4_t __b, int32x2_t __c, const int __d)
8311 {
8312 return (int32x4_t)__builtin_neon_vqrdmlsh_lanev4si (__a, __b, __c, __d);
8313 }
8314
8315 __extension__ extern __inline int16x4_t
8316 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlsh_lane_s16(int16x4_t __a,int16x4_t __b,int16x4_t __c,const int __d)8317 vqrdmlsh_lane_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
8318 {
8319 return (int16x4_t)__builtin_neon_vqrdmlsh_lanev4hi (__a, __b, __c, __d);
8320 }
8321
8322 __extension__ extern __inline int32x2_t
8323 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlsh_lane_s32(int32x2_t __a,int32x2_t __b,int32x2_t __c,const int __d)8324 vqrdmlsh_lane_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
8325 {
8326 return (int32x2_t)__builtin_neon_vqrdmlsh_lanev2si (__a, __b, __c, __d);
8327 }
8328 #endif
8329
8330 __extension__ extern __inline int16x4_t
8331 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_n_s16(int16x4_t __a,int16_t __b)8332 vmul_n_s16 (int16x4_t __a, int16_t __b)
8333 {
8334 return (int16x4_t)__builtin_neon_vmul_nv4hi (__a, (__builtin_neon_hi) __b);
8335 }
8336
8337 __extension__ extern __inline int32x2_t
8338 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_n_s32(int32x2_t __a,int32_t __b)8339 vmul_n_s32 (int32x2_t __a, int32_t __b)
8340 {
8341 return (int32x2_t)__builtin_neon_vmul_nv2si (__a, (__builtin_neon_si) __b);
8342 }
8343
8344 __extension__ extern __inline float32x2_t
8345 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_n_f32(float32x2_t __a,float32_t __b)8346 vmul_n_f32 (float32x2_t __a, float32_t __b)
8347 {
8348 return (float32x2_t)__builtin_neon_vmul_nv2sf (__a, (__builtin_neon_sf) __b);
8349 }
8350
8351 __extension__ extern __inline uint16x4_t
8352 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_n_u16(uint16x4_t __a,uint16_t __b)8353 vmul_n_u16 (uint16x4_t __a, uint16_t __b)
8354 {
8355 return (uint16x4_t)__builtin_neon_vmul_nv4hi ((int16x4_t) __a, (__builtin_neon_hi) __b);
8356 }
8357
8358 __extension__ extern __inline uint32x2_t
8359 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_n_u32(uint32x2_t __a,uint32_t __b)8360 vmul_n_u32 (uint32x2_t __a, uint32_t __b)
8361 {
8362 return (uint32x2_t)__builtin_neon_vmul_nv2si ((int32x2_t) __a, (__builtin_neon_si) __b);
8363 }
8364
8365 __extension__ extern __inline int16x8_t
8366 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_n_s16(int16x8_t __a,int16_t __b)8367 vmulq_n_s16 (int16x8_t __a, int16_t __b)
8368 {
8369 return (int16x8_t)__builtin_neon_vmul_nv8hi (__a, (__builtin_neon_hi) __b);
8370 }
8371
8372 __extension__ extern __inline int32x4_t
8373 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_n_s32(int32x4_t __a,int32_t __b)8374 vmulq_n_s32 (int32x4_t __a, int32_t __b)
8375 {
8376 return (int32x4_t)__builtin_neon_vmul_nv4si (__a, (__builtin_neon_si) __b);
8377 }
8378
8379 __extension__ extern __inline float32x4_t
8380 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_n_f32(float32x4_t __a,float32_t __b)8381 vmulq_n_f32 (float32x4_t __a, float32_t __b)
8382 {
8383 return (float32x4_t)__builtin_neon_vmul_nv4sf (__a, (__builtin_neon_sf) __b);
8384 }
8385
8386 __extension__ extern __inline uint16x8_t
8387 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_n_u16(uint16x8_t __a,uint16_t __b)8388 vmulq_n_u16 (uint16x8_t __a, uint16_t __b)
8389 {
8390 return (uint16x8_t)__builtin_neon_vmul_nv8hi ((int16x8_t) __a, (__builtin_neon_hi) __b);
8391 }
8392
8393 __extension__ extern __inline uint32x4_t
8394 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_n_u32(uint32x4_t __a,uint32_t __b)8395 vmulq_n_u32 (uint32x4_t __a, uint32_t __b)
8396 {
8397 return (uint32x4_t)__builtin_neon_vmul_nv4si ((int32x4_t) __a, (__builtin_neon_si) __b);
8398 }
8399
8400 __extension__ extern __inline int32x4_t
8401 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_n_s16(int16x4_t __a,int16_t __b)8402 vmull_n_s16 (int16x4_t __a, int16_t __b)
8403 {
8404 return (int32x4_t)__builtin_neon_vmulls_nv4hi (__a, (__builtin_neon_hi) __b);
8405 }
8406
8407 __extension__ extern __inline int64x2_t
8408 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_n_s32(int32x2_t __a,int32_t __b)8409 vmull_n_s32 (int32x2_t __a, int32_t __b)
8410 {
8411 return (int64x2_t)__builtin_neon_vmulls_nv2si (__a, (__builtin_neon_si) __b);
8412 }
8413
8414 __extension__ extern __inline uint32x4_t
8415 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_n_u16(uint16x4_t __a,uint16_t __b)8416 vmull_n_u16 (uint16x4_t __a, uint16_t __b)
8417 {
8418 return (uint32x4_t)__builtin_neon_vmullu_nv4hi ((int16x4_t) __a, (__builtin_neon_hi) __b);
8419 }
8420
8421 __extension__ extern __inline uint64x2_t
8422 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_n_u32(uint32x2_t __a,uint32_t __b)8423 vmull_n_u32 (uint32x2_t __a, uint32_t __b)
8424 {
8425 return (uint64x2_t)__builtin_neon_vmullu_nv2si ((int32x2_t) __a, (__builtin_neon_si) __b);
8426 }
8427
8428 __extension__ extern __inline int32x4_t
8429 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmull_n_s16(int16x4_t __a,int16_t __b)8430 vqdmull_n_s16 (int16x4_t __a, int16_t __b)
8431 {
8432 return (int32x4_t)__builtin_neon_vqdmull_nv4hi (__a, (__builtin_neon_hi) __b);
8433 }
8434
8435 __extension__ extern __inline int64x2_t
8436 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmull_n_s32(int32x2_t __a,int32_t __b)8437 vqdmull_n_s32 (int32x2_t __a, int32_t __b)
8438 {
8439 return (int64x2_t)__builtin_neon_vqdmull_nv2si (__a, (__builtin_neon_si) __b);
8440 }
8441
8442 __extension__ extern __inline int16x8_t
8443 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulhq_n_s16(int16x8_t __a,int16_t __b)8444 vqdmulhq_n_s16 (int16x8_t __a, int16_t __b)
8445 {
8446 return (int16x8_t)__builtin_neon_vqdmulh_nv8hi (__a, (__builtin_neon_hi) __b);
8447 }
8448
8449 __extension__ extern __inline int32x4_t
8450 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulhq_n_s32(int32x4_t __a,int32_t __b)8451 vqdmulhq_n_s32 (int32x4_t __a, int32_t __b)
8452 {
8453 return (int32x4_t)__builtin_neon_vqdmulh_nv4si (__a, (__builtin_neon_si) __b);
8454 }
8455
8456 __extension__ extern __inline int16x4_t
8457 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulh_n_s16(int16x4_t __a,int16_t __b)8458 vqdmulh_n_s16 (int16x4_t __a, int16_t __b)
8459 {
8460 return (int16x4_t)__builtin_neon_vqdmulh_nv4hi (__a, (__builtin_neon_hi) __b);
8461 }
8462
8463 __extension__ extern __inline int32x2_t
8464 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulh_n_s32(int32x2_t __a,int32_t __b)8465 vqdmulh_n_s32 (int32x2_t __a, int32_t __b)
8466 {
8467 return (int32x2_t)__builtin_neon_vqdmulh_nv2si (__a, (__builtin_neon_si) __b);
8468 }
8469
8470 __extension__ extern __inline int16x8_t
8471 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulhq_n_s16(int16x8_t __a,int16_t __b)8472 vqrdmulhq_n_s16 (int16x8_t __a, int16_t __b)
8473 {
8474 return (int16x8_t)__builtin_neon_vqrdmulh_nv8hi (__a, (__builtin_neon_hi) __b);
8475 }
8476
8477 __extension__ extern __inline int32x4_t
8478 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulhq_n_s32(int32x4_t __a,int32_t __b)8479 vqrdmulhq_n_s32 (int32x4_t __a, int32_t __b)
8480 {
8481 return (int32x4_t)__builtin_neon_vqrdmulh_nv4si (__a, (__builtin_neon_si) __b);
8482 }
8483
8484 __extension__ extern __inline int16x4_t
8485 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulh_n_s16(int16x4_t __a,int16_t __b)8486 vqrdmulh_n_s16 (int16x4_t __a, int16_t __b)
8487 {
8488 return (int16x4_t)__builtin_neon_vqrdmulh_nv4hi (__a, (__builtin_neon_hi) __b);
8489 }
8490
8491 __extension__ extern __inline int32x2_t
8492 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulh_n_s32(int32x2_t __a,int32_t __b)8493 vqrdmulh_n_s32 (int32x2_t __a, int32_t __b)
8494 {
8495 return (int32x2_t)__builtin_neon_vqrdmulh_nv2si (__a, (__builtin_neon_si) __b);
8496 }
8497
8498 __extension__ extern __inline int16x4_t
8499 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_n_s16(int16x4_t __a,int16x4_t __b,int16_t __c)8500 vmla_n_s16 (int16x4_t __a, int16x4_t __b, int16_t __c)
8501 {
8502 return (int16x4_t)__builtin_neon_vmla_nv4hi (__a, __b, (__builtin_neon_hi) __c);
8503 }
8504
8505 __extension__ extern __inline int32x2_t
8506 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_n_s32(int32x2_t __a,int32x2_t __b,int32_t __c)8507 vmla_n_s32 (int32x2_t __a, int32x2_t __b, int32_t __c)
8508 {
8509 return (int32x2_t)__builtin_neon_vmla_nv2si (__a, __b, (__builtin_neon_si) __c);
8510 }
8511
8512 __extension__ extern __inline float32x2_t
8513 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_n_f32(float32x2_t __a,float32x2_t __b,float32_t __c)8514 vmla_n_f32 (float32x2_t __a, float32x2_t __b, float32_t __c)
8515 {
8516 return (float32x2_t)__builtin_neon_vmla_nv2sf (__a, __b, (__builtin_neon_sf) __c);
8517 }
8518
8519 __extension__ extern __inline uint16x4_t
8520 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_n_u16(uint16x4_t __a,uint16x4_t __b,uint16_t __c)8521 vmla_n_u16 (uint16x4_t __a, uint16x4_t __b, uint16_t __c)
8522 {
8523 return (uint16x4_t)__builtin_neon_vmla_nv4hi ((int16x4_t) __a, (int16x4_t) __b, (__builtin_neon_hi) __c);
8524 }
8525
8526 __extension__ extern __inline uint32x2_t
8527 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_n_u32(uint32x2_t __a,uint32x2_t __b,uint32_t __c)8528 vmla_n_u32 (uint32x2_t __a, uint32x2_t __b, uint32_t __c)
8529 {
8530 return (uint32x2_t)__builtin_neon_vmla_nv2si ((int32x2_t) __a, (int32x2_t) __b, (__builtin_neon_si) __c);
8531 }
8532
8533 __extension__ extern __inline int16x8_t
8534 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_n_s16(int16x8_t __a,int16x8_t __b,int16_t __c)8535 vmlaq_n_s16 (int16x8_t __a, int16x8_t __b, int16_t __c)
8536 {
8537 return (int16x8_t)__builtin_neon_vmla_nv8hi (__a, __b, (__builtin_neon_hi) __c);
8538 }
8539
8540 __extension__ extern __inline int32x4_t
8541 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_n_s32(int32x4_t __a,int32x4_t __b,int32_t __c)8542 vmlaq_n_s32 (int32x4_t __a, int32x4_t __b, int32_t __c)
8543 {
8544 return (int32x4_t)__builtin_neon_vmla_nv4si (__a, __b, (__builtin_neon_si) __c);
8545 }
8546
8547 __extension__ extern __inline float32x4_t
8548 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_n_f32(float32x4_t __a,float32x4_t __b,float32_t __c)8549 vmlaq_n_f32 (float32x4_t __a, float32x4_t __b, float32_t __c)
8550 {
8551 return (float32x4_t)__builtin_neon_vmla_nv4sf (__a, __b, (__builtin_neon_sf) __c);
8552 }
8553
8554 __extension__ extern __inline uint16x8_t
8555 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_n_u16(uint16x8_t __a,uint16x8_t __b,uint16_t __c)8556 vmlaq_n_u16 (uint16x8_t __a, uint16x8_t __b, uint16_t __c)
8557 {
8558 return (uint16x8_t)__builtin_neon_vmla_nv8hi ((int16x8_t) __a, (int16x8_t) __b, (__builtin_neon_hi) __c);
8559 }
8560
8561 __extension__ extern __inline uint32x4_t
8562 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_n_u32(uint32x4_t __a,uint32x4_t __b,uint32_t __c)8563 vmlaq_n_u32 (uint32x4_t __a, uint32x4_t __b, uint32_t __c)
8564 {
8565 return (uint32x4_t)__builtin_neon_vmla_nv4si ((int32x4_t) __a, (int32x4_t) __b, (__builtin_neon_si) __c);
8566 }
8567
8568 __extension__ extern __inline int32x4_t
8569 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_n_s16(int32x4_t __a,int16x4_t __b,int16_t __c)8570 vmlal_n_s16 (int32x4_t __a, int16x4_t __b, int16_t __c)
8571 {
8572 return (int32x4_t)__builtin_neon_vmlals_nv4hi (__a, __b, (__builtin_neon_hi) __c);
8573 }
8574
8575 __extension__ extern __inline int64x2_t
8576 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_n_s32(int64x2_t __a,int32x2_t __b,int32_t __c)8577 vmlal_n_s32 (int64x2_t __a, int32x2_t __b, int32_t __c)
8578 {
8579 return (int64x2_t)__builtin_neon_vmlals_nv2si (__a, __b, (__builtin_neon_si) __c);
8580 }
8581
8582 __extension__ extern __inline uint32x4_t
8583 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_n_u16(uint32x4_t __a,uint16x4_t __b,uint16_t __c)8584 vmlal_n_u16 (uint32x4_t __a, uint16x4_t __b, uint16_t __c)
8585 {
8586 return (uint32x4_t)__builtin_neon_vmlalu_nv4hi ((int32x4_t) __a, (int16x4_t) __b, (__builtin_neon_hi) __c);
8587 }
8588
8589 __extension__ extern __inline uint64x2_t
8590 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_n_u32(uint64x2_t __a,uint32x2_t __b,uint32_t __c)8591 vmlal_n_u32 (uint64x2_t __a, uint32x2_t __b, uint32_t __c)
8592 {
8593 return (uint64x2_t)__builtin_neon_vmlalu_nv2si ((int64x2_t) __a, (int32x2_t) __b, (__builtin_neon_si) __c);
8594 }
8595
8596 __extension__ extern __inline int32x4_t
8597 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlal_n_s16(int32x4_t __a,int16x4_t __b,int16_t __c)8598 vqdmlal_n_s16 (int32x4_t __a, int16x4_t __b, int16_t __c)
8599 {
8600 return (int32x4_t)__builtin_neon_vqdmlal_nv4hi (__a, __b, (__builtin_neon_hi) __c);
8601 }
8602
8603 __extension__ extern __inline int64x2_t
8604 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlal_n_s32(int64x2_t __a,int32x2_t __b,int32_t __c)8605 vqdmlal_n_s32 (int64x2_t __a, int32x2_t __b, int32_t __c)
8606 {
8607 return (int64x2_t)__builtin_neon_vqdmlal_nv2si (__a, __b, (__builtin_neon_si) __c);
8608 }
8609
8610 __extension__ extern __inline int16x4_t
8611 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_n_s16(int16x4_t __a,int16x4_t __b,int16_t __c)8612 vmls_n_s16 (int16x4_t __a, int16x4_t __b, int16_t __c)
8613 {
8614 return (int16x4_t)__builtin_neon_vmls_nv4hi (__a, __b, (__builtin_neon_hi) __c);
8615 }
8616
8617 __extension__ extern __inline int32x2_t
8618 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_n_s32(int32x2_t __a,int32x2_t __b,int32_t __c)8619 vmls_n_s32 (int32x2_t __a, int32x2_t __b, int32_t __c)
8620 {
8621 return (int32x2_t)__builtin_neon_vmls_nv2si (__a, __b, (__builtin_neon_si) __c);
8622 }
8623
8624 __extension__ extern __inline float32x2_t
8625 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_n_f32(float32x2_t __a,float32x2_t __b,float32_t __c)8626 vmls_n_f32 (float32x2_t __a, float32x2_t __b, float32_t __c)
8627 {
8628 return (float32x2_t)__builtin_neon_vmls_nv2sf (__a, __b, (__builtin_neon_sf) __c);
8629 }
8630
8631 __extension__ extern __inline uint16x4_t
8632 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_n_u16(uint16x4_t __a,uint16x4_t __b,uint16_t __c)8633 vmls_n_u16 (uint16x4_t __a, uint16x4_t __b, uint16_t __c)
8634 {
8635 return (uint16x4_t)__builtin_neon_vmls_nv4hi ((int16x4_t) __a, (int16x4_t) __b, (__builtin_neon_hi) __c);
8636 }
8637
8638 __extension__ extern __inline uint32x2_t
8639 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_n_u32(uint32x2_t __a,uint32x2_t __b,uint32_t __c)8640 vmls_n_u32 (uint32x2_t __a, uint32x2_t __b, uint32_t __c)
8641 {
8642 return (uint32x2_t)__builtin_neon_vmls_nv2si ((int32x2_t) __a, (int32x2_t) __b, (__builtin_neon_si) __c);
8643 }
8644
8645 __extension__ extern __inline int16x8_t
8646 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_n_s16(int16x8_t __a,int16x8_t __b,int16_t __c)8647 vmlsq_n_s16 (int16x8_t __a, int16x8_t __b, int16_t __c)
8648 {
8649 return (int16x8_t)__builtin_neon_vmls_nv8hi (__a, __b, (__builtin_neon_hi) __c);
8650 }
8651
8652 __extension__ extern __inline int32x4_t
8653 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_n_s32(int32x4_t __a,int32x4_t __b,int32_t __c)8654 vmlsq_n_s32 (int32x4_t __a, int32x4_t __b, int32_t __c)
8655 {
8656 return (int32x4_t)__builtin_neon_vmls_nv4si (__a, __b, (__builtin_neon_si) __c);
8657 }
8658
8659 __extension__ extern __inline float32x4_t
8660 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_n_f32(float32x4_t __a,float32x4_t __b,float32_t __c)8661 vmlsq_n_f32 (float32x4_t __a, float32x4_t __b, float32_t __c)
8662 {
8663 return (float32x4_t)__builtin_neon_vmls_nv4sf (__a, __b, (__builtin_neon_sf) __c);
8664 }
8665
8666 __extension__ extern __inline uint16x8_t
8667 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_n_u16(uint16x8_t __a,uint16x8_t __b,uint16_t __c)8668 vmlsq_n_u16 (uint16x8_t __a, uint16x8_t __b, uint16_t __c)
8669 {
8670 return (uint16x8_t)__builtin_neon_vmls_nv8hi ((int16x8_t) __a, (int16x8_t) __b, (__builtin_neon_hi) __c);
8671 }
8672
8673 __extension__ extern __inline uint32x4_t
8674 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_n_u32(uint32x4_t __a,uint32x4_t __b,uint32_t __c)8675 vmlsq_n_u32 (uint32x4_t __a, uint32x4_t __b, uint32_t __c)
8676 {
8677 return (uint32x4_t)__builtin_neon_vmls_nv4si ((int32x4_t) __a, (int32x4_t) __b, (__builtin_neon_si) __c);
8678 }
8679
8680 __extension__ extern __inline int32x4_t
8681 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_n_s16(int32x4_t __a,int16x4_t __b,int16_t __c)8682 vmlsl_n_s16 (int32x4_t __a, int16x4_t __b, int16_t __c)
8683 {
8684 return (int32x4_t)__builtin_neon_vmlsls_nv4hi (__a, __b, (__builtin_neon_hi) __c);
8685 }
8686
8687 __extension__ extern __inline int64x2_t
8688 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_n_s32(int64x2_t __a,int32x2_t __b,int32_t __c)8689 vmlsl_n_s32 (int64x2_t __a, int32x2_t __b, int32_t __c)
8690 {
8691 return (int64x2_t)__builtin_neon_vmlsls_nv2si (__a, __b, (__builtin_neon_si) __c);
8692 }
8693
8694 __extension__ extern __inline uint32x4_t
8695 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_n_u16(uint32x4_t __a,uint16x4_t __b,uint16_t __c)8696 vmlsl_n_u16 (uint32x4_t __a, uint16x4_t __b, uint16_t __c)
8697 {
8698 return (uint32x4_t)__builtin_neon_vmlslu_nv4hi ((int32x4_t) __a, (int16x4_t) __b, (__builtin_neon_hi) __c);
8699 }
8700
8701 __extension__ extern __inline uint64x2_t
8702 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_n_u32(uint64x2_t __a,uint32x2_t __b,uint32_t __c)8703 vmlsl_n_u32 (uint64x2_t __a, uint32x2_t __b, uint32_t __c)
8704 {
8705 return (uint64x2_t)__builtin_neon_vmlslu_nv2si ((int64x2_t) __a, (int32x2_t) __b, (__builtin_neon_si) __c);
8706 }
8707
8708 __extension__ extern __inline int32x4_t
8709 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlsl_n_s16(int32x4_t __a,int16x4_t __b,int16_t __c)8710 vqdmlsl_n_s16 (int32x4_t __a, int16x4_t __b, int16_t __c)
8711 {
8712 return (int32x4_t)__builtin_neon_vqdmlsl_nv4hi (__a, __b, (__builtin_neon_hi) __c);
8713 }
8714
8715 __extension__ extern __inline int64x2_t
8716 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlsl_n_s32(int64x2_t __a,int32x2_t __b,int32_t __c)8717 vqdmlsl_n_s32 (int64x2_t __a, int32x2_t __b, int32_t __c)
8718 {
8719 return (int64x2_t)__builtin_neon_vqdmlsl_nv2si (__a, __b, (__builtin_neon_si) __c);
8720 }
8721
8722 #pragma GCC push_options
8723 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
8724 __extension__ extern __inline poly64x1_t
8725 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vext_p64(poly64x1_t __a,poly64x1_t __b,const int __c)8726 vext_p64 (poly64x1_t __a, poly64x1_t __b, const int __c)
8727 {
8728 return (poly64x1_t)__builtin_neon_vextdi (__a, __b, __c);
8729 }
8730
8731 #pragma GCC pop_options
8732 __extension__ extern __inline int8x8_t
8733 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vext_s8(int8x8_t __a,int8x8_t __b,const int __c)8734 vext_s8 (int8x8_t __a, int8x8_t __b, const int __c)
8735 {
8736 return (int8x8_t)__builtin_neon_vextv8qi (__a, __b, __c);
8737 }
8738
8739 __extension__ extern __inline int16x4_t
8740 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vext_s16(int16x4_t __a,int16x4_t __b,const int __c)8741 vext_s16 (int16x4_t __a, int16x4_t __b, const int __c)
8742 {
8743 return (int16x4_t)__builtin_neon_vextv4hi (__a, __b, __c);
8744 }
8745
8746 __extension__ extern __inline int32x2_t
8747 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vext_s32(int32x2_t __a,int32x2_t __b,const int __c)8748 vext_s32 (int32x2_t __a, int32x2_t __b, const int __c)
8749 {
8750 return (int32x2_t)__builtin_neon_vextv2si (__a, __b, __c);
8751 }
8752
8753 __extension__ extern __inline int64x1_t
8754 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vext_s64(int64x1_t __a,int64x1_t __b,const int __c)8755 vext_s64 (int64x1_t __a, int64x1_t __b, const int __c)
8756 {
8757 return (int64x1_t)__builtin_neon_vextdi (__a, __b, __c);
8758 }
8759
8760 __extension__ extern __inline float32x2_t
8761 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vext_f32(float32x2_t __a,float32x2_t __b,const int __c)8762 vext_f32 (float32x2_t __a, float32x2_t __b, const int __c)
8763 {
8764 return (float32x2_t)__builtin_neon_vextv2sf (__a, __b, __c);
8765 }
8766
8767 __extension__ extern __inline uint8x8_t
8768 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vext_u8(uint8x8_t __a,uint8x8_t __b,const int __c)8769 vext_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
8770 {
8771 return (uint8x8_t)__builtin_neon_vextv8qi ((int8x8_t) __a, (int8x8_t) __b, __c);
8772 }
8773
8774 __extension__ extern __inline uint16x4_t
8775 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vext_u16(uint16x4_t __a,uint16x4_t __b,const int __c)8776 vext_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
8777 {
8778 return (uint16x4_t)__builtin_neon_vextv4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
8779 }
8780
8781 __extension__ extern __inline uint32x2_t
8782 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vext_u32(uint32x2_t __a,uint32x2_t __b,const int __c)8783 vext_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
8784 {
8785 return (uint32x2_t)__builtin_neon_vextv2si ((int32x2_t) __a, (int32x2_t) __b, __c);
8786 }
8787
8788 __extension__ extern __inline uint64x1_t
8789 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vext_u64(uint64x1_t __a,uint64x1_t __b,const int __c)8790 vext_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
8791 {
8792 return (uint64x1_t)__builtin_neon_vextdi ((int64x1_t) __a, (int64x1_t) __b, __c);
8793 }
8794
8795 __extension__ extern __inline poly8x8_t
8796 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vext_p8(poly8x8_t __a,poly8x8_t __b,const int __c)8797 vext_p8 (poly8x8_t __a, poly8x8_t __b, const int __c)
8798 {
8799 return (poly8x8_t)__builtin_neon_vextv8qi ((int8x8_t) __a, (int8x8_t) __b, __c);
8800 }
8801
8802 __extension__ extern __inline poly16x4_t
8803 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vext_p16(poly16x4_t __a,poly16x4_t __b,const int __c)8804 vext_p16 (poly16x4_t __a, poly16x4_t __b, const int __c)
8805 {
8806 return (poly16x4_t)__builtin_neon_vextv4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
8807 }
8808
8809 #pragma GCC push_options
8810 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
8811 __extension__ extern __inline poly64x2_t
8812 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vextq_p64(poly64x2_t __a,poly64x2_t __b,const int __c)8813 vextq_p64 (poly64x2_t __a, poly64x2_t __b, const int __c)
8814 {
8815 return (poly64x2_t)__builtin_neon_vextv2di ((int64x2_t) __a, (int64x2_t) __b, __c);
8816 }
8817
8818 #pragma GCC pop_options
8819 __extension__ extern __inline int8x16_t
8820 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vextq_s8(int8x16_t __a,int8x16_t __b,const int __c)8821 vextq_s8 (int8x16_t __a, int8x16_t __b, const int __c)
8822 {
8823 return (int8x16_t)__builtin_neon_vextv16qi (__a, __b, __c);
8824 }
8825
8826 __extension__ extern __inline int16x8_t
8827 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vextq_s16(int16x8_t __a,int16x8_t __b,const int __c)8828 vextq_s16 (int16x8_t __a, int16x8_t __b, const int __c)
8829 {
8830 return (int16x8_t)__builtin_neon_vextv8hi (__a, __b, __c);
8831 }
8832
8833 __extension__ extern __inline int32x4_t
8834 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vextq_s32(int32x4_t __a,int32x4_t __b,const int __c)8835 vextq_s32 (int32x4_t __a, int32x4_t __b, const int __c)
8836 {
8837 return (int32x4_t)__builtin_neon_vextv4si (__a, __b, __c);
8838 }
8839
8840 __extension__ extern __inline int64x2_t
8841 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vextq_s64(int64x2_t __a,int64x2_t __b,const int __c)8842 vextq_s64 (int64x2_t __a, int64x2_t __b, const int __c)
8843 {
8844 return (int64x2_t)__builtin_neon_vextv2di (__a, __b, __c);
8845 }
8846
8847 __extension__ extern __inline float32x4_t
8848 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vextq_f32(float32x4_t __a,float32x4_t __b,const int __c)8849 vextq_f32 (float32x4_t __a, float32x4_t __b, const int __c)
8850 {
8851 return (float32x4_t)__builtin_neon_vextv4sf (__a, __b, __c);
8852 }
8853
8854 __extension__ extern __inline uint8x16_t
8855 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vextq_u8(uint8x16_t __a,uint8x16_t __b,const int __c)8856 vextq_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
8857 {
8858 return (uint8x16_t)__builtin_neon_vextv16qi ((int8x16_t) __a, (int8x16_t) __b, __c);
8859 }
8860
8861 __extension__ extern __inline uint16x8_t
8862 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vextq_u16(uint16x8_t __a,uint16x8_t __b,const int __c)8863 vextq_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
8864 {
8865 return (uint16x8_t)__builtin_neon_vextv8hi ((int16x8_t) __a, (int16x8_t) __b, __c);
8866 }
8867
8868 __extension__ extern __inline uint32x4_t
8869 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vextq_u32(uint32x4_t __a,uint32x4_t __b,const int __c)8870 vextq_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
8871 {
8872 return (uint32x4_t)__builtin_neon_vextv4si ((int32x4_t) __a, (int32x4_t) __b, __c);
8873 }
8874
8875 __extension__ extern __inline uint64x2_t
8876 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vextq_u64(uint64x2_t __a,uint64x2_t __b,const int __c)8877 vextq_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
8878 {
8879 return (uint64x2_t)__builtin_neon_vextv2di ((int64x2_t) __a, (int64x2_t) __b, __c);
8880 }
8881
8882 __extension__ extern __inline poly8x16_t
8883 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vextq_p8(poly8x16_t __a,poly8x16_t __b,const int __c)8884 vextq_p8 (poly8x16_t __a, poly8x16_t __b, const int __c)
8885 {
8886 return (poly8x16_t)__builtin_neon_vextv16qi ((int8x16_t) __a, (int8x16_t) __b, __c);
8887 }
8888
8889 __extension__ extern __inline poly16x8_t
8890 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vextq_p16(poly16x8_t __a,poly16x8_t __b,const int __c)8891 vextq_p16 (poly16x8_t __a, poly16x8_t __b, const int __c)
8892 {
8893 return (poly16x8_t)__builtin_neon_vextv8hi ((int16x8_t) __a, (int16x8_t) __b, __c);
8894 }
8895
8896 __extension__ extern __inline int8x8_t
8897 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64_s8(int8x8_t __a)8898 vrev64_s8 (int8x8_t __a)
8899 {
8900 return (int8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 7, 6, 5, 4, 3, 2, 1, 0 });
8901 }
8902
8903 __extension__ extern __inline int16x4_t
8904 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64_s16(int16x4_t __a)8905 vrev64_s16 (int16x4_t __a)
8906 {
8907 return (int16x4_t) __builtin_shuffle (__a, (uint16x4_t) { 3, 2, 1, 0 });
8908 }
8909
8910 __extension__ extern __inline int32x2_t
8911 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64_s32(int32x2_t __a)8912 vrev64_s32 (int32x2_t __a)
8913 {
8914 return (int32x2_t) __builtin_shuffle (__a, (uint32x2_t) { 1, 0 });
8915 }
8916
8917 __extension__ extern __inline float32x2_t
8918 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64_f32(float32x2_t __a)8919 vrev64_f32 (float32x2_t __a)
8920 {
8921 return (float32x2_t) __builtin_shuffle (__a, (uint32x2_t) { 1, 0 });
8922 }
8923
8924 __extension__ extern __inline uint8x8_t
8925 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64_u8(uint8x8_t __a)8926 vrev64_u8 (uint8x8_t __a)
8927 {
8928 return (uint8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 7, 6, 5, 4, 3, 2, 1, 0 });
8929 }
8930
8931 __extension__ extern __inline uint16x4_t
8932 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64_u16(uint16x4_t __a)8933 vrev64_u16 (uint16x4_t __a)
8934 {
8935 return (uint16x4_t) __builtin_shuffle (__a, (uint16x4_t) { 3, 2, 1, 0 });
8936 }
8937
8938 __extension__ extern __inline uint32x2_t
8939 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64_u32(uint32x2_t __a)8940 vrev64_u32 (uint32x2_t __a)
8941 {
8942 return (uint32x2_t) __builtin_shuffle (__a, (uint32x2_t) { 1, 0 });
8943 }
8944
8945 __extension__ extern __inline poly8x8_t
8946 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64_p8(poly8x8_t __a)8947 vrev64_p8 (poly8x8_t __a)
8948 {
8949 return (poly8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 7, 6, 5, 4, 3, 2, 1, 0 });
8950 }
8951
8952 __extension__ extern __inline poly16x4_t
8953 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64_p16(poly16x4_t __a)8954 vrev64_p16 (poly16x4_t __a)
8955 {
8956 return (poly16x4_t) __builtin_shuffle (__a, (uint16x4_t) { 3, 2, 1, 0 });
8957 }
8958
8959 __extension__ extern __inline int8x16_t
8960 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64q_s8(int8x16_t __a)8961 vrev64q_s8 (int8x16_t __a)
8962 {
8963 return (int8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 });
8964 }
8965
8966 __extension__ extern __inline int16x8_t
8967 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64q_s16(int16x8_t __a)8968 vrev64q_s16 (int16x8_t __a)
8969 {
8970 return (int16x8_t) __builtin_shuffle (__a, (uint16x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
8971 }
8972
8973 __extension__ extern __inline int32x4_t
8974 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64q_s32(int32x4_t __a)8975 vrev64q_s32 (int32x4_t __a)
8976 {
8977 return (int32x4_t) __builtin_shuffle (__a, (uint32x4_t) { 1, 0, 3, 2 });
8978 }
8979
8980 __extension__ extern __inline float32x4_t
8981 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64q_f32(float32x4_t __a)8982 vrev64q_f32 (float32x4_t __a)
8983 {
8984 return (float32x4_t) __builtin_shuffle (__a, (uint32x4_t) { 1, 0, 3, 2 });
8985 }
8986
8987 __extension__ extern __inline uint8x16_t
8988 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64q_u8(uint8x16_t __a)8989 vrev64q_u8 (uint8x16_t __a)
8990 {
8991 return (uint8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 });
8992 }
8993
8994 __extension__ extern __inline uint16x8_t
8995 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64q_u16(uint16x8_t __a)8996 vrev64q_u16 (uint16x8_t __a)
8997 {
8998 return (uint16x8_t) __builtin_shuffle (__a, (uint16x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
8999 }
9000
9001 __extension__ extern __inline uint32x4_t
9002 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64q_u32(uint32x4_t __a)9003 vrev64q_u32 (uint32x4_t __a)
9004 {
9005 return (uint32x4_t) __builtin_shuffle (__a, (uint32x4_t) { 1, 0, 3, 2 });
9006 }
9007
9008 __extension__ extern __inline poly8x16_t
9009 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64q_p8(poly8x16_t __a)9010 vrev64q_p8 (poly8x16_t __a)
9011 {
9012 return (poly8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 });
9013 }
9014
9015 __extension__ extern __inline poly16x8_t
9016 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64q_p16(poly16x8_t __a)9017 vrev64q_p16 (poly16x8_t __a)
9018 {
9019 return (poly16x8_t) __builtin_shuffle (__a, (uint16x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
9020 }
9021
9022 __extension__ extern __inline int8x8_t
9023 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev32_s8(int8x8_t __a)9024 vrev32_s8 (int8x8_t __a)
9025 {
9026 return (int8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
9027 }
9028
9029 __extension__ extern __inline int16x4_t
9030 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev32_s16(int16x4_t __a)9031 vrev32_s16 (int16x4_t __a)
9032 {
9033 return (int16x4_t) __builtin_shuffle (__a, (uint16x4_t) { 1, 0, 3, 2 });
9034 }
9035
9036 __extension__ extern __inline uint8x8_t
9037 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev32_u8(uint8x8_t __a)9038 vrev32_u8 (uint8x8_t __a)
9039 {
9040 return (uint8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
9041 }
9042
9043 __extension__ extern __inline uint16x4_t
9044 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev32_u16(uint16x4_t __a)9045 vrev32_u16 (uint16x4_t __a)
9046 {
9047 return (uint16x4_t) __builtin_shuffle (__a, (uint16x4_t) { 1, 0, 3, 2 });
9048 }
9049
9050 __extension__ extern __inline poly8x8_t
9051 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev32_p8(poly8x8_t __a)9052 vrev32_p8 (poly8x8_t __a)
9053 {
9054 return (poly8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
9055 }
9056
9057 __extension__ extern __inline poly16x4_t
9058 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev32_p16(poly16x4_t __a)9059 vrev32_p16 (poly16x4_t __a)
9060 {
9061 return (poly16x4_t) __builtin_shuffle (__a, (uint16x4_t) { 1, 0, 3, 2 });
9062 }
9063
9064 __extension__ extern __inline int8x16_t
9065 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev32q_s8(int8x16_t __a)9066 vrev32q_s8 (int8x16_t __a)
9067 {
9068 return (int8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 });
9069 }
9070
9071 __extension__ extern __inline int16x8_t
9072 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev32q_s16(int16x8_t __a)9073 vrev32q_s16 (int16x8_t __a)
9074 {
9075 return (int16x8_t) __builtin_shuffle (__a, (uint16x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
9076 }
9077
9078 __extension__ extern __inline uint8x16_t
9079 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev32q_u8(uint8x16_t __a)9080 vrev32q_u8 (uint8x16_t __a)
9081 {
9082 return (uint8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 });
9083 }
9084
9085 __extension__ extern __inline uint16x8_t
9086 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev32q_u16(uint16x8_t __a)9087 vrev32q_u16 (uint16x8_t __a)
9088 {
9089 return (uint16x8_t) __builtin_shuffle (__a, (uint16x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
9090 }
9091
9092 __extension__ extern __inline poly8x16_t
9093 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev32q_p8(poly8x16_t __a)9094 vrev32q_p8 (poly8x16_t __a)
9095 {
9096 return (poly8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 });
9097 }
9098
9099 __extension__ extern __inline poly16x8_t
9100 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev32q_p16(poly16x8_t __a)9101 vrev32q_p16 (poly16x8_t __a)
9102 {
9103 return (poly16x8_t) __builtin_shuffle (__a, (uint16x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
9104 }
9105
9106 __extension__ extern __inline int8x8_t
9107 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev16_s8(int8x8_t __a)9108 vrev16_s8 (int8x8_t __a)
9109 {
9110 return (int8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
9111 }
9112
9113 __extension__ extern __inline uint8x8_t
9114 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev16_u8(uint8x8_t __a)9115 vrev16_u8 (uint8x8_t __a)
9116 {
9117 return (uint8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
9118 }
9119
9120 __extension__ extern __inline poly8x8_t
9121 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev16_p8(poly8x8_t __a)9122 vrev16_p8 (poly8x8_t __a)
9123 {
9124 return (poly8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
9125 }
9126
9127 __extension__ extern __inline int8x16_t
9128 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev16q_s8(int8x16_t __a)9129 vrev16q_s8 (int8x16_t __a)
9130 {
9131 return (int8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 });
9132 }
9133
9134 __extension__ extern __inline uint8x16_t
9135 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev16q_u8(uint8x16_t __a)9136 vrev16q_u8 (uint8x16_t __a)
9137 {
9138 return (uint8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 });
9139 }
9140
9141 __extension__ extern __inline poly8x16_t
9142 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev16q_p8(poly8x16_t __a)9143 vrev16q_p8 (poly8x16_t __a)
9144 {
9145 return (poly8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 });
9146 }
9147
9148 #pragma GCC push_options
9149 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
9150 __extension__ extern __inline poly64x1_t
9151 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbsl_p64(uint64x1_t __a,poly64x1_t __b,poly64x1_t __c)9152 vbsl_p64 (uint64x1_t __a, poly64x1_t __b, poly64x1_t __c)
9153 {
9154 return (poly64x1_t)__builtin_neon_vbsldi ((int64x1_t) __a, __b, __c);
9155 }
9156
9157 #pragma GCC pop_options
9158 __extension__ extern __inline int8x8_t
9159 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbsl_s8(uint8x8_t __a,int8x8_t __b,int8x8_t __c)9160 vbsl_s8 (uint8x8_t __a, int8x8_t __b, int8x8_t __c)
9161 {
9162 return (int8x8_t)__builtin_neon_vbslv8qi ((int8x8_t) __a, __b, __c);
9163 }
9164
9165 __extension__ extern __inline int16x4_t
9166 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbsl_s16(uint16x4_t __a,int16x4_t __b,int16x4_t __c)9167 vbsl_s16 (uint16x4_t __a, int16x4_t __b, int16x4_t __c)
9168 {
9169 return (int16x4_t)__builtin_neon_vbslv4hi ((int16x4_t) __a, __b, __c);
9170 }
9171
9172 __extension__ extern __inline int32x2_t
9173 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbsl_s32(uint32x2_t __a,int32x2_t __b,int32x2_t __c)9174 vbsl_s32 (uint32x2_t __a, int32x2_t __b, int32x2_t __c)
9175 {
9176 return (int32x2_t)__builtin_neon_vbslv2si ((int32x2_t) __a, __b, __c);
9177 }
9178
9179 __extension__ extern __inline int64x1_t
9180 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbsl_s64(uint64x1_t __a,int64x1_t __b,int64x1_t __c)9181 vbsl_s64 (uint64x1_t __a, int64x1_t __b, int64x1_t __c)
9182 {
9183 return (int64x1_t)__builtin_neon_vbsldi ((int64x1_t) __a, __b, __c);
9184 }
9185
9186 __extension__ extern __inline float32x2_t
9187 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbsl_f32(uint32x2_t __a,float32x2_t __b,float32x2_t __c)9188 vbsl_f32 (uint32x2_t __a, float32x2_t __b, float32x2_t __c)
9189 {
9190 return (float32x2_t)__builtin_neon_vbslv2sf ((int32x2_t) __a, __b, __c);
9191 }
9192
9193 __extension__ extern __inline uint8x8_t
9194 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbsl_u8(uint8x8_t __a,uint8x8_t __b,uint8x8_t __c)9195 vbsl_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c)
9196 {
9197 return (uint8x8_t)__builtin_neon_vbslv8qi ((int8x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
9198 }
9199
9200 __extension__ extern __inline uint16x4_t
9201 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbsl_u16(uint16x4_t __a,uint16x4_t __b,uint16x4_t __c)9202 vbsl_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c)
9203 {
9204 return (uint16x4_t)__builtin_neon_vbslv4hi ((int16x4_t) __a, (int16x4_t) __b, (int16x4_t) __c);
9205 }
9206
9207 __extension__ extern __inline uint32x2_t
9208 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbsl_u32(uint32x2_t __a,uint32x2_t __b,uint32x2_t __c)9209 vbsl_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c)
9210 {
9211 return (uint32x2_t)__builtin_neon_vbslv2si ((int32x2_t) __a, (int32x2_t) __b, (int32x2_t) __c);
9212 }
9213
9214 __extension__ extern __inline uint64x1_t
9215 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbsl_u64(uint64x1_t __a,uint64x1_t __b,uint64x1_t __c)9216 vbsl_u64 (uint64x1_t __a, uint64x1_t __b, uint64x1_t __c)
9217 {
9218 return (uint64x1_t)__builtin_neon_vbsldi ((int64x1_t) __a, (int64x1_t) __b, (int64x1_t) __c);
9219 }
9220
9221 __extension__ extern __inline poly8x8_t
9222 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbsl_p8(uint8x8_t __a,poly8x8_t __b,poly8x8_t __c)9223 vbsl_p8 (uint8x8_t __a, poly8x8_t __b, poly8x8_t __c)
9224 {
9225 return (poly8x8_t)__builtin_neon_vbslv8qi ((int8x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
9226 }
9227
9228 __extension__ extern __inline poly16x4_t
9229 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbsl_p16(uint16x4_t __a,poly16x4_t __b,poly16x4_t __c)9230 vbsl_p16 (uint16x4_t __a, poly16x4_t __b, poly16x4_t __c)
9231 {
9232 return (poly16x4_t)__builtin_neon_vbslv4hi ((int16x4_t) __a, (int16x4_t) __b, (int16x4_t) __c);
9233 }
9234
9235 #pragma GCC push_options
9236 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
9237 __extension__ extern __inline poly64x2_t
9238 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbslq_p64(uint64x2_t __a,poly64x2_t __b,poly64x2_t __c)9239 vbslq_p64 (uint64x2_t __a, poly64x2_t __b, poly64x2_t __c)
9240 {
9241 return (poly64x2_t)__builtin_neon_vbslv2di ((int64x2_t) __a, (int64x2_t) __b, (int64x2_t) __c);
9242 }
9243
9244 #pragma GCC pop_options
9245 __extension__ extern __inline int8x16_t
9246 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbslq_s8(uint8x16_t __a,int8x16_t __b,int8x16_t __c)9247 vbslq_s8 (uint8x16_t __a, int8x16_t __b, int8x16_t __c)
9248 {
9249 return (int8x16_t)__builtin_neon_vbslv16qi ((int8x16_t) __a, __b, __c);
9250 }
9251
9252 __extension__ extern __inline int16x8_t
9253 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbslq_s16(uint16x8_t __a,int16x8_t __b,int16x8_t __c)9254 vbslq_s16 (uint16x8_t __a, int16x8_t __b, int16x8_t __c)
9255 {
9256 return (int16x8_t)__builtin_neon_vbslv8hi ((int16x8_t) __a, __b, __c);
9257 }
9258
9259 __extension__ extern __inline int32x4_t
9260 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbslq_s32(uint32x4_t __a,int32x4_t __b,int32x4_t __c)9261 vbslq_s32 (uint32x4_t __a, int32x4_t __b, int32x4_t __c)
9262 {
9263 return (int32x4_t)__builtin_neon_vbslv4si ((int32x4_t) __a, __b, __c);
9264 }
9265
9266 __extension__ extern __inline int64x2_t
9267 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbslq_s64(uint64x2_t __a,int64x2_t __b,int64x2_t __c)9268 vbslq_s64 (uint64x2_t __a, int64x2_t __b, int64x2_t __c)
9269 {
9270 return (int64x2_t)__builtin_neon_vbslv2di ((int64x2_t) __a, __b, __c);
9271 }
9272
9273 __extension__ extern __inline float32x4_t
9274 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbslq_f32(uint32x4_t __a,float32x4_t __b,float32x4_t __c)9275 vbslq_f32 (uint32x4_t __a, float32x4_t __b, float32x4_t __c)
9276 {
9277 return (float32x4_t)__builtin_neon_vbslv4sf ((int32x4_t) __a, __b, __c);
9278 }
9279
9280 __extension__ extern __inline uint8x16_t
9281 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbslq_u8(uint8x16_t __a,uint8x16_t __b,uint8x16_t __c)9282 vbslq_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c)
9283 {
9284 return (uint8x16_t)__builtin_neon_vbslv16qi ((int8x16_t) __a, (int8x16_t) __b, (int8x16_t) __c);
9285 }
9286
9287 __extension__ extern __inline uint16x8_t
9288 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbslq_u16(uint16x8_t __a,uint16x8_t __b,uint16x8_t __c)9289 vbslq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
9290 {
9291 return (uint16x8_t)__builtin_neon_vbslv8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x8_t) __c);
9292 }
9293
9294 __extension__ extern __inline uint32x4_t
9295 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbslq_u32(uint32x4_t __a,uint32x4_t __b,uint32x4_t __c)9296 vbslq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
9297 {
9298 return (uint32x4_t)__builtin_neon_vbslv4si ((int32x4_t) __a, (int32x4_t) __b, (int32x4_t) __c);
9299 }
9300
9301 __extension__ extern __inline uint64x2_t
9302 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbslq_u64(uint64x2_t __a,uint64x2_t __b,uint64x2_t __c)9303 vbslq_u64 (uint64x2_t __a, uint64x2_t __b, uint64x2_t __c)
9304 {
9305 return (uint64x2_t)__builtin_neon_vbslv2di ((int64x2_t) __a, (int64x2_t) __b, (int64x2_t) __c);
9306 }
9307
9308 __extension__ extern __inline poly8x16_t
9309 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbslq_p8(uint8x16_t __a,poly8x16_t __b,poly8x16_t __c)9310 vbslq_p8 (uint8x16_t __a, poly8x16_t __b, poly8x16_t __c)
9311 {
9312 return (poly8x16_t)__builtin_neon_vbslv16qi ((int8x16_t) __a, (int8x16_t) __b, (int8x16_t) __c);
9313 }
9314
9315 __extension__ extern __inline poly16x8_t
9316 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbslq_p16(uint16x8_t __a,poly16x8_t __b,poly16x8_t __c)9317 vbslq_p16 (uint16x8_t __a, poly16x8_t __b, poly16x8_t __c)
9318 {
9319 return (poly16x8_t)__builtin_neon_vbslv8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x8_t) __c);
9320 }
9321
9322 /* For big-endian, the shuffle masks for ZIP, UZP and TRN must be changed as
9323 follows. (nelt = the number of elements within a vector.)
9324
9325 Firstly, a value of N within a mask, becomes (N ^ (nelt - 1)), as gcc vector
9326 extension's indexing scheme is reversed *within each vector* (relative to the
9327 neon intrinsics view), but without changing which of the two vectors.
9328
9329 Secondly, the elements within each mask are reversed, as the mask is itself a
9330 vector, and will itself be loaded in reverse order (again, relative to the
9331 neon intrinsics view, i.e. that would result from a "vld1" instruction). */
9332
9333 __extension__ extern __inline int8x8x2_t
9334 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn_s8(int8x8_t __a,int8x8_t __b)9335 vtrn_s8 (int8x8_t __a, int8x8_t __b)
9336 {
9337 int8x8x2_t __rv;
9338 #ifdef __ARM_BIG_ENDIAN
9339 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
9340 { 9, 1, 11, 3, 13, 5, 15, 7 });
9341 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
9342 { 8, 0, 10, 2, 12, 4, 14, 6 });
9343 #else
9344 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
9345 { 0, 8, 2, 10, 4, 12, 6, 14 });
9346 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
9347 { 1, 9, 3, 11, 5, 13, 7, 15 });
9348 #endif
9349 return __rv;
9350 }
9351
9352 __extension__ extern __inline int16x4x2_t
9353 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn_s16(int16x4_t __a,int16x4_t __b)9354 vtrn_s16 (int16x4_t __a, int16x4_t __b)
9355 {
9356 int16x4x2_t __rv;
9357 #ifdef __ARM_BIG_ENDIAN
9358 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 5, 1, 7, 3 });
9359 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 0, 6, 2 });
9360 #else
9361 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 4, 2, 6 });
9362 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 1, 5, 3, 7 });
9363 #endif
9364 return __rv;
9365 }
9366
9367 __extension__ extern __inline uint8x8x2_t
9368 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn_u8(uint8x8_t __a,uint8x8_t __b)9369 vtrn_u8 (uint8x8_t __a, uint8x8_t __b)
9370 {
9371 uint8x8x2_t __rv;
9372 #ifdef __ARM_BIG_ENDIAN
9373 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
9374 { 9, 1, 11, 3, 13, 5, 15, 7 });
9375 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
9376 { 8, 0, 10, 2, 12, 4, 14, 6 });
9377 #else
9378 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
9379 { 0, 8, 2, 10, 4, 12, 6, 14 });
9380 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
9381 { 1, 9, 3, 11, 5, 13, 7, 15 });
9382 #endif
9383 return __rv;
9384 }
9385
9386 __extension__ extern __inline uint16x4x2_t
9387 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn_u16(uint16x4_t __a,uint16x4_t __b)9388 vtrn_u16 (uint16x4_t __a, uint16x4_t __b)
9389 {
9390 uint16x4x2_t __rv;
9391 #ifdef __ARM_BIG_ENDIAN
9392 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 5, 1, 7, 3 });
9393 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 0, 6, 2 });
9394 #else
9395 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 4, 2, 6 });
9396 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 1, 5, 3, 7 });
9397 #endif
9398 return __rv;
9399 }
9400
9401 __extension__ extern __inline poly8x8x2_t
9402 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn_p8(poly8x8_t __a,poly8x8_t __b)9403 vtrn_p8 (poly8x8_t __a, poly8x8_t __b)
9404 {
9405 poly8x8x2_t __rv;
9406 #ifdef __ARM_BIG_ENDIAN
9407 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
9408 { 9, 1, 11, 3, 13, 5, 15, 7 });
9409 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
9410 { 8, 0, 10, 2, 12, 4, 14, 6 });
9411 #else
9412 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
9413 { 0, 8, 2, 10, 4, 12, 6, 14 });
9414 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
9415 { 1, 9, 3, 11, 5, 13, 7, 15 });
9416 #endif
9417 return __rv;
9418 }
9419
9420 __extension__ extern __inline poly16x4x2_t
9421 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn_p16(poly16x4_t __a,poly16x4_t __b)9422 vtrn_p16 (poly16x4_t __a, poly16x4_t __b)
9423 {
9424 poly16x4x2_t __rv;
9425 #ifdef __ARM_BIG_ENDIAN
9426 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 5, 1, 7, 3 });
9427 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 0, 6, 2 });
9428 #else
9429 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 4, 2, 6 });
9430 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 1, 5, 3, 7 });
9431 #endif
9432 return __rv;
9433 }
9434
9435 __extension__ extern __inline int32x2x2_t
9436 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn_s32(int32x2_t __a,int32x2_t __b)9437 vtrn_s32 (int32x2_t __a, int32x2_t __b)
9438 {
9439 int32x2x2_t __rv;
9440 #ifdef __ARM_BIG_ENDIAN
9441 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 });
9442 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 });
9443 #else
9444 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
9445 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
9446 #endif
9447 return __rv;
9448 }
9449
9450 __extension__ extern __inline float32x2x2_t
9451 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn_f32(float32x2_t __a,float32x2_t __b)9452 vtrn_f32 (float32x2_t __a, float32x2_t __b)
9453 {
9454 float32x2x2_t __rv;
9455 #ifdef __ARM_BIG_ENDIAN
9456 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 });
9457 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 });
9458 #else
9459 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
9460 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
9461 #endif
9462 return __rv;
9463 }
9464
9465 __extension__ extern __inline uint32x2x2_t
9466 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn_u32(uint32x2_t __a,uint32x2_t __b)9467 vtrn_u32 (uint32x2_t __a, uint32x2_t __b)
9468 {
9469 uint32x2x2_t __rv;
9470 #ifdef __ARM_BIG_ENDIAN
9471 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 });
9472 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 });
9473 #else
9474 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
9475 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
9476 #endif
9477 return __rv;
9478 }
9479
9480 __extension__ extern __inline int8x16x2_t
9481 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrnq_s8(int8x16_t __a,int8x16_t __b)9482 vtrnq_s8 (int8x16_t __a, int8x16_t __b)
9483 {
9484 int8x16x2_t __rv;
9485 #ifdef __ARM_BIG_ENDIAN
9486 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
9487 { 17, 1, 19, 3, 21, 5, 23, 7, 25, 9, 27, 11, 29, 13, 31, 15 });
9488 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
9489 { 16, 0, 18, 2, 20, 4, 22, 6, 24, 8, 26, 10, 28, 12, 30, 14 });
9490 #else
9491 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
9492 { 0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30 });
9493 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
9494 { 1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31 });
9495 #endif
9496 return __rv;
9497 }
9498
9499 __extension__ extern __inline int16x8x2_t
9500 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrnq_s16(int16x8_t __a,int16x8_t __b)9501 vtrnq_s16 (int16x8_t __a, int16x8_t __b)
9502 {
9503 int16x8x2_t __rv;
9504 #ifdef __ARM_BIG_ENDIAN
9505 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
9506 { 9, 1, 11, 3, 13, 5, 15, 7 });
9507 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
9508 { 8, 0, 10, 2, 12, 4, 14, 6 });
9509 #else
9510 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
9511 { 0, 8, 2, 10, 4, 12, 6, 14 });
9512 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
9513 { 1, 9, 3, 11, 5, 13, 7, 15 });
9514 #endif
9515 return __rv;
9516 }
9517
9518 __extension__ extern __inline int32x4x2_t
9519 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrnq_s32(int32x4_t __a,int32x4_t __b)9520 vtrnq_s32 (int32x4_t __a, int32x4_t __b)
9521 {
9522 int32x4x2_t __rv;
9523 #ifdef __ARM_BIG_ENDIAN
9524 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 5, 1, 7, 3 });
9525 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 4, 0, 6, 2 });
9526 #else
9527 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 4, 2, 6 });
9528 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 1, 5, 3, 7 });
9529 #endif
9530 return __rv;
9531 }
9532
9533 __extension__ extern __inline float32x4x2_t
9534 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrnq_f32(float32x4_t __a,float32x4_t __b)9535 vtrnq_f32 (float32x4_t __a, float32x4_t __b)
9536 {
9537 float32x4x2_t __rv;
9538 #ifdef __ARM_BIG_ENDIAN
9539 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 5, 1, 7, 3 });
9540 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 4, 0, 6, 2 });
9541 #else
9542 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 4, 2, 6 });
9543 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 1, 5, 3, 7 });
9544 #endif
9545 return __rv;
9546 }
9547
9548 __extension__ extern __inline uint8x16x2_t
9549 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrnq_u8(uint8x16_t __a,uint8x16_t __b)9550 vtrnq_u8 (uint8x16_t __a, uint8x16_t __b)
9551 {
9552 uint8x16x2_t __rv;
9553 #ifdef __ARM_BIG_ENDIAN
9554 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
9555 { 17, 1, 19, 3, 21, 5, 23, 7, 25, 9, 27, 11, 29, 13, 31, 15 });
9556 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
9557 { 16, 0, 18, 2, 20, 4, 22, 6, 24, 8, 26, 10, 28, 12, 30, 14 });
9558 #else
9559 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
9560 { 0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30 });
9561 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
9562 { 1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31 });
9563 #endif
9564 return __rv;
9565 }
9566
9567 __extension__ extern __inline uint16x8x2_t
9568 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrnq_u16(uint16x8_t __a,uint16x8_t __b)9569 vtrnq_u16 (uint16x8_t __a, uint16x8_t __b)
9570 {
9571 uint16x8x2_t __rv;
9572 #ifdef __ARM_BIG_ENDIAN
9573 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
9574 { 9, 1, 11, 3, 13, 5, 15, 7 });
9575 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
9576 { 8, 0, 10, 2, 12, 4, 14, 6 });
9577 #else
9578 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
9579 { 0, 8, 2, 10, 4, 12, 6, 14 });
9580 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
9581 { 1, 9, 3, 11, 5, 13, 7, 15 });
9582 #endif
9583 return __rv;
9584 }
9585
9586 __extension__ extern __inline uint32x4x2_t
9587 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrnq_u32(uint32x4_t __a,uint32x4_t __b)9588 vtrnq_u32 (uint32x4_t __a, uint32x4_t __b)
9589 {
9590 uint32x4x2_t __rv;
9591 #ifdef __ARM_BIG_ENDIAN
9592 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 5, 1, 7, 3 });
9593 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 4, 0, 6, 2 });
9594 #else
9595 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 4, 2, 6 });
9596 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 1, 5, 3, 7 });
9597 #endif
9598 return __rv;
9599 }
9600
9601 __extension__ extern __inline poly8x16x2_t
9602 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrnq_p8(poly8x16_t __a,poly8x16_t __b)9603 vtrnq_p8 (poly8x16_t __a, poly8x16_t __b)
9604 {
9605 poly8x16x2_t __rv;
9606 #ifdef __ARM_BIG_ENDIAN
9607 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
9608 { 17, 1, 19, 3, 21, 5, 23, 7, 25, 9, 27, 11, 29, 13, 31, 15 });
9609 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
9610 { 16, 0, 18, 2, 20, 4, 22, 6, 24, 8, 26, 10, 28, 12, 30, 14 });
9611 #else
9612 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
9613 { 0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30 });
9614 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
9615 { 1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31 });
9616 #endif
9617 return __rv;
9618 }
9619
9620 __extension__ extern __inline poly16x8x2_t
9621 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrnq_p16(poly16x8_t __a,poly16x8_t __b)9622 vtrnq_p16 (poly16x8_t __a, poly16x8_t __b)
9623 {
9624 poly16x8x2_t __rv;
9625 #ifdef __ARM_BIG_ENDIAN
9626 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
9627 { 9, 1, 11, 3, 13, 5, 15, 7 });
9628 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
9629 { 8, 0, 10, 2, 12, 4, 14, 6 });
9630 #else
9631 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
9632 { 0, 8, 2, 10, 4, 12, 6, 14 });
9633 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
9634 { 1, 9, 3, 11, 5, 13, 7, 15 });
9635 #endif
9636 return __rv;
9637 }
9638
9639 __extension__ extern __inline int8x8x2_t
9640 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip_s8(int8x8_t __a,int8x8_t __b)9641 vzip_s8 (int8x8_t __a, int8x8_t __b)
9642 {
9643 int8x8x2_t __rv;
9644 #ifdef __ARM_BIG_ENDIAN
9645 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
9646 { 12, 4, 13, 5, 14, 6, 15, 7 });
9647 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
9648 { 8, 0, 9, 1, 10, 2, 11, 3 });
9649 #else
9650 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
9651 { 0, 8, 1, 9, 2, 10, 3, 11 });
9652 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
9653 { 4, 12, 5, 13, 6, 14, 7, 15 });
9654 #endif
9655 return __rv;
9656 }
9657
9658 __extension__ extern __inline int16x4x2_t
9659 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip_s16(int16x4_t __a,int16x4_t __b)9660 vzip_s16 (int16x4_t __a, int16x4_t __b)
9661 {
9662 int16x4x2_t __rv;
9663 #ifdef __ARM_BIG_ENDIAN
9664 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 6, 2, 7, 3 });
9665 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 0, 5, 1 });
9666 #else
9667 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 4, 1, 5 });
9668 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 2, 6, 3, 7 });
9669 #endif
9670 return __rv;
9671 }
9672
9673 __extension__ extern __inline uint8x8x2_t
9674 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip_u8(uint8x8_t __a,uint8x8_t __b)9675 vzip_u8 (uint8x8_t __a, uint8x8_t __b)
9676 {
9677 uint8x8x2_t __rv;
9678 #ifdef __ARM_BIG_ENDIAN
9679 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
9680 { 12, 4, 13, 5, 14, 6, 15, 7 });
9681 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
9682 { 8, 0, 9, 1, 10, 2, 11, 3 });
9683 #else
9684 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
9685 { 0, 8, 1, 9, 2, 10, 3, 11 });
9686 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
9687 { 4, 12, 5, 13, 6, 14, 7, 15 });
9688 #endif
9689 return __rv;
9690 }
9691
9692 __extension__ extern __inline uint16x4x2_t
9693 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip_u16(uint16x4_t __a,uint16x4_t __b)9694 vzip_u16 (uint16x4_t __a, uint16x4_t __b)
9695 {
9696 uint16x4x2_t __rv;
9697 #ifdef __ARM_BIG_ENDIAN
9698 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 6, 2, 7, 3 });
9699 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 0, 5, 1 });
9700 #else
9701 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 4, 1, 5 });
9702 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 2, 6, 3, 7 });
9703 #endif
9704 return __rv;
9705 }
9706
9707 __extension__ extern __inline poly8x8x2_t
9708 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip_p8(poly8x8_t __a,poly8x8_t __b)9709 vzip_p8 (poly8x8_t __a, poly8x8_t __b)
9710 {
9711 poly8x8x2_t __rv;
9712 #ifdef __ARM_BIG_ENDIAN
9713 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
9714 { 12, 4, 13, 5, 14, 6, 15, 7 });
9715 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
9716 { 8, 0, 9, 1, 10, 2, 11, 3 });
9717 #else
9718 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
9719 { 0, 8, 1, 9, 2, 10, 3, 11 });
9720 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
9721 { 4, 12, 5, 13, 6, 14, 7, 15 });
9722 #endif
9723 return __rv;
9724 }
9725
9726 __extension__ extern __inline poly16x4x2_t
9727 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip_p16(poly16x4_t __a,poly16x4_t __b)9728 vzip_p16 (poly16x4_t __a, poly16x4_t __b)
9729 {
9730 poly16x4x2_t __rv;
9731 #ifdef __ARM_BIG_ENDIAN
9732 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 6, 2, 7, 3 });
9733 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 0, 5, 1 });
9734 #else
9735 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 4, 1, 5 });
9736 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 2, 6, 3, 7 });
9737 #endif
9738 return __rv;
9739 }
9740
9741 __extension__ extern __inline int32x2x2_t
9742 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip_s32(int32x2_t __a,int32x2_t __b)9743 vzip_s32 (int32x2_t __a, int32x2_t __b)
9744 {
9745 int32x2x2_t __rv;
9746 #ifdef __ARM_BIG_ENDIAN
9747 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 });
9748 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 });
9749 #else
9750 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
9751 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
9752 #endif
9753 return __rv;
9754 }
9755
9756 __extension__ extern __inline float32x2x2_t
9757 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip_f32(float32x2_t __a,float32x2_t __b)9758 vzip_f32 (float32x2_t __a, float32x2_t __b)
9759 {
9760 float32x2x2_t __rv;
9761 #ifdef __ARM_BIG_ENDIAN
9762 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 });
9763 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 });
9764 #else
9765 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
9766 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
9767 #endif
9768 return __rv;
9769 }
9770
9771 __extension__ extern __inline uint32x2x2_t
9772 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip_u32(uint32x2_t __a,uint32x2_t __b)9773 vzip_u32 (uint32x2_t __a, uint32x2_t __b)
9774 {
9775 uint32x2x2_t __rv;
9776 #ifdef __ARM_BIG_ENDIAN
9777 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 });
9778 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 });
9779 #else
9780 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
9781 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
9782 #endif
9783 return __rv;
9784 }
9785
9786 __extension__ extern __inline int8x16x2_t
9787 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzipq_s8(int8x16_t __a,int8x16_t __b)9788 vzipq_s8 (int8x16_t __a, int8x16_t __b)
9789 {
9790 int8x16x2_t __rv;
9791 #ifdef __ARM_BIG_ENDIAN
9792 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
9793 { 20, 4, 21, 5, 22, 6, 23, 7, 16, 0, 17, 1, 18, 2, 19, 3 });
9794 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
9795 { 28, 12, 29, 13, 30, 14, 31, 15, 24, 8, 25, 9, 26, 10, 27, 11 });
9796 #else
9797 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
9798 { 0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23 });
9799 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
9800 { 8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31 });
9801 #endif
9802 return __rv;
9803 }
9804
9805 __extension__ extern __inline int16x8x2_t
9806 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzipq_s16(int16x8_t __a,int16x8_t __b)9807 vzipq_s16 (int16x8_t __a, int16x8_t __b)
9808 {
9809 int16x8x2_t __rv;
9810 #ifdef __ARM_BIG_ENDIAN
9811 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
9812 { 10, 2, 11, 3, 8, 0, 9, 1 });
9813 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
9814 { 14, 6, 15, 7, 12, 4, 13, 5 });
9815 #else
9816 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
9817 { 0, 8, 1, 9, 2, 10, 3, 11 });
9818 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
9819 { 4, 12, 5, 13, 6, 14, 7, 15 });
9820 #endif
9821 return __rv;
9822 }
9823
9824 __extension__ extern __inline int32x4x2_t
9825 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzipq_s32(int32x4_t __a,int32x4_t __b)9826 vzipq_s32 (int32x4_t __a, int32x4_t __b)
9827 {
9828 int32x4x2_t __rv;
9829 #ifdef __ARM_BIG_ENDIAN
9830 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 5, 1, 4, 0 });
9831 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 7, 3, 6, 2 });
9832 #else
9833 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 4, 1, 5 });
9834 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 2, 6, 3, 7 });
9835 #endif
9836 return __rv;
9837 }
9838
9839 __extension__ extern __inline float32x4x2_t
9840 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzipq_f32(float32x4_t __a,float32x4_t __b)9841 vzipq_f32 (float32x4_t __a, float32x4_t __b)
9842 {
9843 float32x4x2_t __rv;
9844 #ifdef __ARM_BIG_ENDIAN
9845 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 5, 1, 4, 0 });
9846 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 7, 3, 6, 2 });
9847 #else
9848 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 4, 1, 5 });
9849 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 2, 6, 3, 7 });
9850 #endif
9851 return __rv;
9852 }
9853
9854 __extension__ extern __inline uint8x16x2_t
9855 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzipq_u8(uint8x16_t __a,uint8x16_t __b)9856 vzipq_u8 (uint8x16_t __a, uint8x16_t __b)
9857 {
9858 uint8x16x2_t __rv;
9859 #ifdef __ARM_BIG_ENDIAN
9860 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
9861 { 20, 4, 21, 5, 22, 6, 23, 7, 16, 0, 17, 1, 18, 2, 19, 3 });
9862 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
9863 { 28, 12, 29, 13, 30, 14, 31, 15, 24, 8, 25, 9, 26, 10, 27, 11 });
9864 #else
9865 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
9866 { 0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23 });
9867 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
9868 { 8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31 });
9869 #endif
9870 return __rv;
9871 }
9872
9873 __extension__ extern __inline uint16x8x2_t
9874 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzipq_u16(uint16x8_t __a,uint16x8_t __b)9875 vzipq_u16 (uint16x8_t __a, uint16x8_t __b)
9876 {
9877 uint16x8x2_t __rv;
9878 #ifdef __ARM_BIG_ENDIAN
9879 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
9880 { 10, 2, 11, 3, 8, 0, 9, 1 });
9881 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
9882 { 14, 6, 15, 7, 12, 4, 13, 5 });
9883 #else
9884 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
9885 { 0, 8, 1, 9, 2, 10, 3, 11 });
9886 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
9887 { 4, 12, 5, 13, 6, 14, 7, 15 });
9888 #endif
9889 return __rv;
9890 }
9891
9892 __extension__ extern __inline uint32x4x2_t
9893 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzipq_u32(uint32x4_t __a,uint32x4_t __b)9894 vzipq_u32 (uint32x4_t __a, uint32x4_t __b)
9895 {
9896 uint32x4x2_t __rv;
9897 #ifdef __ARM_BIG_ENDIAN
9898 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 5, 1, 4, 0 });
9899 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 7, 3, 6, 2 });
9900 #else
9901 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 4, 1, 5 });
9902 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 2, 6, 3, 7 });
9903 #endif
9904 return __rv;
9905 }
9906
9907 __extension__ extern __inline poly8x16x2_t
9908 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzipq_p8(poly8x16_t __a,poly8x16_t __b)9909 vzipq_p8 (poly8x16_t __a, poly8x16_t __b)
9910 {
9911 poly8x16x2_t __rv;
9912 #ifdef __ARM_BIG_ENDIAN
9913 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
9914 { 20, 4, 21, 5, 22, 6, 23, 7, 16, 0, 17, 1, 18, 2, 19, 3 });
9915 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
9916 { 28, 12, 29, 13, 30, 14, 31, 15, 24, 8, 25, 9, 26, 10, 27, 11 });
9917 #else
9918 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
9919 { 0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23 });
9920 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
9921 { 8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31 });
9922 #endif
9923 return __rv;
9924 }
9925
9926 __extension__ extern __inline poly16x8x2_t
9927 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzipq_p16(poly16x8_t __a,poly16x8_t __b)9928 vzipq_p16 (poly16x8_t __a, poly16x8_t __b)
9929 {
9930 poly16x8x2_t __rv;
9931 #ifdef __ARM_BIG_ENDIAN
9932 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
9933 { 10, 2, 11, 3, 8, 0, 9, 1 });
9934 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
9935 { 14, 6, 15, 7, 12, 4, 13, 5 });
9936 #else
9937 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
9938 { 0, 8, 1, 9, 2, 10, 3, 11 });
9939 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
9940 { 4, 12, 5, 13, 6, 14, 7, 15 });
9941 #endif
9942 return __rv;
9943 }
9944
9945 __extension__ extern __inline int8x8x2_t
9946 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp_s8(int8x8_t __a,int8x8_t __b)9947 vuzp_s8 (int8x8_t __a, int8x8_t __b)
9948 {
9949 int8x8x2_t __rv;
9950 #ifdef __ARM_BIG_ENDIAN
9951 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
9952 { 9, 11, 13, 15, 1, 3, 5, 7 });
9953 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
9954 { 8, 10, 12, 14, 0, 2, 4, 6 });
9955 #else
9956 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
9957 { 0, 2, 4, 6, 8, 10, 12, 14 });
9958 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
9959 { 1, 3, 5, 7, 9, 11, 13, 15 });
9960 #endif
9961 return __rv;
9962 }
9963
9964 __extension__ extern __inline int16x4x2_t
9965 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp_s16(int16x4_t __a,int16x4_t __b)9966 vuzp_s16 (int16x4_t __a, int16x4_t __b)
9967 {
9968 int16x4x2_t __rv;
9969 #ifdef __ARM_BIG_ENDIAN
9970 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 5, 7, 1, 3 });
9971 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 6, 0, 2 });
9972 #else
9973 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 2, 4, 6 });
9974 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 1, 3, 5, 7 });
9975 #endif
9976 return __rv;
9977 }
9978
9979 __extension__ extern __inline int32x2x2_t
9980 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp_s32(int32x2_t __a,int32x2_t __b)9981 vuzp_s32 (int32x2_t __a, int32x2_t __b)
9982 {
9983 int32x2x2_t __rv;
9984 #ifdef __ARM_BIG_ENDIAN
9985 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 });
9986 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 });
9987 #else
9988 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
9989 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
9990 #endif
9991 return __rv;
9992 }
9993
9994 __extension__ extern __inline float32x2x2_t
9995 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp_f32(float32x2_t __a,float32x2_t __b)9996 vuzp_f32 (float32x2_t __a, float32x2_t __b)
9997 {
9998 float32x2x2_t __rv;
9999 #ifdef __ARM_BIG_ENDIAN
10000 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 });
10001 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 });
10002 #else
10003 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
10004 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
10005 #endif
10006 return __rv;
10007 }
10008
10009 __extension__ extern __inline uint8x8x2_t
10010 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp_u8(uint8x8_t __a,uint8x8_t __b)10011 vuzp_u8 (uint8x8_t __a, uint8x8_t __b)
10012 {
10013 uint8x8x2_t __rv;
10014 #ifdef __ARM_BIG_ENDIAN
10015 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
10016 { 9, 11, 13, 15, 1, 3, 5, 7 });
10017 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
10018 { 8, 10, 12, 14, 0, 2, 4, 6 });
10019 #else
10020 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
10021 { 0, 2, 4, 6, 8, 10, 12, 14 });
10022 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
10023 { 1, 3, 5, 7, 9, 11, 13, 15 });
10024 #endif
10025 return __rv;
10026 }
10027
10028 __extension__ extern __inline uint16x4x2_t
10029 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp_u16(uint16x4_t __a,uint16x4_t __b)10030 vuzp_u16 (uint16x4_t __a, uint16x4_t __b)
10031 {
10032 uint16x4x2_t __rv;
10033 #ifdef __ARM_BIG_ENDIAN
10034 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 5, 7, 1, 3 });
10035 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 6, 0, 2 });
10036 #else
10037 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 2, 4, 6 });
10038 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 1, 3, 5, 7 });
10039 #endif
10040 return __rv;
10041 }
10042
10043 __extension__ extern __inline uint32x2x2_t
10044 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp_u32(uint32x2_t __a,uint32x2_t __b)10045 vuzp_u32 (uint32x2_t __a, uint32x2_t __b)
10046 {
10047 uint32x2x2_t __rv;
10048 #ifdef __ARM_BIG_ENDIAN
10049 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 });
10050 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 });
10051 #else
10052 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
10053 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
10054 #endif
10055 return __rv;
10056 }
10057
10058 __extension__ extern __inline poly8x8x2_t
10059 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp_p8(poly8x8_t __a,poly8x8_t __b)10060 vuzp_p8 (poly8x8_t __a, poly8x8_t __b)
10061 {
10062 poly8x8x2_t __rv;
10063 #ifdef __ARM_BIG_ENDIAN
10064 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
10065 { 9, 11, 13, 15, 1, 3, 5, 7 });
10066 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
10067 { 8, 10, 12, 14, 0, 2, 4, 6 });
10068 #else
10069 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
10070 { 0, 2, 4, 6, 8, 10, 12, 14 });
10071 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
10072 { 1, 3, 5, 7, 9, 11, 13, 15 });
10073 #endif
10074 return __rv;
10075 }
10076
10077 __extension__ extern __inline poly16x4x2_t
10078 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp_p16(poly16x4_t __a,poly16x4_t __b)10079 vuzp_p16 (poly16x4_t __a, poly16x4_t __b)
10080 {
10081 poly16x4x2_t __rv;
10082 #ifdef __ARM_BIG_ENDIAN
10083 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 5, 7, 1, 3 });
10084 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 6, 0, 2 });
10085 #else
10086 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 2, 4, 6 });
10087 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 1, 3, 5, 7 });
10088 #endif
10089 return __rv;
10090 }
10091
10092 __extension__ extern __inline int8x16x2_t
10093 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzpq_s8(int8x16_t __a,int8x16_t __b)10094 vuzpq_s8 (int8x16_t __a, int8x16_t __b)
10095 {
10096 int8x16x2_t __rv;
10097 #ifdef __ARM_BIG_ENDIAN
10098 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
10099 { 9, 11, 13, 15, 1, 3, 5, 7, 25, 27, 29, 31, 17, 19, 21, 23 });
10100 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
10101 { 8, 10, 12, 14, 0, 2, 4, 6, 24, 26, 28, 30, 16, 18, 20, 22 });
10102 #else
10103 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
10104 { 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30 });
10105 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
10106 { 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31 });
10107 #endif
10108 return __rv;
10109 }
10110
10111 __extension__ extern __inline int16x8x2_t
10112 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzpq_s16(int16x8_t __a,int16x8_t __b)10113 vuzpq_s16 (int16x8_t __a, int16x8_t __b)
10114 {
10115 int16x8x2_t __rv;
10116 #ifdef __ARM_BIG_ENDIAN
10117 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
10118 { 5, 7, 1, 3, 13, 15, 9, 11 });
10119 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
10120 { 4, 6, 0, 2, 12, 14, 8, 10 });
10121 #else
10122 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
10123 { 0, 2, 4, 6, 8, 10, 12, 14 });
10124 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
10125 { 1, 3, 5, 7, 9, 11, 13, 15 });
10126 #endif
10127 return __rv;
10128 }
10129
10130 __extension__ extern __inline int32x4x2_t
10131 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzpq_s32(int32x4_t __a,int32x4_t __b)10132 vuzpq_s32 (int32x4_t __a, int32x4_t __b)
10133 {
10134 int32x4x2_t __rv;
10135 #ifdef __ARM_BIG_ENDIAN
10136 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 3, 1, 7, 5 });
10137 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 2, 0, 6, 4 });
10138 #else
10139 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 2, 4, 6 });
10140 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 1, 3, 5, 7 });
10141 #endif
10142 return __rv;
10143 }
10144
10145 __extension__ extern __inline float32x4x2_t
10146 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzpq_f32(float32x4_t __a,float32x4_t __b)10147 vuzpq_f32 (float32x4_t __a, float32x4_t __b)
10148 {
10149 float32x4x2_t __rv;
10150 #ifdef __ARM_BIG_ENDIAN
10151 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 3, 1, 7, 5 });
10152 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 2, 0, 6, 4 });
10153 #else
10154 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 2, 4, 6 });
10155 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 1, 3, 5, 7 });
10156 #endif
10157 return __rv;
10158 }
10159
10160 __extension__ extern __inline uint8x16x2_t
10161 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzpq_u8(uint8x16_t __a,uint8x16_t __b)10162 vuzpq_u8 (uint8x16_t __a, uint8x16_t __b)
10163 {
10164 uint8x16x2_t __rv;
10165 #ifdef __ARM_BIG_ENDIAN
10166 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
10167 { 9, 11, 13, 15, 1, 3, 5, 7, 25, 27, 29, 31, 17, 19, 21, 23 });
10168 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
10169 { 8, 10, 12, 14, 0, 2, 4, 6, 24, 26, 28, 30, 16, 18, 20, 22 });
10170 #else
10171 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
10172 { 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30 });
10173 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
10174 { 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31 });
10175 #endif
10176 return __rv;
10177 }
10178
10179 __extension__ extern __inline uint16x8x2_t
10180 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzpq_u16(uint16x8_t __a,uint16x8_t __b)10181 vuzpq_u16 (uint16x8_t __a, uint16x8_t __b)
10182 {
10183 uint16x8x2_t __rv;
10184 #ifdef __ARM_BIG_ENDIAN
10185 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
10186 { 5, 7, 1, 3, 13, 15, 9, 11 });
10187 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
10188 { 4, 6, 0, 2, 12, 14, 8, 10 });
10189 #else
10190 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
10191 { 0, 2, 4, 6, 8, 10, 12, 14 });
10192 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
10193 { 1, 3, 5, 7, 9, 11, 13, 15 });
10194 #endif
10195 return __rv;
10196 }
10197
10198 __extension__ extern __inline uint32x4x2_t
10199 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzpq_u32(uint32x4_t __a,uint32x4_t __b)10200 vuzpq_u32 (uint32x4_t __a, uint32x4_t __b)
10201 {
10202 uint32x4x2_t __rv;
10203 #ifdef __ARM_BIG_ENDIAN
10204 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 3, 1, 7, 5 });
10205 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 2, 0, 6, 4 });
10206 #else
10207 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 2, 4, 6 });
10208 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 1, 3, 5, 7 });
10209 #endif
10210 return __rv;
10211 }
10212
10213 __extension__ extern __inline poly8x16x2_t
10214 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzpq_p8(poly8x16_t __a,poly8x16_t __b)10215 vuzpq_p8 (poly8x16_t __a, poly8x16_t __b)
10216 {
10217 poly8x16x2_t __rv;
10218 #ifdef __ARM_BIG_ENDIAN
10219 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
10220 { 9, 11, 13, 15, 1, 3, 5, 7, 25, 27, 29, 31, 17, 19, 21, 23 });
10221 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
10222 { 8, 10, 12, 14, 0, 2, 4, 6, 24, 26, 28, 30, 16, 18, 20, 22 });
10223 #else
10224 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
10225 { 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30 });
10226 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
10227 { 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31 });
10228 #endif
10229 return __rv;
10230 }
10231
10232 __extension__ extern __inline poly16x8x2_t
10233 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzpq_p16(poly16x8_t __a,poly16x8_t __b)10234 vuzpq_p16 (poly16x8_t __a, poly16x8_t __b)
10235 {
10236 poly16x8x2_t __rv;
10237 #ifdef __ARM_BIG_ENDIAN
10238 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
10239 { 5, 7, 1, 3, 13, 15, 9, 11 });
10240 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
10241 { 4, 6, 0, 2, 12, 14, 8, 10 });
10242 #else
10243 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
10244 { 0, 2, 4, 6, 8, 10, 12, 14 });
10245 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
10246 { 1, 3, 5, 7, 9, 11, 13, 15 });
10247 #endif
10248 return __rv;
10249 }
10250
10251 #pragma GCC push_options
10252 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
10253 __extension__ extern __inline poly64x1_t
10254 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_p64(const poly64_t * __a)10255 vld1_p64 (const poly64_t * __a)
10256 {
10257 return (poly64x1_t)__builtin_neon_vld1di ((const __builtin_neon_di *) __a);
10258 }
10259
10260 #pragma GCC pop_options
10261 __extension__ extern __inline int8x8_t
10262 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_s8(const int8_t * __a)10263 vld1_s8 (const int8_t * __a)
10264 {
10265 return (int8x8_t)__builtin_neon_vld1v8qi ((const __builtin_neon_qi *) __a);
10266 }
10267
10268 __extension__ extern __inline int16x4_t
10269 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_s16(const int16_t * __a)10270 vld1_s16 (const int16_t * __a)
10271 {
10272 return (int16x4_t)__builtin_neon_vld1v4hi ((const __builtin_neon_hi *) __a);
10273 }
10274
10275 __extension__ extern __inline int32x2_t
10276 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_s32(const int32_t * __a)10277 vld1_s32 (const int32_t * __a)
10278 {
10279 return (int32x2_t)__builtin_neon_vld1v2si ((const __builtin_neon_si *) __a);
10280 }
10281
10282 __extension__ extern __inline int64x1_t
10283 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_s64(const int64_t * __a)10284 vld1_s64 (const int64_t * __a)
10285 {
10286 return (int64x1_t)__builtin_neon_vld1di ((const __builtin_neon_di *) __a);
10287 }
10288
10289 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
10290 __extension__ extern __inline float16x4_t
10291 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_f16(const float16_t * __a)10292 vld1_f16 (const float16_t * __a)
10293 {
10294 return __builtin_neon_vld1v4hf (__a);
10295 }
10296 #endif
10297
10298 __extension__ extern __inline float32x2_t
10299 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_f32(const float32_t * __a)10300 vld1_f32 (const float32_t * __a)
10301 {
10302 return (float32x2_t)__builtin_neon_vld1v2sf ((const __builtin_neon_sf *) __a);
10303 }
10304
10305 __extension__ extern __inline uint8x8_t
10306 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_u8(const uint8_t * __a)10307 vld1_u8 (const uint8_t * __a)
10308 {
10309 return (uint8x8_t)__builtin_neon_vld1v8qi ((const __builtin_neon_qi *) __a);
10310 }
10311
10312 __extension__ extern __inline uint16x4_t
10313 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_u16(const uint16_t * __a)10314 vld1_u16 (const uint16_t * __a)
10315 {
10316 return (uint16x4_t)__builtin_neon_vld1v4hi ((const __builtin_neon_hi *) __a);
10317 }
10318
10319 __extension__ extern __inline uint32x2_t
10320 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_u32(const uint32_t * __a)10321 vld1_u32 (const uint32_t * __a)
10322 {
10323 return (uint32x2_t)__builtin_neon_vld1v2si ((const __builtin_neon_si *) __a);
10324 }
10325
10326 __extension__ extern __inline uint64x1_t
10327 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_u64(const uint64_t * __a)10328 vld1_u64 (const uint64_t * __a)
10329 {
10330 return (uint64x1_t)__builtin_neon_vld1di ((const __builtin_neon_di *) __a);
10331 }
10332
10333 __extension__ extern __inline poly8x8_t
10334 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_p8(const poly8_t * __a)10335 vld1_p8 (const poly8_t * __a)
10336 {
10337 return (poly8x8_t)__builtin_neon_vld1v8qi ((const __builtin_neon_qi *) __a);
10338 }
10339
10340 __extension__ extern __inline poly16x4_t
10341 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_p16(const poly16_t * __a)10342 vld1_p16 (const poly16_t * __a)
10343 {
10344 return (poly16x4_t)__builtin_neon_vld1v4hi ((const __builtin_neon_hi *) __a);
10345 }
10346
10347 #pragma GCC push_options
10348 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
10349 __extension__ extern __inline poly64x2_t
10350 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_p64(const poly64_t * __a)10351 vld1q_p64 (const poly64_t * __a)
10352 {
10353 return (poly64x2_t)__builtin_neon_vld1v2di ((const __builtin_neon_di *) __a);
10354 }
10355
10356 #pragma GCC pop_options
10357 __extension__ extern __inline int8x16_t
10358 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_s8(const int8_t * __a)10359 vld1q_s8 (const int8_t * __a)
10360 {
10361 return (int8x16_t)__builtin_neon_vld1v16qi ((const __builtin_neon_qi *) __a);
10362 }
10363
10364 __extension__ extern __inline int16x8_t
10365 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_s16(const int16_t * __a)10366 vld1q_s16 (const int16_t * __a)
10367 {
10368 return (int16x8_t)__builtin_neon_vld1v8hi ((const __builtin_neon_hi *) __a);
10369 }
10370
10371 __extension__ extern __inline int32x4_t
10372 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_s32(const int32_t * __a)10373 vld1q_s32 (const int32_t * __a)
10374 {
10375 return (int32x4_t)__builtin_neon_vld1v4si ((const __builtin_neon_si *) __a);
10376 }
10377
10378 __extension__ extern __inline int64x2_t
10379 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_s64(const int64_t * __a)10380 vld1q_s64 (const int64_t * __a)
10381 {
10382 return (int64x2_t)__builtin_neon_vld1v2di ((const __builtin_neon_di *) __a);
10383 }
10384
10385 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
10386 __extension__ extern __inline float16x8_t
10387 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_f16(const float16_t * __a)10388 vld1q_f16 (const float16_t * __a)
10389 {
10390 return __builtin_neon_vld1v8hf (__a);
10391 }
10392 #endif
10393
10394 __extension__ extern __inline float32x4_t
10395 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_f32(const float32_t * __a)10396 vld1q_f32 (const float32_t * __a)
10397 {
10398 return (float32x4_t)__builtin_neon_vld1v4sf ((const __builtin_neon_sf *) __a);
10399 }
10400
10401 __extension__ extern __inline uint8x16_t
10402 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_u8(const uint8_t * __a)10403 vld1q_u8 (const uint8_t * __a)
10404 {
10405 return (uint8x16_t)__builtin_neon_vld1v16qi ((const __builtin_neon_qi *) __a);
10406 }
10407
10408 __extension__ extern __inline uint16x8_t
10409 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_u16(const uint16_t * __a)10410 vld1q_u16 (const uint16_t * __a)
10411 {
10412 return (uint16x8_t)__builtin_neon_vld1v8hi ((const __builtin_neon_hi *) __a);
10413 }
10414
10415 __extension__ extern __inline uint32x4_t
10416 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_u32(const uint32_t * __a)10417 vld1q_u32 (const uint32_t * __a)
10418 {
10419 return (uint32x4_t)__builtin_neon_vld1v4si ((const __builtin_neon_si *) __a);
10420 }
10421
10422 __extension__ extern __inline uint64x2_t
10423 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_u64(const uint64_t * __a)10424 vld1q_u64 (const uint64_t * __a)
10425 {
10426 return (uint64x2_t)__builtin_neon_vld1v2di ((const __builtin_neon_di *) __a);
10427 }
10428
10429 __extension__ extern __inline poly8x16_t
10430 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_p8(const poly8_t * __a)10431 vld1q_p8 (const poly8_t * __a)
10432 {
10433 return (poly8x16_t)__builtin_neon_vld1v16qi ((const __builtin_neon_qi *) __a);
10434 }
10435
10436 __extension__ extern __inline poly16x8_t
10437 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_p16(const poly16_t * __a)10438 vld1q_p16 (const poly16_t * __a)
10439 {
10440 return (poly16x8_t)__builtin_neon_vld1v8hi ((const __builtin_neon_hi *) __a);
10441 }
10442
10443 __extension__ extern __inline int8x8_t
10444 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_lane_s8(const int8_t * __a,int8x8_t __b,const int __c)10445 vld1_lane_s8 (const int8_t * __a, int8x8_t __b, const int __c)
10446 {
10447 return (int8x8_t)__builtin_neon_vld1_lanev8qi ((const __builtin_neon_qi *) __a, __b, __c);
10448 }
10449
10450 __extension__ extern __inline int16x4_t
10451 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_lane_s16(const int16_t * __a,int16x4_t __b,const int __c)10452 vld1_lane_s16 (const int16_t * __a, int16x4_t __b, const int __c)
10453 {
10454 return (int16x4_t)__builtin_neon_vld1_lanev4hi ((const __builtin_neon_hi *) __a, __b, __c);
10455 }
10456
10457 __extension__ extern __inline int32x2_t
10458 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_lane_s32(const int32_t * __a,int32x2_t __b,const int __c)10459 vld1_lane_s32 (const int32_t * __a, int32x2_t __b, const int __c)
10460 {
10461 return (int32x2_t)__builtin_neon_vld1_lanev2si ((const __builtin_neon_si *) __a, __b, __c);
10462 }
10463
10464 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
10465 __extension__ extern __inline float16x4_t
10466 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_lane_f16(const float16_t * __a,float16x4_t __b,const int __c)10467 vld1_lane_f16 (const float16_t * __a, float16x4_t __b, const int __c)
10468 {
10469 return vset_lane_f16 (*__a, __b, __c);
10470 }
10471 #endif
10472
10473 __extension__ extern __inline float32x2_t
10474 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_lane_f32(const float32_t * __a,float32x2_t __b,const int __c)10475 vld1_lane_f32 (const float32_t * __a, float32x2_t __b, const int __c)
10476 {
10477 return (float32x2_t)__builtin_neon_vld1_lanev2sf ((const __builtin_neon_sf *) __a, __b, __c);
10478 }
10479
10480 __extension__ extern __inline uint8x8_t
10481 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_lane_u8(const uint8_t * __a,uint8x8_t __b,const int __c)10482 vld1_lane_u8 (const uint8_t * __a, uint8x8_t __b, const int __c)
10483 {
10484 return (uint8x8_t)__builtin_neon_vld1_lanev8qi ((const __builtin_neon_qi *) __a, (int8x8_t) __b, __c);
10485 }
10486
10487 __extension__ extern __inline uint16x4_t
10488 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_lane_u16(const uint16_t * __a,uint16x4_t __b,const int __c)10489 vld1_lane_u16 (const uint16_t * __a, uint16x4_t __b, const int __c)
10490 {
10491 return (uint16x4_t)__builtin_neon_vld1_lanev4hi ((const __builtin_neon_hi *) __a, (int16x4_t) __b, __c);
10492 }
10493
10494 __extension__ extern __inline uint32x2_t
10495 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_lane_u32(const uint32_t * __a,uint32x2_t __b,const int __c)10496 vld1_lane_u32 (const uint32_t * __a, uint32x2_t __b, const int __c)
10497 {
10498 return (uint32x2_t)__builtin_neon_vld1_lanev2si ((const __builtin_neon_si *) __a, (int32x2_t) __b, __c);
10499 }
10500
10501 __extension__ extern __inline poly8x8_t
10502 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_lane_p8(const poly8_t * __a,poly8x8_t __b,const int __c)10503 vld1_lane_p8 (const poly8_t * __a, poly8x8_t __b, const int __c)
10504 {
10505 return (poly8x8_t)__builtin_neon_vld1_lanev8qi ((const __builtin_neon_qi *) __a, (int8x8_t) __b, __c);
10506 }
10507
10508 __extension__ extern __inline poly16x4_t
10509 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_lane_p16(const poly16_t * __a,poly16x4_t __b,const int __c)10510 vld1_lane_p16 (const poly16_t * __a, poly16x4_t __b, const int __c)
10511 {
10512 return (poly16x4_t)__builtin_neon_vld1_lanev4hi ((const __builtin_neon_hi *) __a, (int16x4_t) __b, __c);
10513 }
10514
10515 #pragma GCC push_options
10516 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
10517 __extension__ extern __inline poly64x1_t
10518 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_lane_p64(const poly64_t * __a,poly64x1_t __b,const int __c)10519 vld1_lane_p64 (const poly64_t * __a, poly64x1_t __b, const int __c)
10520 {
10521 return (poly64x1_t)__builtin_neon_vld1_lanedi ((const __builtin_neon_di *) __a, __b, __c);
10522 }
10523
10524 #pragma GCC pop_options
10525 __extension__ extern __inline int64x1_t
10526 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_lane_s64(const int64_t * __a,int64x1_t __b,const int __c)10527 vld1_lane_s64 (const int64_t * __a, int64x1_t __b, const int __c)
10528 {
10529 return (int64x1_t)__builtin_neon_vld1_lanedi ((const __builtin_neon_di *) __a, __b, __c);
10530 }
10531
10532 __extension__ extern __inline uint64x1_t
10533 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_lane_u64(const uint64_t * __a,uint64x1_t __b,const int __c)10534 vld1_lane_u64 (const uint64_t * __a, uint64x1_t __b, const int __c)
10535 {
10536 return (uint64x1_t)__builtin_neon_vld1_lanedi ((const __builtin_neon_di *) __a, (int64x1_t) __b, __c);
10537 }
10538
10539 __extension__ extern __inline int8x16_t
10540 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_lane_s8(const int8_t * __a,int8x16_t __b,const int __c)10541 vld1q_lane_s8 (const int8_t * __a, int8x16_t __b, const int __c)
10542 {
10543 return (int8x16_t)__builtin_neon_vld1_lanev16qi ((const __builtin_neon_qi *) __a, __b, __c);
10544 }
10545
10546 __extension__ extern __inline int16x8_t
10547 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_lane_s16(const int16_t * __a,int16x8_t __b,const int __c)10548 vld1q_lane_s16 (const int16_t * __a, int16x8_t __b, const int __c)
10549 {
10550 return (int16x8_t)__builtin_neon_vld1_lanev8hi ((const __builtin_neon_hi *) __a, __b, __c);
10551 }
10552
10553 __extension__ extern __inline int32x4_t
10554 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_lane_s32(const int32_t * __a,int32x4_t __b,const int __c)10555 vld1q_lane_s32 (const int32_t * __a, int32x4_t __b, const int __c)
10556 {
10557 return (int32x4_t)__builtin_neon_vld1_lanev4si ((const __builtin_neon_si *) __a, __b, __c);
10558 }
10559
10560 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
10561 __extension__ extern __inline float16x8_t
10562 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_lane_f16(const float16_t * __a,float16x8_t __b,const int __c)10563 vld1q_lane_f16 (const float16_t * __a, float16x8_t __b, const int __c)
10564 {
10565 return vsetq_lane_f16 (*__a, __b, __c);
10566 }
10567 #endif
10568
10569 __extension__ extern __inline float32x4_t
10570 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_lane_f32(const float32_t * __a,float32x4_t __b,const int __c)10571 vld1q_lane_f32 (const float32_t * __a, float32x4_t __b, const int __c)
10572 {
10573 return (float32x4_t)__builtin_neon_vld1_lanev4sf ((const __builtin_neon_sf *) __a, __b, __c);
10574 }
10575
10576 __extension__ extern __inline uint8x16_t
10577 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_lane_u8(const uint8_t * __a,uint8x16_t __b,const int __c)10578 vld1q_lane_u8 (const uint8_t * __a, uint8x16_t __b, const int __c)
10579 {
10580 return (uint8x16_t)__builtin_neon_vld1_lanev16qi ((const __builtin_neon_qi *) __a, (int8x16_t) __b, __c);
10581 }
10582
10583 __extension__ extern __inline uint16x8_t
10584 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_lane_u16(const uint16_t * __a,uint16x8_t __b,const int __c)10585 vld1q_lane_u16 (const uint16_t * __a, uint16x8_t __b, const int __c)
10586 {
10587 return (uint16x8_t)__builtin_neon_vld1_lanev8hi ((const __builtin_neon_hi *) __a, (int16x8_t) __b, __c);
10588 }
10589
10590 __extension__ extern __inline uint32x4_t
10591 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_lane_u32(const uint32_t * __a,uint32x4_t __b,const int __c)10592 vld1q_lane_u32 (const uint32_t * __a, uint32x4_t __b, const int __c)
10593 {
10594 return (uint32x4_t)__builtin_neon_vld1_lanev4si ((const __builtin_neon_si *) __a, (int32x4_t) __b, __c);
10595 }
10596
10597 __extension__ extern __inline poly8x16_t
10598 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_lane_p8(const poly8_t * __a,poly8x16_t __b,const int __c)10599 vld1q_lane_p8 (const poly8_t * __a, poly8x16_t __b, const int __c)
10600 {
10601 return (poly8x16_t)__builtin_neon_vld1_lanev16qi ((const __builtin_neon_qi *) __a, (int8x16_t) __b, __c);
10602 }
10603
10604 __extension__ extern __inline poly16x8_t
10605 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_lane_p16(const poly16_t * __a,poly16x8_t __b,const int __c)10606 vld1q_lane_p16 (const poly16_t * __a, poly16x8_t __b, const int __c)
10607 {
10608 return (poly16x8_t)__builtin_neon_vld1_lanev8hi ((const __builtin_neon_hi *) __a, (int16x8_t) __b, __c);
10609 }
10610
10611 #pragma GCC push_options
10612 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
10613 __extension__ extern __inline poly64x2_t
10614 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_lane_p64(const poly64_t * __a,poly64x2_t __b,const int __c)10615 vld1q_lane_p64 (const poly64_t * __a, poly64x2_t __b, const int __c)
10616 {
10617 return (poly64x2_t)__builtin_neon_vld1_lanev2di ((const __builtin_neon_di *) __a, (int64x2_t) __b, __c);
10618 }
10619
10620 #pragma GCC pop_options
10621 __extension__ extern __inline int64x2_t
10622 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_lane_s64(const int64_t * __a,int64x2_t __b,const int __c)10623 vld1q_lane_s64 (const int64_t * __a, int64x2_t __b, const int __c)
10624 {
10625 return (int64x2_t)__builtin_neon_vld1_lanev2di ((const __builtin_neon_di *) __a, __b, __c);
10626 }
10627
10628 __extension__ extern __inline uint64x2_t
10629 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_lane_u64(const uint64_t * __a,uint64x2_t __b,const int __c)10630 vld1q_lane_u64 (const uint64_t * __a, uint64x2_t __b, const int __c)
10631 {
10632 return (uint64x2_t)__builtin_neon_vld1_lanev2di ((const __builtin_neon_di *) __a, (int64x2_t) __b, __c);
10633 }
10634
10635 __extension__ extern __inline int8x8_t
10636 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_dup_s8(const int8_t * __a)10637 vld1_dup_s8 (const int8_t * __a)
10638 {
10639 return (int8x8_t)__builtin_neon_vld1_dupv8qi ((const __builtin_neon_qi *) __a);
10640 }
10641
10642 __extension__ extern __inline int16x4_t
10643 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_dup_s16(const int16_t * __a)10644 vld1_dup_s16 (const int16_t * __a)
10645 {
10646 return (int16x4_t)__builtin_neon_vld1_dupv4hi ((const __builtin_neon_hi *) __a);
10647 }
10648
10649 __extension__ extern __inline int32x2_t
10650 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_dup_s32(const int32_t * __a)10651 vld1_dup_s32 (const int32_t * __a)
10652 {
10653 return (int32x2_t)__builtin_neon_vld1_dupv2si ((const __builtin_neon_si *) __a);
10654 }
10655
10656 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
10657 __extension__ extern __inline float16x4_t
10658 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_dup_f16(const float16_t * __a)10659 vld1_dup_f16 (const float16_t * __a)
10660 {
10661 float16_t __f = *__a;
10662 return (float16x4_t) { __f, __f, __f, __f };
10663 }
10664 #endif
10665
10666 __extension__ extern __inline float32x2_t
10667 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_dup_f32(const float32_t * __a)10668 vld1_dup_f32 (const float32_t * __a)
10669 {
10670 return (float32x2_t)__builtin_neon_vld1_dupv2sf ((const __builtin_neon_sf *) __a);
10671 }
10672
10673 __extension__ extern __inline uint8x8_t
10674 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_dup_u8(const uint8_t * __a)10675 vld1_dup_u8 (const uint8_t * __a)
10676 {
10677 return (uint8x8_t)__builtin_neon_vld1_dupv8qi ((const __builtin_neon_qi *) __a);
10678 }
10679
10680 __extension__ extern __inline uint16x4_t
10681 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_dup_u16(const uint16_t * __a)10682 vld1_dup_u16 (const uint16_t * __a)
10683 {
10684 return (uint16x4_t)__builtin_neon_vld1_dupv4hi ((const __builtin_neon_hi *) __a);
10685 }
10686
10687 __extension__ extern __inline uint32x2_t
10688 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_dup_u32(const uint32_t * __a)10689 vld1_dup_u32 (const uint32_t * __a)
10690 {
10691 return (uint32x2_t)__builtin_neon_vld1_dupv2si ((const __builtin_neon_si *) __a);
10692 }
10693
10694 __extension__ extern __inline poly8x8_t
10695 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_dup_p8(const poly8_t * __a)10696 vld1_dup_p8 (const poly8_t * __a)
10697 {
10698 return (poly8x8_t)__builtin_neon_vld1_dupv8qi ((const __builtin_neon_qi *) __a);
10699 }
10700
10701 __extension__ extern __inline poly16x4_t
10702 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_dup_p16(const poly16_t * __a)10703 vld1_dup_p16 (const poly16_t * __a)
10704 {
10705 return (poly16x4_t)__builtin_neon_vld1_dupv4hi ((const __builtin_neon_hi *) __a);
10706 }
10707
10708 #pragma GCC push_options
10709 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
10710 __extension__ extern __inline poly64x1_t
10711 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_dup_p64(const poly64_t * __a)10712 vld1_dup_p64 (const poly64_t * __a)
10713 {
10714 return (poly64x1_t)__builtin_neon_vld1_dupdi ((const __builtin_neon_di *) __a);
10715 }
10716
10717 #pragma GCC pop_options
10718 __extension__ extern __inline int64x1_t
10719 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_dup_s64(const int64_t * __a)10720 vld1_dup_s64 (const int64_t * __a)
10721 {
10722 return (int64x1_t)__builtin_neon_vld1_dupdi ((const __builtin_neon_di *) __a);
10723 }
10724
10725 __extension__ extern __inline uint64x1_t
10726 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_dup_u64(const uint64_t * __a)10727 vld1_dup_u64 (const uint64_t * __a)
10728 {
10729 return (uint64x1_t)__builtin_neon_vld1_dupdi ((const __builtin_neon_di *) __a);
10730 }
10731
10732 __extension__ extern __inline int8x16_t
10733 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_dup_s8(const int8_t * __a)10734 vld1q_dup_s8 (const int8_t * __a)
10735 {
10736 return (int8x16_t)__builtin_neon_vld1_dupv16qi ((const __builtin_neon_qi *) __a);
10737 }
10738
10739 __extension__ extern __inline int16x8_t
10740 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_dup_s16(const int16_t * __a)10741 vld1q_dup_s16 (const int16_t * __a)
10742 {
10743 return (int16x8_t)__builtin_neon_vld1_dupv8hi ((const __builtin_neon_hi *) __a);
10744 }
10745
10746 __extension__ extern __inline int32x4_t
10747 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_dup_s32(const int32_t * __a)10748 vld1q_dup_s32 (const int32_t * __a)
10749 {
10750 return (int32x4_t)__builtin_neon_vld1_dupv4si ((const __builtin_neon_si *) __a);
10751 }
10752
10753 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
10754 __extension__ extern __inline float16x8_t
10755 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_dup_f16(const float16_t * __a)10756 vld1q_dup_f16 (const float16_t * __a)
10757 {
10758 float16_t __f = *__a;
10759 return (float16x8_t) { __f, __f, __f, __f, __f, __f, __f, __f };
10760 }
10761 #endif
10762
10763 __extension__ extern __inline float32x4_t
10764 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_dup_f32(const float32_t * __a)10765 vld1q_dup_f32 (const float32_t * __a)
10766 {
10767 return (float32x4_t)__builtin_neon_vld1_dupv4sf ((const __builtin_neon_sf *) __a);
10768 }
10769
10770 __extension__ extern __inline uint8x16_t
10771 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_dup_u8(const uint8_t * __a)10772 vld1q_dup_u8 (const uint8_t * __a)
10773 {
10774 return (uint8x16_t)__builtin_neon_vld1_dupv16qi ((const __builtin_neon_qi *) __a);
10775 }
10776
10777 __extension__ extern __inline uint16x8_t
10778 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_dup_u16(const uint16_t * __a)10779 vld1q_dup_u16 (const uint16_t * __a)
10780 {
10781 return (uint16x8_t)__builtin_neon_vld1_dupv8hi ((const __builtin_neon_hi *) __a);
10782 }
10783
10784 __extension__ extern __inline uint32x4_t
10785 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_dup_u32(const uint32_t * __a)10786 vld1q_dup_u32 (const uint32_t * __a)
10787 {
10788 return (uint32x4_t)__builtin_neon_vld1_dupv4si ((const __builtin_neon_si *) __a);
10789 }
10790
10791 __extension__ extern __inline poly8x16_t
10792 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_dup_p8(const poly8_t * __a)10793 vld1q_dup_p8 (const poly8_t * __a)
10794 {
10795 return (poly8x16_t)__builtin_neon_vld1_dupv16qi ((const __builtin_neon_qi *) __a);
10796 }
10797
10798 __extension__ extern __inline poly16x8_t
10799 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_dup_p16(const poly16_t * __a)10800 vld1q_dup_p16 (const poly16_t * __a)
10801 {
10802 return (poly16x8_t)__builtin_neon_vld1_dupv8hi ((const __builtin_neon_hi *) __a);
10803 }
10804
10805 #pragma GCC push_options
10806 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
10807 __extension__ extern __inline poly64x2_t
10808 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_dup_p64(const poly64_t * __a)10809 vld1q_dup_p64 (const poly64_t * __a)
10810 {
10811 return (poly64x2_t)__builtin_neon_vld1_dupv2di ((const __builtin_neon_di *) __a);
10812 }
10813
10814 #pragma GCC pop_options
10815 __extension__ extern __inline int64x2_t
10816 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_dup_s64(const int64_t * __a)10817 vld1q_dup_s64 (const int64_t * __a)
10818 {
10819 return (int64x2_t)__builtin_neon_vld1_dupv2di ((const __builtin_neon_di *) __a);
10820 }
10821
10822 __extension__ extern __inline uint64x2_t
10823 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_dup_u64(const uint64_t * __a)10824 vld1q_dup_u64 (const uint64_t * __a)
10825 {
10826 return (uint64x2_t)__builtin_neon_vld1_dupv2di ((const __builtin_neon_di *) __a);
10827 }
10828
10829 #pragma GCC push_options
10830 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
10831 __extension__ extern __inline void
10832 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_p64(poly64_t * __a,poly64x1_t __b)10833 vst1_p64 (poly64_t * __a, poly64x1_t __b)
10834 {
10835 __builtin_neon_vst1di ((__builtin_neon_di *) __a, __b);
10836 }
10837
10838 #pragma GCC pop_options
10839 __extension__ extern __inline void
10840 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_s8(int8_t * __a,int8x8_t __b)10841 vst1_s8 (int8_t * __a, int8x8_t __b)
10842 {
10843 __builtin_neon_vst1v8qi ((__builtin_neon_qi *) __a, __b);
10844 }
10845
10846 __extension__ extern __inline void
10847 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_s16(int16_t * __a,int16x4_t __b)10848 vst1_s16 (int16_t * __a, int16x4_t __b)
10849 {
10850 __builtin_neon_vst1v4hi ((__builtin_neon_hi *) __a, __b);
10851 }
10852
10853 __extension__ extern __inline void
10854 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_s32(int32_t * __a,int32x2_t __b)10855 vst1_s32 (int32_t * __a, int32x2_t __b)
10856 {
10857 __builtin_neon_vst1v2si ((__builtin_neon_si *) __a, __b);
10858 }
10859
10860 __extension__ extern __inline void
10861 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_s64(int64_t * __a,int64x1_t __b)10862 vst1_s64 (int64_t * __a, int64x1_t __b)
10863 {
10864 __builtin_neon_vst1di ((__builtin_neon_di *) __a, __b);
10865 }
10866
10867 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
10868 __extension__ extern __inline void
10869 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_f16(float16_t * __a,float16x4_t __b)10870 vst1_f16 (float16_t * __a, float16x4_t __b)
10871 {
10872 __builtin_neon_vst1v4hf (__a, __b);
10873 }
10874 #endif
10875
10876 __extension__ extern __inline void
10877 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_f32(float32_t * __a,float32x2_t __b)10878 vst1_f32 (float32_t * __a, float32x2_t __b)
10879 {
10880 __builtin_neon_vst1v2sf ((__builtin_neon_sf *) __a, __b);
10881 }
10882
10883 __extension__ extern __inline void
10884 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_u8(uint8_t * __a,uint8x8_t __b)10885 vst1_u8 (uint8_t * __a, uint8x8_t __b)
10886 {
10887 __builtin_neon_vst1v8qi ((__builtin_neon_qi *) __a, (int8x8_t) __b);
10888 }
10889
10890 __extension__ extern __inline void
10891 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_u16(uint16_t * __a,uint16x4_t __b)10892 vst1_u16 (uint16_t * __a, uint16x4_t __b)
10893 {
10894 __builtin_neon_vst1v4hi ((__builtin_neon_hi *) __a, (int16x4_t) __b);
10895 }
10896
10897 __extension__ extern __inline void
10898 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_u32(uint32_t * __a,uint32x2_t __b)10899 vst1_u32 (uint32_t * __a, uint32x2_t __b)
10900 {
10901 __builtin_neon_vst1v2si ((__builtin_neon_si *) __a, (int32x2_t) __b);
10902 }
10903
10904 __extension__ extern __inline void
10905 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_u64(uint64_t * __a,uint64x1_t __b)10906 vst1_u64 (uint64_t * __a, uint64x1_t __b)
10907 {
10908 __builtin_neon_vst1di ((__builtin_neon_di *) __a, (int64x1_t) __b);
10909 }
10910
10911 __extension__ extern __inline void
10912 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_p8(poly8_t * __a,poly8x8_t __b)10913 vst1_p8 (poly8_t * __a, poly8x8_t __b)
10914 {
10915 __builtin_neon_vst1v8qi ((__builtin_neon_qi *) __a, (int8x8_t) __b);
10916 }
10917
10918 __extension__ extern __inline void
10919 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_p16(poly16_t * __a,poly16x4_t __b)10920 vst1_p16 (poly16_t * __a, poly16x4_t __b)
10921 {
10922 __builtin_neon_vst1v4hi ((__builtin_neon_hi *) __a, (int16x4_t) __b);
10923 }
10924
10925 #pragma GCC push_options
10926 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
10927 __extension__ extern __inline void
10928 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_p64(poly64_t * __a,poly64x2_t __b)10929 vst1q_p64 (poly64_t * __a, poly64x2_t __b)
10930 {
10931 __builtin_neon_vst1v2di ((__builtin_neon_di *) __a, (int64x2_t) __b);
10932 }
10933
10934 #pragma GCC pop_options
10935 __extension__ extern __inline void
10936 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_s8(int8_t * __a,int8x16_t __b)10937 vst1q_s8 (int8_t * __a, int8x16_t __b)
10938 {
10939 __builtin_neon_vst1v16qi ((__builtin_neon_qi *) __a, __b);
10940 }
10941
10942 __extension__ extern __inline void
10943 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_s16(int16_t * __a,int16x8_t __b)10944 vst1q_s16 (int16_t * __a, int16x8_t __b)
10945 {
10946 __builtin_neon_vst1v8hi ((__builtin_neon_hi *) __a, __b);
10947 }
10948
10949 __extension__ extern __inline void
10950 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_s32(int32_t * __a,int32x4_t __b)10951 vst1q_s32 (int32_t * __a, int32x4_t __b)
10952 {
10953 __builtin_neon_vst1v4si ((__builtin_neon_si *) __a, __b);
10954 }
10955
10956 __extension__ extern __inline void
10957 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_s64(int64_t * __a,int64x2_t __b)10958 vst1q_s64 (int64_t * __a, int64x2_t __b)
10959 {
10960 __builtin_neon_vst1v2di ((__builtin_neon_di *) __a, __b);
10961 }
10962
10963 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
10964 __extension__ extern __inline void
10965 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_f16(float16_t * __a,float16x8_t __b)10966 vst1q_f16 (float16_t * __a, float16x8_t __b)
10967 {
10968 __builtin_neon_vst1v8hf (__a, __b);
10969 }
10970 #endif
10971
10972 __extension__ extern __inline void
10973 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_f32(float32_t * __a,float32x4_t __b)10974 vst1q_f32 (float32_t * __a, float32x4_t __b)
10975 {
10976 __builtin_neon_vst1v4sf ((__builtin_neon_sf *) __a, __b);
10977 }
10978
10979 __extension__ extern __inline void
10980 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_u8(uint8_t * __a,uint8x16_t __b)10981 vst1q_u8 (uint8_t * __a, uint8x16_t __b)
10982 {
10983 __builtin_neon_vst1v16qi ((__builtin_neon_qi *) __a, (int8x16_t) __b);
10984 }
10985
10986 __extension__ extern __inline void
10987 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_u16(uint16_t * __a,uint16x8_t __b)10988 vst1q_u16 (uint16_t * __a, uint16x8_t __b)
10989 {
10990 __builtin_neon_vst1v8hi ((__builtin_neon_hi *) __a, (int16x8_t) __b);
10991 }
10992
10993 __extension__ extern __inline void
10994 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_u32(uint32_t * __a,uint32x4_t __b)10995 vst1q_u32 (uint32_t * __a, uint32x4_t __b)
10996 {
10997 __builtin_neon_vst1v4si ((__builtin_neon_si *) __a, (int32x4_t) __b);
10998 }
10999
11000 __extension__ extern __inline void
11001 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_u64(uint64_t * __a,uint64x2_t __b)11002 vst1q_u64 (uint64_t * __a, uint64x2_t __b)
11003 {
11004 __builtin_neon_vst1v2di ((__builtin_neon_di *) __a, (int64x2_t) __b);
11005 }
11006
11007 __extension__ extern __inline void
11008 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_p8(poly8_t * __a,poly8x16_t __b)11009 vst1q_p8 (poly8_t * __a, poly8x16_t __b)
11010 {
11011 __builtin_neon_vst1v16qi ((__builtin_neon_qi *) __a, (int8x16_t) __b);
11012 }
11013
11014 __extension__ extern __inline void
11015 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_p16(poly16_t * __a,poly16x8_t __b)11016 vst1q_p16 (poly16_t * __a, poly16x8_t __b)
11017 {
11018 __builtin_neon_vst1v8hi ((__builtin_neon_hi *) __a, (int16x8_t) __b);
11019 }
11020
11021 __extension__ extern __inline void
11022 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_lane_s8(int8_t * __a,int8x8_t __b,const int __c)11023 vst1_lane_s8 (int8_t * __a, int8x8_t __b, const int __c)
11024 {
11025 __builtin_neon_vst1_lanev8qi ((__builtin_neon_qi *) __a, __b, __c);
11026 }
11027
11028 __extension__ extern __inline void
11029 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_lane_s16(int16_t * __a,int16x4_t __b,const int __c)11030 vst1_lane_s16 (int16_t * __a, int16x4_t __b, const int __c)
11031 {
11032 __builtin_neon_vst1_lanev4hi ((__builtin_neon_hi *) __a, __b, __c);
11033 }
11034
11035 __extension__ extern __inline void
11036 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_lane_s32(int32_t * __a,int32x2_t __b,const int __c)11037 vst1_lane_s32 (int32_t * __a, int32x2_t __b, const int __c)
11038 {
11039 __builtin_neon_vst1_lanev2si ((__builtin_neon_si *) __a, __b, __c);
11040 }
11041
11042 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
11043 __extension__ extern __inline void
11044 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_lane_f16(float16_t * __a,float16x4_t __b,const int __c)11045 vst1_lane_f16 (float16_t * __a, float16x4_t __b, const int __c)
11046 {
11047 __builtin_neon_vst1_lanev4hf (__a, __b, __c);
11048 }
11049 #endif
11050
11051 __extension__ extern __inline void
11052 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_lane_f32(float32_t * __a,float32x2_t __b,const int __c)11053 vst1_lane_f32 (float32_t * __a, float32x2_t __b, const int __c)
11054 {
11055 __builtin_neon_vst1_lanev2sf ((__builtin_neon_sf *) __a, __b, __c);
11056 }
11057
11058 __extension__ extern __inline void
11059 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_lane_u8(uint8_t * __a,uint8x8_t __b,const int __c)11060 vst1_lane_u8 (uint8_t * __a, uint8x8_t __b, const int __c)
11061 {
11062 __builtin_neon_vst1_lanev8qi ((__builtin_neon_qi *) __a, (int8x8_t) __b, __c);
11063 }
11064
11065 __extension__ extern __inline void
11066 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_lane_u16(uint16_t * __a,uint16x4_t __b,const int __c)11067 vst1_lane_u16 (uint16_t * __a, uint16x4_t __b, const int __c)
11068 {
11069 __builtin_neon_vst1_lanev4hi ((__builtin_neon_hi *) __a, (int16x4_t) __b, __c);
11070 }
11071
11072 __extension__ extern __inline void
11073 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_lane_u32(uint32_t * __a,uint32x2_t __b,const int __c)11074 vst1_lane_u32 (uint32_t * __a, uint32x2_t __b, const int __c)
11075 {
11076 __builtin_neon_vst1_lanev2si ((__builtin_neon_si *) __a, (int32x2_t) __b, __c);
11077 }
11078
11079 __extension__ extern __inline void
11080 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_lane_p8(poly8_t * __a,poly8x8_t __b,const int __c)11081 vst1_lane_p8 (poly8_t * __a, poly8x8_t __b, const int __c)
11082 {
11083 __builtin_neon_vst1_lanev8qi ((__builtin_neon_qi *) __a, (int8x8_t) __b, __c);
11084 }
11085
11086 __extension__ extern __inline void
11087 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_lane_p16(poly16_t * __a,poly16x4_t __b,const int __c)11088 vst1_lane_p16 (poly16_t * __a, poly16x4_t __b, const int __c)
11089 {
11090 __builtin_neon_vst1_lanev4hi ((__builtin_neon_hi *) __a, (int16x4_t) __b, __c);
11091 }
11092
11093 #pragma GCC push_options
11094 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
11095 __extension__ extern __inline void
11096 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_lane_p64(poly64_t * __a,poly64x1_t __b,const int __c)11097 vst1_lane_p64 (poly64_t * __a, poly64x1_t __b, const int __c)
11098 {
11099 __builtin_neon_vst1_lanedi ((__builtin_neon_di *) __a, __b, __c);
11100 }
11101
11102 #pragma GCC pop_options
11103 __extension__ extern __inline void
11104 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_lane_s64(int64_t * __a,int64x1_t __b,const int __c)11105 vst1_lane_s64 (int64_t * __a, int64x1_t __b, const int __c)
11106 {
11107 __builtin_neon_vst1_lanedi ((__builtin_neon_di *) __a, __b, __c);
11108 }
11109
11110 __extension__ extern __inline void
11111 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_lane_u64(uint64_t * __a,uint64x1_t __b,const int __c)11112 vst1_lane_u64 (uint64_t * __a, uint64x1_t __b, const int __c)
11113 {
11114 __builtin_neon_vst1_lanedi ((__builtin_neon_di *) __a, (int64x1_t) __b, __c);
11115 }
11116
11117 __extension__ extern __inline void
11118 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_lane_s8(int8_t * __a,int8x16_t __b,const int __c)11119 vst1q_lane_s8 (int8_t * __a, int8x16_t __b, const int __c)
11120 {
11121 __builtin_neon_vst1_lanev16qi ((__builtin_neon_qi *) __a, __b, __c);
11122 }
11123
11124 __extension__ extern __inline void
11125 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_lane_s16(int16_t * __a,int16x8_t __b,const int __c)11126 vst1q_lane_s16 (int16_t * __a, int16x8_t __b, const int __c)
11127 {
11128 __builtin_neon_vst1_lanev8hi ((__builtin_neon_hi *) __a, __b, __c);
11129 }
11130
11131 __extension__ extern __inline void
11132 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_lane_s32(int32_t * __a,int32x4_t __b,const int __c)11133 vst1q_lane_s32 (int32_t * __a, int32x4_t __b, const int __c)
11134 {
11135 __builtin_neon_vst1_lanev4si ((__builtin_neon_si *) __a, __b, __c);
11136 }
11137
11138 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
11139 __extension__ extern __inline void
11140 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_lane_f16(float16_t * __a,float16x8_t __b,const int __c)11141 vst1q_lane_f16 (float16_t * __a, float16x8_t __b, const int __c)
11142 {
11143 __builtin_neon_vst1_lanev8hf (__a, __b, __c);
11144 }
11145 #endif
11146
11147 __extension__ extern __inline void
11148 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_lane_f32(float32_t * __a,float32x4_t __b,const int __c)11149 vst1q_lane_f32 (float32_t * __a, float32x4_t __b, const int __c)
11150 {
11151 __builtin_neon_vst1_lanev4sf ((__builtin_neon_sf *) __a, __b, __c);
11152 }
11153
11154 __extension__ extern __inline void
11155 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_lane_u8(uint8_t * __a,uint8x16_t __b,const int __c)11156 vst1q_lane_u8 (uint8_t * __a, uint8x16_t __b, const int __c)
11157 {
11158 __builtin_neon_vst1_lanev16qi ((__builtin_neon_qi *) __a, (int8x16_t) __b, __c);
11159 }
11160
11161 __extension__ extern __inline void
11162 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_lane_u16(uint16_t * __a,uint16x8_t __b,const int __c)11163 vst1q_lane_u16 (uint16_t * __a, uint16x8_t __b, const int __c)
11164 {
11165 __builtin_neon_vst1_lanev8hi ((__builtin_neon_hi *) __a, (int16x8_t) __b, __c);
11166 }
11167
11168 __extension__ extern __inline void
11169 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_lane_u32(uint32_t * __a,uint32x4_t __b,const int __c)11170 vst1q_lane_u32 (uint32_t * __a, uint32x4_t __b, const int __c)
11171 {
11172 __builtin_neon_vst1_lanev4si ((__builtin_neon_si *) __a, (int32x4_t) __b, __c);
11173 }
11174
11175 __extension__ extern __inline void
11176 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_lane_p8(poly8_t * __a,poly8x16_t __b,const int __c)11177 vst1q_lane_p8 (poly8_t * __a, poly8x16_t __b, const int __c)
11178 {
11179 __builtin_neon_vst1_lanev16qi ((__builtin_neon_qi *) __a, (int8x16_t) __b, __c);
11180 }
11181
11182 __extension__ extern __inline void
11183 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_lane_p16(poly16_t * __a,poly16x8_t __b,const int __c)11184 vst1q_lane_p16 (poly16_t * __a, poly16x8_t __b, const int __c)
11185 {
11186 __builtin_neon_vst1_lanev8hi ((__builtin_neon_hi *) __a, (int16x8_t) __b, __c);
11187 }
11188
11189 #pragma GCC push_options
11190 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
11191 __extension__ extern __inline void
11192 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_lane_p64(poly64_t * __a,poly64x2_t __b,const int __c)11193 vst1q_lane_p64 (poly64_t * __a, poly64x2_t __b, const int __c)
11194 {
11195 __builtin_neon_vst1_lanev2di ((__builtin_neon_di *) __a, (int64x2_t) __b, __c);
11196 }
11197
11198 #pragma GCC pop_options
11199 __extension__ extern __inline void
11200 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_lane_s64(int64_t * __a,int64x2_t __b,const int __c)11201 vst1q_lane_s64 (int64_t * __a, int64x2_t __b, const int __c)
11202 {
11203 __builtin_neon_vst1_lanev2di ((__builtin_neon_di *) __a, __b, __c);
11204 }
11205
11206 __extension__ extern __inline void
11207 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_lane_u64(uint64_t * __a,uint64x2_t __b,const int __c)11208 vst1q_lane_u64 (uint64_t * __a, uint64x2_t __b, const int __c)
11209 {
11210 __builtin_neon_vst1_lanev2di ((__builtin_neon_di *) __a, (int64x2_t) __b, __c);
11211 }
11212
11213 __extension__ extern __inline int8x8x2_t
11214 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_s8(const int8_t * __a)11215 vld2_s8 (const int8_t * __a)
11216 {
11217 union { int8x8x2_t __i; __builtin_neon_ti __o; } __rv;
11218 __rv.__o = __builtin_neon_vld2v8qi ((const __builtin_neon_qi *) __a);
11219 return __rv.__i;
11220 }
11221
11222 __extension__ extern __inline int16x4x2_t
11223 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_s16(const int16_t * __a)11224 vld2_s16 (const int16_t * __a)
11225 {
11226 union { int16x4x2_t __i; __builtin_neon_ti __o; } __rv;
11227 __rv.__o = __builtin_neon_vld2v4hi ((const __builtin_neon_hi *) __a);
11228 return __rv.__i;
11229 }
11230
11231 __extension__ extern __inline int32x2x2_t
11232 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_s32(const int32_t * __a)11233 vld2_s32 (const int32_t * __a)
11234 {
11235 union { int32x2x2_t __i; __builtin_neon_ti __o; } __rv;
11236 __rv.__o = __builtin_neon_vld2v2si ((const __builtin_neon_si *) __a);
11237 return __rv.__i;
11238 }
11239
11240 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
11241 __extension__ extern __inline float16x4x2_t
11242 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_f16(const float16_t * __a)11243 vld2_f16 (const float16_t * __a)
11244 {
11245 union { float16x4x2_t __i; __builtin_neon_ti __o; } __rv;
11246 __rv.__o = __builtin_neon_vld2v4hf (__a);
11247 return __rv.__i;
11248 }
11249 #endif
11250
11251 __extension__ extern __inline float32x2x2_t
11252 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_f32(const float32_t * __a)11253 vld2_f32 (const float32_t * __a)
11254 {
11255 union { float32x2x2_t __i; __builtin_neon_ti __o; } __rv;
11256 __rv.__o = __builtin_neon_vld2v2sf ((const __builtin_neon_sf *) __a);
11257 return __rv.__i;
11258 }
11259
11260 __extension__ extern __inline uint8x8x2_t
11261 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_u8(const uint8_t * __a)11262 vld2_u8 (const uint8_t * __a)
11263 {
11264 union { uint8x8x2_t __i; __builtin_neon_ti __o; } __rv;
11265 __rv.__o = __builtin_neon_vld2v8qi ((const __builtin_neon_qi *) __a);
11266 return __rv.__i;
11267 }
11268
11269 __extension__ extern __inline uint16x4x2_t
11270 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_u16(const uint16_t * __a)11271 vld2_u16 (const uint16_t * __a)
11272 {
11273 union { uint16x4x2_t __i; __builtin_neon_ti __o; } __rv;
11274 __rv.__o = __builtin_neon_vld2v4hi ((const __builtin_neon_hi *) __a);
11275 return __rv.__i;
11276 }
11277
11278 __extension__ extern __inline uint32x2x2_t
11279 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_u32(const uint32_t * __a)11280 vld2_u32 (const uint32_t * __a)
11281 {
11282 union { uint32x2x2_t __i; __builtin_neon_ti __o; } __rv;
11283 __rv.__o = __builtin_neon_vld2v2si ((const __builtin_neon_si *) __a);
11284 return __rv.__i;
11285 }
11286
11287 __extension__ extern __inline poly8x8x2_t
11288 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_p8(const poly8_t * __a)11289 vld2_p8 (const poly8_t * __a)
11290 {
11291 union { poly8x8x2_t __i; __builtin_neon_ti __o; } __rv;
11292 __rv.__o = __builtin_neon_vld2v8qi ((const __builtin_neon_qi *) __a);
11293 return __rv.__i;
11294 }
11295
11296 __extension__ extern __inline poly16x4x2_t
11297 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_p16(const poly16_t * __a)11298 vld2_p16 (const poly16_t * __a)
11299 {
11300 union { poly16x4x2_t __i; __builtin_neon_ti __o; } __rv;
11301 __rv.__o = __builtin_neon_vld2v4hi ((const __builtin_neon_hi *) __a);
11302 return __rv.__i;
11303 }
11304
11305 #pragma GCC push_options
11306 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
11307 __extension__ extern __inline poly64x1x2_t
11308 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_p64(const poly64_t * __a)11309 vld2_p64 (const poly64_t * __a)
11310 {
11311 union { poly64x1x2_t __i; __builtin_neon_ti __o; } __rv;
11312 __rv.__o = __builtin_neon_vld2di ((const __builtin_neon_di *) __a);
11313 return __rv.__i;
11314 }
11315
11316 #pragma GCC pop_options
11317 __extension__ extern __inline int64x1x2_t
11318 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_s64(const int64_t * __a)11319 vld2_s64 (const int64_t * __a)
11320 {
11321 union { int64x1x2_t __i; __builtin_neon_ti __o; } __rv;
11322 __rv.__o = __builtin_neon_vld2di ((const __builtin_neon_di *) __a);
11323 return __rv.__i;
11324 }
11325
11326 __extension__ extern __inline uint64x1x2_t
11327 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_u64(const uint64_t * __a)11328 vld2_u64 (const uint64_t * __a)
11329 {
11330 union { uint64x1x2_t __i; __builtin_neon_ti __o; } __rv;
11331 __rv.__o = __builtin_neon_vld2di ((const __builtin_neon_di *) __a);
11332 return __rv.__i;
11333 }
11334
11335 __extension__ extern __inline int8x16x2_t
11336 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_s8(const int8_t * __a)11337 vld2q_s8 (const int8_t * __a)
11338 {
11339 union { int8x16x2_t __i; __builtin_neon_oi __o; } __rv;
11340 __rv.__o = __builtin_neon_vld2v16qi ((const __builtin_neon_qi *) __a);
11341 return __rv.__i;
11342 }
11343
11344 __extension__ extern __inline int16x8x2_t
11345 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_s16(const int16_t * __a)11346 vld2q_s16 (const int16_t * __a)
11347 {
11348 union { int16x8x2_t __i; __builtin_neon_oi __o; } __rv;
11349 __rv.__o = __builtin_neon_vld2v8hi ((const __builtin_neon_hi *) __a);
11350 return __rv.__i;
11351 }
11352
11353 __extension__ extern __inline int32x4x2_t
11354 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_s32(const int32_t * __a)11355 vld2q_s32 (const int32_t * __a)
11356 {
11357 union { int32x4x2_t __i; __builtin_neon_oi __o; } __rv;
11358 __rv.__o = __builtin_neon_vld2v4si ((const __builtin_neon_si *) __a);
11359 return __rv.__i;
11360 }
11361
11362 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
11363 __extension__ extern __inline float16x8x2_t
11364 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_f16(const float16_t * __a)11365 vld2q_f16 (const float16_t * __a)
11366 {
11367 union { float16x8x2_t __i; __builtin_neon_oi __o; } __rv;
11368 __rv.__o = __builtin_neon_vld2v8hf (__a);
11369 return __rv.__i;
11370 }
11371 #endif
11372
11373 __extension__ extern __inline float32x4x2_t
11374 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_f32(const float32_t * __a)11375 vld2q_f32 (const float32_t * __a)
11376 {
11377 union { float32x4x2_t __i; __builtin_neon_oi __o; } __rv;
11378 __rv.__o = __builtin_neon_vld2v4sf ((const __builtin_neon_sf *) __a);
11379 return __rv.__i;
11380 }
11381
11382 __extension__ extern __inline uint8x16x2_t
11383 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_u8(const uint8_t * __a)11384 vld2q_u8 (const uint8_t * __a)
11385 {
11386 union { uint8x16x2_t __i; __builtin_neon_oi __o; } __rv;
11387 __rv.__o = __builtin_neon_vld2v16qi ((const __builtin_neon_qi *) __a);
11388 return __rv.__i;
11389 }
11390
11391 __extension__ extern __inline uint16x8x2_t
11392 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_u16(const uint16_t * __a)11393 vld2q_u16 (const uint16_t * __a)
11394 {
11395 union { uint16x8x2_t __i; __builtin_neon_oi __o; } __rv;
11396 __rv.__o = __builtin_neon_vld2v8hi ((const __builtin_neon_hi *) __a);
11397 return __rv.__i;
11398 }
11399
11400 __extension__ extern __inline uint32x4x2_t
11401 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_u32(const uint32_t * __a)11402 vld2q_u32 (const uint32_t * __a)
11403 {
11404 union { uint32x4x2_t __i; __builtin_neon_oi __o; } __rv;
11405 __rv.__o = __builtin_neon_vld2v4si ((const __builtin_neon_si *) __a);
11406 return __rv.__i;
11407 }
11408
11409 __extension__ extern __inline poly8x16x2_t
11410 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_p8(const poly8_t * __a)11411 vld2q_p8 (const poly8_t * __a)
11412 {
11413 union { poly8x16x2_t __i; __builtin_neon_oi __o; } __rv;
11414 __rv.__o = __builtin_neon_vld2v16qi ((const __builtin_neon_qi *) __a);
11415 return __rv.__i;
11416 }
11417
11418 __extension__ extern __inline poly16x8x2_t
11419 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_p16(const poly16_t * __a)11420 vld2q_p16 (const poly16_t * __a)
11421 {
11422 union { poly16x8x2_t __i; __builtin_neon_oi __o; } __rv;
11423 __rv.__o = __builtin_neon_vld2v8hi ((const __builtin_neon_hi *) __a);
11424 return __rv.__i;
11425 }
11426
11427 __extension__ extern __inline int8x8x2_t
11428 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_lane_s8(const int8_t * __a,int8x8x2_t __b,const int __c)11429 vld2_lane_s8 (const int8_t * __a, int8x8x2_t __b, const int __c)
11430 {
11431 union { int8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11432 union { int8x8x2_t __i; __builtin_neon_ti __o; } __rv;
11433 __rv.__o = __builtin_neon_vld2_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
11434 return __rv.__i;
11435 }
11436
11437 __extension__ extern __inline int16x4x2_t
11438 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_lane_s16(const int16_t * __a,int16x4x2_t __b,const int __c)11439 vld2_lane_s16 (const int16_t * __a, int16x4x2_t __b, const int __c)
11440 {
11441 union { int16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11442 union { int16x4x2_t __i; __builtin_neon_ti __o; } __rv;
11443 __rv.__o = __builtin_neon_vld2_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
11444 return __rv.__i;
11445 }
11446
11447 __extension__ extern __inline int32x2x2_t
11448 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_lane_s32(const int32_t * __a,int32x2x2_t __b,const int __c)11449 vld2_lane_s32 (const int32_t * __a, int32x2x2_t __b, const int __c)
11450 {
11451 union { int32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11452 union { int32x2x2_t __i; __builtin_neon_ti __o; } __rv;
11453 __rv.__o = __builtin_neon_vld2_lanev2si ((const __builtin_neon_si *) __a, __bu.__o, __c);
11454 return __rv.__i;
11455 }
11456
11457 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
11458 __extension__ extern __inline float16x4x2_t
11459 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_lane_f16(const float16_t * __a,float16x4x2_t __b,const int __c)11460 vld2_lane_f16 (const float16_t * __a, float16x4x2_t __b, const int __c)
11461 {
11462 union { float16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11463 union { float16x4x2_t __i; __builtin_neon_ti __o; } __rv;
11464 __rv.__o = __builtin_neon_vld2_lanev4hf ( __a, __bu.__o, __c);
11465 return __rv.__i;
11466 }
11467 #endif
11468
11469 __extension__ extern __inline float32x2x2_t
11470 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_lane_f32(const float32_t * __a,float32x2x2_t __b,const int __c)11471 vld2_lane_f32 (const float32_t * __a, float32x2x2_t __b, const int __c)
11472 {
11473 union { float32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11474 union { float32x2x2_t __i; __builtin_neon_ti __o; } __rv;
11475 __rv.__o = __builtin_neon_vld2_lanev2sf ((const __builtin_neon_sf *) __a, __bu.__o, __c);
11476 return __rv.__i;
11477 }
11478
11479 __extension__ extern __inline uint8x8x2_t
11480 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_lane_u8(const uint8_t * __a,uint8x8x2_t __b,const int __c)11481 vld2_lane_u8 (const uint8_t * __a, uint8x8x2_t __b, const int __c)
11482 {
11483 union { uint8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11484 union { uint8x8x2_t __i; __builtin_neon_ti __o; } __rv;
11485 __rv.__o = __builtin_neon_vld2_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
11486 return __rv.__i;
11487 }
11488
11489 __extension__ extern __inline uint16x4x2_t
11490 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_lane_u16(const uint16_t * __a,uint16x4x2_t __b,const int __c)11491 vld2_lane_u16 (const uint16_t * __a, uint16x4x2_t __b, const int __c)
11492 {
11493 union { uint16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11494 union { uint16x4x2_t __i; __builtin_neon_ti __o; } __rv;
11495 __rv.__o = __builtin_neon_vld2_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
11496 return __rv.__i;
11497 }
11498
11499 __extension__ extern __inline uint32x2x2_t
11500 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_lane_u32(const uint32_t * __a,uint32x2x2_t __b,const int __c)11501 vld2_lane_u32 (const uint32_t * __a, uint32x2x2_t __b, const int __c)
11502 {
11503 union { uint32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11504 union { uint32x2x2_t __i; __builtin_neon_ti __o; } __rv;
11505 __rv.__o = __builtin_neon_vld2_lanev2si ((const __builtin_neon_si *) __a, __bu.__o, __c);
11506 return __rv.__i;
11507 }
11508
11509 __extension__ extern __inline poly8x8x2_t
11510 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_lane_p8(const poly8_t * __a,poly8x8x2_t __b,const int __c)11511 vld2_lane_p8 (const poly8_t * __a, poly8x8x2_t __b, const int __c)
11512 {
11513 union { poly8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11514 union { poly8x8x2_t __i; __builtin_neon_ti __o; } __rv;
11515 __rv.__o = __builtin_neon_vld2_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
11516 return __rv.__i;
11517 }
11518
11519 __extension__ extern __inline poly16x4x2_t
11520 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_lane_p16(const poly16_t * __a,poly16x4x2_t __b,const int __c)11521 vld2_lane_p16 (const poly16_t * __a, poly16x4x2_t __b, const int __c)
11522 {
11523 union { poly16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11524 union { poly16x4x2_t __i; __builtin_neon_ti __o; } __rv;
11525 __rv.__o = __builtin_neon_vld2_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
11526 return __rv.__i;
11527 }
11528
11529 __extension__ extern __inline int16x8x2_t
11530 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_lane_s16(const int16_t * __a,int16x8x2_t __b,const int __c)11531 vld2q_lane_s16 (const int16_t * __a, int16x8x2_t __b, const int __c)
11532 {
11533 union { int16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11534 union { int16x8x2_t __i; __builtin_neon_oi __o; } __rv;
11535 __rv.__o = __builtin_neon_vld2_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
11536 return __rv.__i;
11537 }
11538
11539 __extension__ extern __inline int32x4x2_t
11540 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_lane_s32(const int32_t * __a,int32x4x2_t __b,const int __c)11541 vld2q_lane_s32 (const int32_t * __a, int32x4x2_t __b, const int __c)
11542 {
11543 union { int32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11544 union { int32x4x2_t __i; __builtin_neon_oi __o; } __rv;
11545 __rv.__o = __builtin_neon_vld2_lanev4si ((const __builtin_neon_si *) __a, __bu.__o, __c);
11546 return __rv.__i;
11547 }
11548
11549 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
11550 __extension__ extern __inline float16x8x2_t
11551 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_lane_f16(const float16_t * __a,float16x8x2_t __b,const int __c)11552 vld2q_lane_f16 (const float16_t * __a, float16x8x2_t __b, const int __c)
11553 {
11554 union { float16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11555 union { float16x8x2_t __i; __builtin_neon_oi __o; } __rv;
11556 __rv.__o = __builtin_neon_vld2_lanev8hf (__a, __bu.__o, __c);
11557 return __rv.__i;
11558 }
11559 #endif
11560
11561 __extension__ extern __inline float32x4x2_t
11562 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_lane_f32(const float32_t * __a,float32x4x2_t __b,const int __c)11563 vld2q_lane_f32 (const float32_t * __a, float32x4x2_t __b, const int __c)
11564 {
11565 union { float32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11566 union { float32x4x2_t __i; __builtin_neon_oi __o; } __rv;
11567 __rv.__o = __builtin_neon_vld2_lanev4sf ((const __builtin_neon_sf *) __a, __bu.__o, __c);
11568 return __rv.__i;
11569 }
11570
11571 __extension__ extern __inline uint16x8x2_t
11572 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_lane_u16(const uint16_t * __a,uint16x8x2_t __b,const int __c)11573 vld2q_lane_u16 (const uint16_t * __a, uint16x8x2_t __b, const int __c)
11574 {
11575 union { uint16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11576 union { uint16x8x2_t __i; __builtin_neon_oi __o; } __rv;
11577 __rv.__o = __builtin_neon_vld2_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
11578 return __rv.__i;
11579 }
11580
11581 __extension__ extern __inline uint32x4x2_t
11582 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_lane_u32(const uint32_t * __a,uint32x4x2_t __b,const int __c)11583 vld2q_lane_u32 (const uint32_t * __a, uint32x4x2_t __b, const int __c)
11584 {
11585 union { uint32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11586 union { uint32x4x2_t __i; __builtin_neon_oi __o; } __rv;
11587 __rv.__o = __builtin_neon_vld2_lanev4si ((const __builtin_neon_si *) __a, __bu.__o, __c);
11588 return __rv.__i;
11589 }
11590
11591 __extension__ extern __inline poly16x8x2_t
11592 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_lane_p16(const poly16_t * __a,poly16x8x2_t __b,const int __c)11593 vld2q_lane_p16 (const poly16_t * __a, poly16x8x2_t __b, const int __c)
11594 {
11595 union { poly16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11596 union { poly16x8x2_t __i; __builtin_neon_oi __o; } __rv;
11597 __rv.__o = __builtin_neon_vld2_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
11598 return __rv.__i;
11599 }
11600
11601 __extension__ extern __inline int8x8x2_t
11602 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_dup_s8(const int8_t * __a)11603 vld2_dup_s8 (const int8_t * __a)
11604 {
11605 union { int8x8x2_t __i; __builtin_neon_ti __o; } __rv;
11606 __rv.__o = __builtin_neon_vld2_dupv8qi ((const __builtin_neon_qi *) __a);
11607 return __rv.__i;
11608 }
11609
11610 __extension__ extern __inline int16x4x2_t
11611 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_dup_s16(const int16_t * __a)11612 vld2_dup_s16 (const int16_t * __a)
11613 {
11614 union { int16x4x2_t __i; __builtin_neon_ti __o; } __rv;
11615 __rv.__o = __builtin_neon_vld2_dupv4hi ((const __builtin_neon_hi *) __a);
11616 return __rv.__i;
11617 }
11618
11619 __extension__ extern __inline int32x2x2_t
11620 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_dup_s32(const int32_t * __a)11621 vld2_dup_s32 (const int32_t * __a)
11622 {
11623 union { int32x2x2_t __i; __builtin_neon_ti __o; } __rv;
11624 __rv.__o = __builtin_neon_vld2_dupv2si ((const __builtin_neon_si *) __a);
11625 return __rv.__i;
11626 }
11627
11628 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
11629 __extension__ extern __inline float16x4x2_t
11630 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_dup_f16(const float16_t * __a)11631 vld2_dup_f16 (const float16_t * __a)
11632 {
11633 union { float16x4x2_t __i; __builtin_neon_ti __o; } __rv;
11634 __rv.__o = __builtin_neon_vld2_dupv4hf (__a);
11635 return __rv.__i;
11636 }
11637 #endif
11638
11639 __extension__ extern __inline float32x2x2_t
11640 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_dup_f32(const float32_t * __a)11641 vld2_dup_f32 (const float32_t * __a)
11642 {
11643 union { float32x2x2_t __i; __builtin_neon_ti __o; } __rv;
11644 __rv.__o = __builtin_neon_vld2_dupv2sf ((const __builtin_neon_sf *) __a);
11645 return __rv.__i;
11646 }
11647
11648 __extension__ extern __inline uint8x8x2_t
11649 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_dup_u8(const uint8_t * __a)11650 vld2_dup_u8 (const uint8_t * __a)
11651 {
11652 union { uint8x8x2_t __i; __builtin_neon_ti __o; } __rv;
11653 __rv.__o = __builtin_neon_vld2_dupv8qi ((const __builtin_neon_qi *) __a);
11654 return __rv.__i;
11655 }
11656
11657 __extension__ extern __inline uint16x4x2_t
11658 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_dup_u16(const uint16_t * __a)11659 vld2_dup_u16 (const uint16_t * __a)
11660 {
11661 union { uint16x4x2_t __i; __builtin_neon_ti __o; } __rv;
11662 __rv.__o = __builtin_neon_vld2_dupv4hi ((const __builtin_neon_hi *) __a);
11663 return __rv.__i;
11664 }
11665
11666 __extension__ extern __inline uint32x2x2_t
11667 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_dup_u32(const uint32_t * __a)11668 vld2_dup_u32 (const uint32_t * __a)
11669 {
11670 union { uint32x2x2_t __i; __builtin_neon_ti __o; } __rv;
11671 __rv.__o = __builtin_neon_vld2_dupv2si ((const __builtin_neon_si *) __a);
11672 return __rv.__i;
11673 }
11674
11675 __extension__ extern __inline poly8x8x2_t
11676 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_dup_p8(const poly8_t * __a)11677 vld2_dup_p8 (const poly8_t * __a)
11678 {
11679 union { poly8x8x2_t __i; __builtin_neon_ti __o; } __rv;
11680 __rv.__o = __builtin_neon_vld2_dupv8qi ((const __builtin_neon_qi *) __a);
11681 return __rv.__i;
11682 }
11683
11684 __extension__ extern __inline poly16x4x2_t
11685 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_dup_p16(const poly16_t * __a)11686 vld2_dup_p16 (const poly16_t * __a)
11687 {
11688 union { poly16x4x2_t __i; __builtin_neon_ti __o; } __rv;
11689 __rv.__o = __builtin_neon_vld2_dupv4hi ((const __builtin_neon_hi *) __a);
11690 return __rv.__i;
11691 }
11692
11693 #pragma GCC push_options
11694 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
11695 __extension__ extern __inline poly64x1x2_t
11696 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_dup_p64(const poly64_t * __a)11697 vld2_dup_p64 (const poly64_t * __a)
11698 {
11699 union { poly64x1x2_t __i; __builtin_neon_ti __o; } __rv;
11700 __rv.__o = __builtin_neon_vld2_dupdi ((const __builtin_neon_di *) __a);
11701 return __rv.__i;
11702 }
11703
11704 #pragma GCC pop_options
11705 __extension__ extern __inline int64x1x2_t
11706 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_dup_s64(const int64_t * __a)11707 vld2_dup_s64 (const int64_t * __a)
11708 {
11709 union { int64x1x2_t __i; __builtin_neon_ti __o; } __rv;
11710 __rv.__o = __builtin_neon_vld2_dupdi ((const __builtin_neon_di *) __a);
11711 return __rv.__i;
11712 }
11713
11714 __extension__ extern __inline uint64x1x2_t
11715 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_dup_u64(const uint64_t * __a)11716 vld2_dup_u64 (const uint64_t * __a)
11717 {
11718 union { uint64x1x2_t __i; __builtin_neon_ti __o; } __rv;
11719 __rv.__o = __builtin_neon_vld2_dupdi ((const __builtin_neon_di *) __a);
11720 return __rv.__i;
11721 }
11722
11723 __extension__ extern __inline void
11724 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2_s8(int8_t * __a,int8x8x2_t __b)11725 vst2_s8 (int8_t * __a, int8x8x2_t __b)
11726 {
11727 union { int8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11728 __builtin_neon_vst2v8qi ((__builtin_neon_qi *) __a, __bu.__o);
11729 }
11730
11731 __extension__ extern __inline void
11732 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2_s16(int16_t * __a,int16x4x2_t __b)11733 vst2_s16 (int16_t * __a, int16x4x2_t __b)
11734 {
11735 union { int16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11736 __builtin_neon_vst2v4hi ((__builtin_neon_hi *) __a, __bu.__o);
11737 }
11738
11739 __extension__ extern __inline void
11740 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2_s32(int32_t * __a,int32x2x2_t __b)11741 vst2_s32 (int32_t * __a, int32x2x2_t __b)
11742 {
11743 union { int32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11744 __builtin_neon_vst2v2si ((__builtin_neon_si *) __a, __bu.__o);
11745 }
11746
11747 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
11748 __extension__ extern __inline void
11749 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2_f16(float16_t * __a,float16x4x2_t __b)11750 vst2_f16 (float16_t * __a, float16x4x2_t __b)
11751 {
11752 union { float16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11753 __builtin_neon_vst2v4hf (__a, __bu.__o);
11754 }
11755 #endif
11756
11757 __extension__ extern __inline void
11758 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2_f32(float32_t * __a,float32x2x2_t __b)11759 vst2_f32 (float32_t * __a, float32x2x2_t __b)
11760 {
11761 union { float32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11762 __builtin_neon_vst2v2sf ((__builtin_neon_sf *) __a, __bu.__o);
11763 }
11764
11765 __extension__ extern __inline void
11766 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2_u8(uint8_t * __a,uint8x8x2_t __b)11767 vst2_u8 (uint8_t * __a, uint8x8x2_t __b)
11768 {
11769 union { uint8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11770 __builtin_neon_vst2v8qi ((__builtin_neon_qi *) __a, __bu.__o);
11771 }
11772
11773 __extension__ extern __inline void
11774 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2_u16(uint16_t * __a,uint16x4x2_t __b)11775 vst2_u16 (uint16_t * __a, uint16x4x2_t __b)
11776 {
11777 union { uint16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11778 __builtin_neon_vst2v4hi ((__builtin_neon_hi *) __a, __bu.__o);
11779 }
11780
11781 __extension__ extern __inline void
11782 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2_u32(uint32_t * __a,uint32x2x2_t __b)11783 vst2_u32 (uint32_t * __a, uint32x2x2_t __b)
11784 {
11785 union { uint32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11786 __builtin_neon_vst2v2si ((__builtin_neon_si *) __a, __bu.__o);
11787 }
11788
11789 __extension__ extern __inline void
11790 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2_p8(poly8_t * __a,poly8x8x2_t __b)11791 vst2_p8 (poly8_t * __a, poly8x8x2_t __b)
11792 {
11793 union { poly8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11794 __builtin_neon_vst2v8qi ((__builtin_neon_qi *) __a, __bu.__o);
11795 }
11796
11797 __extension__ extern __inline void
11798 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2_p16(poly16_t * __a,poly16x4x2_t __b)11799 vst2_p16 (poly16_t * __a, poly16x4x2_t __b)
11800 {
11801 union { poly16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11802 __builtin_neon_vst2v4hi ((__builtin_neon_hi *) __a, __bu.__o);
11803 }
11804
11805 #pragma GCC push_options
11806 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
11807 __extension__ extern __inline void
11808 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2_p64(poly64_t * __a,poly64x1x2_t __b)11809 vst2_p64 (poly64_t * __a, poly64x1x2_t __b)
11810 {
11811 union { poly64x1x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11812 __builtin_neon_vst2di ((__builtin_neon_di *) __a, __bu.__o);
11813 }
11814
11815 #pragma GCC pop_options
11816 __extension__ extern __inline void
11817 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2_s64(int64_t * __a,int64x1x2_t __b)11818 vst2_s64 (int64_t * __a, int64x1x2_t __b)
11819 {
11820 union { int64x1x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11821 __builtin_neon_vst2di ((__builtin_neon_di *) __a, __bu.__o);
11822 }
11823
11824 __extension__ extern __inline void
11825 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2_u64(uint64_t * __a,uint64x1x2_t __b)11826 vst2_u64 (uint64_t * __a, uint64x1x2_t __b)
11827 {
11828 union { uint64x1x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11829 __builtin_neon_vst2di ((__builtin_neon_di *) __a, __bu.__o);
11830 }
11831
11832 __extension__ extern __inline void
11833 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2q_s8(int8_t * __a,int8x16x2_t __b)11834 vst2q_s8 (int8_t * __a, int8x16x2_t __b)
11835 {
11836 union { int8x16x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11837 __builtin_neon_vst2v16qi ((__builtin_neon_qi *) __a, __bu.__o);
11838 }
11839
11840 __extension__ extern __inline void
11841 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2q_s16(int16_t * __a,int16x8x2_t __b)11842 vst2q_s16 (int16_t * __a, int16x8x2_t __b)
11843 {
11844 union { int16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11845 __builtin_neon_vst2v8hi ((__builtin_neon_hi *) __a, __bu.__o);
11846 }
11847
11848 __extension__ extern __inline void
11849 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2q_s32(int32_t * __a,int32x4x2_t __b)11850 vst2q_s32 (int32_t * __a, int32x4x2_t __b)
11851 {
11852 union { int32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11853 __builtin_neon_vst2v4si ((__builtin_neon_si *) __a, __bu.__o);
11854 }
11855
11856 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
11857 __extension__ extern __inline void
11858 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2q_f16(float16_t * __a,float16x8x2_t __b)11859 vst2q_f16 (float16_t * __a, float16x8x2_t __b)
11860 {
11861 union { float16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11862 __builtin_neon_vst2v8hf (__a, __bu.__o);
11863 }
11864 #endif
11865
11866 __extension__ extern __inline void
11867 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2q_f32(float32_t * __a,float32x4x2_t __b)11868 vst2q_f32 (float32_t * __a, float32x4x2_t __b)
11869 {
11870 union { float32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11871 __builtin_neon_vst2v4sf ((__builtin_neon_sf *) __a, __bu.__o);
11872 }
11873
11874 __extension__ extern __inline void
11875 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2q_u8(uint8_t * __a,uint8x16x2_t __b)11876 vst2q_u8 (uint8_t * __a, uint8x16x2_t __b)
11877 {
11878 union { uint8x16x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11879 __builtin_neon_vst2v16qi ((__builtin_neon_qi *) __a, __bu.__o);
11880 }
11881
11882 __extension__ extern __inline void
11883 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2q_u16(uint16_t * __a,uint16x8x2_t __b)11884 vst2q_u16 (uint16_t * __a, uint16x8x2_t __b)
11885 {
11886 union { uint16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11887 __builtin_neon_vst2v8hi ((__builtin_neon_hi *) __a, __bu.__o);
11888 }
11889
11890 __extension__ extern __inline void
11891 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2q_u32(uint32_t * __a,uint32x4x2_t __b)11892 vst2q_u32 (uint32_t * __a, uint32x4x2_t __b)
11893 {
11894 union { uint32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11895 __builtin_neon_vst2v4si ((__builtin_neon_si *) __a, __bu.__o);
11896 }
11897
11898 __extension__ extern __inline void
11899 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2q_p8(poly8_t * __a,poly8x16x2_t __b)11900 vst2q_p8 (poly8_t * __a, poly8x16x2_t __b)
11901 {
11902 union { poly8x16x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11903 __builtin_neon_vst2v16qi ((__builtin_neon_qi *) __a, __bu.__o);
11904 }
11905
11906 __extension__ extern __inline void
11907 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2q_p16(poly16_t * __a,poly16x8x2_t __b)11908 vst2q_p16 (poly16_t * __a, poly16x8x2_t __b)
11909 {
11910 union { poly16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11911 __builtin_neon_vst2v8hi ((__builtin_neon_hi *) __a, __bu.__o);
11912 }
11913
11914 __extension__ extern __inline void
11915 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2_lane_s8(int8_t * __a,int8x8x2_t __b,const int __c)11916 vst2_lane_s8 (int8_t * __a, int8x8x2_t __b, const int __c)
11917 {
11918 union { int8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11919 __builtin_neon_vst2_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
11920 }
11921
11922 __extension__ extern __inline void
11923 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2_lane_s16(int16_t * __a,int16x4x2_t __b,const int __c)11924 vst2_lane_s16 (int16_t * __a, int16x4x2_t __b, const int __c)
11925 {
11926 union { int16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11927 __builtin_neon_vst2_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
11928 }
11929
11930 __extension__ extern __inline void
11931 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2_lane_s32(int32_t * __a,int32x2x2_t __b,const int __c)11932 vst2_lane_s32 (int32_t * __a, int32x2x2_t __b, const int __c)
11933 {
11934 union { int32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11935 __builtin_neon_vst2_lanev2si ((__builtin_neon_si *) __a, __bu.__o, __c);
11936 }
11937
11938 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
11939 __extension__ extern __inline void
11940 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2_lane_f16(float16_t * __a,float16x4x2_t __b,const int __c)11941 vst2_lane_f16 (float16_t * __a, float16x4x2_t __b, const int __c)
11942 {
11943 union { float16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11944 __builtin_neon_vst2_lanev4hf (__a, __bu.__o, __c);
11945 }
11946 #endif
11947
11948 __extension__ extern __inline void
11949 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2_lane_f32(float32_t * __a,float32x2x2_t __b,const int __c)11950 vst2_lane_f32 (float32_t * __a, float32x2x2_t __b, const int __c)
11951 {
11952 union { float32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11953 __builtin_neon_vst2_lanev2sf ((__builtin_neon_sf *) __a, __bu.__o, __c);
11954 }
11955
11956 __extension__ extern __inline void
11957 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2_lane_u8(uint8_t * __a,uint8x8x2_t __b,const int __c)11958 vst2_lane_u8 (uint8_t * __a, uint8x8x2_t __b, const int __c)
11959 {
11960 union { uint8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11961 __builtin_neon_vst2_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
11962 }
11963
11964 __extension__ extern __inline void
11965 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2_lane_u16(uint16_t * __a,uint16x4x2_t __b,const int __c)11966 vst2_lane_u16 (uint16_t * __a, uint16x4x2_t __b, const int __c)
11967 {
11968 union { uint16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11969 __builtin_neon_vst2_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
11970 }
11971
11972 __extension__ extern __inline void
11973 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2_lane_u32(uint32_t * __a,uint32x2x2_t __b,const int __c)11974 vst2_lane_u32 (uint32_t * __a, uint32x2x2_t __b, const int __c)
11975 {
11976 union { uint32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11977 __builtin_neon_vst2_lanev2si ((__builtin_neon_si *) __a, __bu.__o, __c);
11978 }
11979
11980 __extension__ extern __inline void
11981 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2_lane_p8(poly8_t * __a,poly8x8x2_t __b,const int __c)11982 vst2_lane_p8 (poly8_t * __a, poly8x8x2_t __b, const int __c)
11983 {
11984 union { poly8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11985 __builtin_neon_vst2_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
11986 }
11987
11988 __extension__ extern __inline void
11989 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2_lane_p16(poly16_t * __a,poly16x4x2_t __b,const int __c)11990 vst2_lane_p16 (poly16_t * __a, poly16x4x2_t __b, const int __c)
11991 {
11992 union { poly16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11993 __builtin_neon_vst2_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
11994 }
11995
11996 __extension__ extern __inline void
11997 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2q_lane_s16(int16_t * __a,int16x8x2_t __b,const int __c)11998 vst2q_lane_s16 (int16_t * __a, int16x8x2_t __b, const int __c)
11999 {
12000 union { int16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
12001 __builtin_neon_vst2_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
12002 }
12003
12004 __extension__ extern __inline void
12005 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2q_lane_s32(int32_t * __a,int32x4x2_t __b,const int __c)12006 vst2q_lane_s32 (int32_t * __a, int32x4x2_t __b, const int __c)
12007 {
12008 union { int32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
12009 __builtin_neon_vst2_lanev4si ((__builtin_neon_si *) __a, __bu.__o, __c);
12010 }
12011
12012 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
12013 __extension__ extern __inline void
12014 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2q_lane_f16(float16_t * __a,float16x8x2_t __b,const int __c)12015 vst2q_lane_f16 (float16_t * __a, float16x8x2_t __b, const int __c)
12016 {
12017 union { float16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
12018 __builtin_neon_vst2_lanev8hf (__a, __bu.__o, __c);
12019 }
12020 #endif
12021
12022 __extension__ extern __inline void
12023 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2q_lane_f32(float32_t * __a,float32x4x2_t __b,const int __c)12024 vst2q_lane_f32 (float32_t * __a, float32x4x2_t __b, const int __c)
12025 {
12026 union { float32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
12027 __builtin_neon_vst2_lanev4sf ((__builtin_neon_sf *) __a, __bu.__o, __c);
12028 }
12029
12030 __extension__ extern __inline void
12031 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2q_lane_u16(uint16_t * __a,uint16x8x2_t __b,const int __c)12032 vst2q_lane_u16 (uint16_t * __a, uint16x8x2_t __b, const int __c)
12033 {
12034 union { uint16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
12035 __builtin_neon_vst2_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
12036 }
12037
12038 __extension__ extern __inline void
12039 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2q_lane_u32(uint32_t * __a,uint32x4x2_t __b,const int __c)12040 vst2q_lane_u32 (uint32_t * __a, uint32x4x2_t __b, const int __c)
12041 {
12042 union { uint32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
12043 __builtin_neon_vst2_lanev4si ((__builtin_neon_si *) __a, __bu.__o, __c);
12044 }
12045
12046 __extension__ extern __inline void
12047 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2q_lane_p16(poly16_t * __a,poly16x8x2_t __b,const int __c)12048 vst2q_lane_p16 (poly16_t * __a, poly16x8x2_t __b, const int __c)
12049 {
12050 union { poly16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
12051 __builtin_neon_vst2_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
12052 }
12053
12054 __extension__ extern __inline int8x8x3_t
12055 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_s8(const int8_t * __a)12056 vld3_s8 (const int8_t * __a)
12057 {
12058 union { int8x8x3_t __i; __builtin_neon_ei __o; } __rv;
12059 __rv.__o = __builtin_neon_vld3v8qi ((const __builtin_neon_qi *) __a);
12060 return __rv.__i;
12061 }
12062
12063 __extension__ extern __inline int16x4x3_t
12064 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_s16(const int16_t * __a)12065 vld3_s16 (const int16_t * __a)
12066 {
12067 union { int16x4x3_t __i; __builtin_neon_ei __o; } __rv;
12068 __rv.__o = __builtin_neon_vld3v4hi ((const __builtin_neon_hi *) __a);
12069 return __rv.__i;
12070 }
12071
12072 __extension__ extern __inline int32x2x3_t
12073 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_s32(const int32_t * __a)12074 vld3_s32 (const int32_t * __a)
12075 {
12076 union { int32x2x3_t __i; __builtin_neon_ei __o; } __rv;
12077 __rv.__o = __builtin_neon_vld3v2si ((const __builtin_neon_si *) __a);
12078 return __rv.__i;
12079 }
12080
12081 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
12082 __extension__ extern __inline float16x4x3_t
12083 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_f16(const float16_t * __a)12084 vld3_f16 (const float16_t * __a)
12085 {
12086 union { float16x4x3_t __i; __builtin_neon_ei __o; } __rv;
12087 __rv.__o = __builtin_neon_vld3v4hf (__a);
12088 return __rv.__i;
12089 }
12090 #endif
12091
12092 __extension__ extern __inline float32x2x3_t
12093 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_f32(const float32_t * __a)12094 vld3_f32 (const float32_t * __a)
12095 {
12096 union { float32x2x3_t __i; __builtin_neon_ei __o; } __rv;
12097 __rv.__o = __builtin_neon_vld3v2sf ((const __builtin_neon_sf *) __a);
12098 return __rv.__i;
12099 }
12100
12101 __extension__ extern __inline uint8x8x3_t
12102 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_u8(const uint8_t * __a)12103 vld3_u8 (const uint8_t * __a)
12104 {
12105 union { uint8x8x3_t __i; __builtin_neon_ei __o; } __rv;
12106 __rv.__o = __builtin_neon_vld3v8qi ((const __builtin_neon_qi *) __a);
12107 return __rv.__i;
12108 }
12109
12110 __extension__ extern __inline uint16x4x3_t
12111 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_u16(const uint16_t * __a)12112 vld3_u16 (const uint16_t * __a)
12113 {
12114 union { uint16x4x3_t __i; __builtin_neon_ei __o; } __rv;
12115 __rv.__o = __builtin_neon_vld3v4hi ((const __builtin_neon_hi *) __a);
12116 return __rv.__i;
12117 }
12118
12119 __extension__ extern __inline uint32x2x3_t
12120 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_u32(const uint32_t * __a)12121 vld3_u32 (const uint32_t * __a)
12122 {
12123 union { uint32x2x3_t __i; __builtin_neon_ei __o; } __rv;
12124 __rv.__o = __builtin_neon_vld3v2si ((const __builtin_neon_si *) __a);
12125 return __rv.__i;
12126 }
12127
12128 __extension__ extern __inline poly8x8x3_t
12129 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_p8(const poly8_t * __a)12130 vld3_p8 (const poly8_t * __a)
12131 {
12132 union { poly8x8x3_t __i; __builtin_neon_ei __o; } __rv;
12133 __rv.__o = __builtin_neon_vld3v8qi ((const __builtin_neon_qi *) __a);
12134 return __rv.__i;
12135 }
12136
12137 __extension__ extern __inline poly16x4x3_t
12138 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_p16(const poly16_t * __a)12139 vld3_p16 (const poly16_t * __a)
12140 {
12141 union { poly16x4x3_t __i; __builtin_neon_ei __o; } __rv;
12142 __rv.__o = __builtin_neon_vld3v4hi ((const __builtin_neon_hi *) __a);
12143 return __rv.__i;
12144 }
12145
12146 #pragma GCC push_options
12147 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
12148 __extension__ extern __inline poly64x1x3_t
12149 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_p64(const poly64_t * __a)12150 vld3_p64 (const poly64_t * __a)
12151 {
12152 union { poly64x1x3_t __i; __builtin_neon_ei __o; } __rv;
12153 __rv.__o = __builtin_neon_vld3di ((const __builtin_neon_di *) __a);
12154 return __rv.__i;
12155 }
12156
12157 #pragma GCC pop_options
12158 __extension__ extern __inline int64x1x3_t
12159 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_s64(const int64_t * __a)12160 vld3_s64 (const int64_t * __a)
12161 {
12162 union { int64x1x3_t __i; __builtin_neon_ei __o; } __rv;
12163 __rv.__o = __builtin_neon_vld3di ((const __builtin_neon_di *) __a);
12164 return __rv.__i;
12165 }
12166
12167 __extension__ extern __inline uint64x1x3_t
12168 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_u64(const uint64_t * __a)12169 vld3_u64 (const uint64_t * __a)
12170 {
12171 union { uint64x1x3_t __i; __builtin_neon_ei __o; } __rv;
12172 __rv.__o = __builtin_neon_vld3di ((const __builtin_neon_di *) __a);
12173 return __rv.__i;
12174 }
12175
12176 __extension__ extern __inline int8x16x3_t
12177 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_s8(const int8_t * __a)12178 vld3q_s8 (const int8_t * __a)
12179 {
12180 union { int8x16x3_t __i; __builtin_neon_ci __o; } __rv;
12181 __rv.__o = __builtin_neon_vld3v16qi ((const __builtin_neon_qi *) __a);
12182 return __rv.__i;
12183 }
12184
12185 __extension__ extern __inline int16x8x3_t
12186 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_s16(const int16_t * __a)12187 vld3q_s16 (const int16_t * __a)
12188 {
12189 union { int16x8x3_t __i; __builtin_neon_ci __o; } __rv;
12190 __rv.__o = __builtin_neon_vld3v8hi ((const __builtin_neon_hi *) __a);
12191 return __rv.__i;
12192 }
12193
12194 __extension__ extern __inline int32x4x3_t
12195 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_s32(const int32_t * __a)12196 vld3q_s32 (const int32_t * __a)
12197 {
12198 union { int32x4x3_t __i; __builtin_neon_ci __o; } __rv;
12199 __rv.__o = __builtin_neon_vld3v4si ((const __builtin_neon_si *) __a);
12200 return __rv.__i;
12201 }
12202
12203 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
12204 __extension__ extern __inline float16x8x3_t
12205 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_f16(const float16_t * __a)12206 vld3q_f16 (const float16_t * __a)
12207 {
12208 union { float16x8x3_t __i; __builtin_neon_ci __o; } __rv;
12209 __rv.__o = __builtin_neon_vld3v8hf (__a);
12210 return __rv.__i;
12211 }
12212 #endif
12213
12214 __extension__ extern __inline float32x4x3_t
12215 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_f32(const float32_t * __a)12216 vld3q_f32 (const float32_t * __a)
12217 {
12218 union { float32x4x3_t __i; __builtin_neon_ci __o; } __rv;
12219 __rv.__o = __builtin_neon_vld3v4sf ((const __builtin_neon_sf *) __a);
12220 return __rv.__i;
12221 }
12222
12223 __extension__ extern __inline uint8x16x3_t
12224 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_u8(const uint8_t * __a)12225 vld3q_u8 (const uint8_t * __a)
12226 {
12227 union { uint8x16x3_t __i; __builtin_neon_ci __o; } __rv;
12228 __rv.__o = __builtin_neon_vld3v16qi ((const __builtin_neon_qi *) __a);
12229 return __rv.__i;
12230 }
12231
12232 __extension__ extern __inline uint16x8x3_t
12233 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_u16(const uint16_t * __a)12234 vld3q_u16 (const uint16_t * __a)
12235 {
12236 union { uint16x8x3_t __i; __builtin_neon_ci __o; } __rv;
12237 __rv.__o = __builtin_neon_vld3v8hi ((const __builtin_neon_hi *) __a);
12238 return __rv.__i;
12239 }
12240
12241 __extension__ extern __inline uint32x4x3_t
12242 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_u32(const uint32_t * __a)12243 vld3q_u32 (const uint32_t * __a)
12244 {
12245 union { uint32x4x3_t __i; __builtin_neon_ci __o; } __rv;
12246 __rv.__o = __builtin_neon_vld3v4si ((const __builtin_neon_si *) __a);
12247 return __rv.__i;
12248 }
12249
12250 __extension__ extern __inline poly8x16x3_t
12251 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_p8(const poly8_t * __a)12252 vld3q_p8 (const poly8_t * __a)
12253 {
12254 union { poly8x16x3_t __i; __builtin_neon_ci __o; } __rv;
12255 __rv.__o = __builtin_neon_vld3v16qi ((const __builtin_neon_qi *) __a);
12256 return __rv.__i;
12257 }
12258
12259 __extension__ extern __inline poly16x8x3_t
12260 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_p16(const poly16_t * __a)12261 vld3q_p16 (const poly16_t * __a)
12262 {
12263 union { poly16x8x3_t __i; __builtin_neon_ci __o; } __rv;
12264 __rv.__o = __builtin_neon_vld3v8hi ((const __builtin_neon_hi *) __a);
12265 return __rv.__i;
12266 }
12267
12268 __extension__ extern __inline int8x8x3_t
12269 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_lane_s8(const int8_t * __a,int8x8x3_t __b,const int __c)12270 vld3_lane_s8 (const int8_t * __a, int8x8x3_t __b, const int __c)
12271 {
12272 union { int8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12273 union { int8x8x3_t __i; __builtin_neon_ei __o; } __rv;
12274 __rv.__o = __builtin_neon_vld3_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
12275 return __rv.__i;
12276 }
12277
12278 __extension__ extern __inline int16x4x3_t
12279 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_lane_s16(const int16_t * __a,int16x4x3_t __b,const int __c)12280 vld3_lane_s16 (const int16_t * __a, int16x4x3_t __b, const int __c)
12281 {
12282 union { int16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12283 union { int16x4x3_t __i; __builtin_neon_ei __o; } __rv;
12284 __rv.__o = __builtin_neon_vld3_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
12285 return __rv.__i;
12286 }
12287
12288 __extension__ extern __inline int32x2x3_t
12289 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_lane_s32(const int32_t * __a,int32x2x3_t __b,const int __c)12290 vld3_lane_s32 (const int32_t * __a, int32x2x3_t __b, const int __c)
12291 {
12292 union { int32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12293 union { int32x2x3_t __i; __builtin_neon_ei __o; } __rv;
12294 __rv.__o = __builtin_neon_vld3_lanev2si ((const __builtin_neon_si *) __a, __bu.__o, __c);
12295 return __rv.__i;
12296 }
12297
12298 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
12299 __extension__ extern __inline float16x4x3_t
12300 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_lane_f16(const float16_t * __a,float16x4x3_t __b,const int __c)12301 vld3_lane_f16 (const float16_t * __a, float16x4x3_t __b, const int __c)
12302 {
12303 union { float16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12304 union { float16x4x3_t __i; __builtin_neon_ei __o; } __rv;
12305 __rv.__o = __builtin_neon_vld3_lanev4hf (__a, __bu.__o, __c);
12306 return __rv.__i;
12307 }
12308 #endif
12309
12310 __extension__ extern __inline float32x2x3_t
12311 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_lane_f32(const float32_t * __a,float32x2x3_t __b,const int __c)12312 vld3_lane_f32 (const float32_t * __a, float32x2x3_t __b, const int __c)
12313 {
12314 union { float32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12315 union { float32x2x3_t __i; __builtin_neon_ei __o; } __rv;
12316 __rv.__o = __builtin_neon_vld3_lanev2sf ((const __builtin_neon_sf *) __a, __bu.__o, __c);
12317 return __rv.__i;
12318 }
12319
12320 __extension__ extern __inline uint8x8x3_t
12321 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_lane_u8(const uint8_t * __a,uint8x8x3_t __b,const int __c)12322 vld3_lane_u8 (const uint8_t * __a, uint8x8x3_t __b, const int __c)
12323 {
12324 union { uint8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12325 union { uint8x8x3_t __i; __builtin_neon_ei __o; } __rv;
12326 __rv.__o = __builtin_neon_vld3_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
12327 return __rv.__i;
12328 }
12329
12330 __extension__ extern __inline uint16x4x3_t
12331 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_lane_u16(const uint16_t * __a,uint16x4x3_t __b,const int __c)12332 vld3_lane_u16 (const uint16_t * __a, uint16x4x3_t __b, const int __c)
12333 {
12334 union { uint16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12335 union { uint16x4x3_t __i; __builtin_neon_ei __o; } __rv;
12336 __rv.__o = __builtin_neon_vld3_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
12337 return __rv.__i;
12338 }
12339
12340 __extension__ extern __inline uint32x2x3_t
12341 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_lane_u32(const uint32_t * __a,uint32x2x3_t __b,const int __c)12342 vld3_lane_u32 (const uint32_t * __a, uint32x2x3_t __b, const int __c)
12343 {
12344 union { uint32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12345 union { uint32x2x3_t __i; __builtin_neon_ei __o; } __rv;
12346 __rv.__o = __builtin_neon_vld3_lanev2si ((const __builtin_neon_si *) __a, __bu.__o, __c);
12347 return __rv.__i;
12348 }
12349
12350 __extension__ extern __inline poly8x8x3_t
12351 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_lane_p8(const poly8_t * __a,poly8x8x3_t __b,const int __c)12352 vld3_lane_p8 (const poly8_t * __a, poly8x8x3_t __b, const int __c)
12353 {
12354 union { poly8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12355 union { poly8x8x3_t __i; __builtin_neon_ei __o; } __rv;
12356 __rv.__o = __builtin_neon_vld3_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
12357 return __rv.__i;
12358 }
12359
12360 __extension__ extern __inline poly16x4x3_t
12361 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_lane_p16(const poly16_t * __a,poly16x4x3_t __b,const int __c)12362 vld3_lane_p16 (const poly16_t * __a, poly16x4x3_t __b, const int __c)
12363 {
12364 union { poly16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12365 union { poly16x4x3_t __i; __builtin_neon_ei __o; } __rv;
12366 __rv.__o = __builtin_neon_vld3_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
12367 return __rv.__i;
12368 }
12369
12370 __extension__ extern __inline int16x8x3_t
12371 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_lane_s16(const int16_t * __a,int16x8x3_t __b,const int __c)12372 vld3q_lane_s16 (const int16_t * __a, int16x8x3_t __b, const int __c)
12373 {
12374 union { int16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12375 union { int16x8x3_t __i; __builtin_neon_ci __o; } __rv;
12376 __rv.__o = __builtin_neon_vld3_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
12377 return __rv.__i;
12378 }
12379
12380 __extension__ extern __inline int32x4x3_t
12381 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_lane_s32(const int32_t * __a,int32x4x3_t __b,const int __c)12382 vld3q_lane_s32 (const int32_t * __a, int32x4x3_t __b, const int __c)
12383 {
12384 union { int32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12385 union { int32x4x3_t __i; __builtin_neon_ci __o; } __rv;
12386 __rv.__o = __builtin_neon_vld3_lanev4si ((const __builtin_neon_si *) __a, __bu.__o, __c);
12387 return __rv.__i;
12388 }
12389
12390 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
12391 __extension__ extern __inline float16x8x3_t
12392 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_lane_f16(const float16_t * __a,float16x8x3_t __b,const int __c)12393 vld3q_lane_f16 (const float16_t * __a, float16x8x3_t __b, const int __c)
12394 {
12395 union { float16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12396 union { float16x8x3_t __i; __builtin_neon_ci __o; } __rv;
12397 __rv.__o = __builtin_neon_vld3_lanev8hf (__a, __bu.__o, __c);
12398 return __rv.__i;
12399 }
12400 #endif
12401
12402 __extension__ extern __inline float32x4x3_t
12403 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_lane_f32(const float32_t * __a,float32x4x3_t __b,const int __c)12404 vld3q_lane_f32 (const float32_t * __a, float32x4x3_t __b, const int __c)
12405 {
12406 union { float32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12407 union { float32x4x3_t __i; __builtin_neon_ci __o; } __rv;
12408 __rv.__o = __builtin_neon_vld3_lanev4sf ((const __builtin_neon_sf *) __a, __bu.__o, __c);
12409 return __rv.__i;
12410 }
12411
12412 __extension__ extern __inline uint16x8x3_t
12413 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_lane_u16(const uint16_t * __a,uint16x8x3_t __b,const int __c)12414 vld3q_lane_u16 (const uint16_t * __a, uint16x8x3_t __b, const int __c)
12415 {
12416 union { uint16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12417 union { uint16x8x3_t __i; __builtin_neon_ci __o; } __rv;
12418 __rv.__o = __builtin_neon_vld3_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
12419 return __rv.__i;
12420 }
12421
12422 __extension__ extern __inline uint32x4x3_t
12423 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_lane_u32(const uint32_t * __a,uint32x4x3_t __b,const int __c)12424 vld3q_lane_u32 (const uint32_t * __a, uint32x4x3_t __b, const int __c)
12425 {
12426 union { uint32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12427 union { uint32x4x3_t __i; __builtin_neon_ci __o; } __rv;
12428 __rv.__o = __builtin_neon_vld3_lanev4si ((const __builtin_neon_si *) __a, __bu.__o, __c);
12429 return __rv.__i;
12430 }
12431
12432 __extension__ extern __inline poly16x8x3_t
12433 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_lane_p16(const poly16_t * __a,poly16x8x3_t __b,const int __c)12434 vld3q_lane_p16 (const poly16_t * __a, poly16x8x3_t __b, const int __c)
12435 {
12436 union { poly16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12437 union { poly16x8x3_t __i; __builtin_neon_ci __o; } __rv;
12438 __rv.__o = __builtin_neon_vld3_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
12439 return __rv.__i;
12440 }
12441
12442 __extension__ extern __inline int8x8x3_t
12443 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_dup_s8(const int8_t * __a)12444 vld3_dup_s8 (const int8_t * __a)
12445 {
12446 union { int8x8x3_t __i; __builtin_neon_ei __o; } __rv;
12447 __rv.__o = __builtin_neon_vld3_dupv8qi ((const __builtin_neon_qi *) __a);
12448 return __rv.__i;
12449 }
12450
12451 __extension__ extern __inline int16x4x3_t
12452 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_dup_s16(const int16_t * __a)12453 vld3_dup_s16 (const int16_t * __a)
12454 {
12455 union { int16x4x3_t __i; __builtin_neon_ei __o; } __rv;
12456 __rv.__o = __builtin_neon_vld3_dupv4hi ((const __builtin_neon_hi *) __a);
12457 return __rv.__i;
12458 }
12459
12460 __extension__ extern __inline int32x2x3_t
12461 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_dup_s32(const int32_t * __a)12462 vld3_dup_s32 (const int32_t * __a)
12463 {
12464 union { int32x2x3_t __i; __builtin_neon_ei __o; } __rv;
12465 __rv.__o = __builtin_neon_vld3_dupv2si ((const __builtin_neon_si *) __a);
12466 return __rv.__i;
12467 }
12468
12469 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
12470 __extension__ extern __inline float16x4x3_t
12471 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_dup_f16(const float16_t * __a)12472 vld3_dup_f16 (const float16_t * __a)
12473 {
12474 union { float16x4x3_t __i; __builtin_neon_ei __o; } __rv;
12475 __rv.__o = __builtin_neon_vld3_dupv4hf (__a);
12476 return __rv.__i;
12477 }
12478 #endif
12479
12480 __extension__ extern __inline float32x2x3_t
12481 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_dup_f32(const float32_t * __a)12482 vld3_dup_f32 (const float32_t * __a)
12483 {
12484 union { float32x2x3_t __i; __builtin_neon_ei __o; } __rv;
12485 __rv.__o = __builtin_neon_vld3_dupv2sf ((const __builtin_neon_sf *) __a);
12486 return __rv.__i;
12487 }
12488
12489 __extension__ extern __inline uint8x8x3_t
12490 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_dup_u8(const uint8_t * __a)12491 vld3_dup_u8 (const uint8_t * __a)
12492 {
12493 union { uint8x8x3_t __i; __builtin_neon_ei __o; } __rv;
12494 __rv.__o = __builtin_neon_vld3_dupv8qi ((const __builtin_neon_qi *) __a);
12495 return __rv.__i;
12496 }
12497
12498 __extension__ extern __inline uint16x4x3_t
12499 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_dup_u16(const uint16_t * __a)12500 vld3_dup_u16 (const uint16_t * __a)
12501 {
12502 union { uint16x4x3_t __i; __builtin_neon_ei __o; } __rv;
12503 __rv.__o = __builtin_neon_vld3_dupv4hi ((const __builtin_neon_hi *) __a);
12504 return __rv.__i;
12505 }
12506
12507 __extension__ extern __inline uint32x2x3_t
12508 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_dup_u32(const uint32_t * __a)12509 vld3_dup_u32 (const uint32_t * __a)
12510 {
12511 union { uint32x2x3_t __i; __builtin_neon_ei __o; } __rv;
12512 __rv.__o = __builtin_neon_vld3_dupv2si ((const __builtin_neon_si *) __a);
12513 return __rv.__i;
12514 }
12515
12516 __extension__ extern __inline poly8x8x3_t
12517 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_dup_p8(const poly8_t * __a)12518 vld3_dup_p8 (const poly8_t * __a)
12519 {
12520 union { poly8x8x3_t __i; __builtin_neon_ei __o; } __rv;
12521 __rv.__o = __builtin_neon_vld3_dupv8qi ((const __builtin_neon_qi *) __a);
12522 return __rv.__i;
12523 }
12524
12525 __extension__ extern __inline poly16x4x3_t
12526 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_dup_p16(const poly16_t * __a)12527 vld3_dup_p16 (const poly16_t * __a)
12528 {
12529 union { poly16x4x3_t __i; __builtin_neon_ei __o; } __rv;
12530 __rv.__o = __builtin_neon_vld3_dupv4hi ((const __builtin_neon_hi *) __a);
12531 return __rv.__i;
12532 }
12533
12534 #pragma GCC push_options
12535 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
12536 __extension__ extern __inline poly64x1x3_t
12537 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_dup_p64(const poly64_t * __a)12538 vld3_dup_p64 (const poly64_t * __a)
12539 {
12540 union { poly64x1x3_t __i; __builtin_neon_ei __o; } __rv;
12541 __rv.__o = __builtin_neon_vld3_dupdi ((const __builtin_neon_di *) __a);
12542 return __rv.__i;
12543 }
12544
12545 #pragma GCC pop_options
12546 __extension__ extern __inline int64x1x3_t
12547 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_dup_s64(const int64_t * __a)12548 vld3_dup_s64 (const int64_t * __a)
12549 {
12550 union { int64x1x3_t __i; __builtin_neon_ei __o; } __rv;
12551 __rv.__o = __builtin_neon_vld3_dupdi ((const __builtin_neon_di *) __a);
12552 return __rv.__i;
12553 }
12554
12555 __extension__ extern __inline uint64x1x3_t
12556 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_dup_u64(const uint64_t * __a)12557 vld3_dup_u64 (const uint64_t * __a)
12558 {
12559 union { uint64x1x3_t __i; __builtin_neon_ei __o; } __rv;
12560 __rv.__o = __builtin_neon_vld3_dupdi ((const __builtin_neon_di *) __a);
12561 return __rv.__i;
12562 }
12563
12564 __extension__ extern __inline void
12565 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3_s8(int8_t * __a,int8x8x3_t __b)12566 vst3_s8 (int8_t * __a, int8x8x3_t __b)
12567 {
12568 union { int8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12569 __builtin_neon_vst3v8qi ((__builtin_neon_qi *) __a, __bu.__o);
12570 }
12571
12572 __extension__ extern __inline void
12573 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3_s16(int16_t * __a,int16x4x3_t __b)12574 vst3_s16 (int16_t * __a, int16x4x3_t __b)
12575 {
12576 union { int16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12577 __builtin_neon_vst3v4hi ((__builtin_neon_hi *) __a, __bu.__o);
12578 }
12579
12580 __extension__ extern __inline void
12581 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3_s32(int32_t * __a,int32x2x3_t __b)12582 vst3_s32 (int32_t * __a, int32x2x3_t __b)
12583 {
12584 union { int32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12585 __builtin_neon_vst3v2si ((__builtin_neon_si *) __a, __bu.__o);
12586 }
12587
12588 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
12589 __extension__ extern __inline void
12590 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3_f16(float16_t * __a,float16x4x3_t __b)12591 vst3_f16 (float16_t * __a, float16x4x3_t __b)
12592 {
12593 union { float16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12594 __builtin_neon_vst3v4hf (__a, __bu.__o);
12595 }
12596 #endif
12597
12598 __extension__ extern __inline void
12599 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3_f32(float32_t * __a,float32x2x3_t __b)12600 vst3_f32 (float32_t * __a, float32x2x3_t __b)
12601 {
12602 union { float32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12603 __builtin_neon_vst3v2sf ((__builtin_neon_sf *) __a, __bu.__o);
12604 }
12605
12606 __extension__ extern __inline void
12607 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3_u8(uint8_t * __a,uint8x8x3_t __b)12608 vst3_u8 (uint8_t * __a, uint8x8x3_t __b)
12609 {
12610 union { uint8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12611 __builtin_neon_vst3v8qi ((__builtin_neon_qi *) __a, __bu.__o);
12612 }
12613
12614 __extension__ extern __inline void
12615 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3_u16(uint16_t * __a,uint16x4x3_t __b)12616 vst3_u16 (uint16_t * __a, uint16x4x3_t __b)
12617 {
12618 union { uint16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12619 __builtin_neon_vst3v4hi ((__builtin_neon_hi *) __a, __bu.__o);
12620 }
12621
12622 __extension__ extern __inline void
12623 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3_u32(uint32_t * __a,uint32x2x3_t __b)12624 vst3_u32 (uint32_t * __a, uint32x2x3_t __b)
12625 {
12626 union { uint32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12627 __builtin_neon_vst3v2si ((__builtin_neon_si *) __a, __bu.__o);
12628 }
12629
12630 __extension__ extern __inline void
12631 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3_p8(poly8_t * __a,poly8x8x3_t __b)12632 vst3_p8 (poly8_t * __a, poly8x8x3_t __b)
12633 {
12634 union { poly8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12635 __builtin_neon_vst3v8qi ((__builtin_neon_qi *) __a, __bu.__o);
12636 }
12637
12638 __extension__ extern __inline void
12639 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3_p16(poly16_t * __a,poly16x4x3_t __b)12640 vst3_p16 (poly16_t * __a, poly16x4x3_t __b)
12641 {
12642 union { poly16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12643 __builtin_neon_vst3v4hi ((__builtin_neon_hi *) __a, __bu.__o);
12644 }
12645
12646 #pragma GCC push_options
12647 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
12648 __extension__ extern __inline void
12649 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3_p64(poly64_t * __a,poly64x1x3_t __b)12650 vst3_p64 (poly64_t * __a, poly64x1x3_t __b)
12651 {
12652 union { poly64x1x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12653 __builtin_neon_vst3di ((__builtin_neon_di *) __a, __bu.__o);
12654 }
12655
12656 #pragma GCC pop_options
12657 __extension__ extern __inline void
12658 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3_s64(int64_t * __a,int64x1x3_t __b)12659 vst3_s64 (int64_t * __a, int64x1x3_t __b)
12660 {
12661 union { int64x1x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12662 __builtin_neon_vst3di ((__builtin_neon_di *) __a, __bu.__o);
12663 }
12664
12665 __extension__ extern __inline void
12666 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3_u64(uint64_t * __a,uint64x1x3_t __b)12667 vst3_u64 (uint64_t * __a, uint64x1x3_t __b)
12668 {
12669 union { uint64x1x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12670 __builtin_neon_vst3di ((__builtin_neon_di *) __a, __bu.__o);
12671 }
12672
12673 __extension__ extern __inline void
12674 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3q_s8(int8_t * __a,int8x16x3_t __b)12675 vst3q_s8 (int8_t * __a, int8x16x3_t __b)
12676 {
12677 union { int8x16x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12678 __builtin_neon_vst3v16qi ((__builtin_neon_qi *) __a, __bu.__o);
12679 }
12680
12681 __extension__ extern __inline void
12682 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3q_s16(int16_t * __a,int16x8x3_t __b)12683 vst3q_s16 (int16_t * __a, int16x8x3_t __b)
12684 {
12685 union { int16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12686 __builtin_neon_vst3v8hi ((__builtin_neon_hi *) __a, __bu.__o);
12687 }
12688
12689 __extension__ extern __inline void
12690 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3q_s32(int32_t * __a,int32x4x3_t __b)12691 vst3q_s32 (int32_t * __a, int32x4x3_t __b)
12692 {
12693 union { int32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12694 __builtin_neon_vst3v4si ((__builtin_neon_si *) __a, __bu.__o);
12695 }
12696
12697 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
12698 __extension__ extern __inline void
12699 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3q_f16(float16_t * __a,float16x8x3_t __b)12700 vst3q_f16 (float16_t * __a, float16x8x3_t __b)
12701 {
12702 union { float16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12703 __builtin_neon_vst3v8hf (__a, __bu.__o);
12704 }
12705 #endif
12706
12707 __extension__ extern __inline void
12708 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3q_f32(float32_t * __a,float32x4x3_t __b)12709 vst3q_f32 (float32_t * __a, float32x4x3_t __b)
12710 {
12711 union { float32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12712 __builtin_neon_vst3v4sf ((__builtin_neon_sf *) __a, __bu.__o);
12713 }
12714
12715 __extension__ extern __inline void
12716 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3q_u8(uint8_t * __a,uint8x16x3_t __b)12717 vst3q_u8 (uint8_t * __a, uint8x16x3_t __b)
12718 {
12719 union { uint8x16x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12720 __builtin_neon_vst3v16qi ((__builtin_neon_qi *) __a, __bu.__o);
12721 }
12722
12723 __extension__ extern __inline void
12724 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3q_u16(uint16_t * __a,uint16x8x3_t __b)12725 vst3q_u16 (uint16_t * __a, uint16x8x3_t __b)
12726 {
12727 union { uint16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12728 __builtin_neon_vst3v8hi ((__builtin_neon_hi *) __a, __bu.__o);
12729 }
12730
12731 __extension__ extern __inline void
12732 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3q_u32(uint32_t * __a,uint32x4x3_t __b)12733 vst3q_u32 (uint32_t * __a, uint32x4x3_t __b)
12734 {
12735 union { uint32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12736 __builtin_neon_vst3v4si ((__builtin_neon_si *) __a, __bu.__o);
12737 }
12738
12739 __extension__ extern __inline void
12740 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3q_p8(poly8_t * __a,poly8x16x3_t __b)12741 vst3q_p8 (poly8_t * __a, poly8x16x3_t __b)
12742 {
12743 union { poly8x16x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12744 __builtin_neon_vst3v16qi ((__builtin_neon_qi *) __a, __bu.__o);
12745 }
12746
12747 __extension__ extern __inline void
12748 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3q_p16(poly16_t * __a,poly16x8x3_t __b)12749 vst3q_p16 (poly16_t * __a, poly16x8x3_t __b)
12750 {
12751 union { poly16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12752 __builtin_neon_vst3v8hi ((__builtin_neon_hi *) __a, __bu.__o);
12753 }
12754
12755 __extension__ extern __inline void
12756 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3_lane_s8(int8_t * __a,int8x8x3_t __b,const int __c)12757 vst3_lane_s8 (int8_t * __a, int8x8x3_t __b, const int __c)
12758 {
12759 union { int8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12760 __builtin_neon_vst3_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
12761 }
12762
12763 __extension__ extern __inline void
12764 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3_lane_s16(int16_t * __a,int16x4x3_t __b,const int __c)12765 vst3_lane_s16 (int16_t * __a, int16x4x3_t __b, const int __c)
12766 {
12767 union { int16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12768 __builtin_neon_vst3_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
12769 }
12770
12771 __extension__ extern __inline void
12772 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3_lane_s32(int32_t * __a,int32x2x3_t __b,const int __c)12773 vst3_lane_s32 (int32_t * __a, int32x2x3_t __b, const int __c)
12774 {
12775 union { int32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12776 __builtin_neon_vst3_lanev2si ((__builtin_neon_si *) __a, __bu.__o, __c);
12777 }
12778
12779 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
12780 __extension__ extern __inline void
12781 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3_lane_f16(float16_t * __a,float16x4x3_t __b,const int __c)12782 vst3_lane_f16 (float16_t * __a, float16x4x3_t __b, const int __c)
12783 {
12784 union { float16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12785 __builtin_neon_vst3_lanev4hf (__a, __bu.__o, __c);
12786 }
12787 #endif
12788
12789 __extension__ extern __inline void
12790 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3_lane_f32(float32_t * __a,float32x2x3_t __b,const int __c)12791 vst3_lane_f32 (float32_t * __a, float32x2x3_t __b, const int __c)
12792 {
12793 union { float32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12794 __builtin_neon_vst3_lanev2sf ((__builtin_neon_sf *) __a, __bu.__o, __c);
12795 }
12796
12797 __extension__ extern __inline void
12798 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3_lane_u8(uint8_t * __a,uint8x8x3_t __b,const int __c)12799 vst3_lane_u8 (uint8_t * __a, uint8x8x3_t __b, const int __c)
12800 {
12801 union { uint8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12802 __builtin_neon_vst3_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
12803 }
12804
12805 __extension__ extern __inline void
12806 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3_lane_u16(uint16_t * __a,uint16x4x3_t __b,const int __c)12807 vst3_lane_u16 (uint16_t * __a, uint16x4x3_t __b, const int __c)
12808 {
12809 union { uint16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12810 __builtin_neon_vst3_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
12811 }
12812
12813 __extension__ extern __inline void
12814 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3_lane_u32(uint32_t * __a,uint32x2x3_t __b,const int __c)12815 vst3_lane_u32 (uint32_t * __a, uint32x2x3_t __b, const int __c)
12816 {
12817 union { uint32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12818 __builtin_neon_vst3_lanev2si ((__builtin_neon_si *) __a, __bu.__o, __c);
12819 }
12820
12821 __extension__ extern __inline void
12822 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3_lane_p8(poly8_t * __a,poly8x8x3_t __b,const int __c)12823 vst3_lane_p8 (poly8_t * __a, poly8x8x3_t __b, const int __c)
12824 {
12825 union { poly8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12826 __builtin_neon_vst3_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
12827 }
12828
12829 __extension__ extern __inline void
12830 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3_lane_p16(poly16_t * __a,poly16x4x3_t __b,const int __c)12831 vst3_lane_p16 (poly16_t * __a, poly16x4x3_t __b, const int __c)
12832 {
12833 union { poly16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12834 __builtin_neon_vst3_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
12835 }
12836
12837 __extension__ extern __inline void
12838 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3q_lane_s16(int16_t * __a,int16x8x3_t __b,const int __c)12839 vst3q_lane_s16 (int16_t * __a, int16x8x3_t __b, const int __c)
12840 {
12841 union { int16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12842 __builtin_neon_vst3_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
12843 }
12844
12845 __extension__ extern __inline void
12846 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3q_lane_s32(int32_t * __a,int32x4x3_t __b,const int __c)12847 vst3q_lane_s32 (int32_t * __a, int32x4x3_t __b, const int __c)
12848 {
12849 union { int32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12850 __builtin_neon_vst3_lanev4si ((__builtin_neon_si *) __a, __bu.__o, __c);
12851 }
12852
12853 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
12854 __extension__ extern __inline void
12855 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3q_lane_f16(float16_t * __a,float16x8x3_t __b,const int __c)12856 vst3q_lane_f16 (float16_t * __a, float16x8x3_t __b, const int __c)
12857 {
12858 union { float16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12859 __builtin_neon_vst3_lanev8hf (__a, __bu.__o, __c);
12860 }
12861 #endif
12862
12863 __extension__ extern __inline void
12864 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3q_lane_f32(float32_t * __a,float32x4x3_t __b,const int __c)12865 vst3q_lane_f32 (float32_t * __a, float32x4x3_t __b, const int __c)
12866 {
12867 union { float32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12868 __builtin_neon_vst3_lanev4sf ((__builtin_neon_sf *) __a, __bu.__o, __c);
12869 }
12870
12871 __extension__ extern __inline void
12872 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3q_lane_u16(uint16_t * __a,uint16x8x3_t __b,const int __c)12873 vst3q_lane_u16 (uint16_t * __a, uint16x8x3_t __b, const int __c)
12874 {
12875 union { uint16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12876 __builtin_neon_vst3_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
12877 }
12878
12879 __extension__ extern __inline void
12880 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3q_lane_u32(uint32_t * __a,uint32x4x3_t __b,const int __c)12881 vst3q_lane_u32 (uint32_t * __a, uint32x4x3_t __b, const int __c)
12882 {
12883 union { uint32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12884 __builtin_neon_vst3_lanev4si ((__builtin_neon_si *) __a, __bu.__o, __c);
12885 }
12886
12887 __extension__ extern __inline void
12888 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3q_lane_p16(poly16_t * __a,poly16x8x3_t __b,const int __c)12889 vst3q_lane_p16 (poly16_t * __a, poly16x8x3_t __b, const int __c)
12890 {
12891 union { poly16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12892 __builtin_neon_vst3_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
12893 }
12894
12895 __extension__ extern __inline int8x8x4_t
12896 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_s8(const int8_t * __a)12897 vld4_s8 (const int8_t * __a)
12898 {
12899 union { int8x8x4_t __i; __builtin_neon_oi __o; } __rv;
12900 __rv.__o = __builtin_neon_vld4v8qi ((const __builtin_neon_qi *) __a);
12901 return __rv.__i;
12902 }
12903
12904 __extension__ extern __inline int16x4x4_t
12905 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_s16(const int16_t * __a)12906 vld4_s16 (const int16_t * __a)
12907 {
12908 union { int16x4x4_t __i; __builtin_neon_oi __o; } __rv;
12909 __rv.__o = __builtin_neon_vld4v4hi ((const __builtin_neon_hi *) __a);
12910 return __rv.__i;
12911 }
12912
12913 __extension__ extern __inline int32x2x4_t
12914 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_s32(const int32_t * __a)12915 vld4_s32 (const int32_t * __a)
12916 {
12917 union { int32x2x4_t __i; __builtin_neon_oi __o; } __rv;
12918 __rv.__o = __builtin_neon_vld4v2si ((const __builtin_neon_si *) __a);
12919 return __rv.__i;
12920 }
12921
12922 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
12923 __extension__ extern __inline float16x4x4_t
12924 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_f16(const float16_t * __a)12925 vld4_f16 (const float16_t * __a)
12926 {
12927 union { float16x4x4_t __i; __builtin_neon_oi __o; } __rv;
12928 __rv.__o = __builtin_neon_vld4v4hf (__a);
12929 return __rv.__i;
12930 }
12931 #endif
12932
12933 __extension__ extern __inline float32x2x4_t
12934 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_f32(const float32_t * __a)12935 vld4_f32 (const float32_t * __a)
12936 {
12937 union { float32x2x4_t __i; __builtin_neon_oi __o; } __rv;
12938 __rv.__o = __builtin_neon_vld4v2sf ((const __builtin_neon_sf *) __a);
12939 return __rv.__i;
12940 }
12941
12942 __extension__ extern __inline uint8x8x4_t
12943 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_u8(const uint8_t * __a)12944 vld4_u8 (const uint8_t * __a)
12945 {
12946 union { uint8x8x4_t __i; __builtin_neon_oi __o; } __rv;
12947 __rv.__o = __builtin_neon_vld4v8qi ((const __builtin_neon_qi *) __a);
12948 return __rv.__i;
12949 }
12950
12951 __extension__ extern __inline uint16x4x4_t
12952 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_u16(const uint16_t * __a)12953 vld4_u16 (const uint16_t * __a)
12954 {
12955 union { uint16x4x4_t __i; __builtin_neon_oi __o; } __rv;
12956 __rv.__o = __builtin_neon_vld4v4hi ((const __builtin_neon_hi *) __a);
12957 return __rv.__i;
12958 }
12959
12960 __extension__ extern __inline uint32x2x4_t
12961 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_u32(const uint32_t * __a)12962 vld4_u32 (const uint32_t * __a)
12963 {
12964 union { uint32x2x4_t __i; __builtin_neon_oi __o; } __rv;
12965 __rv.__o = __builtin_neon_vld4v2si ((const __builtin_neon_si *) __a);
12966 return __rv.__i;
12967 }
12968
12969 __extension__ extern __inline poly8x8x4_t
12970 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_p8(const poly8_t * __a)12971 vld4_p8 (const poly8_t * __a)
12972 {
12973 union { poly8x8x4_t __i; __builtin_neon_oi __o; } __rv;
12974 __rv.__o = __builtin_neon_vld4v8qi ((const __builtin_neon_qi *) __a);
12975 return __rv.__i;
12976 }
12977
12978 __extension__ extern __inline poly16x4x4_t
12979 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_p16(const poly16_t * __a)12980 vld4_p16 (const poly16_t * __a)
12981 {
12982 union { poly16x4x4_t __i; __builtin_neon_oi __o; } __rv;
12983 __rv.__o = __builtin_neon_vld4v4hi ((const __builtin_neon_hi *) __a);
12984 return __rv.__i;
12985 }
12986
12987 #pragma GCC push_options
12988 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
12989 __extension__ extern __inline poly64x1x4_t
12990 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_p64(const poly64_t * __a)12991 vld4_p64 (const poly64_t * __a)
12992 {
12993 union { poly64x1x4_t __i; __builtin_neon_oi __o; } __rv;
12994 __rv.__o = __builtin_neon_vld4di ((const __builtin_neon_di *) __a);
12995 return __rv.__i;
12996 }
12997
12998 #pragma GCC pop_options
12999 __extension__ extern __inline int64x1x4_t
13000 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_s64(const int64_t * __a)13001 vld4_s64 (const int64_t * __a)
13002 {
13003 union { int64x1x4_t __i; __builtin_neon_oi __o; } __rv;
13004 __rv.__o = __builtin_neon_vld4di ((const __builtin_neon_di *) __a);
13005 return __rv.__i;
13006 }
13007
13008 __extension__ extern __inline uint64x1x4_t
13009 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_u64(const uint64_t * __a)13010 vld4_u64 (const uint64_t * __a)
13011 {
13012 union { uint64x1x4_t __i; __builtin_neon_oi __o; } __rv;
13013 __rv.__o = __builtin_neon_vld4di ((const __builtin_neon_di *) __a);
13014 return __rv.__i;
13015 }
13016
13017 __extension__ extern __inline int8x16x4_t
13018 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_s8(const int8_t * __a)13019 vld4q_s8 (const int8_t * __a)
13020 {
13021 union { int8x16x4_t __i; __builtin_neon_xi __o; } __rv;
13022 __rv.__o = __builtin_neon_vld4v16qi ((const __builtin_neon_qi *) __a);
13023 return __rv.__i;
13024 }
13025
13026 __extension__ extern __inline int16x8x4_t
13027 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_s16(const int16_t * __a)13028 vld4q_s16 (const int16_t * __a)
13029 {
13030 union { int16x8x4_t __i; __builtin_neon_xi __o; } __rv;
13031 __rv.__o = __builtin_neon_vld4v8hi ((const __builtin_neon_hi *) __a);
13032 return __rv.__i;
13033 }
13034
13035 __extension__ extern __inline int32x4x4_t
13036 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_s32(const int32_t * __a)13037 vld4q_s32 (const int32_t * __a)
13038 {
13039 union { int32x4x4_t __i; __builtin_neon_xi __o; } __rv;
13040 __rv.__o = __builtin_neon_vld4v4si ((const __builtin_neon_si *) __a);
13041 return __rv.__i;
13042 }
13043
13044 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
13045 __extension__ extern __inline float16x8x4_t
13046 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_f16(const float16_t * __a)13047 vld4q_f16 (const float16_t * __a)
13048 {
13049 union { float16x8x4_t __i; __builtin_neon_xi __o; } __rv;
13050 __rv.__o = __builtin_neon_vld4v8hf (__a);
13051 return __rv.__i;
13052 }
13053 #endif
13054
13055 __extension__ extern __inline float32x4x4_t
13056 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_f32(const float32_t * __a)13057 vld4q_f32 (const float32_t * __a)
13058 {
13059 union { float32x4x4_t __i; __builtin_neon_xi __o; } __rv;
13060 __rv.__o = __builtin_neon_vld4v4sf ((const __builtin_neon_sf *) __a);
13061 return __rv.__i;
13062 }
13063
13064 __extension__ extern __inline uint8x16x4_t
13065 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_u8(const uint8_t * __a)13066 vld4q_u8 (const uint8_t * __a)
13067 {
13068 union { uint8x16x4_t __i; __builtin_neon_xi __o; } __rv;
13069 __rv.__o = __builtin_neon_vld4v16qi ((const __builtin_neon_qi *) __a);
13070 return __rv.__i;
13071 }
13072
13073 __extension__ extern __inline uint16x8x4_t
13074 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_u16(const uint16_t * __a)13075 vld4q_u16 (const uint16_t * __a)
13076 {
13077 union { uint16x8x4_t __i; __builtin_neon_xi __o; } __rv;
13078 __rv.__o = __builtin_neon_vld4v8hi ((const __builtin_neon_hi *) __a);
13079 return __rv.__i;
13080 }
13081
13082 __extension__ extern __inline uint32x4x4_t
13083 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_u32(const uint32_t * __a)13084 vld4q_u32 (const uint32_t * __a)
13085 {
13086 union { uint32x4x4_t __i; __builtin_neon_xi __o; } __rv;
13087 __rv.__o = __builtin_neon_vld4v4si ((const __builtin_neon_si *) __a);
13088 return __rv.__i;
13089 }
13090
13091 __extension__ extern __inline poly8x16x4_t
13092 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_p8(const poly8_t * __a)13093 vld4q_p8 (const poly8_t * __a)
13094 {
13095 union { poly8x16x4_t __i; __builtin_neon_xi __o; } __rv;
13096 __rv.__o = __builtin_neon_vld4v16qi ((const __builtin_neon_qi *) __a);
13097 return __rv.__i;
13098 }
13099
13100 __extension__ extern __inline poly16x8x4_t
13101 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_p16(const poly16_t * __a)13102 vld4q_p16 (const poly16_t * __a)
13103 {
13104 union { poly16x8x4_t __i; __builtin_neon_xi __o; } __rv;
13105 __rv.__o = __builtin_neon_vld4v8hi ((const __builtin_neon_hi *) __a);
13106 return __rv.__i;
13107 }
13108
13109 __extension__ extern __inline int8x8x4_t
13110 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_lane_s8(const int8_t * __a,int8x8x4_t __b,const int __c)13111 vld4_lane_s8 (const int8_t * __a, int8x8x4_t __b, const int __c)
13112 {
13113 union { int8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13114 union { int8x8x4_t __i; __builtin_neon_oi __o; } __rv;
13115 __rv.__o = __builtin_neon_vld4_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
13116 return __rv.__i;
13117 }
13118
13119 __extension__ extern __inline int16x4x4_t
13120 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_lane_s16(const int16_t * __a,int16x4x4_t __b,const int __c)13121 vld4_lane_s16 (const int16_t * __a, int16x4x4_t __b, const int __c)
13122 {
13123 union { int16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13124 union { int16x4x4_t __i; __builtin_neon_oi __o; } __rv;
13125 __rv.__o = __builtin_neon_vld4_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
13126 return __rv.__i;
13127 }
13128
13129 __extension__ extern __inline int32x2x4_t
13130 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_lane_s32(const int32_t * __a,int32x2x4_t __b,const int __c)13131 vld4_lane_s32 (const int32_t * __a, int32x2x4_t __b, const int __c)
13132 {
13133 union { int32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13134 union { int32x2x4_t __i; __builtin_neon_oi __o; } __rv;
13135 __rv.__o = __builtin_neon_vld4_lanev2si ((const __builtin_neon_si *) __a, __bu.__o, __c);
13136 return __rv.__i;
13137 }
13138
13139 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
13140 __extension__ extern __inline float16x4x4_t
13141 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_lane_f16(const float16_t * __a,float16x4x4_t __b,const int __c)13142 vld4_lane_f16 (const float16_t * __a, float16x4x4_t __b, const int __c)
13143 {
13144 union { float16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13145 union { float16x4x4_t __i; __builtin_neon_oi __o; } __rv;
13146 __rv.__o = __builtin_neon_vld4_lanev4hf (__a,
13147 __bu.__o, __c);
13148 return __rv.__i;
13149 }
13150 #endif
13151
13152 __extension__ extern __inline float32x2x4_t
13153 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_lane_f32(const float32_t * __a,float32x2x4_t __b,const int __c)13154 vld4_lane_f32 (const float32_t * __a, float32x2x4_t __b, const int __c)
13155 {
13156 union { float32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13157 union { float32x2x4_t __i; __builtin_neon_oi __o; } __rv;
13158 __rv.__o = __builtin_neon_vld4_lanev2sf ((const __builtin_neon_sf *) __a, __bu.__o, __c);
13159 return __rv.__i;
13160 }
13161
13162 __extension__ extern __inline uint8x8x4_t
13163 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_lane_u8(const uint8_t * __a,uint8x8x4_t __b,const int __c)13164 vld4_lane_u8 (const uint8_t * __a, uint8x8x4_t __b, const int __c)
13165 {
13166 union { uint8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13167 union { uint8x8x4_t __i; __builtin_neon_oi __o; } __rv;
13168 __rv.__o = __builtin_neon_vld4_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
13169 return __rv.__i;
13170 }
13171
13172 __extension__ extern __inline uint16x4x4_t
13173 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_lane_u16(const uint16_t * __a,uint16x4x4_t __b,const int __c)13174 vld4_lane_u16 (const uint16_t * __a, uint16x4x4_t __b, const int __c)
13175 {
13176 union { uint16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13177 union { uint16x4x4_t __i; __builtin_neon_oi __o; } __rv;
13178 __rv.__o = __builtin_neon_vld4_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
13179 return __rv.__i;
13180 }
13181
13182 __extension__ extern __inline uint32x2x4_t
13183 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_lane_u32(const uint32_t * __a,uint32x2x4_t __b,const int __c)13184 vld4_lane_u32 (const uint32_t * __a, uint32x2x4_t __b, const int __c)
13185 {
13186 union { uint32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13187 union { uint32x2x4_t __i; __builtin_neon_oi __o; } __rv;
13188 __rv.__o = __builtin_neon_vld4_lanev2si ((const __builtin_neon_si *) __a, __bu.__o, __c);
13189 return __rv.__i;
13190 }
13191
13192 __extension__ extern __inline poly8x8x4_t
13193 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_lane_p8(const poly8_t * __a,poly8x8x4_t __b,const int __c)13194 vld4_lane_p8 (const poly8_t * __a, poly8x8x4_t __b, const int __c)
13195 {
13196 union { poly8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13197 union { poly8x8x4_t __i; __builtin_neon_oi __o; } __rv;
13198 __rv.__o = __builtin_neon_vld4_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
13199 return __rv.__i;
13200 }
13201
13202 __extension__ extern __inline poly16x4x4_t
13203 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_lane_p16(const poly16_t * __a,poly16x4x4_t __b,const int __c)13204 vld4_lane_p16 (const poly16_t * __a, poly16x4x4_t __b, const int __c)
13205 {
13206 union { poly16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13207 union { poly16x4x4_t __i; __builtin_neon_oi __o; } __rv;
13208 __rv.__o = __builtin_neon_vld4_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
13209 return __rv.__i;
13210 }
13211
13212 __extension__ extern __inline int16x8x4_t
13213 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_lane_s16(const int16_t * __a,int16x8x4_t __b,const int __c)13214 vld4q_lane_s16 (const int16_t * __a, int16x8x4_t __b, const int __c)
13215 {
13216 union { int16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13217 union { int16x8x4_t __i; __builtin_neon_xi __o; } __rv;
13218 __rv.__o = __builtin_neon_vld4_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
13219 return __rv.__i;
13220 }
13221
13222 __extension__ extern __inline int32x4x4_t
13223 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_lane_s32(const int32_t * __a,int32x4x4_t __b,const int __c)13224 vld4q_lane_s32 (const int32_t * __a, int32x4x4_t __b, const int __c)
13225 {
13226 union { int32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13227 union { int32x4x4_t __i; __builtin_neon_xi __o; } __rv;
13228 __rv.__o = __builtin_neon_vld4_lanev4si ((const __builtin_neon_si *) __a, __bu.__o, __c);
13229 return __rv.__i;
13230 }
13231
13232 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
13233 __extension__ extern __inline float16x8x4_t
13234 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_lane_f16(const float16_t * __a,float16x8x4_t __b,const int __c)13235 vld4q_lane_f16 (const float16_t * __a, float16x8x4_t __b, const int __c)
13236 {
13237 union { float16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13238 union { float16x8x4_t __i; __builtin_neon_xi __o; } __rv;
13239 __rv.__o = __builtin_neon_vld4_lanev8hf (__a,
13240 __bu.__o, __c);
13241 return __rv.__i;
13242 }
13243 #endif
13244
13245 __extension__ extern __inline float32x4x4_t
13246 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_lane_f32(const float32_t * __a,float32x4x4_t __b,const int __c)13247 vld4q_lane_f32 (const float32_t * __a, float32x4x4_t __b, const int __c)
13248 {
13249 union { float32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13250 union { float32x4x4_t __i; __builtin_neon_xi __o; } __rv;
13251 __rv.__o = __builtin_neon_vld4_lanev4sf ((const __builtin_neon_sf *) __a, __bu.__o, __c);
13252 return __rv.__i;
13253 }
13254
13255 __extension__ extern __inline uint16x8x4_t
13256 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_lane_u16(const uint16_t * __a,uint16x8x4_t __b,const int __c)13257 vld4q_lane_u16 (const uint16_t * __a, uint16x8x4_t __b, const int __c)
13258 {
13259 union { uint16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13260 union { uint16x8x4_t __i; __builtin_neon_xi __o; } __rv;
13261 __rv.__o = __builtin_neon_vld4_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
13262 return __rv.__i;
13263 }
13264
13265 __extension__ extern __inline uint32x4x4_t
13266 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_lane_u32(const uint32_t * __a,uint32x4x4_t __b,const int __c)13267 vld4q_lane_u32 (const uint32_t * __a, uint32x4x4_t __b, const int __c)
13268 {
13269 union { uint32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13270 union { uint32x4x4_t __i; __builtin_neon_xi __o; } __rv;
13271 __rv.__o = __builtin_neon_vld4_lanev4si ((const __builtin_neon_si *) __a, __bu.__o, __c);
13272 return __rv.__i;
13273 }
13274
13275 __extension__ extern __inline poly16x8x4_t
13276 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_lane_p16(const poly16_t * __a,poly16x8x4_t __b,const int __c)13277 vld4q_lane_p16 (const poly16_t * __a, poly16x8x4_t __b, const int __c)
13278 {
13279 union { poly16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13280 union { poly16x8x4_t __i; __builtin_neon_xi __o; } __rv;
13281 __rv.__o = __builtin_neon_vld4_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
13282 return __rv.__i;
13283 }
13284
13285 __extension__ extern __inline int8x8x4_t
13286 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_dup_s8(const int8_t * __a)13287 vld4_dup_s8 (const int8_t * __a)
13288 {
13289 union { int8x8x4_t __i; __builtin_neon_oi __o; } __rv;
13290 __rv.__o = __builtin_neon_vld4_dupv8qi ((const __builtin_neon_qi *) __a);
13291 return __rv.__i;
13292 }
13293
13294 __extension__ extern __inline int16x4x4_t
13295 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_dup_s16(const int16_t * __a)13296 vld4_dup_s16 (const int16_t * __a)
13297 {
13298 union { int16x4x4_t __i; __builtin_neon_oi __o; } __rv;
13299 __rv.__o = __builtin_neon_vld4_dupv4hi ((const __builtin_neon_hi *) __a);
13300 return __rv.__i;
13301 }
13302
13303 __extension__ extern __inline int32x2x4_t
13304 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_dup_s32(const int32_t * __a)13305 vld4_dup_s32 (const int32_t * __a)
13306 {
13307 union { int32x2x4_t __i; __builtin_neon_oi __o; } __rv;
13308 __rv.__o = __builtin_neon_vld4_dupv2si ((const __builtin_neon_si *) __a);
13309 return __rv.__i;
13310 }
13311
13312 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
13313 __extension__ extern __inline float16x4x4_t
13314 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_dup_f16(const float16_t * __a)13315 vld4_dup_f16 (const float16_t * __a)
13316 {
13317 union { float16x4x4_t __i; __builtin_neon_oi __o; } __rv;
13318 __rv.__o = __builtin_neon_vld4_dupv4hf (__a);
13319 return __rv.__i;
13320 }
13321 #endif
13322
13323 __extension__ extern __inline float32x2x4_t
13324 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_dup_f32(const float32_t * __a)13325 vld4_dup_f32 (const float32_t * __a)
13326 {
13327 union { float32x2x4_t __i; __builtin_neon_oi __o; } __rv;
13328 __rv.__o = __builtin_neon_vld4_dupv2sf ((const __builtin_neon_sf *) __a);
13329 return __rv.__i;
13330 }
13331
13332 __extension__ extern __inline uint8x8x4_t
13333 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_dup_u8(const uint8_t * __a)13334 vld4_dup_u8 (const uint8_t * __a)
13335 {
13336 union { uint8x8x4_t __i; __builtin_neon_oi __o; } __rv;
13337 __rv.__o = __builtin_neon_vld4_dupv8qi ((const __builtin_neon_qi *) __a);
13338 return __rv.__i;
13339 }
13340
13341 __extension__ extern __inline uint16x4x4_t
13342 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_dup_u16(const uint16_t * __a)13343 vld4_dup_u16 (const uint16_t * __a)
13344 {
13345 union { uint16x4x4_t __i; __builtin_neon_oi __o; } __rv;
13346 __rv.__o = __builtin_neon_vld4_dupv4hi ((const __builtin_neon_hi *) __a);
13347 return __rv.__i;
13348 }
13349
13350 __extension__ extern __inline uint32x2x4_t
13351 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_dup_u32(const uint32_t * __a)13352 vld4_dup_u32 (const uint32_t * __a)
13353 {
13354 union { uint32x2x4_t __i; __builtin_neon_oi __o; } __rv;
13355 __rv.__o = __builtin_neon_vld4_dupv2si ((const __builtin_neon_si *) __a);
13356 return __rv.__i;
13357 }
13358
13359 __extension__ extern __inline poly8x8x4_t
13360 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_dup_p8(const poly8_t * __a)13361 vld4_dup_p8 (const poly8_t * __a)
13362 {
13363 union { poly8x8x4_t __i; __builtin_neon_oi __o; } __rv;
13364 __rv.__o = __builtin_neon_vld4_dupv8qi ((const __builtin_neon_qi *) __a);
13365 return __rv.__i;
13366 }
13367
13368 __extension__ extern __inline poly16x4x4_t
13369 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_dup_p16(const poly16_t * __a)13370 vld4_dup_p16 (const poly16_t * __a)
13371 {
13372 union { poly16x4x4_t __i; __builtin_neon_oi __o; } __rv;
13373 __rv.__o = __builtin_neon_vld4_dupv4hi ((const __builtin_neon_hi *) __a);
13374 return __rv.__i;
13375 }
13376
13377 #pragma GCC push_options
13378 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
13379 __extension__ extern __inline poly64x1x4_t
13380 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_dup_p64(const poly64_t * __a)13381 vld4_dup_p64 (const poly64_t * __a)
13382 {
13383 union { poly64x1x4_t __i; __builtin_neon_oi __o; } __rv;
13384 __rv.__o = __builtin_neon_vld4_dupdi ((const __builtin_neon_di *) __a);
13385 return __rv.__i;
13386 }
13387
13388 #pragma GCC pop_options
13389 __extension__ extern __inline int64x1x4_t
13390 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_dup_s64(const int64_t * __a)13391 vld4_dup_s64 (const int64_t * __a)
13392 {
13393 union { int64x1x4_t __i; __builtin_neon_oi __o; } __rv;
13394 __rv.__o = __builtin_neon_vld4_dupdi ((const __builtin_neon_di *) __a);
13395 return __rv.__i;
13396 }
13397
13398 __extension__ extern __inline uint64x1x4_t
13399 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_dup_u64(const uint64_t * __a)13400 vld4_dup_u64 (const uint64_t * __a)
13401 {
13402 union { uint64x1x4_t __i; __builtin_neon_oi __o; } __rv;
13403 __rv.__o = __builtin_neon_vld4_dupdi ((const __builtin_neon_di *) __a);
13404 return __rv.__i;
13405 }
13406
13407 __extension__ extern __inline void
13408 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4_s8(int8_t * __a,int8x8x4_t __b)13409 vst4_s8 (int8_t * __a, int8x8x4_t __b)
13410 {
13411 union { int8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13412 __builtin_neon_vst4v8qi ((__builtin_neon_qi *) __a, __bu.__o);
13413 }
13414
13415 __extension__ extern __inline void
13416 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4_s16(int16_t * __a,int16x4x4_t __b)13417 vst4_s16 (int16_t * __a, int16x4x4_t __b)
13418 {
13419 union { int16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13420 __builtin_neon_vst4v4hi ((__builtin_neon_hi *) __a, __bu.__o);
13421 }
13422
13423 __extension__ extern __inline void
13424 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4_s32(int32_t * __a,int32x2x4_t __b)13425 vst4_s32 (int32_t * __a, int32x2x4_t __b)
13426 {
13427 union { int32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13428 __builtin_neon_vst4v2si ((__builtin_neon_si *) __a, __bu.__o);
13429 }
13430
13431 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
13432 __extension__ extern __inline void
13433 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4_f16(float16_t * __a,float16x4x4_t __b)13434 vst4_f16 (float16_t * __a, float16x4x4_t __b)
13435 {
13436 union { float16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13437 __builtin_neon_vst4v4hf (__a, __bu.__o);
13438 }
13439 #endif
13440
13441 __extension__ extern __inline void
13442 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4_f32(float32_t * __a,float32x2x4_t __b)13443 vst4_f32 (float32_t * __a, float32x2x4_t __b)
13444 {
13445 union { float32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13446 __builtin_neon_vst4v2sf ((__builtin_neon_sf *) __a, __bu.__o);
13447 }
13448
13449 __extension__ extern __inline void
13450 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4_u8(uint8_t * __a,uint8x8x4_t __b)13451 vst4_u8 (uint8_t * __a, uint8x8x4_t __b)
13452 {
13453 union { uint8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13454 __builtin_neon_vst4v8qi ((__builtin_neon_qi *) __a, __bu.__o);
13455 }
13456
13457 __extension__ extern __inline void
13458 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4_u16(uint16_t * __a,uint16x4x4_t __b)13459 vst4_u16 (uint16_t * __a, uint16x4x4_t __b)
13460 {
13461 union { uint16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13462 __builtin_neon_vst4v4hi ((__builtin_neon_hi *) __a, __bu.__o);
13463 }
13464
13465 __extension__ extern __inline void
13466 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4_u32(uint32_t * __a,uint32x2x4_t __b)13467 vst4_u32 (uint32_t * __a, uint32x2x4_t __b)
13468 {
13469 union { uint32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13470 __builtin_neon_vst4v2si ((__builtin_neon_si *) __a, __bu.__o);
13471 }
13472
13473 __extension__ extern __inline void
13474 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4_p8(poly8_t * __a,poly8x8x4_t __b)13475 vst4_p8 (poly8_t * __a, poly8x8x4_t __b)
13476 {
13477 union { poly8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13478 __builtin_neon_vst4v8qi ((__builtin_neon_qi *) __a, __bu.__o);
13479 }
13480
13481 __extension__ extern __inline void
13482 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4_p16(poly16_t * __a,poly16x4x4_t __b)13483 vst4_p16 (poly16_t * __a, poly16x4x4_t __b)
13484 {
13485 union { poly16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13486 __builtin_neon_vst4v4hi ((__builtin_neon_hi *) __a, __bu.__o);
13487 }
13488
13489 #pragma GCC push_options
13490 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
13491 __extension__ extern __inline void
13492 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4_p64(poly64_t * __a,poly64x1x4_t __b)13493 vst4_p64 (poly64_t * __a, poly64x1x4_t __b)
13494 {
13495 union { poly64x1x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13496 __builtin_neon_vst4di ((__builtin_neon_di *) __a, __bu.__o);
13497 }
13498
13499 #pragma GCC pop_options
13500 __extension__ extern __inline void
13501 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4_s64(int64_t * __a,int64x1x4_t __b)13502 vst4_s64 (int64_t * __a, int64x1x4_t __b)
13503 {
13504 union { int64x1x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13505 __builtin_neon_vst4di ((__builtin_neon_di *) __a, __bu.__o);
13506 }
13507
13508 __extension__ extern __inline void
13509 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4_u64(uint64_t * __a,uint64x1x4_t __b)13510 vst4_u64 (uint64_t * __a, uint64x1x4_t __b)
13511 {
13512 union { uint64x1x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13513 __builtin_neon_vst4di ((__builtin_neon_di *) __a, __bu.__o);
13514 }
13515
13516 __extension__ extern __inline void
13517 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4q_s8(int8_t * __a,int8x16x4_t __b)13518 vst4q_s8 (int8_t * __a, int8x16x4_t __b)
13519 {
13520 union { int8x16x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13521 __builtin_neon_vst4v16qi ((__builtin_neon_qi *) __a, __bu.__o);
13522 }
13523
13524 __extension__ extern __inline void
13525 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4q_s16(int16_t * __a,int16x8x4_t __b)13526 vst4q_s16 (int16_t * __a, int16x8x4_t __b)
13527 {
13528 union { int16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13529 __builtin_neon_vst4v8hi ((__builtin_neon_hi *) __a, __bu.__o);
13530 }
13531
13532 __extension__ extern __inline void
13533 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4q_s32(int32_t * __a,int32x4x4_t __b)13534 vst4q_s32 (int32_t * __a, int32x4x4_t __b)
13535 {
13536 union { int32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13537 __builtin_neon_vst4v4si ((__builtin_neon_si *) __a, __bu.__o);
13538 }
13539
13540 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
13541 __extension__ extern __inline void
13542 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4q_f16(float16_t * __a,float16x8x4_t __b)13543 vst4q_f16 (float16_t * __a, float16x8x4_t __b)
13544 {
13545 union { float16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13546 __builtin_neon_vst4v8hf (__a, __bu.__o);
13547 }
13548 #endif
13549
13550 __extension__ extern __inline void
13551 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4q_f32(float32_t * __a,float32x4x4_t __b)13552 vst4q_f32 (float32_t * __a, float32x4x4_t __b)
13553 {
13554 union { float32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13555 __builtin_neon_vst4v4sf ((__builtin_neon_sf *) __a, __bu.__o);
13556 }
13557
13558 __extension__ extern __inline void
13559 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4q_u8(uint8_t * __a,uint8x16x4_t __b)13560 vst4q_u8 (uint8_t * __a, uint8x16x4_t __b)
13561 {
13562 union { uint8x16x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13563 __builtin_neon_vst4v16qi ((__builtin_neon_qi *) __a, __bu.__o);
13564 }
13565
13566 __extension__ extern __inline void
13567 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4q_u16(uint16_t * __a,uint16x8x4_t __b)13568 vst4q_u16 (uint16_t * __a, uint16x8x4_t __b)
13569 {
13570 union { uint16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13571 __builtin_neon_vst4v8hi ((__builtin_neon_hi *) __a, __bu.__o);
13572 }
13573
13574 __extension__ extern __inline void
13575 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4q_u32(uint32_t * __a,uint32x4x4_t __b)13576 vst4q_u32 (uint32_t * __a, uint32x4x4_t __b)
13577 {
13578 union { uint32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13579 __builtin_neon_vst4v4si ((__builtin_neon_si *) __a, __bu.__o);
13580 }
13581
13582 __extension__ extern __inline void
13583 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4q_p8(poly8_t * __a,poly8x16x4_t __b)13584 vst4q_p8 (poly8_t * __a, poly8x16x4_t __b)
13585 {
13586 union { poly8x16x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13587 __builtin_neon_vst4v16qi ((__builtin_neon_qi *) __a, __bu.__o);
13588 }
13589
13590 __extension__ extern __inline void
13591 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4q_p16(poly16_t * __a,poly16x8x4_t __b)13592 vst4q_p16 (poly16_t * __a, poly16x8x4_t __b)
13593 {
13594 union { poly16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13595 __builtin_neon_vst4v8hi ((__builtin_neon_hi *) __a, __bu.__o);
13596 }
13597
13598 __extension__ extern __inline void
13599 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4_lane_s8(int8_t * __a,int8x8x4_t __b,const int __c)13600 vst4_lane_s8 (int8_t * __a, int8x8x4_t __b, const int __c)
13601 {
13602 union { int8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13603 __builtin_neon_vst4_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
13604 }
13605
13606 __extension__ extern __inline void
13607 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4_lane_s16(int16_t * __a,int16x4x4_t __b,const int __c)13608 vst4_lane_s16 (int16_t * __a, int16x4x4_t __b, const int __c)
13609 {
13610 union { int16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13611 __builtin_neon_vst4_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
13612 }
13613
13614 __extension__ extern __inline void
13615 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4_lane_s32(int32_t * __a,int32x2x4_t __b,const int __c)13616 vst4_lane_s32 (int32_t * __a, int32x2x4_t __b, const int __c)
13617 {
13618 union { int32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13619 __builtin_neon_vst4_lanev2si ((__builtin_neon_si *) __a, __bu.__o, __c);
13620 }
13621
13622 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
13623 __extension__ extern __inline void
13624 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4_lane_f16(float16_t * __a,float16x4x4_t __b,const int __c)13625 vst4_lane_f16 (float16_t * __a, float16x4x4_t __b, const int __c)
13626 {
13627 union { float16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13628 __builtin_neon_vst4_lanev4hf (__a, __bu.__o, __c);
13629 }
13630 #endif
13631
13632 __extension__ extern __inline void
13633 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4_lane_f32(float32_t * __a,float32x2x4_t __b,const int __c)13634 vst4_lane_f32 (float32_t * __a, float32x2x4_t __b, const int __c)
13635 {
13636 union { float32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13637 __builtin_neon_vst4_lanev2sf ((__builtin_neon_sf *) __a, __bu.__o, __c);
13638 }
13639
13640 __extension__ extern __inline void
13641 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4_lane_u8(uint8_t * __a,uint8x8x4_t __b,const int __c)13642 vst4_lane_u8 (uint8_t * __a, uint8x8x4_t __b, const int __c)
13643 {
13644 union { uint8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13645 __builtin_neon_vst4_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
13646 }
13647
13648 __extension__ extern __inline void
13649 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4_lane_u16(uint16_t * __a,uint16x4x4_t __b,const int __c)13650 vst4_lane_u16 (uint16_t * __a, uint16x4x4_t __b, const int __c)
13651 {
13652 union { uint16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13653 __builtin_neon_vst4_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
13654 }
13655
13656 __extension__ extern __inline void
13657 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4_lane_u32(uint32_t * __a,uint32x2x4_t __b,const int __c)13658 vst4_lane_u32 (uint32_t * __a, uint32x2x4_t __b, const int __c)
13659 {
13660 union { uint32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13661 __builtin_neon_vst4_lanev2si ((__builtin_neon_si *) __a, __bu.__o, __c);
13662 }
13663
13664 __extension__ extern __inline void
13665 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4_lane_p8(poly8_t * __a,poly8x8x4_t __b,const int __c)13666 vst4_lane_p8 (poly8_t * __a, poly8x8x4_t __b, const int __c)
13667 {
13668 union { poly8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13669 __builtin_neon_vst4_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
13670 }
13671
13672 __extension__ extern __inline void
13673 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4_lane_p16(poly16_t * __a,poly16x4x4_t __b,const int __c)13674 vst4_lane_p16 (poly16_t * __a, poly16x4x4_t __b, const int __c)
13675 {
13676 union { poly16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13677 __builtin_neon_vst4_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
13678 }
13679
13680 __extension__ extern __inline void
13681 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4q_lane_s16(int16_t * __a,int16x8x4_t __b,const int __c)13682 vst4q_lane_s16 (int16_t * __a, int16x8x4_t __b, const int __c)
13683 {
13684 union { int16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13685 __builtin_neon_vst4_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
13686 }
13687
13688 __extension__ extern __inline void
13689 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4q_lane_s32(int32_t * __a,int32x4x4_t __b,const int __c)13690 vst4q_lane_s32 (int32_t * __a, int32x4x4_t __b, const int __c)
13691 {
13692 union { int32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13693 __builtin_neon_vst4_lanev4si ((__builtin_neon_si *) __a, __bu.__o, __c);
13694 }
13695
13696 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
13697 __extension__ extern __inline void
13698 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4q_lane_f16(float16_t * __a,float16x8x4_t __b,const int __c)13699 vst4q_lane_f16 (float16_t * __a, float16x8x4_t __b, const int __c)
13700 {
13701 union { float16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13702 __builtin_neon_vst4_lanev8hf (__a, __bu.__o, __c);
13703 }
13704 #endif
13705
13706 __extension__ extern __inline void
13707 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4q_lane_f32(float32_t * __a,float32x4x4_t __b,const int __c)13708 vst4q_lane_f32 (float32_t * __a, float32x4x4_t __b, const int __c)
13709 {
13710 union { float32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13711 __builtin_neon_vst4_lanev4sf ((__builtin_neon_sf *) __a, __bu.__o, __c);
13712 }
13713
13714 __extension__ extern __inline void
13715 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4q_lane_u16(uint16_t * __a,uint16x8x4_t __b,const int __c)13716 vst4q_lane_u16 (uint16_t * __a, uint16x8x4_t __b, const int __c)
13717 {
13718 union { uint16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13719 __builtin_neon_vst4_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
13720 }
13721
13722 __extension__ extern __inline void
13723 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4q_lane_u32(uint32_t * __a,uint32x4x4_t __b,const int __c)13724 vst4q_lane_u32 (uint32_t * __a, uint32x4x4_t __b, const int __c)
13725 {
13726 union { uint32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13727 __builtin_neon_vst4_lanev4si ((__builtin_neon_si *) __a, __bu.__o, __c);
13728 }
13729
13730 __extension__ extern __inline void
13731 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4q_lane_p16(poly16_t * __a,poly16x8x4_t __b,const int __c)13732 vst4q_lane_p16 (poly16_t * __a, poly16x8x4_t __b, const int __c)
13733 {
13734 union { poly16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13735 __builtin_neon_vst4_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
13736 }
13737
13738 __extension__ extern __inline int8x8_t
13739 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vand_s8(int8x8_t __a,int8x8_t __b)13740 vand_s8 (int8x8_t __a, int8x8_t __b)
13741 {
13742 return __a & __b;
13743 }
13744
13745 __extension__ extern __inline int16x4_t
13746 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vand_s16(int16x4_t __a,int16x4_t __b)13747 vand_s16 (int16x4_t __a, int16x4_t __b)
13748 {
13749 return __a & __b;
13750 }
13751
13752 __extension__ extern __inline int32x2_t
13753 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vand_s32(int32x2_t __a,int32x2_t __b)13754 vand_s32 (int32x2_t __a, int32x2_t __b)
13755 {
13756 return __a & __b;
13757 }
13758
13759 __extension__ extern __inline uint8x8_t
13760 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vand_u8(uint8x8_t __a,uint8x8_t __b)13761 vand_u8 (uint8x8_t __a, uint8x8_t __b)
13762 {
13763 return __a & __b;
13764 }
13765
13766 __extension__ extern __inline uint16x4_t
13767 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vand_u16(uint16x4_t __a,uint16x4_t __b)13768 vand_u16 (uint16x4_t __a, uint16x4_t __b)
13769 {
13770 return __a & __b;
13771 }
13772
13773 __extension__ extern __inline uint32x2_t
13774 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vand_u32(uint32x2_t __a,uint32x2_t __b)13775 vand_u32 (uint32x2_t __a, uint32x2_t __b)
13776 {
13777 return __a & __b;
13778 }
13779
13780 __extension__ extern __inline int64x1_t
13781 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vand_s64(int64x1_t __a,int64x1_t __b)13782 vand_s64 (int64x1_t __a, int64x1_t __b)
13783 {
13784 return __a & __b;
13785 }
13786
13787 __extension__ extern __inline uint64x1_t
13788 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vand_u64(uint64x1_t __a,uint64x1_t __b)13789 vand_u64 (uint64x1_t __a, uint64x1_t __b)
13790 {
13791 return __a & __b;
13792 }
13793
13794 __extension__ extern __inline int8x16_t
13795 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vandq_s8(int8x16_t __a,int8x16_t __b)13796 vandq_s8 (int8x16_t __a, int8x16_t __b)
13797 {
13798 return __a & __b;
13799 }
13800
13801 __extension__ extern __inline int16x8_t
13802 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vandq_s16(int16x8_t __a,int16x8_t __b)13803 vandq_s16 (int16x8_t __a, int16x8_t __b)
13804 {
13805 return __a & __b;
13806 }
13807
13808 __extension__ extern __inline int32x4_t
13809 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vandq_s32(int32x4_t __a,int32x4_t __b)13810 vandq_s32 (int32x4_t __a, int32x4_t __b)
13811 {
13812 return __a & __b;
13813 }
13814
13815 __extension__ extern __inline int64x2_t
13816 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vandq_s64(int64x2_t __a,int64x2_t __b)13817 vandq_s64 (int64x2_t __a, int64x2_t __b)
13818 {
13819 return __a & __b;
13820 }
13821
13822 __extension__ extern __inline uint8x16_t
13823 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vandq_u8(uint8x16_t __a,uint8x16_t __b)13824 vandq_u8 (uint8x16_t __a, uint8x16_t __b)
13825 {
13826 return __a & __b;
13827 }
13828
13829 __extension__ extern __inline uint16x8_t
13830 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vandq_u16(uint16x8_t __a,uint16x8_t __b)13831 vandq_u16 (uint16x8_t __a, uint16x8_t __b)
13832 {
13833 return __a & __b;
13834 }
13835
13836 __extension__ extern __inline uint32x4_t
13837 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vandq_u32(uint32x4_t __a,uint32x4_t __b)13838 vandq_u32 (uint32x4_t __a, uint32x4_t __b)
13839 {
13840 return __a & __b;
13841 }
13842
13843 __extension__ extern __inline uint64x2_t
13844 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vandq_u64(uint64x2_t __a,uint64x2_t __b)13845 vandq_u64 (uint64x2_t __a, uint64x2_t __b)
13846 {
13847 return __a & __b;
13848 }
13849
13850 __extension__ extern __inline int8x8_t
13851 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorr_s8(int8x8_t __a,int8x8_t __b)13852 vorr_s8 (int8x8_t __a, int8x8_t __b)
13853 {
13854 return __a | __b;
13855 }
13856
13857 __extension__ extern __inline int16x4_t
13858 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorr_s16(int16x4_t __a,int16x4_t __b)13859 vorr_s16 (int16x4_t __a, int16x4_t __b)
13860 {
13861 return __a | __b;
13862 }
13863
13864 __extension__ extern __inline int32x2_t
13865 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorr_s32(int32x2_t __a,int32x2_t __b)13866 vorr_s32 (int32x2_t __a, int32x2_t __b)
13867 {
13868 return __a | __b;
13869 }
13870
13871 __extension__ extern __inline uint8x8_t
13872 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorr_u8(uint8x8_t __a,uint8x8_t __b)13873 vorr_u8 (uint8x8_t __a, uint8x8_t __b)
13874 {
13875 return __a | __b;
13876 }
13877
13878 __extension__ extern __inline uint16x4_t
13879 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorr_u16(uint16x4_t __a,uint16x4_t __b)13880 vorr_u16 (uint16x4_t __a, uint16x4_t __b)
13881 {
13882 return __a | __b;
13883 }
13884
13885 __extension__ extern __inline uint32x2_t
13886 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorr_u32(uint32x2_t __a,uint32x2_t __b)13887 vorr_u32 (uint32x2_t __a, uint32x2_t __b)
13888 {
13889 return __a | __b;
13890 }
13891
13892 __extension__ extern __inline int64x1_t
13893 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorr_s64(int64x1_t __a,int64x1_t __b)13894 vorr_s64 (int64x1_t __a, int64x1_t __b)
13895 {
13896 return __a | __b;
13897 }
13898
13899 __extension__ extern __inline uint64x1_t
13900 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorr_u64(uint64x1_t __a,uint64x1_t __b)13901 vorr_u64 (uint64x1_t __a, uint64x1_t __b)
13902 {
13903 return __a | __b;
13904 }
13905
13906 __extension__ extern __inline int8x16_t
13907 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorrq_s8(int8x16_t __a,int8x16_t __b)13908 vorrq_s8 (int8x16_t __a, int8x16_t __b)
13909 {
13910 return __a | __b;
13911 }
13912
13913 __extension__ extern __inline int16x8_t
13914 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorrq_s16(int16x8_t __a,int16x8_t __b)13915 vorrq_s16 (int16x8_t __a, int16x8_t __b)
13916 {
13917 return __a | __b;
13918 }
13919
13920 __extension__ extern __inline int32x4_t
13921 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorrq_s32(int32x4_t __a,int32x4_t __b)13922 vorrq_s32 (int32x4_t __a, int32x4_t __b)
13923 {
13924 return __a | __b;
13925 }
13926
13927 __extension__ extern __inline int64x2_t
13928 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorrq_s64(int64x2_t __a,int64x2_t __b)13929 vorrq_s64 (int64x2_t __a, int64x2_t __b)
13930 {
13931 return __a | __b;
13932 }
13933
13934 __extension__ extern __inline uint8x16_t
13935 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorrq_u8(uint8x16_t __a,uint8x16_t __b)13936 vorrq_u8 (uint8x16_t __a, uint8x16_t __b)
13937 {
13938 return __a | __b;
13939 }
13940
13941 __extension__ extern __inline uint16x8_t
13942 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorrq_u16(uint16x8_t __a,uint16x8_t __b)13943 vorrq_u16 (uint16x8_t __a, uint16x8_t __b)
13944 {
13945 return __a | __b;
13946 }
13947
13948 __extension__ extern __inline uint32x4_t
13949 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorrq_u32(uint32x4_t __a,uint32x4_t __b)13950 vorrq_u32 (uint32x4_t __a, uint32x4_t __b)
13951 {
13952 return __a | __b;
13953 }
13954
13955 __extension__ extern __inline uint64x2_t
13956 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorrq_u64(uint64x2_t __a,uint64x2_t __b)13957 vorrq_u64 (uint64x2_t __a, uint64x2_t __b)
13958 {
13959 return __a | __b;
13960 }
13961
13962 __extension__ extern __inline int8x8_t
13963 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
veor_s8(int8x8_t __a,int8x8_t __b)13964 veor_s8 (int8x8_t __a, int8x8_t __b)
13965 {
13966 return __a ^ __b;
13967 }
13968
13969 __extension__ extern __inline int16x4_t
13970 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
veor_s16(int16x4_t __a,int16x4_t __b)13971 veor_s16 (int16x4_t __a, int16x4_t __b)
13972 {
13973 return __a ^ __b;
13974 }
13975
13976 __extension__ extern __inline int32x2_t
13977 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
veor_s32(int32x2_t __a,int32x2_t __b)13978 veor_s32 (int32x2_t __a, int32x2_t __b)
13979 {
13980 return __a ^ __b;
13981 }
13982
13983 __extension__ extern __inline uint8x8_t
13984 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
veor_u8(uint8x8_t __a,uint8x8_t __b)13985 veor_u8 (uint8x8_t __a, uint8x8_t __b)
13986 {
13987 return __a ^ __b;
13988 }
13989
13990 __extension__ extern __inline uint16x4_t
13991 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
veor_u16(uint16x4_t __a,uint16x4_t __b)13992 veor_u16 (uint16x4_t __a, uint16x4_t __b)
13993 {
13994 return __a ^ __b;
13995 }
13996
13997 __extension__ extern __inline uint32x2_t
13998 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
veor_u32(uint32x2_t __a,uint32x2_t __b)13999 veor_u32 (uint32x2_t __a, uint32x2_t __b)
14000 {
14001 return __a ^ __b;
14002 }
14003
14004 __extension__ extern __inline int64x1_t
14005 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
veor_s64(int64x1_t __a,int64x1_t __b)14006 veor_s64 (int64x1_t __a, int64x1_t __b)
14007 {
14008 return __a ^ __b;
14009 }
14010
14011 __extension__ extern __inline uint64x1_t
14012 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
veor_u64(uint64x1_t __a,uint64x1_t __b)14013 veor_u64 (uint64x1_t __a, uint64x1_t __b)
14014 {
14015 return __a ^ __b;
14016 }
14017
14018 __extension__ extern __inline int8x16_t
14019 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
veorq_s8(int8x16_t __a,int8x16_t __b)14020 veorq_s8 (int8x16_t __a, int8x16_t __b)
14021 {
14022 return __a ^ __b;
14023 }
14024
14025 __extension__ extern __inline int16x8_t
14026 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
veorq_s16(int16x8_t __a,int16x8_t __b)14027 veorq_s16 (int16x8_t __a, int16x8_t __b)
14028 {
14029 return __a ^ __b;
14030 }
14031
14032 __extension__ extern __inline int32x4_t
14033 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
veorq_s32(int32x4_t __a,int32x4_t __b)14034 veorq_s32 (int32x4_t __a, int32x4_t __b)
14035 {
14036 return __a ^ __b;
14037 }
14038
14039 __extension__ extern __inline int64x2_t
14040 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
veorq_s64(int64x2_t __a,int64x2_t __b)14041 veorq_s64 (int64x2_t __a, int64x2_t __b)
14042 {
14043 return __a ^ __b;
14044 }
14045
14046 __extension__ extern __inline uint8x16_t
14047 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
veorq_u8(uint8x16_t __a,uint8x16_t __b)14048 veorq_u8 (uint8x16_t __a, uint8x16_t __b)
14049 {
14050 return __a ^ __b;
14051 }
14052
14053 __extension__ extern __inline uint16x8_t
14054 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
veorq_u16(uint16x8_t __a,uint16x8_t __b)14055 veorq_u16 (uint16x8_t __a, uint16x8_t __b)
14056 {
14057 return __a ^ __b;
14058 }
14059
14060 __extension__ extern __inline uint32x4_t
14061 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
veorq_u32(uint32x4_t __a,uint32x4_t __b)14062 veorq_u32 (uint32x4_t __a, uint32x4_t __b)
14063 {
14064 return __a ^ __b;
14065 }
14066
14067 __extension__ extern __inline uint64x2_t
14068 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
veorq_u64(uint64x2_t __a,uint64x2_t __b)14069 veorq_u64 (uint64x2_t __a, uint64x2_t __b)
14070 {
14071 return __a ^ __b;
14072 }
14073
14074 __extension__ extern __inline int8x8_t
14075 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbic_s8(int8x8_t __a,int8x8_t __b)14076 vbic_s8 (int8x8_t __a, int8x8_t __b)
14077 {
14078 return __a & ~__b;
14079 }
14080
14081 __extension__ extern __inline int16x4_t
14082 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbic_s16(int16x4_t __a,int16x4_t __b)14083 vbic_s16 (int16x4_t __a, int16x4_t __b)
14084 {
14085 return __a & ~__b;
14086 }
14087
14088 __extension__ extern __inline int32x2_t
14089 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbic_s32(int32x2_t __a,int32x2_t __b)14090 vbic_s32 (int32x2_t __a, int32x2_t __b)
14091 {
14092 return __a & ~__b;
14093 }
14094
14095 __extension__ extern __inline uint8x8_t
14096 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbic_u8(uint8x8_t __a,uint8x8_t __b)14097 vbic_u8 (uint8x8_t __a, uint8x8_t __b)
14098 {
14099 return __a & ~__b;
14100 }
14101
14102 __extension__ extern __inline uint16x4_t
14103 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbic_u16(uint16x4_t __a,uint16x4_t __b)14104 vbic_u16 (uint16x4_t __a, uint16x4_t __b)
14105 {
14106 return __a & ~__b;
14107 }
14108
14109 __extension__ extern __inline uint32x2_t
14110 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbic_u32(uint32x2_t __a,uint32x2_t __b)14111 vbic_u32 (uint32x2_t __a, uint32x2_t __b)
14112 {
14113 return __a & ~__b;
14114 }
14115
14116 __extension__ extern __inline int64x1_t
14117 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbic_s64(int64x1_t __a,int64x1_t __b)14118 vbic_s64 (int64x1_t __a, int64x1_t __b)
14119 {
14120 return __a & ~__b;
14121 }
14122
14123 __extension__ extern __inline uint64x1_t
14124 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbic_u64(uint64x1_t __a,uint64x1_t __b)14125 vbic_u64 (uint64x1_t __a, uint64x1_t __b)
14126 {
14127 return __a & ~__b;
14128 }
14129
14130 __extension__ extern __inline int8x16_t
14131 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbicq_s8(int8x16_t __a,int8x16_t __b)14132 vbicq_s8 (int8x16_t __a, int8x16_t __b)
14133 {
14134 return __a & ~__b;
14135 }
14136
14137 __extension__ extern __inline int16x8_t
14138 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbicq_s16(int16x8_t __a,int16x8_t __b)14139 vbicq_s16 (int16x8_t __a, int16x8_t __b)
14140 {
14141 return __a & ~__b;
14142 }
14143
14144 __extension__ extern __inline int32x4_t
14145 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbicq_s32(int32x4_t __a,int32x4_t __b)14146 vbicq_s32 (int32x4_t __a, int32x4_t __b)
14147 {
14148 return __a & ~__b;
14149 }
14150
14151 __extension__ extern __inline int64x2_t
14152 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbicq_s64(int64x2_t __a,int64x2_t __b)14153 vbicq_s64 (int64x2_t __a, int64x2_t __b)
14154 {
14155 return __a & ~__b;
14156 }
14157
14158 __extension__ extern __inline uint8x16_t
14159 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbicq_u8(uint8x16_t __a,uint8x16_t __b)14160 vbicq_u8 (uint8x16_t __a, uint8x16_t __b)
14161 {
14162 return __a & ~__b;
14163 }
14164
14165 __extension__ extern __inline uint16x8_t
14166 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbicq_u16(uint16x8_t __a,uint16x8_t __b)14167 vbicq_u16 (uint16x8_t __a, uint16x8_t __b)
14168 {
14169 return __a & ~__b;
14170 }
14171
14172 __extension__ extern __inline uint32x4_t
14173 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbicq_u32(uint32x4_t __a,uint32x4_t __b)14174 vbicq_u32 (uint32x4_t __a, uint32x4_t __b)
14175 {
14176 return __a & ~__b;
14177 }
14178
14179 __extension__ extern __inline uint64x2_t
14180 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbicq_u64(uint64x2_t __a,uint64x2_t __b)14181 vbicq_u64 (uint64x2_t __a, uint64x2_t __b)
14182 {
14183 return __a & ~__b;
14184 }
14185
14186 __extension__ extern __inline int8x8_t
14187 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorn_s8(int8x8_t __a,int8x8_t __b)14188 vorn_s8 (int8x8_t __a, int8x8_t __b)
14189 {
14190 return __a | ~__b;
14191 }
14192
14193 __extension__ extern __inline int16x4_t
14194 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorn_s16(int16x4_t __a,int16x4_t __b)14195 vorn_s16 (int16x4_t __a, int16x4_t __b)
14196 {
14197 return __a | ~__b;
14198 }
14199
14200 __extension__ extern __inline int32x2_t
14201 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorn_s32(int32x2_t __a,int32x2_t __b)14202 vorn_s32 (int32x2_t __a, int32x2_t __b)
14203 {
14204 return __a | ~__b;
14205 }
14206
14207 __extension__ extern __inline uint8x8_t
14208 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorn_u8(uint8x8_t __a,uint8x8_t __b)14209 vorn_u8 (uint8x8_t __a, uint8x8_t __b)
14210 {
14211 return __a | ~__b;
14212 }
14213
14214 __extension__ extern __inline uint16x4_t
14215 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorn_u16(uint16x4_t __a,uint16x4_t __b)14216 vorn_u16 (uint16x4_t __a, uint16x4_t __b)
14217 {
14218 return __a | ~__b;
14219 }
14220
14221 __extension__ extern __inline uint32x2_t
14222 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorn_u32(uint32x2_t __a,uint32x2_t __b)14223 vorn_u32 (uint32x2_t __a, uint32x2_t __b)
14224 {
14225 return __a | ~__b;
14226 }
14227
14228 __extension__ extern __inline int64x1_t
14229 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorn_s64(int64x1_t __a,int64x1_t __b)14230 vorn_s64 (int64x1_t __a, int64x1_t __b)
14231 {
14232 return __a | ~__b;
14233 }
14234
14235 __extension__ extern __inline uint64x1_t
14236 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorn_u64(uint64x1_t __a,uint64x1_t __b)14237 vorn_u64 (uint64x1_t __a, uint64x1_t __b)
14238 {
14239 return __a | ~__b;
14240 }
14241
14242 __extension__ extern __inline int8x16_t
14243 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vornq_s8(int8x16_t __a,int8x16_t __b)14244 vornq_s8 (int8x16_t __a, int8x16_t __b)
14245 {
14246 return __a | ~__b;
14247 }
14248
14249 __extension__ extern __inline int16x8_t
14250 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vornq_s16(int16x8_t __a,int16x8_t __b)14251 vornq_s16 (int16x8_t __a, int16x8_t __b)
14252 {
14253 return __a | ~__b;
14254 }
14255
14256 __extension__ extern __inline int32x4_t
14257 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vornq_s32(int32x4_t __a,int32x4_t __b)14258 vornq_s32 (int32x4_t __a, int32x4_t __b)
14259 {
14260 return __a | ~__b;
14261 }
14262
14263 __extension__ extern __inline int64x2_t
14264 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vornq_s64(int64x2_t __a,int64x2_t __b)14265 vornq_s64 (int64x2_t __a, int64x2_t __b)
14266 {
14267 return __a | ~__b;
14268 }
14269
14270 __extension__ extern __inline uint8x16_t
14271 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vornq_u8(uint8x16_t __a,uint8x16_t __b)14272 vornq_u8 (uint8x16_t __a, uint8x16_t __b)
14273 {
14274 return __a | ~__b;
14275 }
14276
14277 __extension__ extern __inline uint16x8_t
14278 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vornq_u16(uint16x8_t __a,uint16x8_t __b)14279 vornq_u16 (uint16x8_t __a, uint16x8_t __b)
14280 {
14281 return __a | ~__b;
14282 }
14283
14284 __extension__ extern __inline uint32x4_t
14285 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vornq_u32(uint32x4_t __a,uint32x4_t __b)14286 vornq_u32 (uint32x4_t __a, uint32x4_t __b)
14287 {
14288 return __a | ~__b;
14289 }
14290
14291 __extension__ extern __inline uint64x2_t
14292 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vornq_u64(uint64x2_t __a,uint64x2_t __b)14293 vornq_u64 (uint64x2_t __a, uint64x2_t __b)
14294 {
14295 return __a | ~__b;
14296 }
14297
14298 __extension__ extern __inline poly8x8_t
14299 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p8_p16(poly16x4_t __a)14300 vreinterpret_p8_p16 (poly16x4_t __a)
14301 {
14302 return (poly8x8_t) __a;
14303 }
14304
14305 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14306 __extension__ extern __inline poly8x8_t
14307 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p8_f16(float16x4_t __a)14308 vreinterpret_p8_f16 (float16x4_t __a)
14309 {
14310 return (poly8x8_t) __a;
14311 }
14312 #endif
14313
14314 __extension__ extern __inline poly8x8_t
14315 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p8_f32(float32x2_t __a)14316 vreinterpret_p8_f32 (float32x2_t __a)
14317 {
14318 return (poly8x8_t)__a;
14319 }
14320
14321 #pragma GCC push_options
14322 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
14323 __extension__ extern __inline poly8x8_t
14324 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p8_p64(poly64x1_t __a)14325 vreinterpret_p8_p64 (poly64x1_t __a)
14326 {
14327 return (poly8x8_t)__a;
14328 }
14329
14330 #pragma GCC pop_options
14331 __extension__ extern __inline poly8x8_t
14332 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p8_s64(int64x1_t __a)14333 vreinterpret_p8_s64 (int64x1_t __a)
14334 {
14335 return (poly8x8_t)__a;
14336 }
14337
14338 __extension__ extern __inline poly8x8_t
14339 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p8_u64(uint64x1_t __a)14340 vreinterpret_p8_u64 (uint64x1_t __a)
14341 {
14342 return (poly8x8_t)__a;
14343 }
14344
14345 __extension__ extern __inline poly8x8_t
14346 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p8_s8(int8x8_t __a)14347 vreinterpret_p8_s8 (int8x8_t __a)
14348 {
14349 return (poly8x8_t)__a;
14350 }
14351
14352 __extension__ extern __inline poly8x8_t
14353 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p8_s16(int16x4_t __a)14354 vreinterpret_p8_s16 (int16x4_t __a)
14355 {
14356 return (poly8x8_t)__a;
14357 }
14358
14359 __extension__ extern __inline poly8x8_t
14360 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p8_s32(int32x2_t __a)14361 vreinterpret_p8_s32 (int32x2_t __a)
14362 {
14363 return (poly8x8_t)__a;
14364 }
14365
14366 __extension__ extern __inline poly8x8_t
14367 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p8_u8(uint8x8_t __a)14368 vreinterpret_p8_u8 (uint8x8_t __a)
14369 {
14370 return (poly8x8_t)__a;
14371 }
14372
14373 __extension__ extern __inline poly8x8_t
14374 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p8_u16(uint16x4_t __a)14375 vreinterpret_p8_u16 (uint16x4_t __a)
14376 {
14377 return (poly8x8_t)__a;
14378 }
14379
14380 __extension__ extern __inline poly8x8_t
14381 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p8_u32(uint32x2_t __a)14382 vreinterpret_p8_u32 (uint32x2_t __a)
14383 {
14384 return (poly8x8_t)__a;
14385 }
14386
14387 __extension__ extern __inline poly16x4_t
14388 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p16_p8(poly8x8_t __a)14389 vreinterpret_p16_p8 (poly8x8_t __a)
14390 {
14391 return (poly16x4_t)__a;
14392 }
14393
14394 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14395 __extension__ extern __inline poly16x4_t
14396 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p16_f16(float16x4_t __a)14397 vreinterpret_p16_f16 (float16x4_t __a)
14398 {
14399 return (poly16x4_t) __a;
14400 }
14401 #endif
14402
14403 __extension__ extern __inline poly16x4_t
14404 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p16_f32(float32x2_t __a)14405 vreinterpret_p16_f32 (float32x2_t __a)
14406 {
14407 return (poly16x4_t)__a;
14408 }
14409
14410 #pragma GCC push_options
14411 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
14412 __extension__ extern __inline poly16x4_t
14413 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p16_p64(poly64x1_t __a)14414 vreinterpret_p16_p64 (poly64x1_t __a)
14415 {
14416 return (poly16x4_t)__a;
14417 }
14418
14419 #pragma GCC pop_options
14420 __extension__ extern __inline poly16x4_t
14421 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p16_s64(int64x1_t __a)14422 vreinterpret_p16_s64 (int64x1_t __a)
14423 {
14424 return (poly16x4_t)__a;
14425 }
14426
14427 __extension__ extern __inline poly16x4_t
14428 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p16_u64(uint64x1_t __a)14429 vreinterpret_p16_u64 (uint64x1_t __a)
14430 {
14431 return (poly16x4_t)__a;
14432 }
14433
14434 __extension__ extern __inline poly16x4_t
14435 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p16_s8(int8x8_t __a)14436 vreinterpret_p16_s8 (int8x8_t __a)
14437 {
14438 return (poly16x4_t)__a;
14439 }
14440
14441 __extension__ extern __inline poly16x4_t
14442 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p16_s16(int16x4_t __a)14443 vreinterpret_p16_s16 (int16x4_t __a)
14444 {
14445 return (poly16x4_t)__a;
14446 }
14447
14448 __extension__ extern __inline poly16x4_t
14449 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p16_s32(int32x2_t __a)14450 vreinterpret_p16_s32 (int32x2_t __a)
14451 {
14452 return (poly16x4_t)__a;
14453 }
14454
14455 __extension__ extern __inline poly16x4_t
14456 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p16_u8(uint8x8_t __a)14457 vreinterpret_p16_u8 (uint8x8_t __a)
14458 {
14459 return (poly16x4_t)__a;
14460 }
14461
14462 __extension__ extern __inline poly16x4_t
14463 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p16_u16(uint16x4_t __a)14464 vreinterpret_p16_u16 (uint16x4_t __a)
14465 {
14466 return (poly16x4_t)__a;
14467 }
14468
14469 __extension__ extern __inline poly16x4_t
14470 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p16_u32(uint32x2_t __a)14471 vreinterpret_p16_u32 (uint32x2_t __a)
14472 {
14473 return (poly16x4_t)__a;
14474 }
14475
14476 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14477 __extension__ extern __inline float16x4_t
14478 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f16_bf16(bfloat16x4_t __a)14479 vreinterpret_f16_bf16 (bfloat16x4_t __a)
14480 {
14481 return (float16x4_t) __a;
14482 }
14483 #endif
14484
14485 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14486 __extension__ extern __inline float16x4_t
14487 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f16_p8(poly8x8_t __a)14488 vreinterpret_f16_p8 (poly8x8_t __a)
14489 {
14490 return (float16x4_t) __a;
14491 }
14492 #endif
14493
14494 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14495 __extension__ extern __inline float16x4_t
14496 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f16_p16(poly16x4_t __a)14497 vreinterpret_f16_p16 (poly16x4_t __a)
14498 {
14499 return (float16x4_t) __a;
14500 }
14501 #endif
14502
14503 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14504 __extension__ extern __inline float16x4_t
14505 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f16_f32(float32x2_t __a)14506 vreinterpret_f16_f32 (float32x2_t __a)
14507 {
14508 return (float16x4_t) __a;
14509 }
14510 #endif
14511
14512 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14513 #pragma GCC push_options
14514 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
14515 __extension__ extern __inline float16x4_t
14516 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f16_p64(poly64x1_t __a)14517 vreinterpret_f16_p64 (poly64x1_t __a)
14518 {
14519 return (float16x4_t) __a;
14520 }
14521 #pragma GCC pop_options
14522 #endif
14523
14524 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14525 __extension__ extern __inline float16x4_t
14526 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f16_s64(int64x1_t __a)14527 vreinterpret_f16_s64 (int64x1_t __a)
14528 {
14529 return (float16x4_t) __a;
14530 }
14531 #endif
14532
14533 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14534 __extension__ extern __inline float16x4_t
14535 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f16_u64(uint64x1_t __a)14536 vreinterpret_f16_u64 (uint64x1_t __a)
14537 {
14538 return (float16x4_t) __a;
14539 }
14540 #endif
14541
14542 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14543 __extension__ extern __inline float16x4_t
14544 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f16_s8(int8x8_t __a)14545 vreinterpret_f16_s8 (int8x8_t __a)
14546 {
14547 return (float16x4_t) __a;
14548 }
14549 #endif
14550
14551 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14552 __extension__ extern __inline float16x4_t
14553 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f16_s16(int16x4_t __a)14554 vreinterpret_f16_s16 (int16x4_t __a)
14555 {
14556 return (float16x4_t) __a;
14557 }
14558 #endif
14559
14560 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14561 __extension__ extern __inline float16x4_t
14562 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f16_s32(int32x2_t __a)14563 vreinterpret_f16_s32 (int32x2_t __a)
14564 {
14565 return (float16x4_t) __a;
14566 }
14567 #endif
14568
14569 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14570 __extension__ extern __inline float16x4_t
14571 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f16_u8(uint8x8_t __a)14572 vreinterpret_f16_u8 (uint8x8_t __a)
14573 {
14574 return (float16x4_t) __a;
14575 }
14576 #endif
14577
14578 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14579 __extension__ extern __inline float16x4_t
14580 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f16_u16(uint16x4_t __a)14581 vreinterpret_f16_u16 (uint16x4_t __a)
14582 {
14583 return (float16x4_t) __a;
14584 }
14585 #endif
14586
14587 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14588 __extension__ extern __inline float16x4_t
14589 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f16_u32(uint32x2_t __a)14590 vreinterpret_f16_u32 (uint32x2_t __a)
14591 {
14592 return (float16x4_t) __a;
14593 }
14594 #endif
14595
14596 __extension__ extern __inline float32x2_t
14597 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f32_p8(poly8x8_t __a)14598 vreinterpret_f32_p8 (poly8x8_t __a)
14599 {
14600 return (float32x2_t)__a;
14601 }
14602
14603 __extension__ extern __inline float32x2_t
14604 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f32_p16(poly16x4_t __a)14605 vreinterpret_f32_p16 (poly16x4_t __a)
14606 {
14607 return (float32x2_t)__a;
14608 }
14609
14610 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14611 __extension__ extern __inline float32x2_t
14612 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f32_f16(float16x4_t __a)14613 vreinterpret_f32_f16 (float16x4_t __a)
14614 {
14615 return (float32x2_t) __a;
14616 }
14617 #endif
14618
14619 #pragma GCC push_options
14620 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
14621 __extension__ extern __inline float32x2_t
14622 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f32_p64(poly64x1_t __a)14623 vreinterpret_f32_p64 (poly64x1_t __a)
14624 {
14625 return (float32x2_t)__a;
14626 }
14627
14628 #pragma GCC pop_options
14629 __extension__ extern __inline float32x2_t
14630 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f32_s64(int64x1_t __a)14631 vreinterpret_f32_s64 (int64x1_t __a)
14632 {
14633 return (float32x2_t)__a;
14634 }
14635
14636 __extension__ extern __inline float32x2_t
14637 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f32_u64(uint64x1_t __a)14638 vreinterpret_f32_u64 (uint64x1_t __a)
14639 {
14640 return (float32x2_t)__a;
14641 }
14642
14643 __extension__ extern __inline float32x2_t
14644 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f32_s8(int8x8_t __a)14645 vreinterpret_f32_s8 (int8x8_t __a)
14646 {
14647 return (float32x2_t)__a;
14648 }
14649
14650 __extension__ extern __inline float32x2_t
14651 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f32_s16(int16x4_t __a)14652 vreinterpret_f32_s16 (int16x4_t __a)
14653 {
14654 return (float32x2_t)__a;
14655 }
14656
14657 __extension__ extern __inline float32x2_t
14658 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f32_s32(int32x2_t __a)14659 vreinterpret_f32_s32 (int32x2_t __a)
14660 {
14661 return (float32x2_t)__a;
14662 }
14663
14664 __extension__ extern __inline float32x2_t
14665 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f32_u8(uint8x8_t __a)14666 vreinterpret_f32_u8 (uint8x8_t __a)
14667 {
14668 return (float32x2_t)__a;
14669 }
14670
14671 __extension__ extern __inline float32x2_t
14672 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f32_u16(uint16x4_t __a)14673 vreinterpret_f32_u16 (uint16x4_t __a)
14674 {
14675 return (float32x2_t)__a;
14676 }
14677
14678 __extension__ extern __inline float32x2_t
14679 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f32_u32(uint32x2_t __a)14680 vreinterpret_f32_u32 (uint32x2_t __a)
14681 {
14682 return (float32x2_t)__a;
14683 }
14684
14685 #pragma GCC push_options
14686 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
14687 __extension__ extern __inline poly64x1_t
14688 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p64_p8(poly8x8_t __a)14689 vreinterpret_p64_p8 (poly8x8_t __a)
14690 {
14691 return (poly64x1_t)__a;
14692 }
14693
14694 __extension__ extern __inline poly64x1_t
14695 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p64_p16(poly16x4_t __a)14696 vreinterpret_p64_p16 (poly16x4_t __a)
14697 {
14698 return (poly64x1_t)__a;
14699 }
14700
14701 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14702 __extension__ extern __inline poly64x1_t
14703 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p64_f16(float16x4_t __a)14704 vreinterpret_p64_f16 (float16x4_t __a)
14705 {
14706 return (poly64x1_t) __a;
14707 }
14708 #endif
14709
14710 __extension__ extern __inline poly64x1_t
14711 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p64_f32(float32x2_t __a)14712 vreinterpret_p64_f32 (float32x2_t __a)
14713 {
14714 return (poly64x1_t)__a;
14715 }
14716
14717 __extension__ extern __inline poly64x1_t
14718 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p64_s64(int64x1_t __a)14719 vreinterpret_p64_s64 (int64x1_t __a)
14720 {
14721 return (poly64x1_t)__a;
14722 }
14723
14724 __extension__ extern __inline poly64x1_t
14725 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p64_u64(uint64x1_t __a)14726 vreinterpret_p64_u64 (uint64x1_t __a)
14727 {
14728 return (poly64x1_t)__a;
14729 }
14730
14731 __extension__ extern __inline poly64x1_t
14732 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p64_s8(int8x8_t __a)14733 vreinterpret_p64_s8 (int8x8_t __a)
14734 {
14735 return (poly64x1_t)__a;
14736 }
14737
14738 __extension__ extern __inline poly64x1_t
14739 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p64_s16(int16x4_t __a)14740 vreinterpret_p64_s16 (int16x4_t __a)
14741 {
14742 return (poly64x1_t)__a;
14743 }
14744
14745 __extension__ extern __inline poly64x1_t
14746 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p64_s32(int32x2_t __a)14747 vreinterpret_p64_s32 (int32x2_t __a)
14748 {
14749 return (poly64x1_t)__a;
14750 }
14751
14752 __extension__ extern __inline poly64x1_t
14753 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p64_u8(uint8x8_t __a)14754 vreinterpret_p64_u8 (uint8x8_t __a)
14755 {
14756 return (poly64x1_t)__a;
14757 }
14758
14759 __extension__ extern __inline poly64x1_t
14760 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p64_u16(uint16x4_t __a)14761 vreinterpret_p64_u16 (uint16x4_t __a)
14762 {
14763 return (poly64x1_t)__a;
14764 }
14765
14766 __extension__ extern __inline poly64x1_t
14767 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p64_u32(uint32x2_t __a)14768 vreinterpret_p64_u32 (uint32x2_t __a)
14769 {
14770 return (poly64x1_t)__a;
14771 }
14772
14773 #pragma GCC pop_options
14774 __extension__ extern __inline int64x1_t
14775 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s64_p8(poly8x8_t __a)14776 vreinterpret_s64_p8 (poly8x8_t __a)
14777 {
14778 return (int64x1_t)__a;
14779 }
14780
14781 __extension__ extern __inline int64x1_t
14782 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s64_p16(poly16x4_t __a)14783 vreinterpret_s64_p16 (poly16x4_t __a)
14784 {
14785 return (int64x1_t)__a;
14786 }
14787
14788 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14789 __extension__ extern __inline int64x1_t
14790 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s64_f16(float16x4_t __a)14791 vreinterpret_s64_f16 (float16x4_t __a)
14792 {
14793 return (int64x1_t) __a;
14794 }
14795 #endif
14796
14797 __extension__ extern __inline int64x1_t
14798 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s64_f32(float32x2_t __a)14799 vreinterpret_s64_f32 (float32x2_t __a)
14800 {
14801 return (int64x1_t)__a;
14802 }
14803
14804 #pragma GCC push_options
14805 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
14806 __extension__ extern __inline int64x1_t
14807 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s64_p64(poly64x1_t __a)14808 vreinterpret_s64_p64 (poly64x1_t __a)
14809 {
14810 return (int64x1_t)__a;
14811 }
14812
14813 #pragma GCC pop_options
14814 __extension__ extern __inline int64x1_t
14815 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s64_u64(uint64x1_t __a)14816 vreinterpret_s64_u64 (uint64x1_t __a)
14817 {
14818 return (int64x1_t)__a;
14819 }
14820
14821 __extension__ extern __inline int64x1_t
14822 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s64_s8(int8x8_t __a)14823 vreinterpret_s64_s8 (int8x8_t __a)
14824 {
14825 return (int64x1_t)__a;
14826 }
14827
14828 __extension__ extern __inline int64x1_t
14829 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s64_s16(int16x4_t __a)14830 vreinterpret_s64_s16 (int16x4_t __a)
14831 {
14832 return (int64x1_t)__a;
14833 }
14834
14835 __extension__ extern __inline int64x1_t
14836 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s64_s32(int32x2_t __a)14837 vreinterpret_s64_s32 (int32x2_t __a)
14838 {
14839 return (int64x1_t)__a;
14840 }
14841
14842 __extension__ extern __inline int64x1_t
14843 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s64_u8(uint8x8_t __a)14844 vreinterpret_s64_u8 (uint8x8_t __a)
14845 {
14846 return (int64x1_t)__a;
14847 }
14848
14849 __extension__ extern __inline int64x1_t
14850 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s64_u16(uint16x4_t __a)14851 vreinterpret_s64_u16 (uint16x4_t __a)
14852 {
14853 return (int64x1_t)__a;
14854 }
14855
14856 __extension__ extern __inline int64x1_t
14857 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s64_u32(uint32x2_t __a)14858 vreinterpret_s64_u32 (uint32x2_t __a)
14859 {
14860 return (int64x1_t)__a;
14861 }
14862
14863 __extension__ extern __inline uint64x1_t
14864 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u64_p8(poly8x8_t __a)14865 vreinterpret_u64_p8 (poly8x8_t __a)
14866 {
14867 return (uint64x1_t)__a;
14868 }
14869
14870 __extension__ extern __inline uint64x1_t
14871 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u64_p16(poly16x4_t __a)14872 vreinterpret_u64_p16 (poly16x4_t __a)
14873 {
14874 return (uint64x1_t)__a;
14875 }
14876
14877 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14878 __extension__ extern __inline uint64x1_t
14879 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u64_f16(float16x4_t __a)14880 vreinterpret_u64_f16 (float16x4_t __a)
14881 {
14882 return (uint64x1_t) __a;
14883 }
14884 #endif
14885
14886 __extension__ extern __inline uint64x1_t
14887 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u64_f32(float32x2_t __a)14888 vreinterpret_u64_f32 (float32x2_t __a)
14889 {
14890 return (uint64x1_t)__a;
14891 }
14892
14893 #pragma GCC push_options
14894 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
14895 __extension__ extern __inline uint64x1_t
14896 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u64_p64(poly64x1_t __a)14897 vreinterpret_u64_p64 (poly64x1_t __a)
14898 {
14899 return (uint64x1_t)__a;
14900 }
14901
14902 #pragma GCC pop_options
14903 __extension__ extern __inline uint64x1_t
14904 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u64_s64(int64x1_t __a)14905 vreinterpret_u64_s64 (int64x1_t __a)
14906 {
14907 return (uint64x1_t)__a;
14908 }
14909
14910 __extension__ extern __inline uint64x1_t
14911 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u64_s8(int8x8_t __a)14912 vreinterpret_u64_s8 (int8x8_t __a)
14913 {
14914 return (uint64x1_t)__a;
14915 }
14916
14917 __extension__ extern __inline uint64x1_t
14918 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u64_s16(int16x4_t __a)14919 vreinterpret_u64_s16 (int16x4_t __a)
14920 {
14921 return (uint64x1_t)__a;
14922 }
14923
14924 __extension__ extern __inline uint64x1_t
14925 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u64_s32(int32x2_t __a)14926 vreinterpret_u64_s32 (int32x2_t __a)
14927 {
14928 return (uint64x1_t)__a;
14929 }
14930
14931 __extension__ extern __inline uint64x1_t
14932 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u64_u8(uint8x8_t __a)14933 vreinterpret_u64_u8 (uint8x8_t __a)
14934 {
14935 return (uint64x1_t)__a;
14936 }
14937
14938 __extension__ extern __inline uint64x1_t
14939 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u64_u16(uint16x4_t __a)14940 vreinterpret_u64_u16 (uint16x4_t __a)
14941 {
14942 return (uint64x1_t)__a;
14943 }
14944
14945 __extension__ extern __inline uint64x1_t
14946 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u64_u32(uint32x2_t __a)14947 vreinterpret_u64_u32 (uint32x2_t __a)
14948 {
14949 return (uint64x1_t)__a;
14950 }
14951
14952 __extension__ extern __inline int8x8_t
14953 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s8_p8(poly8x8_t __a)14954 vreinterpret_s8_p8 (poly8x8_t __a)
14955 {
14956 return (int8x8_t)__a;
14957 }
14958
14959 __extension__ extern __inline int8x8_t
14960 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s8_p16(poly16x4_t __a)14961 vreinterpret_s8_p16 (poly16x4_t __a)
14962 {
14963 return (int8x8_t)__a;
14964 }
14965
14966 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14967 __extension__ extern __inline int8x8_t
14968 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s8_f16(float16x4_t __a)14969 vreinterpret_s8_f16 (float16x4_t __a)
14970 {
14971 return (int8x8_t) __a;
14972 }
14973 #endif
14974
14975 __extension__ extern __inline int8x8_t
14976 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s8_f32(float32x2_t __a)14977 vreinterpret_s8_f32 (float32x2_t __a)
14978 {
14979 return (int8x8_t)__a;
14980 }
14981
14982 #pragma GCC push_options
14983 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
14984 __extension__ extern __inline int8x8_t
14985 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s8_p64(poly64x1_t __a)14986 vreinterpret_s8_p64 (poly64x1_t __a)
14987 {
14988 return (int8x8_t)__a;
14989 }
14990
14991 #pragma GCC pop_options
14992 __extension__ extern __inline int8x8_t
14993 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s8_s64(int64x1_t __a)14994 vreinterpret_s8_s64 (int64x1_t __a)
14995 {
14996 return (int8x8_t)__a;
14997 }
14998
14999 __extension__ extern __inline int8x8_t
15000 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s8_u64(uint64x1_t __a)15001 vreinterpret_s8_u64 (uint64x1_t __a)
15002 {
15003 return (int8x8_t)__a;
15004 }
15005
15006 __extension__ extern __inline int8x8_t
15007 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s8_s16(int16x4_t __a)15008 vreinterpret_s8_s16 (int16x4_t __a)
15009 {
15010 return (int8x8_t)__a;
15011 }
15012
15013 __extension__ extern __inline int8x8_t
15014 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s8_s32(int32x2_t __a)15015 vreinterpret_s8_s32 (int32x2_t __a)
15016 {
15017 return (int8x8_t)__a;
15018 }
15019
15020 __extension__ extern __inline int8x8_t
15021 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s8_u8(uint8x8_t __a)15022 vreinterpret_s8_u8 (uint8x8_t __a)
15023 {
15024 return (int8x8_t)__a;
15025 }
15026
15027 __extension__ extern __inline int8x8_t
15028 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s8_u16(uint16x4_t __a)15029 vreinterpret_s8_u16 (uint16x4_t __a)
15030 {
15031 return (int8x8_t)__a;
15032 }
15033
15034 __extension__ extern __inline int8x8_t
15035 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s8_u32(uint32x2_t __a)15036 vreinterpret_s8_u32 (uint32x2_t __a)
15037 {
15038 return (int8x8_t)__a;
15039 }
15040
15041 __extension__ extern __inline int16x4_t
15042 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s16_p8(poly8x8_t __a)15043 vreinterpret_s16_p8 (poly8x8_t __a)
15044 {
15045 return (int16x4_t)__a;
15046 }
15047
15048 __extension__ extern __inline int16x4_t
15049 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s16_p16(poly16x4_t __a)15050 vreinterpret_s16_p16 (poly16x4_t __a)
15051 {
15052 return (int16x4_t)__a;
15053 }
15054
15055 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15056 __extension__ extern __inline int16x4_t
15057 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s16_f16(float16x4_t __a)15058 vreinterpret_s16_f16 (float16x4_t __a)
15059 {
15060 return (int16x4_t) __a;
15061 }
15062 #endif
15063
15064 __extension__ extern __inline int16x4_t
15065 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s16_f32(float32x2_t __a)15066 vreinterpret_s16_f32 (float32x2_t __a)
15067 {
15068 return (int16x4_t)__a;
15069 }
15070
15071 #pragma GCC push_options
15072 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
15073 __extension__ extern __inline int16x4_t
15074 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s16_p64(poly64x1_t __a)15075 vreinterpret_s16_p64 (poly64x1_t __a)
15076 {
15077 return (int16x4_t)__a;
15078 }
15079
15080 #pragma GCC pop_options
15081 __extension__ extern __inline int16x4_t
15082 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s16_s64(int64x1_t __a)15083 vreinterpret_s16_s64 (int64x1_t __a)
15084 {
15085 return (int16x4_t)__a;
15086 }
15087
15088 __extension__ extern __inline int16x4_t
15089 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s16_u64(uint64x1_t __a)15090 vreinterpret_s16_u64 (uint64x1_t __a)
15091 {
15092 return (int16x4_t)__a;
15093 }
15094
15095 __extension__ extern __inline int16x4_t
15096 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s16_s8(int8x8_t __a)15097 vreinterpret_s16_s8 (int8x8_t __a)
15098 {
15099 return (int16x4_t)__a;
15100 }
15101
15102 __extension__ extern __inline int16x4_t
15103 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s16_s32(int32x2_t __a)15104 vreinterpret_s16_s32 (int32x2_t __a)
15105 {
15106 return (int16x4_t)__a;
15107 }
15108
15109 __extension__ extern __inline int16x4_t
15110 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s16_u8(uint8x8_t __a)15111 vreinterpret_s16_u8 (uint8x8_t __a)
15112 {
15113 return (int16x4_t)__a;
15114 }
15115
15116 __extension__ extern __inline int16x4_t
15117 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s16_u16(uint16x4_t __a)15118 vreinterpret_s16_u16 (uint16x4_t __a)
15119 {
15120 return (int16x4_t)__a;
15121 }
15122
15123 __extension__ extern __inline int16x4_t
15124 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s16_u32(uint32x2_t __a)15125 vreinterpret_s16_u32 (uint32x2_t __a)
15126 {
15127 return (int16x4_t)__a;
15128 }
15129
15130 __extension__ extern __inline int32x2_t
15131 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s32_p8(poly8x8_t __a)15132 vreinterpret_s32_p8 (poly8x8_t __a)
15133 {
15134 return (int32x2_t)__a;
15135 }
15136
15137 __extension__ extern __inline int32x2_t
15138 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s32_p16(poly16x4_t __a)15139 vreinterpret_s32_p16 (poly16x4_t __a)
15140 {
15141 return (int32x2_t)__a;
15142 }
15143
15144 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15145 __extension__ extern __inline int32x2_t
15146 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s32_f16(float16x4_t __a)15147 vreinterpret_s32_f16 (float16x4_t __a)
15148 {
15149 return (int32x2_t) __a;
15150 }
15151 #endif
15152
15153 __extension__ extern __inline int32x2_t
15154 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s32_f32(float32x2_t __a)15155 vreinterpret_s32_f32 (float32x2_t __a)
15156 {
15157 return (int32x2_t)__a;
15158 }
15159
15160 #pragma GCC push_options
15161 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
15162 __extension__ extern __inline int32x2_t
15163 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s32_p64(poly64x1_t __a)15164 vreinterpret_s32_p64 (poly64x1_t __a)
15165 {
15166 return (int32x2_t)__a;
15167 }
15168
15169 #pragma GCC pop_options
15170 __extension__ extern __inline int32x2_t
15171 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s32_s64(int64x1_t __a)15172 vreinterpret_s32_s64 (int64x1_t __a)
15173 {
15174 return (int32x2_t)__a;
15175 }
15176
15177 __extension__ extern __inline int32x2_t
15178 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s32_u64(uint64x1_t __a)15179 vreinterpret_s32_u64 (uint64x1_t __a)
15180 {
15181 return (int32x2_t)__a;
15182 }
15183
15184 __extension__ extern __inline int32x2_t
15185 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s32_s8(int8x8_t __a)15186 vreinterpret_s32_s8 (int8x8_t __a)
15187 {
15188 return (int32x2_t)__a;
15189 }
15190
15191 __extension__ extern __inline int32x2_t
15192 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s32_s16(int16x4_t __a)15193 vreinterpret_s32_s16 (int16x4_t __a)
15194 {
15195 return (int32x2_t)__a;
15196 }
15197
15198 __extension__ extern __inline int32x2_t
15199 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s32_u8(uint8x8_t __a)15200 vreinterpret_s32_u8 (uint8x8_t __a)
15201 {
15202 return (int32x2_t)__a;
15203 }
15204
15205 __extension__ extern __inline int32x2_t
15206 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s32_u16(uint16x4_t __a)15207 vreinterpret_s32_u16 (uint16x4_t __a)
15208 {
15209 return (int32x2_t)__a;
15210 }
15211
15212 __extension__ extern __inline int32x2_t
15213 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s32_u32(uint32x2_t __a)15214 vreinterpret_s32_u32 (uint32x2_t __a)
15215 {
15216 return (int32x2_t)__a;
15217 }
15218
15219 __extension__ extern __inline uint8x8_t
15220 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u8_p8(poly8x8_t __a)15221 vreinterpret_u8_p8 (poly8x8_t __a)
15222 {
15223 return (uint8x8_t)__a;
15224 }
15225
15226 __extension__ extern __inline uint8x8_t
15227 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u8_p16(poly16x4_t __a)15228 vreinterpret_u8_p16 (poly16x4_t __a)
15229 {
15230 return (uint8x8_t)__a;
15231 }
15232
15233 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15234 __extension__ extern __inline uint8x8_t
15235 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u8_f16(float16x4_t __a)15236 vreinterpret_u8_f16 (float16x4_t __a)
15237 {
15238 return (uint8x8_t) __a;
15239 }
15240 #endif
15241
15242 __extension__ extern __inline uint8x8_t
15243 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u8_f32(float32x2_t __a)15244 vreinterpret_u8_f32 (float32x2_t __a)
15245 {
15246 return (uint8x8_t)__a;
15247 }
15248
15249 #pragma GCC push_options
15250 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
15251 __extension__ extern __inline uint8x8_t
15252 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u8_p64(poly64x1_t __a)15253 vreinterpret_u8_p64 (poly64x1_t __a)
15254 {
15255 return (uint8x8_t)__a;
15256 }
15257
15258 #pragma GCC pop_options
15259 __extension__ extern __inline uint8x8_t
15260 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u8_s64(int64x1_t __a)15261 vreinterpret_u8_s64 (int64x1_t __a)
15262 {
15263 return (uint8x8_t)__a;
15264 }
15265
15266 __extension__ extern __inline uint8x8_t
15267 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u8_u64(uint64x1_t __a)15268 vreinterpret_u8_u64 (uint64x1_t __a)
15269 {
15270 return (uint8x8_t)__a;
15271 }
15272
15273 __extension__ extern __inline uint8x8_t
15274 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u8_s8(int8x8_t __a)15275 vreinterpret_u8_s8 (int8x8_t __a)
15276 {
15277 return (uint8x8_t)__a;
15278 }
15279
15280 __extension__ extern __inline uint8x8_t
15281 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u8_s16(int16x4_t __a)15282 vreinterpret_u8_s16 (int16x4_t __a)
15283 {
15284 return (uint8x8_t)__a;
15285 }
15286
15287 __extension__ extern __inline uint8x8_t
15288 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u8_s32(int32x2_t __a)15289 vreinterpret_u8_s32 (int32x2_t __a)
15290 {
15291 return (uint8x8_t)__a;
15292 }
15293
15294 __extension__ extern __inline uint8x8_t
15295 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u8_u16(uint16x4_t __a)15296 vreinterpret_u8_u16 (uint16x4_t __a)
15297 {
15298 return (uint8x8_t)__a;
15299 }
15300
15301 __extension__ extern __inline uint8x8_t
15302 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u8_u32(uint32x2_t __a)15303 vreinterpret_u8_u32 (uint32x2_t __a)
15304 {
15305 return (uint8x8_t)__a;
15306 }
15307
15308 __extension__ extern __inline uint16x4_t
15309 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u16_p8(poly8x8_t __a)15310 vreinterpret_u16_p8 (poly8x8_t __a)
15311 {
15312 return (uint16x4_t)__a;
15313 }
15314
15315 __extension__ extern __inline uint16x4_t
15316 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u16_p16(poly16x4_t __a)15317 vreinterpret_u16_p16 (poly16x4_t __a)
15318 {
15319 return (uint16x4_t)__a;
15320 }
15321
15322 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15323 __extension__ extern __inline uint16x4_t
15324 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u16_f16(float16x4_t __a)15325 vreinterpret_u16_f16 (float16x4_t __a)
15326 {
15327 return (uint16x4_t) __a;
15328 }
15329 #endif
15330
15331 __extension__ extern __inline uint16x4_t
15332 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u16_f32(float32x2_t __a)15333 vreinterpret_u16_f32 (float32x2_t __a)
15334 {
15335 return (uint16x4_t)__a;
15336 }
15337
15338 #pragma GCC push_options
15339 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
15340 __extension__ extern __inline uint16x4_t
15341 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u16_p64(poly64x1_t __a)15342 vreinterpret_u16_p64 (poly64x1_t __a)
15343 {
15344 return (uint16x4_t)__a;
15345 }
15346
15347 #pragma GCC pop_options
15348 __extension__ extern __inline uint16x4_t
15349 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u16_s64(int64x1_t __a)15350 vreinterpret_u16_s64 (int64x1_t __a)
15351 {
15352 return (uint16x4_t)__a;
15353 }
15354
15355 __extension__ extern __inline uint16x4_t
15356 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u16_u64(uint64x1_t __a)15357 vreinterpret_u16_u64 (uint64x1_t __a)
15358 {
15359 return (uint16x4_t)__a;
15360 }
15361
15362 __extension__ extern __inline uint16x4_t
15363 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u16_s8(int8x8_t __a)15364 vreinterpret_u16_s8 (int8x8_t __a)
15365 {
15366 return (uint16x4_t)__a;
15367 }
15368
15369 __extension__ extern __inline uint16x4_t
15370 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u16_s16(int16x4_t __a)15371 vreinterpret_u16_s16 (int16x4_t __a)
15372 {
15373 return (uint16x4_t)__a;
15374 }
15375
15376 __extension__ extern __inline uint16x4_t
15377 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u16_s32(int32x2_t __a)15378 vreinterpret_u16_s32 (int32x2_t __a)
15379 {
15380 return (uint16x4_t)__a;
15381 }
15382
15383 __extension__ extern __inline uint16x4_t
15384 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u16_u8(uint8x8_t __a)15385 vreinterpret_u16_u8 (uint8x8_t __a)
15386 {
15387 return (uint16x4_t)__a;
15388 }
15389
15390 __extension__ extern __inline uint16x4_t
15391 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u16_u32(uint32x2_t __a)15392 vreinterpret_u16_u32 (uint32x2_t __a)
15393 {
15394 return (uint16x4_t)__a;
15395 }
15396
15397 __extension__ extern __inline uint32x2_t
15398 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u32_p8(poly8x8_t __a)15399 vreinterpret_u32_p8 (poly8x8_t __a)
15400 {
15401 return (uint32x2_t)__a;
15402 }
15403
15404 __extension__ extern __inline uint32x2_t
15405 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u32_p16(poly16x4_t __a)15406 vreinterpret_u32_p16 (poly16x4_t __a)
15407 {
15408 return (uint32x2_t)__a;
15409 }
15410
15411 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15412 __extension__ extern __inline uint32x2_t
15413 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u32_f16(float16x4_t __a)15414 vreinterpret_u32_f16 (float16x4_t __a)
15415 {
15416 return (uint32x2_t) __a;
15417 }
15418 #endif
15419
15420 __extension__ extern __inline uint32x2_t
15421 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u32_f32(float32x2_t __a)15422 vreinterpret_u32_f32 (float32x2_t __a)
15423 {
15424 return (uint32x2_t)__a;
15425 }
15426
15427 #pragma GCC push_options
15428 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
15429 __extension__ extern __inline uint32x2_t
15430 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u32_p64(poly64x1_t __a)15431 vreinterpret_u32_p64 (poly64x1_t __a)
15432 {
15433 return (uint32x2_t)__a;
15434 }
15435
15436 #pragma GCC pop_options
15437 __extension__ extern __inline uint32x2_t
15438 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u32_s64(int64x1_t __a)15439 vreinterpret_u32_s64 (int64x1_t __a)
15440 {
15441 return (uint32x2_t)__a;
15442 }
15443
15444 __extension__ extern __inline uint32x2_t
15445 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u32_u64(uint64x1_t __a)15446 vreinterpret_u32_u64 (uint64x1_t __a)
15447 {
15448 return (uint32x2_t)__a;
15449 }
15450
15451 __extension__ extern __inline uint32x2_t
15452 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u32_s8(int8x8_t __a)15453 vreinterpret_u32_s8 (int8x8_t __a)
15454 {
15455 return (uint32x2_t)__a;
15456 }
15457
15458 __extension__ extern __inline uint32x2_t
15459 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u32_s16(int16x4_t __a)15460 vreinterpret_u32_s16 (int16x4_t __a)
15461 {
15462 return (uint32x2_t)__a;
15463 }
15464
15465 __extension__ extern __inline uint32x2_t
15466 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u32_s32(int32x2_t __a)15467 vreinterpret_u32_s32 (int32x2_t __a)
15468 {
15469 return (uint32x2_t)__a;
15470 }
15471
15472 __extension__ extern __inline uint32x2_t
15473 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u32_u8(uint8x8_t __a)15474 vreinterpret_u32_u8 (uint8x8_t __a)
15475 {
15476 return (uint32x2_t)__a;
15477 }
15478
15479 __extension__ extern __inline uint32x2_t
15480 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u32_u16(uint16x4_t __a)15481 vreinterpret_u32_u16 (uint16x4_t __a)
15482 {
15483 return (uint32x2_t)__a;
15484 }
15485
15486 __extension__ extern __inline poly8x16_t
15487 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p8_p16(poly16x8_t __a)15488 vreinterpretq_p8_p16 (poly16x8_t __a)
15489 {
15490 return (poly8x16_t)__a;
15491 }
15492
15493 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15494 __extension__ extern __inline poly8x16_t
15495 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p8_f16(float16x8_t __a)15496 vreinterpretq_p8_f16 (float16x8_t __a)
15497 {
15498 return (poly8x16_t) __a;
15499 }
15500 #endif
15501
15502 __extension__ extern __inline poly8x16_t
15503 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p8_f32(float32x4_t __a)15504 vreinterpretq_p8_f32 (float32x4_t __a)
15505 {
15506 return (poly8x16_t)__a;
15507 }
15508
15509 #pragma GCC push_options
15510 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
15511 __extension__ extern __inline poly8x16_t
15512 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p8_p64(poly64x2_t __a)15513 vreinterpretq_p8_p64 (poly64x2_t __a)
15514 {
15515 return (poly8x16_t)__a;
15516 }
15517
15518
15519 __extension__ extern __inline poly8x16_t
15520 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p8_p128(poly128_t __a)15521 vreinterpretq_p8_p128 (poly128_t __a)
15522 {
15523 return (poly8x16_t)__a;
15524 }
15525
15526 #pragma GCC pop_options
15527 __extension__ extern __inline poly8x16_t
15528 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p8_s64(int64x2_t __a)15529 vreinterpretq_p8_s64 (int64x2_t __a)
15530 {
15531 return (poly8x16_t)__a;
15532 }
15533
15534 __extension__ extern __inline poly8x16_t
15535 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p8_u64(uint64x2_t __a)15536 vreinterpretq_p8_u64 (uint64x2_t __a)
15537 {
15538 return (poly8x16_t)__a;
15539 }
15540
15541 __extension__ extern __inline poly8x16_t
15542 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p8_s8(int8x16_t __a)15543 vreinterpretq_p8_s8 (int8x16_t __a)
15544 {
15545 return (poly8x16_t)__a;
15546 }
15547
15548 __extension__ extern __inline poly8x16_t
15549 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p8_s16(int16x8_t __a)15550 vreinterpretq_p8_s16 (int16x8_t __a)
15551 {
15552 return (poly8x16_t)__a;
15553 }
15554
15555 __extension__ extern __inline poly8x16_t
15556 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p8_s32(int32x4_t __a)15557 vreinterpretq_p8_s32 (int32x4_t __a)
15558 {
15559 return (poly8x16_t)__a;
15560 }
15561
15562 __extension__ extern __inline poly8x16_t
15563 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p8_u8(uint8x16_t __a)15564 vreinterpretq_p8_u8 (uint8x16_t __a)
15565 {
15566 return (poly8x16_t)__a;
15567 }
15568
15569 __extension__ extern __inline poly8x16_t
15570 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p8_u16(uint16x8_t __a)15571 vreinterpretq_p8_u16 (uint16x8_t __a)
15572 {
15573 return (poly8x16_t)__a;
15574 }
15575
15576 __extension__ extern __inline poly8x16_t
15577 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p8_u32(uint32x4_t __a)15578 vreinterpretq_p8_u32 (uint32x4_t __a)
15579 {
15580 return (poly8x16_t)__a;
15581 }
15582
15583 __extension__ extern __inline poly16x8_t
15584 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p16_p8(poly8x16_t __a)15585 vreinterpretq_p16_p8 (poly8x16_t __a)
15586 {
15587 return (poly16x8_t)__a;
15588 }
15589
15590 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15591 __extension__ extern __inline poly16x8_t
15592 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p16_f16(float16x8_t __a)15593 vreinterpretq_p16_f16 (float16x8_t __a)
15594 {
15595 return (poly16x8_t) __a;
15596 }
15597 #endif
15598
15599 __extension__ extern __inline poly16x8_t
15600 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p16_f32(float32x4_t __a)15601 vreinterpretq_p16_f32 (float32x4_t __a)
15602 {
15603 return (poly16x8_t)__a;
15604 }
15605
15606 #pragma GCC push_options
15607 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
15608 __extension__ extern __inline poly16x8_t
15609 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p16_p64(poly64x2_t __a)15610 vreinterpretq_p16_p64 (poly64x2_t __a)
15611 {
15612 return (poly16x8_t)__a;
15613 }
15614
15615 __extension__ extern __inline poly16x8_t
15616 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p16_p128(poly128_t __a)15617 vreinterpretq_p16_p128 (poly128_t __a)
15618 {
15619 return (poly16x8_t)__a;
15620 }
15621
15622 #pragma GCC pop_options
15623 __extension__ extern __inline poly16x8_t
15624 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p16_s64(int64x2_t __a)15625 vreinterpretq_p16_s64 (int64x2_t __a)
15626 {
15627 return (poly16x8_t)__a;
15628 }
15629
15630 __extension__ extern __inline poly16x8_t
15631 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p16_u64(uint64x2_t __a)15632 vreinterpretq_p16_u64 (uint64x2_t __a)
15633 {
15634 return (poly16x8_t)__a;
15635 }
15636
15637 __extension__ extern __inline poly16x8_t
15638 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p16_s8(int8x16_t __a)15639 vreinterpretq_p16_s8 (int8x16_t __a)
15640 {
15641 return (poly16x8_t)__a;
15642 }
15643
15644 __extension__ extern __inline poly16x8_t
15645 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p16_s16(int16x8_t __a)15646 vreinterpretq_p16_s16 (int16x8_t __a)
15647 {
15648 return (poly16x8_t)__a;
15649 }
15650
15651 __extension__ extern __inline poly16x8_t
15652 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p16_s32(int32x4_t __a)15653 vreinterpretq_p16_s32 (int32x4_t __a)
15654 {
15655 return (poly16x8_t)__a;
15656 }
15657
15658 __extension__ extern __inline poly16x8_t
15659 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p16_u8(uint8x16_t __a)15660 vreinterpretq_p16_u8 (uint8x16_t __a)
15661 {
15662 return (poly16x8_t)__a;
15663 }
15664
15665 __extension__ extern __inline poly16x8_t
15666 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p16_u16(uint16x8_t __a)15667 vreinterpretq_p16_u16 (uint16x8_t __a)
15668 {
15669 return (poly16x8_t)__a;
15670 }
15671
15672 __extension__ extern __inline poly16x8_t
15673 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p16_u32(uint32x4_t __a)15674 vreinterpretq_p16_u32 (uint32x4_t __a)
15675 {
15676 return (poly16x8_t)__a;
15677 }
15678
15679 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15680 __extension__ extern __inline float16x8_t
15681 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f16_p8(poly8x16_t __a)15682 vreinterpretq_f16_p8 (poly8x16_t __a)
15683 {
15684 return (float16x8_t) __a;
15685 }
15686 #endif
15687
15688 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15689 __extension__ extern __inline float16x8_t
15690 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f16_p16(poly16x8_t __a)15691 vreinterpretq_f16_p16 (poly16x8_t __a)
15692 {
15693 return (float16x8_t) __a;
15694 }
15695 #endif
15696
15697 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15698 __extension__ extern __inline float16x8_t
15699 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f16_bf16(bfloat16x8_t __a)15700 vreinterpretq_f16_bf16 (bfloat16x8_t __a)
15701 {
15702 return (float16x8_t) __a;
15703 }
15704 #endif
15705
15706 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15707 __extension__ extern __inline float16x8_t
15708 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f16_f32(float32x4_t __a)15709 vreinterpretq_f16_f32 (float32x4_t __a)
15710 {
15711 return (float16x8_t) __a;
15712 }
15713 #endif
15714
15715 #pragma GCC push_options
15716 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
15717
15718 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15719 __extension__ extern __inline float16x8_t
15720 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f16_p64(poly64x2_t __a)15721 vreinterpretq_f16_p64 (poly64x2_t __a)
15722 {
15723 return (float16x8_t) __a;
15724 }
15725 #endif
15726
15727 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15728 __extension__ extern __inline float16x8_t
15729 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f16_p128(poly128_t __a)15730 vreinterpretq_f16_p128 (poly128_t __a)
15731 {
15732 return (float16x8_t) __a;
15733 }
15734 #endif
15735
15736 #pragma GCC pop_options
15737
15738 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15739 __extension__ extern __inline float16x8_t
15740 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f16_s64(int64x2_t __a)15741 vreinterpretq_f16_s64 (int64x2_t __a)
15742 {
15743 return (float16x8_t) __a;
15744 }
15745 #endif
15746
15747 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15748 __extension__ extern __inline float16x8_t
15749 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f16_u64(uint64x2_t __a)15750 vreinterpretq_f16_u64 (uint64x2_t __a)
15751 {
15752 return (float16x8_t) __a;
15753 }
15754 #endif
15755
15756 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15757 __extension__ extern __inline float16x8_t
15758 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f16_s8(int8x16_t __a)15759 vreinterpretq_f16_s8 (int8x16_t __a)
15760 {
15761 return (float16x8_t) __a;
15762 }
15763 #endif
15764
15765 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15766 __extension__ extern __inline float16x8_t
15767 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f16_s16(int16x8_t __a)15768 vreinterpretq_f16_s16 (int16x8_t __a)
15769 {
15770 return (float16x8_t) __a;
15771 }
15772 #endif
15773
15774 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15775 __extension__ extern __inline float16x8_t
15776 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f16_s32(int32x4_t __a)15777 vreinterpretq_f16_s32 (int32x4_t __a)
15778 {
15779 return (float16x8_t) __a;
15780 }
15781 #endif
15782
15783 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15784 __extension__ extern __inline float16x8_t
15785 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f16_u8(uint8x16_t __a)15786 vreinterpretq_f16_u8 (uint8x16_t __a)
15787 {
15788 return (float16x8_t) __a;
15789 }
15790 #endif
15791
15792 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15793 __extension__ extern __inline float16x8_t
15794 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f16_u16(uint16x8_t __a)15795 vreinterpretq_f16_u16 (uint16x8_t __a)
15796 {
15797 return (float16x8_t) __a;
15798 }
15799 #endif
15800
15801 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15802 __extension__ extern __inline float16x8_t
15803 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f16_u32(uint32x4_t __a)15804 vreinterpretq_f16_u32 (uint32x4_t __a)
15805 {
15806 return (float16x8_t) __a;
15807 }
15808 #endif
15809
15810 __extension__ extern __inline float32x4_t
15811 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f32_p8(poly8x16_t __a)15812 vreinterpretq_f32_p8 (poly8x16_t __a)
15813 {
15814 return (float32x4_t)__a;
15815 }
15816
15817 __extension__ extern __inline float32x4_t
15818 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f32_p16(poly16x8_t __a)15819 vreinterpretq_f32_p16 (poly16x8_t __a)
15820 {
15821 return (float32x4_t)__a;
15822 }
15823
15824 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15825 __extension__ extern __inline float32x4_t
15826 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f32_f16(float16x8_t __a)15827 vreinterpretq_f32_f16 (float16x8_t __a)
15828 {
15829 return (float32x4_t) __a;
15830 }
15831 #endif
15832
15833 #pragma GCC push_options
15834 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
15835 __extension__ extern __inline float32x4_t
15836 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f32_p64(poly64x2_t __a)15837 vreinterpretq_f32_p64 (poly64x2_t __a)
15838 {
15839 return (float32x4_t)__a;
15840 }
15841
15842 __extension__ extern __inline float32x4_t
15843 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f32_p128(poly128_t __a)15844 vreinterpretq_f32_p128 (poly128_t __a)
15845 {
15846 return (float32x4_t)__a;
15847 }
15848
15849 #pragma GCC pop_options
15850 __extension__ extern __inline float32x4_t
15851 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f32_s64(int64x2_t __a)15852 vreinterpretq_f32_s64 (int64x2_t __a)
15853 {
15854 return (float32x4_t)__a;
15855 }
15856
15857 __extension__ extern __inline float32x4_t
15858 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f32_u64(uint64x2_t __a)15859 vreinterpretq_f32_u64 (uint64x2_t __a)
15860 {
15861 return (float32x4_t)__a;
15862 }
15863
15864 __extension__ extern __inline float32x4_t
15865 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f32_s8(int8x16_t __a)15866 vreinterpretq_f32_s8 (int8x16_t __a)
15867 {
15868 return (float32x4_t)__a;
15869 }
15870
15871 __extension__ extern __inline float32x4_t
15872 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f32_s16(int16x8_t __a)15873 vreinterpretq_f32_s16 (int16x8_t __a)
15874 {
15875 return (float32x4_t)__a;
15876 }
15877
15878 __extension__ extern __inline float32x4_t
15879 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f32_s32(int32x4_t __a)15880 vreinterpretq_f32_s32 (int32x4_t __a)
15881 {
15882 return (float32x4_t)__a;
15883 }
15884
15885 __extension__ extern __inline float32x4_t
15886 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f32_u8(uint8x16_t __a)15887 vreinterpretq_f32_u8 (uint8x16_t __a)
15888 {
15889 return (float32x4_t)__a;
15890 }
15891
15892 __extension__ extern __inline float32x4_t
15893 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f32_u16(uint16x8_t __a)15894 vreinterpretq_f32_u16 (uint16x8_t __a)
15895 {
15896 return (float32x4_t)__a;
15897 }
15898
15899 __extension__ extern __inline float32x4_t
15900 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f32_u32(uint32x4_t __a)15901 vreinterpretq_f32_u32 (uint32x4_t __a)
15902 {
15903 return (float32x4_t)__a;
15904 }
15905
15906 #pragma GCC push_options
15907 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
15908 __extension__ extern __inline poly64x2_t
15909 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p64_p8(poly8x16_t __a)15910 vreinterpretq_p64_p8 (poly8x16_t __a)
15911 {
15912 return (poly64x2_t)__a;
15913 }
15914
15915 __extension__ extern __inline poly64x2_t
15916 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p64_p16(poly16x8_t __a)15917 vreinterpretq_p64_p16 (poly16x8_t __a)
15918 {
15919 return (poly64x2_t)__a;
15920 }
15921
15922 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15923 __extension__ extern __inline poly64x2_t
15924 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p64_f16(float16x8_t __a)15925 vreinterpretq_p64_f16 (float16x8_t __a)
15926 {
15927 return (poly64x2_t) __a;
15928 }
15929 #endif
15930
15931 __extension__ extern __inline poly64x2_t
15932 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p64_f32(float32x4_t __a)15933 vreinterpretq_p64_f32 (float32x4_t __a)
15934 {
15935 return (poly64x2_t)__a;
15936 }
15937
15938 __extension__ extern __inline poly64x2_t
15939 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p64_p128(poly128_t __a)15940 vreinterpretq_p64_p128 (poly128_t __a)
15941 {
15942 return (poly64x2_t)__a;
15943 }
15944
15945 __extension__ extern __inline poly64x2_t
15946 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p64_s64(int64x2_t __a)15947 vreinterpretq_p64_s64 (int64x2_t __a)
15948 {
15949 return (poly64x2_t)__a;
15950 }
15951
15952 __extension__ extern __inline poly64x2_t
15953 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p64_u64(uint64x2_t __a)15954 vreinterpretq_p64_u64 (uint64x2_t __a)
15955 {
15956 return (poly64x2_t)__a;
15957 }
15958
15959 __extension__ extern __inline poly64x2_t
15960 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p64_s8(int8x16_t __a)15961 vreinterpretq_p64_s8 (int8x16_t __a)
15962 {
15963 return (poly64x2_t)__a;
15964 }
15965
15966 __extension__ extern __inline poly64x2_t
15967 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p64_s16(int16x8_t __a)15968 vreinterpretq_p64_s16 (int16x8_t __a)
15969 {
15970 return (poly64x2_t)__a;
15971 }
15972
15973 __extension__ extern __inline poly64x2_t
15974 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p64_s32(int32x4_t __a)15975 vreinterpretq_p64_s32 (int32x4_t __a)
15976 {
15977 return (poly64x2_t)__a;
15978 }
15979
15980 __extension__ extern __inline poly64x2_t
15981 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p64_u8(uint8x16_t __a)15982 vreinterpretq_p64_u8 (uint8x16_t __a)
15983 {
15984 return (poly64x2_t)__a;
15985 }
15986
15987 __extension__ extern __inline poly64x2_t
15988 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p64_u16(uint16x8_t __a)15989 vreinterpretq_p64_u16 (uint16x8_t __a)
15990 {
15991 return (poly64x2_t)__a;
15992 }
15993
15994 __extension__ extern __inline poly64x2_t
15995 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p64_u32(uint32x4_t __a)15996 vreinterpretq_p64_u32 (uint32x4_t __a)
15997 {
15998 return (poly64x2_t)__a;
15999 }
16000
16001 __extension__ extern __inline poly128_t
16002 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p128_p8(poly8x16_t __a)16003 vreinterpretq_p128_p8 (poly8x16_t __a)
16004 {
16005 return (poly128_t)__a;
16006 }
16007
16008 __extension__ extern __inline poly128_t
16009 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p128_p16(poly16x8_t __a)16010 vreinterpretq_p128_p16 (poly16x8_t __a)
16011 {
16012 return (poly128_t)__a;
16013 }
16014
16015 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
16016 __extension__ extern __inline poly128_t
16017 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p128_f16(float16x8_t __a)16018 vreinterpretq_p128_f16 (float16x8_t __a)
16019 {
16020 return (poly128_t) __a;
16021 }
16022 #endif
16023
16024 __extension__ extern __inline poly128_t
16025 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p128_f32(float32x4_t __a)16026 vreinterpretq_p128_f32 (float32x4_t __a)
16027 {
16028 return (poly128_t)__a;
16029 }
16030
16031 __extension__ extern __inline poly128_t
16032 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p128_p64(poly64x2_t __a)16033 vreinterpretq_p128_p64 (poly64x2_t __a)
16034 {
16035 return (poly128_t)__a;
16036 }
16037
16038 __extension__ extern __inline poly128_t
16039 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p128_s64(int64x2_t __a)16040 vreinterpretq_p128_s64 (int64x2_t __a)
16041 {
16042 return (poly128_t)__a;
16043 }
16044
16045 __extension__ extern __inline poly128_t
16046 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p128_u64(uint64x2_t __a)16047 vreinterpretq_p128_u64 (uint64x2_t __a)
16048 {
16049 return (poly128_t)__a;
16050 }
16051
16052 __extension__ extern __inline poly128_t
16053 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p128_s8(int8x16_t __a)16054 vreinterpretq_p128_s8 (int8x16_t __a)
16055 {
16056 return (poly128_t)__a;
16057 }
16058
16059 __extension__ extern __inline poly128_t
16060 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p128_s16(int16x8_t __a)16061 vreinterpretq_p128_s16 (int16x8_t __a)
16062 {
16063 return (poly128_t)__a;
16064 }
16065
16066 __extension__ extern __inline poly128_t
16067 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p128_s32(int32x4_t __a)16068 vreinterpretq_p128_s32 (int32x4_t __a)
16069 {
16070 return (poly128_t)__a;
16071 }
16072
16073 __extension__ extern __inline poly128_t
16074 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p128_u8(uint8x16_t __a)16075 vreinterpretq_p128_u8 (uint8x16_t __a)
16076 {
16077 return (poly128_t)__a;
16078 }
16079
16080 __extension__ extern __inline poly128_t
16081 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p128_u16(uint16x8_t __a)16082 vreinterpretq_p128_u16 (uint16x8_t __a)
16083 {
16084 return (poly128_t)__a;
16085 }
16086
16087 __extension__ extern __inline poly128_t
16088 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p128_u32(uint32x4_t __a)16089 vreinterpretq_p128_u32 (uint32x4_t __a)
16090 {
16091 return (poly128_t)__a;
16092 }
16093
16094 #pragma GCC pop_options
16095 __extension__ extern __inline int64x2_t
16096 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s64_p8(poly8x16_t __a)16097 vreinterpretq_s64_p8 (poly8x16_t __a)
16098 {
16099 return (int64x2_t)__a;
16100 }
16101
16102 __extension__ extern __inline int64x2_t
16103 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s64_p16(poly16x8_t __a)16104 vreinterpretq_s64_p16 (poly16x8_t __a)
16105 {
16106 return (int64x2_t)__a;
16107 }
16108
16109 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
16110 __extension__ extern __inline int64x2_t
16111 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s64_f16(float16x8_t __a)16112 vreinterpretq_s64_f16 (float16x8_t __a)
16113 {
16114 return (int64x2_t) __a;
16115 }
16116 #endif
16117
16118 __extension__ extern __inline int64x2_t
16119 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s64_f32(float32x4_t __a)16120 vreinterpretq_s64_f32 (float32x4_t __a)
16121 {
16122 return (int64x2_t)__a;
16123 }
16124
16125 #pragma GCC push_options
16126 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
16127 __extension__ extern __inline int64x2_t
16128 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s64_p64(poly64x2_t __a)16129 vreinterpretq_s64_p64 (poly64x2_t __a)
16130 {
16131 return (int64x2_t)__a;
16132 }
16133
16134 __extension__ extern __inline int64x2_t
16135 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s64_p128(poly128_t __a)16136 vreinterpretq_s64_p128 (poly128_t __a)
16137 {
16138 return (int64x2_t)__a;
16139 }
16140
16141 #pragma GCC pop_options
16142 __extension__ extern __inline int64x2_t
16143 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s64_u64(uint64x2_t __a)16144 vreinterpretq_s64_u64 (uint64x2_t __a)
16145 {
16146 return (int64x2_t)__a;
16147 }
16148
16149 __extension__ extern __inline int64x2_t
16150 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s64_s8(int8x16_t __a)16151 vreinterpretq_s64_s8 (int8x16_t __a)
16152 {
16153 return (int64x2_t)__a;
16154 }
16155
16156 __extension__ extern __inline int64x2_t
16157 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s64_s16(int16x8_t __a)16158 vreinterpretq_s64_s16 (int16x8_t __a)
16159 {
16160 return (int64x2_t)__a;
16161 }
16162
16163 __extension__ extern __inline int64x2_t
16164 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s64_s32(int32x4_t __a)16165 vreinterpretq_s64_s32 (int32x4_t __a)
16166 {
16167 return (int64x2_t)__a;
16168 }
16169
16170 __extension__ extern __inline int64x2_t
16171 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s64_u8(uint8x16_t __a)16172 vreinterpretq_s64_u8 (uint8x16_t __a)
16173 {
16174 return (int64x2_t)__a;
16175 }
16176
16177 __extension__ extern __inline int64x2_t
16178 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s64_u16(uint16x8_t __a)16179 vreinterpretq_s64_u16 (uint16x8_t __a)
16180 {
16181 return (int64x2_t)__a;
16182 }
16183
16184 __extension__ extern __inline int64x2_t
16185 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s64_u32(uint32x4_t __a)16186 vreinterpretq_s64_u32 (uint32x4_t __a)
16187 {
16188 return (int64x2_t)__a;
16189 }
16190
16191 __extension__ extern __inline uint64x2_t
16192 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u64_p8(poly8x16_t __a)16193 vreinterpretq_u64_p8 (poly8x16_t __a)
16194 {
16195 return (uint64x2_t)__a;
16196 }
16197
16198 __extension__ extern __inline uint64x2_t
16199 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u64_p16(poly16x8_t __a)16200 vreinterpretq_u64_p16 (poly16x8_t __a)
16201 {
16202 return (uint64x2_t)__a;
16203 }
16204
16205 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
16206 __extension__ extern __inline uint64x2_t
16207 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u64_f16(float16x8_t __a)16208 vreinterpretq_u64_f16 (float16x8_t __a)
16209 {
16210 return (uint64x2_t) __a;
16211 }
16212 #endif
16213
16214 __extension__ extern __inline uint64x2_t
16215 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u64_f32(float32x4_t __a)16216 vreinterpretq_u64_f32 (float32x4_t __a)
16217 {
16218 return (uint64x2_t)__a;
16219 }
16220
16221 #pragma GCC push_options
16222 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
16223 __extension__ extern __inline uint64x2_t
16224 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u64_p64(poly64x2_t __a)16225 vreinterpretq_u64_p64 (poly64x2_t __a)
16226 {
16227 return (uint64x2_t)__a;
16228 }
16229
16230 __extension__ extern __inline uint64x2_t
16231 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u64_p128(poly128_t __a)16232 vreinterpretq_u64_p128 (poly128_t __a)
16233 {
16234 return (uint64x2_t)__a;
16235 }
16236
16237 #pragma GCC pop_options
16238 __extension__ extern __inline uint64x2_t
16239 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u64_s64(int64x2_t __a)16240 vreinterpretq_u64_s64 (int64x2_t __a)
16241 {
16242 return (uint64x2_t)__a;
16243 }
16244
16245 __extension__ extern __inline uint64x2_t
16246 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u64_s8(int8x16_t __a)16247 vreinterpretq_u64_s8 (int8x16_t __a)
16248 {
16249 return (uint64x2_t)__a;
16250 }
16251
16252 __extension__ extern __inline uint64x2_t
16253 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u64_s16(int16x8_t __a)16254 vreinterpretq_u64_s16 (int16x8_t __a)
16255 {
16256 return (uint64x2_t)__a;
16257 }
16258
16259 __extension__ extern __inline uint64x2_t
16260 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u64_s32(int32x4_t __a)16261 vreinterpretq_u64_s32 (int32x4_t __a)
16262 {
16263 return (uint64x2_t)__a;
16264 }
16265
16266 __extension__ extern __inline uint64x2_t
16267 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u64_u8(uint8x16_t __a)16268 vreinterpretq_u64_u8 (uint8x16_t __a)
16269 {
16270 return (uint64x2_t)__a;
16271 }
16272
16273 __extension__ extern __inline uint64x2_t
16274 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u64_u16(uint16x8_t __a)16275 vreinterpretq_u64_u16 (uint16x8_t __a)
16276 {
16277 return (uint64x2_t)__a;
16278 }
16279
16280 __extension__ extern __inline uint64x2_t
16281 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u64_u32(uint32x4_t __a)16282 vreinterpretq_u64_u32 (uint32x4_t __a)
16283 {
16284 return (uint64x2_t)__a;
16285 }
16286
16287 __extension__ extern __inline int8x16_t
16288 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s8_p8(poly8x16_t __a)16289 vreinterpretq_s8_p8 (poly8x16_t __a)
16290 {
16291 return (int8x16_t)__a;
16292 }
16293
16294 __extension__ extern __inline int8x16_t
16295 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s8_p16(poly16x8_t __a)16296 vreinterpretq_s8_p16 (poly16x8_t __a)
16297 {
16298 return (int8x16_t)__a;
16299 }
16300
16301 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
16302 __extension__ extern __inline int8x16_t
16303 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s8_f16(float16x8_t __a)16304 vreinterpretq_s8_f16 (float16x8_t __a)
16305 {
16306 return (int8x16_t) __a;
16307 }
16308 #endif
16309
16310 __extension__ extern __inline int8x16_t
16311 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s8_f32(float32x4_t __a)16312 vreinterpretq_s8_f32 (float32x4_t __a)
16313 {
16314 return (int8x16_t)__a;
16315 }
16316
16317 #pragma GCC push_options
16318 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
16319 __extension__ extern __inline int8x16_t
16320 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s8_p64(poly64x2_t __a)16321 vreinterpretq_s8_p64 (poly64x2_t __a)
16322 {
16323 return (int8x16_t)__a;
16324 }
16325
16326 __extension__ extern __inline int8x16_t
16327 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s8_p128(poly128_t __a)16328 vreinterpretq_s8_p128 (poly128_t __a)
16329 {
16330 return (int8x16_t)__a;
16331 }
16332
16333 #pragma GCC pop_options
16334 __extension__ extern __inline int8x16_t
16335 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s8_s64(int64x2_t __a)16336 vreinterpretq_s8_s64 (int64x2_t __a)
16337 {
16338 return (int8x16_t)__a;
16339 }
16340
16341 __extension__ extern __inline int8x16_t
16342 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s8_u64(uint64x2_t __a)16343 vreinterpretq_s8_u64 (uint64x2_t __a)
16344 {
16345 return (int8x16_t)__a;
16346 }
16347
16348 __extension__ extern __inline int8x16_t
16349 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s8_s16(int16x8_t __a)16350 vreinterpretq_s8_s16 (int16x8_t __a)
16351 {
16352 return (int8x16_t)__a;
16353 }
16354
16355 __extension__ extern __inline int8x16_t
16356 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s8_s32(int32x4_t __a)16357 vreinterpretq_s8_s32 (int32x4_t __a)
16358 {
16359 return (int8x16_t)__a;
16360 }
16361
16362 __extension__ extern __inline int8x16_t
16363 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s8_u8(uint8x16_t __a)16364 vreinterpretq_s8_u8 (uint8x16_t __a)
16365 {
16366 return (int8x16_t)__a;
16367 }
16368
16369 __extension__ extern __inline int8x16_t
16370 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s8_u16(uint16x8_t __a)16371 vreinterpretq_s8_u16 (uint16x8_t __a)
16372 {
16373 return (int8x16_t)__a;
16374 }
16375
16376 __extension__ extern __inline int8x16_t
16377 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s8_u32(uint32x4_t __a)16378 vreinterpretq_s8_u32 (uint32x4_t __a)
16379 {
16380 return (int8x16_t)__a;
16381 }
16382
16383 __extension__ extern __inline int16x8_t
16384 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s16_p8(poly8x16_t __a)16385 vreinterpretq_s16_p8 (poly8x16_t __a)
16386 {
16387 return (int16x8_t)__a;
16388 }
16389
16390 __extension__ extern __inline int16x8_t
16391 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s16_p16(poly16x8_t __a)16392 vreinterpretq_s16_p16 (poly16x8_t __a)
16393 {
16394 return (int16x8_t)__a;
16395 }
16396
16397 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
16398 __extension__ extern __inline int16x8_t
16399 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s16_f16(float16x8_t __a)16400 vreinterpretq_s16_f16 (float16x8_t __a)
16401 {
16402 return (int16x8_t) __a;
16403 }
16404 #endif
16405
16406 __extension__ extern __inline int16x8_t
16407 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s16_f32(float32x4_t __a)16408 vreinterpretq_s16_f32 (float32x4_t __a)
16409 {
16410 return (int16x8_t)__a;
16411 }
16412
16413 #pragma GCC push_options
16414 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
16415 __extension__ extern __inline int16x8_t
16416 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s16_p64(poly64x2_t __a)16417 vreinterpretq_s16_p64 (poly64x2_t __a)
16418 {
16419 return (int16x8_t)__a;
16420 }
16421
16422 __extension__ extern __inline int16x8_t
16423 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s16_p128(poly128_t __a)16424 vreinterpretq_s16_p128 (poly128_t __a)
16425 {
16426 return (int16x8_t)__a;
16427 }
16428
16429 #pragma GCC pop_options
16430 __extension__ extern __inline int16x8_t
16431 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s16_s64(int64x2_t __a)16432 vreinterpretq_s16_s64 (int64x2_t __a)
16433 {
16434 return (int16x8_t)__a;
16435 }
16436
16437 __extension__ extern __inline int16x8_t
16438 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s16_u64(uint64x2_t __a)16439 vreinterpretq_s16_u64 (uint64x2_t __a)
16440 {
16441 return (int16x8_t)__a;
16442 }
16443
16444 __extension__ extern __inline int16x8_t
16445 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s16_s8(int8x16_t __a)16446 vreinterpretq_s16_s8 (int8x16_t __a)
16447 {
16448 return (int16x8_t)__a;
16449 }
16450
16451 __extension__ extern __inline int16x8_t
16452 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s16_s32(int32x4_t __a)16453 vreinterpretq_s16_s32 (int32x4_t __a)
16454 {
16455 return (int16x8_t)__a;
16456 }
16457
16458 __extension__ extern __inline int16x8_t
16459 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s16_u8(uint8x16_t __a)16460 vreinterpretq_s16_u8 (uint8x16_t __a)
16461 {
16462 return (int16x8_t)__a;
16463 }
16464
16465 __extension__ extern __inline int16x8_t
16466 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s16_u16(uint16x8_t __a)16467 vreinterpretq_s16_u16 (uint16x8_t __a)
16468 {
16469 return (int16x8_t)__a;
16470 }
16471
16472 __extension__ extern __inline int16x8_t
16473 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s16_u32(uint32x4_t __a)16474 vreinterpretq_s16_u32 (uint32x4_t __a)
16475 {
16476 return (int16x8_t)__a;
16477 }
16478
16479 __extension__ extern __inline int32x4_t
16480 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s32_p8(poly8x16_t __a)16481 vreinterpretq_s32_p8 (poly8x16_t __a)
16482 {
16483 return (int32x4_t)__a;
16484 }
16485
16486 __extension__ extern __inline int32x4_t
16487 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s32_p16(poly16x8_t __a)16488 vreinterpretq_s32_p16 (poly16x8_t __a)
16489 {
16490 return (int32x4_t)__a;
16491 }
16492
16493 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
16494 __extension__ extern __inline int32x4_t
16495 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s32_f16(float16x8_t __a)16496 vreinterpretq_s32_f16 (float16x8_t __a)
16497 {
16498 return (int32x4_t)__a;
16499 }
16500 #endif
16501
16502 __extension__ extern __inline int32x4_t
16503 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s32_f32(float32x4_t __a)16504 vreinterpretq_s32_f32 (float32x4_t __a)
16505 {
16506 return (int32x4_t)__a;
16507 }
16508
16509 #pragma GCC push_options
16510 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
16511 __extension__ extern __inline int32x4_t
16512 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s32_p64(poly64x2_t __a)16513 vreinterpretq_s32_p64 (poly64x2_t __a)
16514 {
16515 return (int32x4_t)__a;
16516 }
16517
16518 __extension__ extern __inline int32x4_t
16519 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s32_p128(poly128_t __a)16520 vreinterpretq_s32_p128 (poly128_t __a)
16521 {
16522 return (int32x4_t)__a;
16523 }
16524
16525 #pragma GCC pop_options
16526 __extension__ extern __inline int32x4_t
16527 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s32_s64(int64x2_t __a)16528 vreinterpretq_s32_s64 (int64x2_t __a)
16529 {
16530 return (int32x4_t)__a;
16531 }
16532
16533 __extension__ extern __inline int32x4_t
16534 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s32_u64(uint64x2_t __a)16535 vreinterpretq_s32_u64 (uint64x2_t __a)
16536 {
16537 return (int32x4_t)__a;
16538 }
16539
16540 __extension__ extern __inline int32x4_t
16541 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s32_s8(int8x16_t __a)16542 vreinterpretq_s32_s8 (int8x16_t __a)
16543 {
16544 return (int32x4_t)__a;
16545 }
16546
16547 __extension__ extern __inline int32x4_t
16548 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s32_s16(int16x8_t __a)16549 vreinterpretq_s32_s16 (int16x8_t __a)
16550 {
16551 return (int32x4_t)__a;
16552 }
16553
16554 __extension__ extern __inline int32x4_t
16555 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s32_u8(uint8x16_t __a)16556 vreinterpretq_s32_u8 (uint8x16_t __a)
16557 {
16558 return (int32x4_t)__a;
16559 }
16560
16561 __extension__ extern __inline int32x4_t
16562 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s32_u16(uint16x8_t __a)16563 vreinterpretq_s32_u16 (uint16x8_t __a)
16564 {
16565 return (int32x4_t)__a;
16566 }
16567
16568 __extension__ extern __inline int32x4_t
16569 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s32_u32(uint32x4_t __a)16570 vreinterpretq_s32_u32 (uint32x4_t __a)
16571 {
16572 return (int32x4_t)__a;
16573 }
16574
16575 __extension__ extern __inline uint8x16_t
16576 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u8_p8(poly8x16_t __a)16577 vreinterpretq_u8_p8 (poly8x16_t __a)
16578 {
16579 return (uint8x16_t)__a;
16580 }
16581
16582 __extension__ extern __inline uint8x16_t
16583 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u8_p16(poly16x8_t __a)16584 vreinterpretq_u8_p16 (poly16x8_t __a)
16585 {
16586 return (uint8x16_t)__a;
16587 }
16588
16589 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
16590 __extension__ extern __inline uint8x16_t
16591 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u8_f16(float16x8_t __a)16592 vreinterpretq_u8_f16 (float16x8_t __a)
16593 {
16594 return (uint8x16_t) __a;
16595 }
16596 #endif
16597
16598 __extension__ extern __inline uint8x16_t
16599 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u8_f32(float32x4_t __a)16600 vreinterpretq_u8_f32 (float32x4_t __a)
16601 {
16602 return (uint8x16_t)__a;
16603 }
16604
16605 #pragma GCC push_options
16606 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
16607 __extension__ extern __inline uint8x16_t
16608 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u8_p64(poly64x2_t __a)16609 vreinterpretq_u8_p64 (poly64x2_t __a)
16610 {
16611 return (uint8x16_t)__a;
16612 }
16613
16614 __extension__ extern __inline uint8x16_t
16615 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u8_p128(poly128_t __a)16616 vreinterpretq_u8_p128 (poly128_t __a)
16617 {
16618 return (uint8x16_t)__a;
16619 }
16620
16621 #pragma GCC pop_options
16622 __extension__ extern __inline uint8x16_t
16623 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u8_s64(int64x2_t __a)16624 vreinterpretq_u8_s64 (int64x2_t __a)
16625 {
16626 return (uint8x16_t)__a;
16627 }
16628
16629 __extension__ extern __inline uint8x16_t
16630 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u8_u64(uint64x2_t __a)16631 vreinterpretq_u8_u64 (uint64x2_t __a)
16632 {
16633 return (uint8x16_t)__a;
16634 }
16635
16636 __extension__ extern __inline uint8x16_t
16637 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u8_s8(int8x16_t __a)16638 vreinterpretq_u8_s8 (int8x16_t __a)
16639 {
16640 return (uint8x16_t)__a;
16641 }
16642
16643 __extension__ extern __inline uint8x16_t
16644 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u8_s16(int16x8_t __a)16645 vreinterpretq_u8_s16 (int16x8_t __a)
16646 {
16647 return (uint8x16_t)__a;
16648 }
16649
16650 __extension__ extern __inline uint8x16_t
16651 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u8_s32(int32x4_t __a)16652 vreinterpretq_u8_s32 (int32x4_t __a)
16653 {
16654 return (uint8x16_t)__a;
16655 }
16656
16657 __extension__ extern __inline uint8x16_t
16658 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u8_u16(uint16x8_t __a)16659 vreinterpretq_u8_u16 (uint16x8_t __a)
16660 {
16661 return (uint8x16_t)__a;
16662 }
16663
16664 __extension__ extern __inline uint8x16_t
16665 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u8_u32(uint32x4_t __a)16666 vreinterpretq_u8_u32 (uint32x4_t __a)
16667 {
16668 return (uint8x16_t)__a;
16669 }
16670
16671 __extension__ extern __inline uint16x8_t
16672 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u16_p8(poly8x16_t __a)16673 vreinterpretq_u16_p8 (poly8x16_t __a)
16674 {
16675 return (uint16x8_t)__a;
16676 }
16677
16678 __extension__ extern __inline uint16x8_t
16679 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u16_p16(poly16x8_t __a)16680 vreinterpretq_u16_p16 (poly16x8_t __a)
16681 {
16682 return (uint16x8_t)__a;
16683 }
16684
16685 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
16686 __extension__ extern __inline uint16x8_t
16687 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u16_f16(float16x8_t __a)16688 vreinterpretq_u16_f16 (float16x8_t __a)
16689 {
16690 return (uint16x8_t) __a;
16691 }
16692 #endif
16693
16694 __extension__ extern __inline uint16x8_t
16695 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u16_f32(float32x4_t __a)16696 vreinterpretq_u16_f32 (float32x4_t __a)
16697 {
16698 return (uint16x8_t)__a;
16699 }
16700
16701 #pragma GCC push_options
16702 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
16703 __extension__ extern __inline uint16x8_t
16704 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u16_p64(poly64x2_t __a)16705 vreinterpretq_u16_p64 (poly64x2_t __a)
16706 {
16707 return (uint16x8_t)__a;
16708 }
16709
16710 __extension__ extern __inline uint16x8_t
16711 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u16_p128(poly128_t __a)16712 vreinterpretq_u16_p128 (poly128_t __a)
16713 {
16714 return (uint16x8_t)__a;
16715 }
16716
16717 #pragma GCC pop_options
16718 __extension__ extern __inline uint16x8_t
16719 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u16_s64(int64x2_t __a)16720 vreinterpretq_u16_s64 (int64x2_t __a)
16721 {
16722 return (uint16x8_t)__a;
16723 }
16724
16725 __extension__ extern __inline uint16x8_t
16726 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u16_u64(uint64x2_t __a)16727 vreinterpretq_u16_u64 (uint64x2_t __a)
16728 {
16729 return (uint16x8_t)__a;
16730 }
16731
16732 __extension__ extern __inline uint16x8_t
16733 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u16_s8(int8x16_t __a)16734 vreinterpretq_u16_s8 (int8x16_t __a)
16735 {
16736 return (uint16x8_t)__a;
16737 }
16738
16739 __extension__ extern __inline uint16x8_t
16740 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u16_s16(int16x8_t __a)16741 vreinterpretq_u16_s16 (int16x8_t __a)
16742 {
16743 return (uint16x8_t)__a;
16744 }
16745
16746 __extension__ extern __inline uint16x8_t
16747 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u16_s32(int32x4_t __a)16748 vreinterpretq_u16_s32 (int32x4_t __a)
16749 {
16750 return (uint16x8_t)__a;
16751 }
16752
16753 __extension__ extern __inline uint16x8_t
16754 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u16_u8(uint8x16_t __a)16755 vreinterpretq_u16_u8 (uint8x16_t __a)
16756 {
16757 return (uint16x8_t)__a;
16758 }
16759
16760 __extension__ extern __inline uint16x8_t
16761 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u16_u32(uint32x4_t __a)16762 vreinterpretq_u16_u32 (uint32x4_t __a)
16763 {
16764 return (uint16x8_t)__a;
16765 }
16766
16767 __extension__ extern __inline uint32x4_t
16768 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u32_p8(poly8x16_t __a)16769 vreinterpretq_u32_p8 (poly8x16_t __a)
16770 {
16771 return (uint32x4_t)__a;
16772 }
16773
16774 __extension__ extern __inline uint32x4_t
16775 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u32_p16(poly16x8_t __a)16776 vreinterpretq_u32_p16 (poly16x8_t __a)
16777 {
16778 return (uint32x4_t)__a;
16779 }
16780
16781 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
16782 __extension__ extern __inline uint32x4_t
16783 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u32_f16(float16x8_t __a)16784 vreinterpretq_u32_f16 (float16x8_t __a)
16785 {
16786 return (uint32x4_t) __a;
16787 }
16788 #endif
16789
16790 __extension__ extern __inline uint32x4_t
16791 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u32_f32(float32x4_t __a)16792 vreinterpretq_u32_f32 (float32x4_t __a)
16793 {
16794 return (uint32x4_t)__a;
16795 }
16796
16797 #pragma GCC push_options
16798 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
16799 __extension__ extern __inline uint32x4_t
16800 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u32_p64(poly64x2_t __a)16801 vreinterpretq_u32_p64 (poly64x2_t __a)
16802 {
16803 return (uint32x4_t)__a;
16804 }
16805
16806 __extension__ extern __inline uint32x4_t
16807 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u32_p128(poly128_t __a)16808 vreinterpretq_u32_p128 (poly128_t __a)
16809 {
16810 return (uint32x4_t)__a;
16811 }
16812
16813 #pragma GCC pop_options
16814 __extension__ extern __inline uint32x4_t
16815 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u32_s64(int64x2_t __a)16816 vreinterpretq_u32_s64 (int64x2_t __a)
16817 {
16818 return (uint32x4_t)__a;
16819 }
16820
16821 __extension__ extern __inline uint32x4_t
16822 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u32_u64(uint64x2_t __a)16823 vreinterpretq_u32_u64 (uint64x2_t __a)
16824 {
16825 return (uint32x4_t)__a;
16826 }
16827
16828 __extension__ extern __inline uint32x4_t
16829 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u32_s8(int8x16_t __a)16830 vreinterpretq_u32_s8 (int8x16_t __a)
16831 {
16832 return (uint32x4_t)__a;
16833 }
16834
16835 __extension__ extern __inline uint32x4_t
16836 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u32_s16(int16x8_t __a)16837 vreinterpretq_u32_s16 (int16x8_t __a)
16838 {
16839 return (uint32x4_t)__a;
16840 }
16841
16842 __extension__ extern __inline uint32x4_t
16843 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u32_s32(int32x4_t __a)16844 vreinterpretq_u32_s32 (int32x4_t __a)
16845 {
16846 return (uint32x4_t)__a;
16847 }
16848
16849 __extension__ extern __inline uint32x4_t
16850 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u32_u8(uint8x16_t __a)16851 vreinterpretq_u32_u8 (uint8x16_t __a)
16852 {
16853 return (uint32x4_t)__a;
16854 }
16855
16856 __extension__ extern __inline uint32x4_t
16857 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u32_u16(uint16x8_t __a)16858 vreinterpretq_u32_u16 (uint16x8_t __a)
16859 {
16860 return (uint32x4_t)__a;
16861 }
16862
16863
16864 #pragma GCC push_options
16865 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
16866 __extension__ extern __inline poly128_t
16867 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vldrq_p128(poly128_t const * __ptr)16868 vldrq_p128 (poly128_t const * __ptr)
16869 {
16870 #ifdef __ARM_BIG_ENDIAN
16871 poly64_t* __ptmp = (poly64_t*) __ptr;
16872 poly64_t __d0 = vld1_p64 (__ptmp);
16873 poly64_t __d1 = vld1_p64 (__ptmp + 1);
16874 return vreinterpretq_p128_p64 (vcombine_p64 (__d1, __d0));
16875 #else
16876 return vreinterpretq_p128_p64 (vld1q_p64 ((poly64_t*) __ptr));
16877 #endif
16878 }
16879
16880 __extension__ extern __inline void
16881 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vstrq_p128(poly128_t * __ptr,poly128_t __val)16882 vstrq_p128 (poly128_t * __ptr, poly128_t __val)
16883 {
16884 #ifdef __ARM_BIG_ENDIAN
16885 poly64x2_t __tmp = vreinterpretq_p64_p128 (__val);
16886 poly64_t __d0 = vget_high_p64 (__tmp);
16887 poly64_t __d1 = vget_low_p64 (__tmp);
16888 vst1q_p64 ((poly64_t*) __ptr, vcombine_p64 (__d0, __d1));
16889 #else
16890 vst1q_p64 ((poly64_t*) __ptr, vreinterpretq_p64_p128 (__val));
16891 #endif
16892 }
16893
16894 /* The vceq_p64 intrinsic does not map to a single instruction.
16895 Instead we emulate it by performing a 32-bit variant of the vceq
16896 and applying a pairwise min reduction to the result.
16897 vceq_u32 will produce two 32-bit halves, each of which will contain either
16898 all ones or all zeros depending on whether the corresponding 32-bit
16899 halves of the poly64_t were equal. The whole poly64_t values are equal
16900 if and only if both halves are equal, i.e. vceq_u32 returns all ones.
16901 If the result is all zeroes for any half then the whole result is zeroes.
16902 This is what the pairwise min reduction achieves. */
16903
16904 __extension__ extern __inline uint64x1_t
16905 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceq_p64(poly64x1_t __a,poly64x1_t __b)16906 vceq_p64 (poly64x1_t __a, poly64x1_t __b)
16907 {
16908 uint32x2_t __t_a = vreinterpret_u32_p64 (__a);
16909 uint32x2_t __t_b = vreinterpret_u32_p64 (__b);
16910 uint32x2_t __c = vceq_u32 (__t_a, __t_b);
16911 uint32x2_t __m = vpmin_u32 (__c, __c);
16912 return vreinterpret_u64_u32 (__m);
16913 }
16914
16915 /* The vtst_p64 intrinsic does not map to a single instruction.
16916 We emulate it in way similar to vceq_p64 above but here we do
16917 a reduction with max since if any two corresponding bits
16918 in the two poly64_t's match, then the whole result must be all ones. */
16919
16920 __extension__ extern __inline uint64x1_t
16921 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtst_p64(poly64x1_t __a,poly64x1_t __b)16922 vtst_p64 (poly64x1_t __a, poly64x1_t __b)
16923 {
16924 uint32x2_t __t_a = vreinterpret_u32_p64 (__a);
16925 uint32x2_t __t_b = vreinterpret_u32_p64 (__b);
16926 uint32x2_t __c = vtst_u32 (__t_a, __t_b);
16927 uint32x2_t __m = vpmax_u32 (__c, __c);
16928 return vreinterpret_u64_u32 (__m);
16929 }
16930
16931 __extension__ extern __inline uint8x16_t
16932 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaeseq_u8(uint8x16_t __data,uint8x16_t __key)16933 vaeseq_u8 (uint8x16_t __data, uint8x16_t __key)
16934 {
16935 return __builtin_arm_crypto_aese (__data, __key);
16936 }
16937
16938 __extension__ extern __inline uint8x16_t
16939 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaesdq_u8(uint8x16_t __data,uint8x16_t __key)16940 vaesdq_u8 (uint8x16_t __data, uint8x16_t __key)
16941 {
16942 return __builtin_arm_crypto_aesd (__data, __key);
16943 }
16944
16945 __extension__ extern __inline uint8x16_t
16946 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaesmcq_u8(uint8x16_t __data)16947 vaesmcq_u8 (uint8x16_t __data)
16948 {
16949 return __builtin_arm_crypto_aesmc (__data);
16950 }
16951
16952 __extension__ extern __inline uint8x16_t
16953 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaesimcq_u8(uint8x16_t __data)16954 vaesimcq_u8 (uint8x16_t __data)
16955 {
16956 return __builtin_arm_crypto_aesimc (__data);
16957 }
16958
16959 __extension__ extern __inline uint32_t
16960 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsha1h_u32(uint32_t __hash_e)16961 vsha1h_u32 (uint32_t __hash_e)
16962 {
16963 return vgetq_lane_u32 (__builtin_arm_crypto_sha1h (vdupq_n_u32 (__hash_e)),
16964 0);
16965 }
16966
16967 __extension__ extern __inline uint32x4_t
16968 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsha1cq_u32(uint32x4_t __hash_abcd,uint32_t __hash_e,uint32x4_t __wk)16969 vsha1cq_u32 (uint32x4_t __hash_abcd, uint32_t __hash_e, uint32x4_t __wk)
16970 {
16971 return __builtin_arm_crypto_sha1c (__hash_abcd, vdupq_n_u32 (__hash_e),
16972 __wk);
16973 }
16974
16975 __extension__ extern __inline uint32x4_t
16976 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsha1pq_u32(uint32x4_t __hash_abcd,uint32_t __hash_e,uint32x4_t __wk)16977 vsha1pq_u32 (uint32x4_t __hash_abcd, uint32_t __hash_e, uint32x4_t __wk)
16978 {
16979 return __builtin_arm_crypto_sha1p (__hash_abcd, vdupq_n_u32 (__hash_e),
16980 __wk);
16981 }
16982
16983 __extension__ extern __inline uint32x4_t
16984 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsha1mq_u32(uint32x4_t __hash_abcd,uint32_t __hash_e,uint32x4_t __wk)16985 vsha1mq_u32 (uint32x4_t __hash_abcd, uint32_t __hash_e, uint32x4_t __wk)
16986 {
16987 return __builtin_arm_crypto_sha1m (__hash_abcd, vdupq_n_u32 (__hash_e),
16988 __wk);
16989 }
16990
16991 __extension__ extern __inline uint32x4_t
16992 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsha1su0q_u32(uint32x4_t __w0_3,uint32x4_t __w4_7,uint32x4_t __w8_11)16993 vsha1su0q_u32 (uint32x4_t __w0_3, uint32x4_t __w4_7, uint32x4_t __w8_11)
16994 {
16995 return __builtin_arm_crypto_sha1su0 (__w0_3, __w4_7, __w8_11);
16996 }
16997
16998 __extension__ extern __inline uint32x4_t
16999 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsha1su1q_u32(uint32x4_t __tw0_3,uint32x4_t __w12_15)17000 vsha1su1q_u32 (uint32x4_t __tw0_3, uint32x4_t __w12_15)
17001 {
17002 return __builtin_arm_crypto_sha1su1 (__tw0_3, __w12_15);
17003 }
17004
17005 __extension__ extern __inline uint32x4_t
17006 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsha256hq_u32(uint32x4_t __hash_abcd,uint32x4_t __hash_efgh,uint32x4_t __wk)17007 vsha256hq_u32 (uint32x4_t __hash_abcd, uint32x4_t __hash_efgh, uint32x4_t __wk)
17008 {
17009 return __builtin_arm_crypto_sha256h (__hash_abcd, __hash_efgh, __wk);
17010 }
17011
17012 __extension__ extern __inline uint32x4_t
17013 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsha256h2q_u32(uint32x4_t __hash_abcd,uint32x4_t __hash_efgh,uint32x4_t __wk)17014 vsha256h2q_u32 (uint32x4_t __hash_abcd, uint32x4_t __hash_efgh, uint32x4_t __wk)
17015 {
17016 return __builtin_arm_crypto_sha256h2 (__hash_abcd, __hash_efgh, __wk);
17017 }
17018
17019 __extension__ extern __inline uint32x4_t
17020 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsha256su0q_u32(uint32x4_t __w0_3,uint32x4_t __w4_7)17021 vsha256su0q_u32 (uint32x4_t __w0_3, uint32x4_t __w4_7)
17022 {
17023 return __builtin_arm_crypto_sha256su0 (__w0_3, __w4_7);
17024 }
17025
17026 __extension__ extern __inline uint32x4_t
17027 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsha256su1q_u32(uint32x4_t __tw0_3,uint32x4_t __w8_11,uint32x4_t __w12_15)17028 vsha256su1q_u32 (uint32x4_t __tw0_3, uint32x4_t __w8_11, uint32x4_t __w12_15)
17029 {
17030 return __builtin_arm_crypto_sha256su1 (__tw0_3, __w8_11, __w12_15);
17031 }
17032
17033 __extension__ extern __inline poly128_t
17034 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_p64(poly64_t __a,poly64_t __b)17035 vmull_p64 (poly64_t __a, poly64_t __b)
17036 {
17037 return (poly128_t) __builtin_arm_crypto_vmullp64 ((uint64_t) __a, (uint64_t) __b);
17038 }
17039
17040 __extension__ extern __inline poly128_t
17041 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_high_p64(poly64x2_t __a,poly64x2_t __b)17042 vmull_high_p64 (poly64x2_t __a, poly64x2_t __b)
17043 {
17044 poly64_t __t1 = vget_high_p64 (__a);
17045 poly64_t __t2 = vget_high_p64 (__b);
17046
17047 return (poly128_t) __builtin_arm_crypto_vmullp64 ((uint64_t) __t1, (uint64_t) __t2);
17048 }
17049
17050 #pragma GCC pop_options
17051
17052 /* Intrinsics for FP16 instructions. */
17053 #pragma GCC push_options
17054 #pragma GCC target ("fpu=neon-fp-armv8")
17055 #if defined (__ARM_FEATURE_FP16_VECTOR_ARITHMETIC)
17056
17057 __extension__ extern __inline float16x4_t
17058 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabd_f16(float16x4_t __a,float16x4_t __b)17059 vabd_f16 (float16x4_t __a, float16x4_t __b)
17060 {
17061 return __builtin_neon_vabdv4hf (__a, __b);
17062 }
17063
17064 __extension__ extern __inline float16x8_t
17065 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdq_f16(float16x8_t __a,float16x8_t __b)17066 vabdq_f16 (float16x8_t __a, float16x8_t __b)
17067 {
17068 return __builtin_neon_vabdv8hf (__a, __b);
17069 }
17070
17071 __extension__ extern __inline float16x4_t
17072 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabs_f16(float16x4_t __a)17073 vabs_f16 (float16x4_t __a)
17074 {
17075 return __builtin_neon_vabsv4hf (__a);
17076 }
17077
17078 __extension__ extern __inline float16x8_t
17079 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabsq_f16(float16x8_t __a)17080 vabsq_f16 (float16x8_t __a)
17081 {
17082 return __builtin_neon_vabsv8hf (__a);
17083 }
17084
17085 __extension__ extern __inline float16x4_t
17086 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vadd_f16(float16x4_t __a,float16x4_t __b)17087 vadd_f16 (float16x4_t __a, float16x4_t __b)
17088 {
17089 #ifdef __FAST_MATH__
17090 return __a + __b;
17091 #else
17092 return __builtin_neon_vaddv4hf (__a, __b);
17093 #endif
17094 }
17095
17096 __extension__ extern __inline float16x8_t
17097 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddq_f16(float16x8_t __a,float16x8_t __b)17098 vaddq_f16 (float16x8_t __a, float16x8_t __b)
17099 {
17100 #ifdef __FAST_MATH__
17101 return __a + __b;
17102 #else
17103 return __builtin_neon_vaddv8hf (__a, __b);
17104 #endif
17105 }
17106
17107 __extension__ extern __inline uint16x4_t
17108 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcage_f16(float16x4_t __a,float16x4_t __b)17109 vcage_f16 (float16x4_t __a, float16x4_t __b)
17110 {
17111 return (uint16x4_t)__builtin_neon_vcagev4hf (__a, __b);
17112 }
17113
17114 __extension__ extern __inline uint16x8_t
17115 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcageq_f16(float16x8_t __a,float16x8_t __b)17116 vcageq_f16 (float16x8_t __a, float16x8_t __b)
17117 {
17118 return (uint16x8_t)__builtin_neon_vcagev8hf (__a, __b);
17119 }
17120
17121 __extension__ extern __inline uint16x4_t
17122 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcagt_f16(float16x4_t __a,float16x4_t __b)17123 vcagt_f16 (float16x4_t __a, float16x4_t __b)
17124 {
17125 return (uint16x4_t)__builtin_neon_vcagtv4hf (__a, __b);
17126 }
17127
17128 __extension__ extern __inline uint16x8_t
17129 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcagtq_f16(float16x8_t __a,float16x8_t __b)17130 vcagtq_f16 (float16x8_t __a, float16x8_t __b)
17131 {
17132 return (uint16x8_t)__builtin_neon_vcagtv8hf (__a, __b);
17133 }
17134
17135 __extension__ extern __inline uint16x4_t
17136 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcale_f16(float16x4_t __a,float16x4_t __b)17137 vcale_f16 (float16x4_t __a, float16x4_t __b)
17138 {
17139 return (uint16x4_t)__builtin_neon_vcalev4hf (__a, __b);
17140 }
17141
17142 __extension__ extern __inline uint16x8_t
17143 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcaleq_f16(float16x8_t __a,float16x8_t __b)17144 vcaleq_f16 (float16x8_t __a, float16x8_t __b)
17145 {
17146 return (uint16x8_t)__builtin_neon_vcalev8hf (__a, __b);
17147 }
17148
17149 __extension__ extern __inline uint16x4_t
17150 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcalt_f16(float16x4_t __a,float16x4_t __b)17151 vcalt_f16 (float16x4_t __a, float16x4_t __b)
17152 {
17153 return (uint16x4_t)__builtin_neon_vcaltv4hf (__a, __b);
17154 }
17155
17156 __extension__ extern __inline uint16x8_t
17157 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcaltq_f16(float16x8_t __a,float16x8_t __b)17158 vcaltq_f16 (float16x8_t __a, float16x8_t __b)
17159 {
17160 return (uint16x8_t)__builtin_neon_vcaltv8hf (__a, __b);
17161 }
17162
17163 __extension__ extern __inline uint16x4_t
17164 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceq_f16(float16x4_t __a,float16x4_t __b)17165 vceq_f16 (float16x4_t __a, float16x4_t __b)
17166 {
17167 return (uint16x4_t)__builtin_neon_vceqv4hf (__a, __b);
17168 }
17169
17170 __extension__ extern __inline uint16x8_t
17171 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqq_f16(float16x8_t __a,float16x8_t __b)17172 vceqq_f16 (float16x8_t __a, float16x8_t __b)
17173 {
17174 return (uint16x8_t)__builtin_neon_vceqv8hf (__a, __b);
17175 }
17176
17177 __extension__ extern __inline uint16x4_t
17178 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqz_f16(float16x4_t __a)17179 vceqz_f16 (float16x4_t __a)
17180 {
17181 return (uint16x4_t)__builtin_neon_vceqzv4hf (__a);
17182 }
17183
17184 __extension__ extern __inline uint16x8_t
17185 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqzq_f16(float16x8_t __a)17186 vceqzq_f16 (float16x8_t __a)
17187 {
17188 return (uint16x8_t)__builtin_neon_vceqzv8hf (__a);
17189 }
17190
17191 __extension__ extern __inline uint16x4_t
17192 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcge_f16(float16x4_t __a,float16x4_t __b)17193 vcge_f16 (float16x4_t __a, float16x4_t __b)
17194 {
17195 return (uint16x4_t)__builtin_neon_vcgev4hf (__a, __b);
17196 }
17197
17198 __extension__ extern __inline uint16x8_t
17199 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgeq_f16(float16x8_t __a,float16x8_t __b)17200 vcgeq_f16 (float16x8_t __a, float16x8_t __b)
17201 {
17202 return (uint16x8_t)__builtin_neon_vcgev8hf (__a, __b);
17203 }
17204
17205 __extension__ extern __inline uint16x4_t
17206 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgez_f16(float16x4_t __a)17207 vcgez_f16 (float16x4_t __a)
17208 {
17209 return (uint16x4_t)__builtin_neon_vcgezv4hf (__a);
17210 }
17211
17212 __extension__ extern __inline uint16x8_t
17213 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgezq_f16(float16x8_t __a)17214 vcgezq_f16 (float16x8_t __a)
17215 {
17216 return (uint16x8_t)__builtin_neon_vcgezv8hf (__a);
17217 }
17218
17219 __extension__ extern __inline uint16x4_t
17220 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgt_f16(float16x4_t __a,float16x4_t __b)17221 vcgt_f16 (float16x4_t __a, float16x4_t __b)
17222 {
17223 return (uint16x4_t)__builtin_neon_vcgtv4hf (__a, __b);
17224 }
17225
17226 __extension__ extern __inline uint16x8_t
17227 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtq_f16(float16x8_t __a,float16x8_t __b)17228 vcgtq_f16 (float16x8_t __a, float16x8_t __b)
17229 {
17230 return (uint16x8_t)__builtin_neon_vcgtv8hf (__a, __b);
17231 }
17232
17233 __extension__ extern __inline uint16x4_t
17234 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtz_f16(float16x4_t __a)17235 vcgtz_f16 (float16x4_t __a)
17236 {
17237 return (uint16x4_t)__builtin_neon_vcgtzv4hf (__a);
17238 }
17239
17240 __extension__ extern __inline uint16x8_t
17241 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtzq_f16(float16x8_t __a)17242 vcgtzq_f16 (float16x8_t __a)
17243 {
17244 return (uint16x8_t)__builtin_neon_vcgtzv8hf (__a);
17245 }
17246
17247 __extension__ extern __inline uint16x4_t
17248 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcle_f16(float16x4_t __a,float16x4_t __b)17249 vcle_f16 (float16x4_t __a, float16x4_t __b)
17250 {
17251 return (uint16x4_t)__builtin_neon_vclev4hf (__a, __b);
17252 }
17253
17254 __extension__ extern __inline uint16x8_t
17255 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcleq_f16(float16x8_t __a,float16x8_t __b)17256 vcleq_f16 (float16x8_t __a, float16x8_t __b)
17257 {
17258 return (uint16x8_t)__builtin_neon_vclev8hf (__a, __b);
17259 }
17260
17261 __extension__ extern __inline uint16x4_t
17262 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclez_f16(float16x4_t __a)17263 vclez_f16 (float16x4_t __a)
17264 {
17265 return (uint16x4_t)__builtin_neon_vclezv4hf (__a);
17266 }
17267
17268 __extension__ extern __inline uint16x8_t
17269 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclezq_f16(float16x8_t __a)17270 vclezq_f16 (float16x8_t __a)
17271 {
17272 return (uint16x8_t)__builtin_neon_vclezv8hf (__a);
17273 }
17274
17275 __extension__ extern __inline uint16x4_t
17276 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclt_f16(float16x4_t __a,float16x4_t __b)17277 vclt_f16 (float16x4_t __a, float16x4_t __b)
17278 {
17279 return (uint16x4_t)__builtin_neon_vcltv4hf (__a, __b);
17280 }
17281
17282 __extension__ extern __inline uint16x8_t
17283 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltq_f16(float16x8_t __a,float16x8_t __b)17284 vcltq_f16 (float16x8_t __a, float16x8_t __b)
17285 {
17286 return (uint16x8_t)__builtin_neon_vcltv8hf (__a, __b);
17287 }
17288
17289 __extension__ extern __inline uint16x4_t
17290 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltz_f16(float16x4_t __a)17291 vcltz_f16 (float16x4_t __a)
17292 {
17293 return (uint16x4_t)__builtin_neon_vcltzv4hf (__a);
17294 }
17295
17296 __extension__ extern __inline uint16x8_t
17297 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltzq_f16(float16x8_t __a)17298 vcltzq_f16 (float16x8_t __a)
17299 {
17300 return (uint16x8_t)__builtin_neon_vcltzv8hf (__a);
17301 }
17302
17303 __extension__ extern __inline float16x4_t
17304 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_f16_s16(int16x4_t __a)17305 vcvt_f16_s16 (int16x4_t __a)
17306 {
17307 return (float16x4_t)__builtin_neon_vcvtsv4hi (__a);
17308 }
17309
17310 __extension__ extern __inline float16x4_t
17311 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_f16_u16(uint16x4_t __a)17312 vcvt_f16_u16 (uint16x4_t __a)
17313 {
17314 return (float16x4_t)__builtin_neon_vcvtuv4hi ((int16x4_t)__a);
17315 }
17316
17317 __extension__ extern __inline int16x4_t
17318 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_s16_f16(float16x4_t __a)17319 vcvt_s16_f16 (float16x4_t __a)
17320 {
17321 return (int16x4_t)__builtin_neon_vcvtsv4hf (__a);
17322 }
17323
17324 __extension__ extern __inline uint16x4_t
17325 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_u16_f16(float16x4_t __a)17326 vcvt_u16_f16 (float16x4_t __a)
17327 {
17328 return (uint16x4_t)__builtin_neon_vcvtuv4hf (__a);
17329 }
17330
17331 __extension__ extern __inline float16x8_t
17332 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_f16_s16(int16x8_t __a)17333 vcvtq_f16_s16 (int16x8_t __a)
17334 {
17335 return (float16x8_t)__builtin_neon_vcvtsv8hi (__a);
17336 }
17337
17338 __extension__ extern __inline float16x8_t
17339 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_f16_u16(uint16x8_t __a)17340 vcvtq_f16_u16 (uint16x8_t __a)
17341 {
17342 return (float16x8_t)__builtin_neon_vcvtuv8hi ((int16x8_t)__a);
17343 }
17344
17345 __extension__ extern __inline int16x8_t
17346 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_s16_f16(float16x8_t __a)17347 vcvtq_s16_f16 (float16x8_t __a)
17348 {
17349 return (int16x8_t)__builtin_neon_vcvtsv8hf (__a);
17350 }
17351
17352 __extension__ extern __inline uint16x8_t
17353 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_u16_f16(float16x8_t __a)17354 vcvtq_u16_f16 (float16x8_t __a)
17355 {
17356 return (uint16x8_t)__builtin_neon_vcvtuv8hf (__a);
17357 }
17358
17359 __extension__ extern __inline int16x4_t
17360 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvta_s16_f16(float16x4_t __a)17361 vcvta_s16_f16 (float16x4_t __a)
17362 {
17363 return __builtin_neon_vcvtasv4hf (__a);
17364 }
17365
17366 __extension__ extern __inline uint16x4_t
17367 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvta_u16_f16(float16x4_t __a)17368 vcvta_u16_f16 (float16x4_t __a)
17369 {
17370 return (uint16x4_t)__builtin_neon_vcvtauv4hf (__a);
17371 }
17372
17373 __extension__ extern __inline int16x8_t
17374 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtaq_s16_f16(float16x8_t __a)17375 vcvtaq_s16_f16 (float16x8_t __a)
17376 {
17377 return __builtin_neon_vcvtasv8hf (__a);
17378 }
17379
17380 __extension__ extern __inline uint16x8_t
17381 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtaq_u16_f16(float16x8_t __a)17382 vcvtaq_u16_f16 (float16x8_t __a)
17383 {
17384 return (uint16x8_t)__builtin_neon_vcvtauv8hf (__a);
17385 }
17386
17387 __extension__ extern __inline int16x4_t
17388 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtm_s16_f16(float16x4_t __a)17389 vcvtm_s16_f16 (float16x4_t __a)
17390 {
17391 return __builtin_neon_vcvtmsv4hf (__a);
17392 }
17393
17394 __extension__ extern __inline uint16x4_t
17395 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtm_u16_f16(float16x4_t __a)17396 vcvtm_u16_f16 (float16x4_t __a)
17397 {
17398 return (uint16x4_t)__builtin_neon_vcvtmuv4hf (__a);
17399 }
17400
17401 __extension__ extern __inline int16x8_t
17402 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtmq_s16_f16(float16x8_t __a)17403 vcvtmq_s16_f16 (float16x8_t __a)
17404 {
17405 return __builtin_neon_vcvtmsv8hf (__a);
17406 }
17407
17408 __extension__ extern __inline uint16x8_t
17409 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtmq_u16_f16(float16x8_t __a)17410 vcvtmq_u16_f16 (float16x8_t __a)
17411 {
17412 return (uint16x8_t)__builtin_neon_vcvtmuv8hf (__a);
17413 }
17414
17415 __extension__ extern __inline int16x4_t
17416 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtn_s16_f16(float16x4_t __a)17417 vcvtn_s16_f16 (float16x4_t __a)
17418 {
17419 return __builtin_neon_vcvtnsv4hf (__a);
17420 }
17421
17422 __extension__ extern __inline uint16x4_t
17423 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtn_u16_f16(float16x4_t __a)17424 vcvtn_u16_f16 (float16x4_t __a)
17425 {
17426 return (uint16x4_t)__builtin_neon_vcvtnuv4hf (__a);
17427 }
17428
17429 __extension__ extern __inline int16x8_t
17430 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtnq_s16_f16(float16x8_t __a)17431 vcvtnq_s16_f16 (float16x8_t __a)
17432 {
17433 return __builtin_neon_vcvtnsv8hf (__a);
17434 }
17435
17436 __extension__ extern __inline uint16x8_t
17437 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtnq_u16_f16(float16x8_t __a)17438 vcvtnq_u16_f16 (float16x8_t __a)
17439 {
17440 return (uint16x8_t)__builtin_neon_vcvtnuv8hf (__a);
17441 }
17442
17443 __extension__ extern __inline int16x4_t
17444 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtp_s16_f16(float16x4_t __a)17445 vcvtp_s16_f16 (float16x4_t __a)
17446 {
17447 return __builtin_neon_vcvtpsv4hf (__a);
17448 }
17449
17450 __extension__ extern __inline uint16x4_t
17451 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtp_u16_f16(float16x4_t __a)17452 vcvtp_u16_f16 (float16x4_t __a)
17453 {
17454 return (uint16x4_t)__builtin_neon_vcvtpuv4hf (__a);
17455 }
17456
17457 __extension__ extern __inline int16x8_t
17458 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtpq_s16_f16(float16x8_t __a)17459 vcvtpq_s16_f16 (float16x8_t __a)
17460 {
17461 return __builtin_neon_vcvtpsv8hf (__a);
17462 }
17463
17464 __extension__ extern __inline uint16x8_t
17465 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtpq_u16_f16(float16x8_t __a)17466 vcvtpq_u16_f16 (float16x8_t __a)
17467 {
17468 return (uint16x8_t)__builtin_neon_vcvtpuv8hf (__a);
17469 }
17470
17471 __extension__ extern __inline float16x4_t
17472 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_n_f16_s16(int16x4_t __a,const int __b)17473 vcvt_n_f16_s16 (int16x4_t __a, const int __b)
17474 {
17475 return __builtin_neon_vcvts_nv4hi (__a, __b);
17476 }
17477
17478 __extension__ extern __inline float16x4_t
17479 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_n_f16_u16(uint16x4_t __a,const int __b)17480 vcvt_n_f16_u16 (uint16x4_t __a, const int __b)
17481 {
17482 return __builtin_neon_vcvtu_nv4hi ((int16x4_t)__a, __b);
17483 }
17484
17485 __extension__ extern __inline float16x8_t
17486 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_n_f16_s16(int16x8_t __a,const int __b)17487 vcvtq_n_f16_s16 (int16x8_t __a, const int __b)
17488 {
17489 return __builtin_neon_vcvts_nv8hi (__a, __b);
17490 }
17491
17492 __extension__ extern __inline float16x8_t
17493 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_n_f16_u16(uint16x8_t __a,const int __b)17494 vcvtq_n_f16_u16 (uint16x8_t __a, const int __b)
17495 {
17496 return __builtin_neon_vcvtu_nv8hi ((int16x8_t)__a, __b);
17497 }
17498
17499 __extension__ extern __inline int16x4_t
17500 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_n_s16_f16(float16x4_t __a,const int __b)17501 vcvt_n_s16_f16 (float16x4_t __a, const int __b)
17502 {
17503 return __builtin_neon_vcvts_nv4hf (__a, __b);
17504 }
17505
17506 __extension__ extern __inline uint16x4_t
17507 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_n_u16_f16(float16x4_t __a,const int __b)17508 vcvt_n_u16_f16 (float16x4_t __a, const int __b)
17509 {
17510 return (uint16x4_t)__builtin_neon_vcvtu_nv4hf (__a, __b);
17511 }
17512
17513 __extension__ extern __inline int16x8_t
17514 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_n_s16_f16(float16x8_t __a,const int __b)17515 vcvtq_n_s16_f16 (float16x8_t __a, const int __b)
17516 {
17517 return __builtin_neon_vcvts_nv8hf (__a, __b);
17518 }
17519
17520 __extension__ extern __inline uint16x8_t
17521 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_n_u16_f16(float16x8_t __a,const int __b)17522 vcvtq_n_u16_f16 (float16x8_t __a, const int __b)
17523 {
17524 return (uint16x8_t)__builtin_neon_vcvtu_nv8hf (__a, __b);
17525 }
17526
17527 __extension__ extern __inline float16x4_t
17528 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfma_f16(float16x4_t __a,float16x4_t __b,float16x4_t __c)17529 vfma_f16 (float16x4_t __a, float16x4_t __b, float16x4_t __c)
17530 {
17531 return __builtin_neon_vfmav4hf (__a, __b, __c);
17532 }
17533
17534 __extension__ extern __inline float16x8_t
17535 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmaq_f16(float16x8_t __a,float16x8_t __b,float16x8_t __c)17536 vfmaq_f16 (float16x8_t __a, float16x8_t __b, float16x8_t __c)
17537 {
17538 return __builtin_neon_vfmav8hf (__a, __b, __c);
17539 }
17540
17541 __extension__ extern __inline float16x4_t
17542 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfms_f16(float16x4_t __a,float16x4_t __b,float16x4_t __c)17543 vfms_f16 (float16x4_t __a, float16x4_t __b, float16x4_t __c)
17544 {
17545 return __builtin_neon_vfmsv4hf (__a, __b, __c);
17546 }
17547
17548 __extension__ extern __inline float16x8_t
17549 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmsq_f16(float16x8_t __a,float16x8_t __b,float16x8_t __c)17550 vfmsq_f16 (float16x8_t __a, float16x8_t __b, float16x8_t __c)
17551 {
17552 return __builtin_neon_vfmsv8hf (__a, __b, __c);
17553 }
17554
17555 __extension__ extern __inline float16x4_t
17556 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmax_f16(float16x4_t __a,float16x4_t __b)17557 vmax_f16 (float16x4_t __a, float16x4_t __b)
17558 {
17559 return __builtin_neon_vmaxfv4hf (__a, __b);
17560 }
17561
17562 __extension__ extern __inline float16x8_t
17563 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxq_f16(float16x8_t __a,float16x8_t __b)17564 vmaxq_f16 (float16x8_t __a, float16x8_t __b)
17565 {
17566 return __builtin_neon_vmaxfv8hf (__a, __b);
17567 }
17568
17569 __extension__ extern __inline float16x4_t
17570 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxnm_f16(float16x4_t __a,float16x4_t __b)17571 vmaxnm_f16 (float16x4_t __a, float16x4_t __b)
17572 {
17573 return __builtin_neon_vmaxnmv4hf (__a, __b);
17574 }
17575
17576 __extension__ extern __inline float16x8_t
17577 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxnmq_f16(float16x8_t __a,float16x8_t __b)17578 vmaxnmq_f16 (float16x8_t __a, float16x8_t __b)
17579 {
17580 return __builtin_neon_vmaxnmv8hf (__a, __b);
17581 }
17582
17583 __extension__ extern __inline float16x4_t
17584 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmin_f16(float16x4_t __a,float16x4_t __b)17585 vmin_f16 (float16x4_t __a, float16x4_t __b)
17586 {
17587 return __builtin_neon_vminfv4hf (__a, __b);
17588 }
17589
17590 __extension__ extern __inline float16x8_t
17591 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminq_f16(float16x8_t __a,float16x8_t __b)17592 vminq_f16 (float16x8_t __a, float16x8_t __b)
17593 {
17594 return __builtin_neon_vminfv8hf (__a, __b);
17595 }
17596
17597 __extension__ extern __inline float16x4_t
17598 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminnm_f16(float16x4_t __a,float16x4_t __b)17599 vminnm_f16 (float16x4_t __a, float16x4_t __b)
17600 {
17601 return __builtin_neon_vminnmv4hf (__a, __b);
17602 }
17603
17604 __extension__ extern __inline float16x8_t
17605 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminnmq_f16(float16x8_t __a,float16x8_t __b)17606 vminnmq_f16 (float16x8_t __a, float16x8_t __b)
17607 {
17608 return __builtin_neon_vminnmv8hf (__a, __b);
17609 }
17610
17611 __extension__ extern __inline float16x4_t
17612 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_f16(float16x4_t __a,float16x4_t __b)17613 vmul_f16 (float16x4_t __a, float16x4_t __b)
17614 {
17615 #ifdef __FAST_MATH__
17616 return __a * __b;
17617 #else
17618 return __builtin_neon_vmulfv4hf (__a, __b);
17619 #endif
17620 }
17621
17622 __extension__ extern __inline float16x4_t
17623 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_lane_f16(float16x4_t __a,float16x4_t __b,const int __c)17624 vmul_lane_f16 (float16x4_t __a, float16x4_t __b, const int __c)
17625 {
17626 return __builtin_neon_vmul_lanev4hf (__a, __b, __c);
17627 }
17628
17629 __extension__ extern __inline float16x4_t
17630 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_n_f16(float16x4_t __a,float16_t __b)17631 vmul_n_f16 (float16x4_t __a, float16_t __b)
17632 {
17633 return __builtin_neon_vmul_nv4hf (__a, __b);
17634 }
17635
17636 __extension__ extern __inline float16x8_t
17637 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_f16(float16x8_t __a,float16x8_t __b)17638 vmulq_f16 (float16x8_t __a, float16x8_t __b)
17639 {
17640 #ifdef __FAST_MATH__
17641 return __a * __b;
17642 #else
17643 return __builtin_neon_vmulfv8hf (__a, __b);
17644 #endif
17645 }
17646
17647 __extension__ extern __inline float16x8_t
17648 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_lane_f16(float16x8_t __a,float16x4_t __b,const int __c)17649 vmulq_lane_f16 (float16x8_t __a, float16x4_t __b, const int __c)
17650 {
17651 return __builtin_neon_vmul_lanev8hf (__a, __b, __c);
17652 }
17653
17654 __extension__ extern __inline float16x8_t
17655 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_n_f16(float16x8_t __a,float16_t __b)17656 vmulq_n_f16 (float16x8_t __a, float16_t __b)
17657 {
17658 return __builtin_neon_vmul_nv8hf (__a, __b);
17659 }
17660
17661 __extension__ extern __inline float16x4_t
17662 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vneg_f16(float16x4_t __a)17663 vneg_f16 (float16x4_t __a)
17664 {
17665 return __builtin_neon_vnegv4hf (__a);
17666 }
17667
17668 __extension__ extern __inline float16x8_t
17669 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vnegq_f16(float16x8_t __a)17670 vnegq_f16 (float16x8_t __a)
17671 {
17672 return __builtin_neon_vnegv8hf (__a);
17673 }
17674
17675 __extension__ extern __inline float16x4_t
17676 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadd_f16(float16x4_t __a,float16x4_t __b)17677 vpadd_f16 (float16x4_t __a, float16x4_t __b)
17678 {
17679 return __builtin_neon_vpaddv4hf (__a, __b);
17680 }
17681
17682 __extension__ extern __inline float16x4_t
17683 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmax_f16(float16x4_t __a,float16x4_t __b)17684 vpmax_f16 (float16x4_t __a, float16x4_t __b)
17685 {
17686 return __builtin_neon_vpmaxfv4hf (__a, __b);
17687 }
17688
17689 __extension__ extern __inline float16x4_t
17690 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmin_f16(float16x4_t __a,float16x4_t __b)17691 vpmin_f16 (float16x4_t __a, float16x4_t __b)
17692 {
17693 return __builtin_neon_vpminfv4hf (__a, __b);
17694 }
17695
17696 __extension__ extern __inline float16x4_t
17697 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrecpe_f16(float16x4_t __a)17698 vrecpe_f16 (float16x4_t __a)
17699 {
17700 return __builtin_neon_vrecpev4hf (__a);
17701 }
17702
17703 __extension__ extern __inline float16x8_t
17704 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrecpeq_f16(float16x8_t __a)17705 vrecpeq_f16 (float16x8_t __a)
17706 {
17707 return __builtin_neon_vrecpev8hf (__a);
17708 }
17709
17710 __extension__ extern __inline float16x4_t
17711 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrnd_f16(float16x4_t __a)17712 vrnd_f16 (float16x4_t __a)
17713 {
17714 return __builtin_neon_vrndv4hf (__a);
17715 }
17716
17717 __extension__ extern __inline float16x8_t
17718 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndq_f16(float16x8_t __a)17719 vrndq_f16 (float16x8_t __a)
17720 {
17721 return __builtin_neon_vrndv8hf (__a);
17722 }
17723
17724 __extension__ extern __inline float16x4_t
17725 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrnda_f16(float16x4_t __a)17726 vrnda_f16 (float16x4_t __a)
17727 {
17728 return __builtin_neon_vrndav4hf (__a);
17729 }
17730
17731 __extension__ extern __inline float16x8_t
17732 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndaq_f16(float16x8_t __a)17733 vrndaq_f16 (float16x8_t __a)
17734 {
17735 return __builtin_neon_vrndav8hf (__a);
17736 }
17737
17738 __extension__ extern __inline float16x4_t
17739 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndm_f16(float16x4_t __a)17740 vrndm_f16 (float16x4_t __a)
17741 {
17742 return __builtin_neon_vrndmv4hf (__a);
17743 }
17744
17745 __extension__ extern __inline float16x8_t
17746 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndmq_f16(float16x8_t __a)17747 vrndmq_f16 (float16x8_t __a)
17748 {
17749 return __builtin_neon_vrndmv8hf (__a);
17750 }
17751
17752 __extension__ extern __inline float16x4_t
17753 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndn_f16(float16x4_t __a)17754 vrndn_f16 (float16x4_t __a)
17755 {
17756 return __builtin_neon_vrndnv4hf (__a);
17757 }
17758
17759 __extension__ extern __inline float16x8_t
17760 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndnq_f16(float16x8_t __a)17761 vrndnq_f16 (float16x8_t __a)
17762 {
17763 return __builtin_neon_vrndnv8hf (__a);
17764 }
17765
17766 __extension__ extern __inline float16x4_t
17767 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndp_f16(float16x4_t __a)17768 vrndp_f16 (float16x4_t __a)
17769 {
17770 return __builtin_neon_vrndpv4hf (__a);
17771 }
17772
17773 __extension__ extern __inline float16x8_t
17774 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndpq_f16(float16x8_t __a)17775 vrndpq_f16 (float16x8_t __a)
17776 {
17777 return __builtin_neon_vrndpv8hf (__a);
17778 }
17779
17780 __extension__ extern __inline float16x4_t
17781 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndx_f16(float16x4_t __a)17782 vrndx_f16 (float16x4_t __a)
17783 {
17784 return __builtin_neon_vrndxv4hf (__a);
17785 }
17786
17787 __extension__ extern __inline float16x8_t
17788 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndxq_f16(float16x8_t __a)17789 vrndxq_f16 (float16x8_t __a)
17790 {
17791 return __builtin_neon_vrndxv8hf (__a);
17792 }
17793
17794 __extension__ extern __inline float16x4_t
17795 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsqrte_f16(float16x4_t __a)17796 vrsqrte_f16 (float16x4_t __a)
17797 {
17798 return __builtin_neon_vrsqrtev4hf (__a);
17799 }
17800
17801 __extension__ extern __inline float16x8_t
17802 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsqrteq_f16(float16x8_t __a)17803 vrsqrteq_f16 (float16x8_t __a)
17804 {
17805 return __builtin_neon_vrsqrtev8hf (__a);
17806 }
17807
17808 __extension__ extern __inline float16x4_t
17809 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrecps_f16(float16x4_t __a,float16x4_t __b)17810 vrecps_f16 (float16x4_t __a, float16x4_t __b)
17811 {
17812 return __builtin_neon_vrecpsv4hf (__a, __b);
17813 }
17814
17815 __extension__ extern __inline float16x8_t
17816 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrecpsq_f16(float16x8_t __a,float16x8_t __b)17817 vrecpsq_f16 (float16x8_t __a, float16x8_t __b)
17818 {
17819 return __builtin_neon_vrecpsv8hf (__a, __b);
17820 }
17821
17822 __extension__ extern __inline float16x4_t
17823 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsqrts_f16(float16x4_t __a,float16x4_t __b)17824 vrsqrts_f16 (float16x4_t __a, float16x4_t __b)
17825 {
17826 return __builtin_neon_vrsqrtsv4hf (__a, __b);
17827 }
17828
17829 __extension__ extern __inline float16x8_t
17830 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsqrtsq_f16(float16x8_t __a,float16x8_t __b)17831 vrsqrtsq_f16 (float16x8_t __a, float16x8_t __b)
17832 {
17833 return __builtin_neon_vrsqrtsv8hf (__a, __b);
17834 }
17835
17836 __extension__ extern __inline float16x4_t
17837 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsub_f16(float16x4_t __a,float16x4_t __b)17838 vsub_f16 (float16x4_t __a, float16x4_t __b)
17839 {
17840 #ifdef __FAST_MATH__
17841 return __a - __b;
17842 #else
17843 return __builtin_neon_vsubv4hf (__a, __b);
17844 #endif
17845 }
17846
17847 __extension__ extern __inline float16x8_t
17848 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubq_f16(float16x8_t __a,float16x8_t __b)17849 vsubq_f16 (float16x8_t __a, float16x8_t __b)
17850 {
17851 #ifdef __FAST_MATH__
17852 return __a - __b;
17853 #else
17854 return __builtin_neon_vsubv8hf (__a, __b);
17855 #endif
17856 }
17857
17858 #endif /* __ARM_FEATURE_VECTOR_FP16_ARITHMETIC. */
17859 #pragma GCC pop_options
17860
17861 /* Half-precision data processing intrinsics. */
17862 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
17863
17864 __extension__ extern __inline float16x4_t
17865 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbsl_f16(uint16x4_t __a,float16x4_t __b,float16x4_t __c)17866 vbsl_f16 (uint16x4_t __a, float16x4_t __b, float16x4_t __c)
17867 {
17868 return __builtin_neon_vbslv4hf ((int16x4_t)__a, __b, __c);
17869 }
17870
17871 __extension__ extern __inline float16x8_t
17872 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbslq_f16(uint16x8_t __a,float16x8_t __b,float16x8_t __c)17873 vbslq_f16 (uint16x8_t __a, float16x8_t __b, float16x8_t __c)
17874 {
17875 return __builtin_neon_vbslv8hf ((int16x8_t)__a, __b, __c);
17876 }
17877
17878 __extension__ extern __inline float16x4_t
17879 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_n_f16(float16_t __a)17880 vdup_n_f16 (float16_t __a)
17881 {
17882 return __builtin_neon_vdup_nv4hf (__a);
17883 }
17884
17885 __extension__ extern __inline float16x8_t
17886 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_n_f16(float16_t __a)17887 vdupq_n_f16 (float16_t __a)
17888 {
17889 return __builtin_neon_vdup_nv8hf (__a);
17890 }
17891
17892 __extension__ extern __inline float16x4_t
17893 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_lane_f16(float16x4_t __a,const int __b)17894 vdup_lane_f16 (float16x4_t __a, const int __b)
17895 {
17896 return __builtin_neon_vdup_lanev4hf (__a, __b);
17897 }
17898
17899 __extension__ extern __inline float16x8_t
17900 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_lane_f16(float16x4_t __a,const int __b)17901 vdupq_lane_f16 (float16x4_t __a, const int __b)
17902 {
17903 return __builtin_neon_vdup_lanev8hf (__a, __b);
17904 }
17905
17906 __extension__ extern __inline float16x4_t
17907 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vext_f16(float16x4_t __a,float16x4_t __b,const int __c)17908 vext_f16 (float16x4_t __a, float16x4_t __b, const int __c)
17909 {
17910 return __builtin_neon_vextv4hf (__a, __b, __c);
17911 }
17912
17913 __extension__ extern __inline float16x8_t
17914 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vextq_f16(float16x8_t __a,float16x8_t __b,const int __c)17915 vextq_f16 (float16x8_t __a, float16x8_t __b, const int __c)
17916 {
17917 return __builtin_neon_vextv8hf (__a, __b, __c);
17918 }
17919
17920 __extension__ extern __inline float16x4_t
17921 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmov_n_f16(float16_t __a)17922 vmov_n_f16 (float16_t __a)
17923 {
17924 return __builtin_neon_vdup_nv4hf (__a);
17925 }
17926
17927 __extension__ extern __inline float16x8_t
17928 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovq_n_f16(float16_t __a)17929 vmovq_n_f16 (float16_t __a)
17930 {
17931 return __builtin_neon_vdup_nv8hf (__a);
17932 }
17933
17934 __extension__ extern __inline float16x4_t
17935 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64_f16(float16x4_t __a)17936 vrev64_f16 (float16x4_t __a)
17937 {
17938 return (float16x4_t)__builtin_shuffle (__a, (uint16x4_t){ 3, 2, 1, 0 });
17939 }
17940
17941 __extension__ extern __inline float16x8_t
17942 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64q_f16(float16x8_t __a)17943 vrev64q_f16 (float16x8_t __a)
17944 {
17945 return
17946 (float16x8_t)__builtin_shuffle (__a,
17947 (uint16x8_t){ 3, 2, 1, 0, 7, 6, 5, 4 });
17948 }
17949
17950 __extension__ extern __inline float16x4x2_t
17951 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn_f16(float16x4_t __a,float16x4_t __b)17952 vtrn_f16 (float16x4_t __a, float16x4_t __b)
17953 {
17954 float16x4x2_t __rv;
17955 #ifdef __ARM_BIG_ENDIAN
17956 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t){ 5, 1, 7, 3 });
17957 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t){ 4, 0, 6, 2 });
17958 #else
17959 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t){ 0, 4, 2, 6 });
17960 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t){ 1, 5, 3, 7 });
17961 #endif
17962 return __rv;
17963 }
17964
17965 __extension__ extern __inline float16x8x2_t
17966 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrnq_f16(float16x8_t __a,float16x8_t __b)17967 vtrnq_f16 (float16x8_t __a, float16x8_t __b)
17968 {
17969 float16x8x2_t __rv;
17970 #ifdef __ARM_BIG_ENDIAN
17971 __rv.val[0] = __builtin_shuffle (__a, __b,
17972 (uint16x8_t){ 9, 1, 11, 3, 13, 5, 15, 7 });
17973 __rv.val[1] = __builtin_shuffle (__a, __b,
17974 (uint16x8_t){ 8, 0, 10, 2, 12, 4, 14, 6 });
17975 #else
17976 __rv.val[0] = __builtin_shuffle (__a, __b,
17977 (uint16x8_t){ 0, 8, 2, 10, 4, 12, 6, 14 });
17978 __rv.val[1] = __builtin_shuffle (__a, __b,
17979 (uint16x8_t){ 1, 9, 3, 11, 5, 13, 7, 15 });
17980 #endif
17981 return __rv;
17982 }
17983
17984 __extension__ extern __inline float16x4x2_t
17985 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp_f16(float16x4_t __a,float16x4_t __b)17986 vuzp_f16 (float16x4_t __a, float16x4_t __b)
17987 {
17988 float16x4x2_t __rv;
17989 #ifdef __ARM_BIG_ENDIAN
17990 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t){ 5, 7, 1, 3 });
17991 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t){ 4, 6, 0, 2 });
17992 #else
17993 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t){ 0, 2, 4, 6 });
17994 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t){ 1, 3, 5, 7 });
17995 #endif
17996 return __rv;
17997 }
17998
17999 __extension__ extern __inline float16x8x2_t
18000 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzpq_f16(float16x8_t __a,float16x8_t __b)18001 vuzpq_f16 (float16x8_t __a, float16x8_t __b)
18002 {
18003 float16x8x2_t __rv;
18004 #ifdef __ARM_BIG_ENDIAN
18005 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
18006 { 5, 7, 1, 3, 13, 15, 9, 11 });
18007 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
18008 { 4, 6, 0, 2, 12, 14, 8, 10 });
18009 #else
18010 __rv.val[0] = __builtin_shuffle (__a, __b,
18011 (uint16x8_t){ 0, 2, 4, 6, 8, 10, 12, 14 });
18012 __rv.val[1] = __builtin_shuffle (__a, __b,
18013 (uint16x8_t){ 1, 3, 5, 7, 9, 11, 13, 15 });
18014 #endif
18015 return __rv;
18016 }
18017
18018 __extension__ extern __inline float16x4x2_t
18019 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip_f16(float16x4_t __a,float16x4_t __b)18020 vzip_f16 (float16x4_t __a, float16x4_t __b)
18021 {
18022 float16x4x2_t __rv;
18023 #ifdef __ARM_BIG_ENDIAN
18024 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t){ 6, 2, 7, 3 });
18025 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t){ 4, 0, 5, 1 });
18026 #else
18027 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t){ 0, 4, 1, 5 });
18028 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t){ 2, 6, 3, 7 });
18029 #endif
18030 return __rv;
18031 }
18032
18033 __extension__ extern __inline float16x8x2_t
18034 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzipq_f16(float16x8_t __a,float16x8_t __b)18035 vzipq_f16 (float16x8_t __a, float16x8_t __b)
18036 {
18037 float16x8x2_t __rv;
18038 #ifdef __ARM_BIG_ENDIAN
18039 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
18040 { 10, 2, 11, 3, 8, 0, 9, 1 });
18041 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
18042 { 14, 6, 15, 7, 12, 4, 13, 5 });
18043 #else
18044 __rv.val[0] = __builtin_shuffle (__a, __b,
18045 (uint16x8_t){ 0, 8, 1, 9, 2, 10, 3, 11 });
18046 __rv.val[1] = __builtin_shuffle (__a, __b,
18047 (uint16x8_t){ 4, 12, 5, 13, 6, 14, 7, 15 });
18048 #endif
18049 return __rv;
18050 }
18051
18052 #endif
18053
18054 /* AdvSIMD Dot Product intrinsics. */
18055
18056 #if __ARM_ARCH >= 8
18057 #pragma GCC push_options
18058 #pragma GCC target ("arch=armv8.2-a+dotprod")
18059
18060 __extension__ extern __inline uint32x2_t
18061 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdot_u32(uint32x2_t __r,uint8x8_t __a,uint8x8_t __b)18062 vdot_u32 (uint32x2_t __r, uint8x8_t __a, uint8x8_t __b)
18063 {
18064 return __builtin_neon_udotv8qi_uuuu (__r, __a, __b);
18065 }
18066
18067 __extension__ extern __inline uint32x4_t
18068 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdotq_u32(uint32x4_t __r,uint8x16_t __a,uint8x16_t __b)18069 vdotq_u32 (uint32x4_t __r, uint8x16_t __a, uint8x16_t __b)
18070 {
18071 return __builtin_neon_udotv16qi_uuuu (__r, __a, __b);
18072 }
18073
18074 __extension__ extern __inline int32x2_t
18075 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdot_s32(int32x2_t __r,int8x8_t __a,int8x8_t __b)18076 vdot_s32 (int32x2_t __r, int8x8_t __a, int8x8_t __b)
18077 {
18078 return __builtin_neon_sdotv8qi (__r, __a, __b);
18079 }
18080
18081 __extension__ extern __inline int32x4_t
18082 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdotq_s32(int32x4_t __r,int8x16_t __a,int8x16_t __b)18083 vdotq_s32 (int32x4_t __r, int8x16_t __a, int8x16_t __b)
18084 {
18085 return __builtin_neon_sdotv16qi (__r, __a, __b);
18086 }
18087
18088 __extension__ extern __inline uint32x2_t
18089 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdot_lane_u32(uint32x2_t __r,uint8x8_t __a,uint8x8_t __b,const int __index)18090 vdot_lane_u32 (uint32x2_t __r, uint8x8_t __a, uint8x8_t __b, const int __index)
18091 {
18092 return __builtin_neon_udot_lanev8qi_uuuus (__r, __a, __b, __index);
18093 }
18094
18095 __extension__ extern __inline uint32x4_t
18096 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdotq_lane_u32(uint32x4_t __r,uint8x16_t __a,uint8x8_t __b,const int __index)18097 vdotq_lane_u32 (uint32x4_t __r, uint8x16_t __a, uint8x8_t __b,
18098 const int __index)
18099 {
18100 return __builtin_neon_udot_lanev16qi_uuuus (__r, __a, __b, __index);
18101 }
18102
18103 __extension__ extern __inline int32x2_t
18104 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdot_lane_s32(int32x2_t __r,int8x8_t __a,int8x8_t __b,const int __index)18105 vdot_lane_s32 (int32x2_t __r, int8x8_t __a, int8x8_t __b, const int __index)
18106 {
18107 return __builtin_neon_sdot_lanev8qi (__r, __a, __b, __index);
18108 }
18109
18110 __extension__ extern __inline int32x4_t
18111 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdotq_lane_s32(int32x4_t __r,int8x16_t __a,int8x8_t __b,const int __index)18112 vdotq_lane_s32 (int32x4_t __r, int8x16_t __a, int8x8_t __b, const int __index)
18113 {
18114 return __builtin_neon_sdot_lanev16qi (__r, __a, __b, __index);
18115 }
18116
18117 #pragma GCC pop_options
18118 #endif
18119
18120 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
18121 #pragma GCC push_options
18122 #pragma GCC target ("arch=armv8.2-a+fp16fml")
18123
18124 __extension__ extern __inline float32x2_t
18125 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlal_low_f16(float32x2_t __r,float16x4_t __a,float16x4_t __b)18126 vfmlal_low_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b)
18127 {
18128 return __builtin_neon_vfmal_lowv2sf (__r, __a, __b);
18129 }
18130
18131 __extension__ extern __inline float32x2_t
18132 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlsl_low_f16(float32x2_t __r,float16x4_t __a,float16x4_t __b)18133 vfmlsl_low_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b)
18134 {
18135 return __builtin_neon_vfmsl_lowv2sf (__r, __a, __b);
18136 }
18137
18138 __extension__ extern __inline float32x2_t
18139 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlal_high_f16(float32x2_t __r,float16x4_t __a,float16x4_t __b)18140 vfmlal_high_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b)
18141 {
18142 return __builtin_neon_vfmal_highv2sf (__r, __a, __b);
18143 }
18144
18145 __extension__ extern __inline float32x2_t
18146 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlsl_high_f16(float32x2_t __r,float16x4_t __a,float16x4_t __b)18147 vfmlsl_high_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b)
18148 {
18149 return __builtin_neon_vfmsl_highv2sf (__r, __a, __b);
18150 }
18151
18152 __extension__ extern __inline float32x4_t
18153 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlalq_low_f16(float32x4_t __r,float16x8_t __a,float16x8_t __b)18154 vfmlalq_low_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b)
18155 {
18156 return __builtin_neon_vfmal_lowv4sf (__r, __a, __b);
18157 }
18158
18159 __extension__ extern __inline float32x4_t
18160 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlslq_low_f16(float32x4_t __r,float16x8_t __a,float16x8_t __b)18161 vfmlslq_low_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b)
18162 {
18163 return __builtin_neon_vfmsl_lowv4sf (__r, __a, __b);
18164 }
18165
18166 __extension__ extern __inline float32x4_t
18167 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlalq_high_f16(float32x4_t __r,float16x8_t __a,float16x8_t __b)18168 vfmlalq_high_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b)
18169 {
18170 return __builtin_neon_vfmal_highv4sf (__r, __a, __b);
18171 }
18172
18173 __extension__ extern __inline float32x4_t
18174 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlslq_high_f16(float32x4_t __r,float16x8_t __a,float16x8_t __b)18175 vfmlslq_high_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b)
18176 {
18177 return __builtin_neon_vfmsl_highv4sf (__r, __a, __b);
18178 }
18179
18180 __extension__ extern __inline float32x2_t
18181 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlal_lane_low_f16(float32x2_t __r,float16x4_t __a,float16x4_t __b,const int __index)18182 vfmlal_lane_low_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b,
18183 const int __index)
18184 {
18185 __builtin_arm_lane_check (4, __index);
18186 return __builtin_neon_vfmal_lane_lowv2sf (__r, __a, __b, __index);
18187 }
18188
18189 __extension__ extern __inline float32x2_t
18190 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlal_lane_high_f16(float32x2_t __r,float16x4_t __a,float16x4_t __b,const int __index)18191 vfmlal_lane_high_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b,
18192 const int __index)
18193 {
18194 __builtin_arm_lane_check (4, __index);
18195 return __builtin_neon_vfmal_lane_highv2sf (__r, __a, __b, __index);
18196 }
18197
18198 __extension__ extern __inline float32x4_t
18199 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlalq_laneq_low_f16(float32x4_t __r,float16x8_t __a,float16x8_t __b,const int __index)18200 vfmlalq_laneq_low_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b,
18201 const int __index)
18202 {
18203 __builtin_arm_lane_check (8, __index);
18204 return __builtin_neon_vfmal_lane_lowv4sf (__r, __a, __b, __index);
18205 }
18206
18207 __extension__ extern __inline float32x4_t
18208 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlalq_lane_low_f16(float32x4_t __r,float16x8_t __a,float16x4_t __b,const int __index)18209 vfmlalq_lane_low_f16 (float32x4_t __r, float16x8_t __a, float16x4_t __b,
18210 const int __index)
18211 {
18212 __builtin_arm_lane_check (4, __index);
18213 return __builtin_neon_vfmal_lane_lowv4hfv4sf (__r, __a, __b, __index);
18214 }
18215
18216 __extension__ extern __inline float32x2_t
18217 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlal_laneq_low_f16(float32x2_t __r,float16x4_t __a,float16x8_t __b,const int __index)18218 vfmlal_laneq_low_f16 (float32x2_t __r, float16x4_t __a, float16x8_t __b,
18219 const int __index)
18220 {
18221 __builtin_arm_lane_check (8, __index);
18222 return __builtin_neon_vfmal_lane_lowv8hfv2sf (__r, __a, __b, __index);
18223 }
18224
18225 __extension__ extern __inline float32x4_t
18226 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlalq_laneq_high_f16(float32x4_t __r,float16x8_t __a,float16x8_t __b,const int __index)18227 vfmlalq_laneq_high_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b,
18228 const int __index)
18229 {
18230 __builtin_arm_lane_check (8, __index);
18231 return __builtin_neon_vfmal_lane_highv4sf (__r, __a, __b, __index);
18232 }
18233
18234 __extension__ extern __inline float32x4_t
18235 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlalq_lane_high_f16(float32x4_t __r,float16x8_t __a,float16x4_t __b,const int __index)18236 vfmlalq_lane_high_f16 (float32x4_t __r, float16x8_t __a, float16x4_t __b,
18237 const int __index)
18238 {
18239 __builtin_arm_lane_check (4, __index);
18240 return __builtin_neon_vfmal_lane_highv4hfv4sf (__r, __a, __b, __index);
18241 }
18242
18243 __extension__ extern __inline float32x2_t
18244 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlal_laneq_high_f16(float32x2_t __r,float16x4_t __a,float16x8_t __b,const int __index)18245 vfmlal_laneq_high_f16 (float32x2_t __r, float16x4_t __a, float16x8_t __b,
18246 const int __index)
18247 {
18248 __builtin_arm_lane_check (8, __index);
18249 return __builtin_neon_vfmal_lane_highv8hfv2sf (__r, __a, __b, __index);
18250 }
18251
18252 __extension__ extern __inline float32x2_t
18253 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlsl_lane_low_f16(float32x2_t __r,float16x4_t __a,float16x4_t __b,const int __index)18254 vfmlsl_lane_low_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b,
18255 const int __index)
18256 {
18257 __builtin_arm_lane_check (4, __index);
18258 return __builtin_neon_vfmsl_lane_lowv2sf (__r, __a, __b, __index);
18259 }
18260
18261 __extension__ extern __inline float32x2_t
18262 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlsl_lane_high_f16(float32x2_t __r,float16x4_t __a,float16x4_t __b,const int __index)18263 vfmlsl_lane_high_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b,
18264 const int __index)
18265 {
18266 __builtin_arm_lane_check (4, __index);
18267 return __builtin_neon_vfmsl_lane_highv2sf (__r, __a, __b, __index);
18268 }
18269
18270 __extension__ extern __inline float32x4_t
18271 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlslq_laneq_low_f16(float32x4_t __r,float16x8_t __a,float16x8_t __b,const int __index)18272 vfmlslq_laneq_low_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b,
18273 const int __index)
18274 {
18275 __builtin_arm_lane_check (8, __index);
18276 return __builtin_neon_vfmsl_lane_lowv4sf (__r, __a, __b, __index);
18277 }
18278
18279 __extension__ extern __inline float32x4_t
18280 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlslq_lane_low_f16(float32x4_t __r,float16x8_t __a,float16x4_t __b,const int __index)18281 vfmlslq_lane_low_f16 (float32x4_t __r, float16x8_t __a, float16x4_t __b,
18282 const int __index)
18283 {
18284 __builtin_arm_lane_check (4, __index);
18285 return __builtin_neon_vfmsl_lane_lowv4hfv4sf (__r, __a, __b, __index);
18286 }
18287
18288 __extension__ extern __inline float32x2_t
18289 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlsl_laneq_low_f16(float32x2_t __r,float16x4_t __a,float16x8_t __b,const int __index)18290 vfmlsl_laneq_low_f16 (float32x2_t __r, float16x4_t __a, float16x8_t __b,
18291 const int __index)
18292 {
18293 __builtin_arm_lane_check (8, __index);
18294 return __builtin_neon_vfmsl_lane_lowv8hfv2sf (__r, __a, __b, __index);
18295 }
18296
18297 __extension__ extern __inline float32x4_t
18298 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlslq_laneq_high_f16(float32x4_t __r,float16x8_t __a,float16x8_t __b,const int __index)18299 vfmlslq_laneq_high_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b,
18300 const int __index)
18301 {
18302 __builtin_arm_lane_check (8, __index);
18303 return __builtin_neon_vfmsl_lane_highv4sf (__r, __a, __b, __index);
18304 }
18305
18306 __extension__ extern __inline float32x4_t
18307 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlslq_lane_high_f16(float32x4_t __r,float16x8_t __a,float16x4_t __b,const int __index)18308 vfmlslq_lane_high_f16 (float32x4_t __r, float16x8_t __a, float16x4_t __b,
18309 const int __index)
18310 {
18311 __builtin_arm_lane_check (4, __index);
18312 return __builtin_neon_vfmsl_lane_highv4hfv4sf (__r, __a, __b, __index);
18313 }
18314
18315 __extension__ extern __inline float32x2_t
18316 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlsl_laneq_high_f16(float32x2_t __r,float16x4_t __a,float16x8_t __b,const int __index)18317 vfmlsl_laneq_high_f16 (float32x2_t __r, float16x4_t __a, float16x8_t __b,
18318 const int __index)
18319 {
18320 __builtin_arm_lane_check (8, __index);
18321 return __builtin_neon_vfmsl_lane_highv8hfv2sf (__r, __a, __b, __index);
18322 }
18323
18324 #pragma GCC pop_options
18325 #endif
18326
18327 /* AdvSIMD Complex numbers intrinsics. */
18328 #if __ARM_ARCH >= 8
18329 #pragma GCC push_options
18330 #pragma GCC target ("arch=armv8.3-a")
18331
18332
18333 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
18334 #pragma GCC push_options
18335 #pragma GCC target ("+fp16")
18336 __extension__ extern __inline float16x4_t
18337 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcadd_rot90_f16(float16x4_t __a,float16x4_t __b)18338 vcadd_rot90_f16 (float16x4_t __a, float16x4_t __b)
18339 {
18340 return __builtin_neon_vcadd90v4hf (__a, __b);
18341 }
18342
18343 __extension__ extern __inline float16x8_t
18344 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcaddq_rot90_f16(float16x8_t __a,float16x8_t __b)18345 vcaddq_rot90_f16 (float16x8_t __a, float16x8_t __b)
18346 {
18347 return __builtin_neon_vcadd90v8hf (__a, __b);
18348 }
18349
18350 __extension__ extern __inline float16x4_t
18351 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcadd_rot270_f16(float16x4_t __a,float16x4_t __b)18352 vcadd_rot270_f16 (float16x4_t __a, float16x4_t __b)
18353 {
18354 return __builtin_neon_vcadd90v4hf (__a, __b);
18355 }
18356
18357 __extension__ extern __inline float16x8_t
18358 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcaddq_rot270_f16(float16x8_t __a,float16x8_t __b)18359 vcaddq_rot270_f16 (float16x8_t __a, float16x8_t __b)
18360 {
18361 return __builtin_neon_vcadd90v8hf (__a, __b);
18362 }
18363
18364 __extension__ extern __inline float16x4_t
18365 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_f16(float16x4_t __r,float16x4_t __a,float16x4_t __b)18366 vcmla_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b)
18367 {
18368 return __builtin_neon_vcmla0v4hf (__r, __a, __b);
18369 }
18370
18371 __extension__ extern __inline float16x8_t
18372 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_f16(float16x8_t __r,float16x8_t __a,float16x8_t __b)18373 vcmlaq_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b)
18374 {
18375 return __builtin_neon_vcmla0v8hf (__r, __a, __b);
18376 }
18377
18378 __extension__ extern __inline float16x4_t
18379 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_lane_f16(float16x4_t __r,float16x4_t __a,float16x4_t __b,const int __index)18380 vcmla_lane_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b,
18381 const int __index)
18382 {
18383 return __builtin_neon_vcmla_lane0v4hf (__r, __a, __b, __index);
18384 }
18385
18386 __extension__ extern __inline float16x4_t
18387 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_laneq_f16(float16x4_t __r,float16x4_t __a,float16x8_t __b,const int __index)18388 vcmla_laneq_f16 (float16x4_t __r, float16x4_t __a, float16x8_t __b,
18389 const int __index)
18390 {
18391 return __builtin_neon_vcmla_laneq0v4hf (__r, __a, __b, __index);
18392 }
18393
18394 __extension__ extern __inline float16x8_t
18395 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_lane_f16(float16x8_t __r,float16x8_t __a,float16x4_t __b,const int __index)18396 vcmlaq_lane_f16 (float16x8_t __r, float16x8_t __a, float16x4_t __b,
18397 const int __index)
18398 {
18399 return __builtin_neon_vcmlaq_lane0v8hf (__r, __a, __b, __index);
18400 }
18401
18402 __extension__ extern __inline float16x8_t
18403 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_laneq_f16(float16x8_t __r,float16x8_t __a,float16x8_t __b,const int __index)18404 vcmlaq_laneq_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b,
18405 const int __index)
18406 {
18407 return __builtin_neon_vcmla_lane0v8hf (__r, __a, __b, __index);
18408 }
18409
18410 __extension__ extern __inline float16x4_t
18411 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_rot90_f16(float16x4_t __r,float16x4_t __a,float16x4_t __b)18412 vcmla_rot90_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b)
18413 {
18414 return __builtin_neon_vcmla90v4hf (__r, __a, __b);
18415 }
18416
18417 __extension__ extern __inline float16x8_t
18418 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_rot90_f16(float16x8_t __r,float16x8_t __a,float16x8_t __b)18419 vcmlaq_rot90_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b)
18420 {
18421 return __builtin_neon_vcmla90v8hf (__r, __a, __b);
18422 }
18423
18424 __extension__ extern __inline float16x4_t
18425 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_rot90_lane_f16(float16x4_t __r,float16x4_t __a,float16x4_t __b,const int __index)18426 vcmla_rot90_lane_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b,
18427 const int __index)
18428 {
18429 return __builtin_neon_vcmla_lane90v4hf (__r, __a, __b, __index);
18430 }
18431
18432 __extension__ extern __inline float16x4_t
18433 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_rot90_laneq_f16(float16x4_t __r,float16x4_t __a,float16x8_t __b,const int __index)18434 vcmla_rot90_laneq_f16 (float16x4_t __r, float16x4_t __a, float16x8_t __b,
18435 const int __index)
18436 {
18437 return __builtin_neon_vcmla_laneq90v4hf (__r, __a, __b, __index);
18438 }
18439
18440 __extension__ extern __inline float16x8_t
18441 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_rot90_lane_f16(float16x8_t __r,float16x8_t __a,float16x4_t __b,const int __index)18442 vcmlaq_rot90_lane_f16 (float16x8_t __r, float16x8_t __a, float16x4_t __b,
18443 const int __index)
18444 {
18445 return __builtin_neon_vcmlaq_lane90v8hf (__r, __a, __b, __index);
18446 }
18447
18448 __extension__ extern __inline float16x8_t
18449 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_rot90_laneq_f16(float16x8_t __r,float16x8_t __a,float16x8_t __b,const int __index)18450 vcmlaq_rot90_laneq_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b,
18451 const int __index)
18452 {
18453 return __builtin_neon_vcmla_lane90v8hf (__r, __a, __b, __index);
18454 }
18455
18456 __extension__ extern __inline float16x4_t
18457 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_rot180_f16(float16x4_t __r,float16x4_t __a,float16x4_t __b)18458 vcmla_rot180_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b)
18459 {
18460 return __builtin_neon_vcmla180v4hf (__r, __a, __b);
18461 }
18462
18463 __extension__ extern __inline float16x8_t
18464 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_rot180_f16(float16x8_t __r,float16x8_t __a,float16x8_t __b)18465 vcmlaq_rot180_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b)
18466 {
18467 return __builtin_neon_vcmla180v8hf (__r, __a, __b);
18468 }
18469
18470 __extension__ extern __inline float16x4_t
18471 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_rot180_lane_f16(float16x4_t __r,float16x4_t __a,float16x4_t __b,const int __index)18472 vcmla_rot180_lane_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b,
18473 const int __index)
18474 {
18475 return __builtin_neon_vcmla_lane180v4hf (__r, __a, __b, __index);
18476 }
18477
18478 __extension__ extern __inline float16x4_t
18479 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_rot180_laneq_f16(float16x4_t __r,float16x4_t __a,float16x8_t __b,const int __index)18480 vcmla_rot180_laneq_f16 (float16x4_t __r, float16x4_t __a, float16x8_t __b,
18481 const int __index)
18482 {
18483 return __builtin_neon_vcmla_laneq180v4hf (__r, __a, __b, __index);
18484 }
18485
18486 __extension__ extern __inline float16x8_t
18487 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_rot180_lane_f16(float16x8_t __r,float16x8_t __a,float16x4_t __b,const int __index)18488 vcmlaq_rot180_lane_f16 (float16x8_t __r, float16x8_t __a, float16x4_t __b,
18489 const int __index)
18490 {
18491 return __builtin_neon_vcmlaq_lane180v8hf (__r, __a, __b, __index);
18492 }
18493
18494 __extension__ extern __inline float16x8_t
18495 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_rot180_laneq_f16(float16x8_t __r,float16x8_t __a,float16x8_t __b,const int __index)18496 vcmlaq_rot180_laneq_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b,
18497 const int __index)
18498 {
18499 return __builtin_neon_vcmla_lane180v8hf (__r, __a, __b, __index);
18500 }
18501
18502 __extension__ extern __inline float16x4_t
18503 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_rot270_f16(float16x4_t __r,float16x4_t __a,float16x4_t __b)18504 vcmla_rot270_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b)
18505 {
18506 return __builtin_neon_vcmla270v4hf (__r, __a, __b);
18507 }
18508
18509 __extension__ extern __inline float16x8_t
18510 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_rot270_f16(float16x8_t __r,float16x8_t __a,float16x8_t __b)18511 vcmlaq_rot270_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b)
18512 {
18513 return __builtin_neon_vcmla270v8hf (__r, __a, __b);
18514 }
18515
18516 __extension__ extern __inline float16x4_t
18517 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_rot270_lane_f16(float16x4_t __r,float16x4_t __a,float16x4_t __b,const int __index)18518 vcmla_rot270_lane_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b,
18519 const int __index)
18520 {
18521 return __builtin_neon_vcmla_lane270v4hf (__r, __a, __b, __index);
18522 }
18523
18524 __extension__ extern __inline float16x4_t
18525 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_rot270_laneq_f16(float16x4_t __r,float16x4_t __a,float16x8_t __b,const int __index)18526 vcmla_rot270_laneq_f16 (float16x4_t __r, float16x4_t __a, float16x8_t __b,
18527 const int __index)
18528 {
18529 return __builtin_neon_vcmla_laneq270v4hf (__r, __a, __b, __index);
18530 }
18531
18532 __extension__ extern __inline float16x8_t
18533 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_rot270_lane_f16(float16x8_t __r,float16x8_t __a,float16x4_t __b,const int __index)18534 vcmlaq_rot270_lane_f16 (float16x8_t __r, float16x8_t __a, float16x4_t __b,
18535 const int __index)
18536 {
18537 return __builtin_neon_vcmlaq_lane270v8hf (__r, __a, __b, __index);
18538 }
18539
18540 __extension__ extern __inline float16x8_t
18541 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_rot270_laneq_f16(float16x8_t __r,float16x8_t __a,float16x8_t __b,const int __index)18542 vcmlaq_rot270_laneq_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b,
18543 const int __index)
18544 {
18545 return __builtin_neon_vcmla_lane270v8hf (__r, __a, __b, __index);
18546 }
18547
18548 #pragma GCC pop_options
18549 #endif
18550
18551 __extension__ extern __inline float32x2_t
18552 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcadd_rot90_f32(float32x2_t __a,float32x2_t __b)18553 vcadd_rot90_f32 (float32x2_t __a, float32x2_t __b)
18554 {
18555 return __builtin_neon_vcadd90v2sf (__a, __b);
18556 }
18557
18558 __extension__ extern __inline float32x4_t
18559 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcaddq_rot90_f32(float32x4_t __a,float32x4_t __b)18560 vcaddq_rot90_f32 (float32x4_t __a, float32x4_t __b)
18561 {
18562 return __builtin_neon_vcadd90v4sf (__a, __b);
18563 }
18564
18565 __extension__ extern __inline float32x2_t
18566 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcadd_rot270_f32(float32x2_t __a,float32x2_t __b)18567 vcadd_rot270_f32 (float32x2_t __a, float32x2_t __b)
18568 {
18569 return __builtin_neon_vcadd90v2sf (__a, __b);
18570 }
18571
18572 __extension__ extern __inline float32x4_t
18573 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcaddq_rot270_f32(float32x4_t __a,float32x4_t __b)18574 vcaddq_rot270_f32 (float32x4_t __a, float32x4_t __b)
18575 {
18576 return __builtin_neon_vcadd90v4sf (__a, __b);
18577 }
18578
18579 __extension__ extern __inline float32x2_t
18580 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_f32(float32x2_t __r,float32x2_t __a,float32x2_t __b)18581 vcmla_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b)
18582 {
18583 return __builtin_neon_vcmla0v2sf (__r, __a, __b);
18584 }
18585
18586 __extension__ extern __inline float32x4_t
18587 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_f32(float32x4_t __r,float32x4_t __a,float32x4_t __b)18588 vcmlaq_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b)
18589 {
18590 return __builtin_neon_vcmla0v4sf (__r, __a, __b);
18591 }
18592
18593 __extension__ extern __inline float32x2_t
18594 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_lane_f32(float32x2_t __r,float32x2_t __a,float32x2_t __b,const int __index)18595 vcmla_lane_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b,
18596 const int __index)
18597 {
18598 return __builtin_neon_vcmla_lane0v2sf (__r, __a, __b, __index);
18599 }
18600
18601 __extension__ extern __inline float32x2_t
18602 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_laneq_f32(float32x2_t __r,float32x2_t __a,float32x4_t __b,const int __index)18603 vcmla_laneq_f32 (float32x2_t __r, float32x2_t __a, float32x4_t __b,
18604 const int __index)
18605 {
18606 return __builtin_neon_vcmla_laneq0v2sf (__r, __a, __b, __index);
18607 }
18608
18609 __extension__ extern __inline float32x4_t
18610 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_lane_f32(float32x4_t __r,float32x4_t __a,float32x2_t __b,const int __index)18611 vcmlaq_lane_f32 (float32x4_t __r, float32x4_t __a, float32x2_t __b,
18612 const int __index)
18613 {
18614 return __builtin_neon_vcmlaq_lane0v4sf (__r, __a, __b, __index);
18615 }
18616
18617 __extension__ extern __inline float32x4_t
18618 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_laneq_f32(float32x4_t __r,float32x4_t __a,float32x4_t __b,const int __index)18619 vcmlaq_laneq_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b,
18620 const int __index)
18621 {
18622 return __builtin_neon_vcmla_lane0v4sf (__r, __a, __b, __index);
18623 }
18624
18625 __extension__ extern __inline float32x2_t
18626 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_rot90_f32(float32x2_t __r,float32x2_t __a,float32x2_t __b)18627 vcmla_rot90_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b)
18628 {
18629 return __builtin_neon_vcmla90v2sf (__r, __a, __b);
18630 }
18631
18632 __extension__ extern __inline float32x4_t
18633 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_rot90_f32(float32x4_t __r,float32x4_t __a,float32x4_t __b)18634 vcmlaq_rot90_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b)
18635 {
18636 return __builtin_neon_vcmla90v4sf (__r, __a, __b);
18637 }
18638
18639 __extension__ extern __inline float32x2_t
18640 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_rot90_lane_f32(float32x2_t __r,float32x2_t __a,float32x2_t __b,const int __index)18641 vcmla_rot90_lane_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b,
18642 const int __index)
18643 {
18644 return __builtin_neon_vcmla_lane90v2sf (__r, __a, __b, __index);
18645 }
18646
18647 __extension__ extern __inline float32x2_t
18648 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_rot90_laneq_f32(float32x2_t __r,float32x2_t __a,float32x4_t __b,const int __index)18649 vcmla_rot90_laneq_f32 (float32x2_t __r, float32x2_t __a, float32x4_t __b,
18650 const int __index)
18651 {
18652 return __builtin_neon_vcmla_laneq90v2sf (__r, __a, __b, __index);
18653 }
18654
18655 __extension__ extern __inline float32x4_t
18656 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_rot90_lane_f32(float32x4_t __r,float32x4_t __a,float32x2_t __b,const int __index)18657 vcmlaq_rot90_lane_f32 (float32x4_t __r, float32x4_t __a, float32x2_t __b,
18658 const int __index)
18659 {
18660 return __builtin_neon_vcmlaq_lane90v4sf (__r, __a, __b, __index);
18661 }
18662
18663 __extension__ extern __inline float32x4_t
18664 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_rot90_laneq_f32(float32x4_t __r,float32x4_t __a,float32x4_t __b,const int __index)18665 vcmlaq_rot90_laneq_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b,
18666 const int __index)
18667 {
18668 return __builtin_neon_vcmla_lane90v4sf (__r, __a, __b, __index);
18669 }
18670
18671 __extension__ extern __inline float32x2_t
18672 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_rot180_f32(float32x2_t __r,float32x2_t __a,float32x2_t __b)18673 vcmla_rot180_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b)
18674 {
18675 return __builtin_neon_vcmla180v2sf (__r, __a, __b);
18676 }
18677
18678 __extension__ extern __inline float32x4_t
18679 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_rot180_f32(float32x4_t __r,float32x4_t __a,float32x4_t __b)18680 vcmlaq_rot180_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b)
18681 {
18682 return __builtin_neon_vcmla180v4sf (__r, __a, __b);
18683 }
18684
18685 __extension__ extern __inline float32x2_t
18686 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_rot180_lane_f32(float32x2_t __r,float32x2_t __a,float32x2_t __b,const int __index)18687 vcmla_rot180_lane_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b,
18688 const int __index)
18689 {
18690 return __builtin_neon_vcmla_lane180v2sf (__r, __a, __b, __index);
18691 }
18692
18693 __extension__ extern __inline float32x2_t
18694 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_rot180_laneq_f32(float32x2_t __r,float32x2_t __a,float32x4_t __b,const int __index)18695 vcmla_rot180_laneq_f32 (float32x2_t __r, float32x2_t __a, float32x4_t __b,
18696 const int __index)
18697 {
18698 return __builtin_neon_vcmla_laneq180v2sf (__r, __a, __b, __index);
18699 }
18700
18701 __extension__ extern __inline float32x4_t
18702 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_rot180_lane_f32(float32x4_t __r,float32x4_t __a,float32x2_t __b,const int __index)18703 vcmlaq_rot180_lane_f32 (float32x4_t __r, float32x4_t __a, float32x2_t __b,
18704 const int __index)
18705 {
18706 return __builtin_neon_vcmlaq_lane180v4sf (__r, __a, __b, __index);
18707 }
18708
18709 __extension__ extern __inline float32x4_t
18710 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_rot180_laneq_f32(float32x4_t __r,float32x4_t __a,float32x4_t __b,const int __index)18711 vcmlaq_rot180_laneq_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b,
18712 const int __index)
18713 {
18714 return __builtin_neon_vcmla_lane180v4sf (__r, __a, __b, __index);
18715 }
18716
18717 __extension__ extern __inline float32x2_t
18718 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_rot270_f32(float32x2_t __r,float32x2_t __a,float32x2_t __b)18719 vcmla_rot270_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b)
18720 {
18721 return __builtin_neon_vcmla270v2sf (__r, __a, __b);
18722 }
18723
18724 __extension__ extern __inline float32x4_t
18725 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_rot270_f32(float32x4_t __r,float32x4_t __a,float32x4_t __b)18726 vcmlaq_rot270_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b)
18727 {
18728 return __builtin_neon_vcmla270v4sf (__r, __a, __b);
18729 }
18730
18731 __extension__ extern __inline float32x2_t
18732 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_rot270_lane_f32(float32x2_t __r,float32x2_t __a,float32x2_t __b,const int __index)18733 vcmla_rot270_lane_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b,
18734 const int __index)
18735 {
18736 return __builtin_neon_vcmla_lane270v2sf (__r, __a, __b, __index);
18737 }
18738
18739 __extension__ extern __inline float32x2_t
18740 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_rot270_laneq_f32(float32x2_t __r,float32x2_t __a,float32x4_t __b,const int __index)18741 vcmla_rot270_laneq_f32 (float32x2_t __r, float32x2_t __a, float32x4_t __b,
18742 const int __index)
18743 {
18744 return __builtin_neon_vcmla_laneq270v2sf (__r, __a, __b, __index);
18745 }
18746
18747 __extension__ extern __inline float32x4_t
18748 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_rot270_lane_f32(float32x4_t __r,float32x4_t __a,float32x2_t __b,const int __index)18749 vcmlaq_rot270_lane_f32 (float32x4_t __r, float32x4_t __a, float32x2_t __b,
18750 const int __index)
18751 {
18752 return __builtin_neon_vcmlaq_lane270v4sf (__r, __a, __b, __index);
18753 }
18754
18755 __extension__ extern __inline float32x4_t
18756 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_rot270_laneq_f32(float32x4_t __r,float32x4_t __a,float32x4_t __b,const int __index)18757 vcmlaq_rot270_laneq_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b,
18758 const int __index)
18759 {
18760 return __builtin_neon_vcmla_lane270v4sf (__r, __a, __b, __index);
18761 }
18762
18763
18764 /* AdvSIMD Matrix Multiply-Accumulate and Dot Product intrinsics. */
18765 #pragma GCC push_options
18766 #pragma GCC target ("arch=armv8.2-a+i8mm")
18767
18768 __extension__ extern __inline int32x2_t
18769 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vusdot_s32(int32x2_t __r,uint8x8_t __a,int8x8_t __b)18770 vusdot_s32 (int32x2_t __r, uint8x8_t __a, int8x8_t __b)
18771 {
18772 return __builtin_neon_usdotv8qi_ssus (__r, __a, __b);
18773 }
18774
18775 __extension__ extern __inline int32x2_t
18776 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vusdot_lane_s32(int32x2_t __r,uint8x8_t __a,int8x8_t __b,const int __index)18777 vusdot_lane_s32 (int32x2_t __r, uint8x8_t __a,
18778 int8x8_t __b, const int __index)
18779 {
18780 return __builtin_neon_usdot_lanev8qi_ssuss (__r, __a, __b, __index);
18781 }
18782
18783 __extension__ extern __inline int32x4_t
18784 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vusdotq_lane_s32(int32x4_t __r,uint8x16_t __a,int8x8_t __b,const int __index)18785 vusdotq_lane_s32 (int32x4_t __r, uint8x16_t __a,
18786 int8x8_t __b, const int __index)
18787 {
18788 return __builtin_neon_usdot_lanev16qi_ssuss (__r, __a, __b, __index);
18789 }
18790
18791 __extension__ extern __inline int32x2_t
18792 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsudot_lane_s32(int32x2_t __r,int8x8_t __a,uint8x8_t __b,const int __index)18793 vsudot_lane_s32 (int32x2_t __r, int8x8_t __a,
18794 uint8x8_t __b, const int __index)
18795 {
18796 return __builtin_neon_sudot_lanev8qi_sssus (__r, __a, __b, __index);
18797 }
18798
18799 __extension__ extern __inline int32x4_t
18800 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsudotq_lane_s32(int32x4_t __r,int8x16_t __a,uint8x8_t __b,const int __index)18801 vsudotq_lane_s32 (int32x4_t __r, int8x16_t __a,
18802 uint8x8_t __b, const int __index)
18803 {
18804 return __builtin_neon_sudot_lanev16qi_sssus (__r, __a, __b, __index);
18805 }
18806
18807 #pragma GCC pop_options
18808
18809 #pragma GCC pop_options
18810 #endif
18811
18812 /* AdvSIMD 8-bit Integer Matrix Multiply (I8MM) intrinsics. */
18813
18814 #pragma GCC push_options
18815 #pragma GCC target ("arch=armv8.2-a+i8mm")
18816
18817 __extension__ extern __inline int32x4_t
18818 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmmlaq_s32(int32x4_t __r,int8x16_t __a,int8x16_t __b)18819 vmmlaq_s32 (int32x4_t __r, int8x16_t __a, int8x16_t __b)
18820 {
18821 return __builtin_neon_smmlav16qi (__r, __a, __b);
18822 }
18823
18824 __extension__ extern __inline uint32x4_t
18825 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmmlaq_u32(uint32x4_t __r,uint8x16_t __a,uint8x16_t __b)18826 vmmlaq_u32 (uint32x4_t __r, uint8x16_t __a, uint8x16_t __b)
18827 {
18828 return __builtin_neon_ummlav16qi_uuuu (__r, __a, __b);
18829 }
18830
18831 __extension__ extern __inline int32x4_t
18832 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vusmmlaq_s32(int32x4_t __r,uint8x16_t __a,int8x16_t __b)18833 vusmmlaq_s32 (int32x4_t __r, uint8x16_t __a, int8x16_t __b)
18834 {
18835 return __builtin_neon_usmmlav16qi_ssus (__r, __a, __b);
18836 }
18837
18838 #pragma GCC pop_options
18839
18840 /* AdvSIMD Brain half-precision float-point (Bfloat16) intrinsics. */
18841 #pragma GCC push_options
18842 #pragma GCC target ("arch=armv8.2-a+bf16")
18843
18844 __extension__ extern __inline bfloat16x4_t
18845 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcreate_bf16(uint64_t __a)18846 vcreate_bf16 (uint64_t __a)
18847 {
18848 return (bfloat16x4_t) __a;
18849 }
18850
18851 __extension__ extern __inline bfloat16x4_t
18852 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_n_bf16(bfloat16_t __a)18853 vdup_n_bf16 (bfloat16_t __a)
18854 {
18855 return __builtin_neon_vdup_nv4bf (__a);
18856 }
18857
18858 __extension__ extern __inline bfloat16x8_t
18859 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_n_bf16(bfloat16_t __a)18860 vdupq_n_bf16 (bfloat16_t __a)
18861 {
18862 return __builtin_neon_vdup_nv8bf (__a);
18863 }
18864
18865 __extension__ extern __inline bfloat16x4_t
18866 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_lane_bf16(bfloat16x4_t __a,const int __b)18867 vdup_lane_bf16 (bfloat16x4_t __a, const int __b)
18868 {
18869 return __builtin_neon_vdup_lanev4bf (__a, __b);
18870 }
18871
18872 __extension__ extern __inline bfloat16x8_t
18873 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_lane_bf16(bfloat16x4_t __a,const int __b)18874 vdupq_lane_bf16 (bfloat16x4_t __a, const int __b)
18875 {
18876 return __builtin_neon_vdup_lanev8bf (__a, __b);
18877 }
18878
18879 #define vset_lane_bf16(__e, __v, __idx) \
18880 __extension__ \
18881 ({ \
18882 bfloat16_t __elem = (__e); \
18883 bfloat16x4_t __vec = (__v); \
18884 __builtin_arm_lane_check (4, __idx); \
18885 __vec[__arm_lane(__vec, __idx)] = __elem; \
18886 __vec; \
18887 })
18888
18889 #define vsetq_lane_bf16(__e, __v, __idx) \
18890 __extension__ \
18891 ({ \
18892 bfloat16_t __elem = (__e); \
18893 bfloat16x8_t __vec = (__v); \
18894 __builtin_arm_lane_check (8, __idx); \
18895 __vec[__arm_laneq(__vec, __idx)] = __elem; \
18896 __vec; \
18897 })
18898
18899 #define vget_lane_bf16(__v, __idx) \
18900 __extension__ \
18901 ({ \
18902 bfloat16x4_t __vec = (__v); \
18903 __builtin_arm_lane_check (4, __idx); \
18904 bfloat16_t __res = __vec[__arm_lane(__vec, __idx)]; \
18905 __res; \
18906 })
18907
18908 #define vgetq_lane_bf16(__v, __idx) \
18909 __extension__ \
18910 ({ \
18911 bfloat16x8_t __vec = (__v); \
18912 __builtin_arm_lane_check (8, __idx); \
18913 bfloat16_t __res = __vec[__arm_laneq(__vec, __idx)]; \
18914 __res; \
18915 })
18916
18917 __extension__ extern __inline bfloat16x4_t
18918 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_laneq_bf16(bfloat16x8_t __a,const int __b)18919 vdup_laneq_bf16 (bfloat16x8_t __a, const int __b)
18920 {
18921 return vdup_n_bf16( vgetq_lane_bf16 (__a, __b));
18922 }
18923
18924 __extension__ extern __inline bfloat16x8_t
18925 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_laneq_bf16(bfloat16x8_t __a,const int __b)18926 vdupq_laneq_bf16 (bfloat16x8_t __a, const int __b)
18927 {
18928 return vdupq_n_bf16( vgetq_lane_bf16 (__a, __b));
18929 }
18930
18931 __extension__ extern __inline bfloat16_t
18932 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vduph_lane_bf16(bfloat16x4_t __a,const int __b)18933 vduph_lane_bf16 (bfloat16x4_t __a, const int __b)
18934 {
18935 return vget_lane_bf16 (__a, __b);
18936 }
18937
18938 __extension__ extern __inline bfloat16_t
18939 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vduph_laneq_bf16(bfloat16x8_t __a,const int __b)18940 vduph_laneq_bf16 (bfloat16x8_t __a, const int __b)
18941 {
18942 return vgetq_lane_bf16 (__a, __b);
18943 }
18944
18945 __extension__ extern __inline bfloat16x4_t
18946 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_high_bf16(bfloat16x8_t __a)18947 vget_high_bf16 (bfloat16x8_t __a)
18948 {
18949 return __builtin_neon_vget_highv8bf (__a);
18950 }
18951
18952 __extension__ extern __inline bfloat16x4_t
18953 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_low_bf16(bfloat16x8_t __a)18954 vget_low_bf16 (bfloat16x8_t __a)
18955 {
18956 return __builtin_neon_vget_lowv8bf (__a);
18957 }
18958
18959 __extension__ extern __inline bfloat16x8_t
18960 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcombine_bf16(bfloat16x4_t __a,bfloat16x4_t __b)18961 vcombine_bf16 (bfloat16x4_t __a, bfloat16x4_t __b)
18962 {
18963 return __builtin_neon_vcombinev4bf (__a, __b);
18964 }
18965
18966 __extension__ extern __inline bfloat16x4_t
18967 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_bf16_u8(uint8x8_t __a)18968 vreinterpret_bf16_u8 (uint8x8_t __a)
18969 {
18970 return (bfloat16x4_t)__a;
18971 }
18972
18973 __extension__ extern __inline bfloat16x4_t
18974 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_bf16_u16(uint16x4_t __a)18975 vreinterpret_bf16_u16 (uint16x4_t __a)
18976 {
18977 return (bfloat16x4_t)__a;
18978 }
18979
18980 __extension__ extern __inline bfloat16x4_t
18981 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_bf16_u32(uint32x2_t __a)18982 vreinterpret_bf16_u32 (uint32x2_t __a)
18983 {
18984 return (bfloat16x4_t)__a;
18985 }
18986
18987 __extension__ extern __inline bfloat16x4_t
18988 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_bf16_u64(uint64x1_t __a)18989 vreinterpret_bf16_u64 (uint64x1_t __a)
18990 {
18991 return (bfloat16x4_t)__a;
18992 }
18993
18994 __extension__ extern __inline bfloat16x4_t
18995 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_bf16_s8(int8x8_t __a)18996 vreinterpret_bf16_s8 (int8x8_t __a)
18997 {
18998 return (bfloat16x4_t)__a;
18999 }
19000
19001 __extension__ extern __inline bfloat16x4_t
19002 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_bf16_s16(int16x4_t __a)19003 vreinterpret_bf16_s16 (int16x4_t __a)
19004 {
19005 return (bfloat16x4_t)__a;
19006 }
19007
19008 __extension__ extern __inline bfloat16x4_t
19009 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_bf16_s32(int32x2_t __a)19010 vreinterpret_bf16_s32 (int32x2_t __a)
19011 {
19012 return (bfloat16x4_t)__a;
19013 }
19014
19015 __extension__ extern __inline bfloat16x4_t
19016 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_bf16_s64(int64x1_t __a)19017 vreinterpret_bf16_s64 (int64x1_t __a)
19018 {
19019 return (bfloat16x4_t)__a;
19020 }
19021
19022 __extension__ extern __inline bfloat16x4_t
19023 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_bf16_p8(poly8x8_t __a)19024 vreinterpret_bf16_p8 (poly8x8_t __a)
19025 {
19026 return (bfloat16x4_t)__a;
19027 }
19028
19029 __extension__ extern __inline bfloat16x4_t
19030 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_bf16_p16(poly16x4_t __a)19031 vreinterpret_bf16_p16 (poly16x4_t __a)
19032 {
19033 return (bfloat16x4_t)__a;
19034 }
19035
19036 __extension__ extern __inline bfloat16x4_t
19037 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_bf16_p64(poly64x1_t __a)19038 vreinterpret_bf16_p64 (poly64x1_t __a)
19039 {
19040 return (bfloat16x4_t)__a;
19041 }
19042
19043 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
19044 __extension__ extern __inline bfloat16x4_t
19045 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_bf16_f16(float16x4_t __a)19046 vreinterpret_bf16_f16 (float16x4_t __a)
19047 {
19048 return (bfloat16x4_t)__a;
19049 }
19050 #endif
19051
19052 __extension__ extern __inline bfloat16x4_t
19053 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_bf16_f32(float32x2_t __a)19054 vreinterpret_bf16_f32 (float32x2_t __a)
19055 {
19056 return (bfloat16x4_t)__a;
19057 }
19058
19059 __extension__ extern __inline bfloat16x8_t
19060 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_bf16_u8(uint8x16_t __a)19061 vreinterpretq_bf16_u8 (uint8x16_t __a)
19062 {
19063 return (bfloat16x8_t)__a;
19064 }
19065
19066 __extension__ extern __inline bfloat16x8_t
19067 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_bf16_u16(uint16x8_t __a)19068 vreinterpretq_bf16_u16 (uint16x8_t __a)
19069 {
19070 return (bfloat16x8_t)__a;
19071 }
19072
19073 __extension__ extern __inline bfloat16x8_t
19074 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_bf16_u32(uint32x4_t __a)19075 vreinterpretq_bf16_u32 (uint32x4_t __a)
19076 {
19077 return (bfloat16x8_t)__a;
19078 }
19079
19080 __extension__ extern __inline bfloat16x8_t
19081 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_bf16_u64(uint64x2_t __a)19082 vreinterpretq_bf16_u64 (uint64x2_t __a)
19083 {
19084 return (bfloat16x8_t)__a;
19085 }
19086
19087 __extension__ extern __inline bfloat16x8_t
19088 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_bf16_s8(int8x16_t __a)19089 vreinterpretq_bf16_s8 (int8x16_t __a)
19090 {
19091 return (bfloat16x8_t)__a;
19092 }
19093
19094 __extension__ extern __inline bfloat16x8_t
19095 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_bf16_s16(int16x8_t __a)19096 vreinterpretq_bf16_s16 (int16x8_t __a)
19097 {
19098 return (bfloat16x8_t)__a;
19099 }
19100
19101 __extension__ extern __inline bfloat16x8_t
19102 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_bf16_s32(int32x4_t __a)19103 vreinterpretq_bf16_s32 (int32x4_t __a)
19104 {
19105 return (bfloat16x8_t)__a;
19106 }
19107
19108 __extension__ extern __inline bfloat16x8_t
19109 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_bf16_s64(int64x2_t __a)19110 vreinterpretq_bf16_s64 (int64x2_t __a)
19111 {
19112 return (bfloat16x8_t)__a;
19113 }
19114
19115 __extension__ extern __inline bfloat16x8_t
19116 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_bf16_p8(poly8x16_t __a)19117 vreinterpretq_bf16_p8 (poly8x16_t __a)
19118 {
19119 return (bfloat16x8_t)__a;
19120 }
19121
19122 __extension__ extern __inline bfloat16x8_t
19123 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_bf16_p16(poly16x8_t __a)19124 vreinterpretq_bf16_p16 (poly16x8_t __a)
19125 {
19126 return (bfloat16x8_t)__a;
19127 }
19128
19129 __extension__ extern __inline bfloat16x8_t
19130 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_bf16_p64(poly64x2_t __a)19131 vreinterpretq_bf16_p64 (poly64x2_t __a)
19132 {
19133 return (bfloat16x8_t)__a;
19134 }
19135
19136 __extension__ extern __inline bfloat16x8_t
19137 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_bf16_p128(poly128_t __a)19138 vreinterpretq_bf16_p128 (poly128_t __a)
19139 {
19140 return (bfloat16x8_t)__a;
19141 }
19142
19143 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
19144 __extension__ extern __inline bfloat16x8_t
19145 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_bf16_f16(float16x8_t __a)19146 vreinterpretq_bf16_f16 (float16x8_t __a)
19147 {
19148 return (bfloat16x8_t)__a;
19149 }
19150 #endif
19151
19152 __extension__ extern __inline bfloat16x8_t
19153 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_bf16_f32(float32x4_t __a)19154 vreinterpretq_bf16_f32 (float32x4_t __a)
19155 {
19156 return (bfloat16x8_t)__a;
19157 }
19158
19159 __extension__ extern __inline int8x8_t
19160 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s8_bf16(bfloat16x4_t __a)19161 vreinterpret_s8_bf16 (bfloat16x4_t __a)
19162 {
19163 return (int8x8_t)__a;
19164 }
19165
19166 __extension__ extern __inline int16x4_t
19167 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s16_bf16(bfloat16x4_t __a)19168 vreinterpret_s16_bf16 (bfloat16x4_t __a)
19169 {
19170 return (int16x4_t)__a;
19171 }
19172
19173 __extension__ extern __inline int32x2_t
19174 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s32_bf16(bfloat16x4_t __a)19175 vreinterpret_s32_bf16 (bfloat16x4_t __a)
19176 {
19177 return (int32x2_t)__a;
19178 }
19179
19180 __extension__ extern __inline int64x1_t
19181 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s64_bf16(bfloat16x4_t __a)19182 vreinterpret_s64_bf16 (bfloat16x4_t __a)
19183 {
19184 return (int64x1_t)__a;
19185 }
19186
19187 __extension__ extern __inline uint8x8_t
19188 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u8_bf16(bfloat16x4_t __a)19189 vreinterpret_u8_bf16 (bfloat16x4_t __a)
19190 {
19191 return (uint8x8_t)__a;
19192 }
19193
19194 __extension__ extern __inline uint16x4_t
19195 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u16_bf16(bfloat16x4_t __a)19196 vreinterpret_u16_bf16 (bfloat16x4_t __a)
19197 {
19198 return (uint16x4_t)__a;
19199 }
19200
19201 __extension__ extern __inline uint32x2_t
19202 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u32_bf16(bfloat16x4_t __a)19203 vreinterpret_u32_bf16 (bfloat16x4_t __a)
19204 {
19205 return (uint32x2_t)__a;
19206 }
19207
19208 __extension__ extern __inline uint64x1_t
19209 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u64_bf16(bfloat16x4_t __a)19210 vreinterpret_u64_bf16 (bfloat16x4_t __a)
19211 {
19212 return (uint64x1_t)__a;
19213 }
19214
19215 __extension__ extern __inline float32x2_t
19216 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f32_bf16(bfloat16x4_t __a)19217 vreinterpret_f32_bf16 (bfloat16x4_t __a)
19218 {
19219 return (float32x2_t)__a;
19220 }
19221
19222 __extension__ extern __inline poly8x8_t
19223 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p8_bf16(bfloat16x4_t __a)19224 vreinterpret_p8_bf16 (bfloat16x4_t __a)
19225 {
19226 return (poly8x8_t)__a;
19227 }
19228
19229 __extension__ extern __inline poly16x4_t
19230 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p16_bf16(bfloat16x4_t __a)19231 vreinterpret_p16_bf16 (bfloat16x4_t __a)
19232 {
19233 return (poly16x4_t)__a;
19234 }
19235
19236 __extension__ extern __inline poly64x1_t
19237 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p64_bf16(bfloat16x4_t __a)19238 vreinterpret_p64_bf16 (bfloat16x4_t __a)
19239 {
19240 return (poly64x1_t)__a;
19241 }
19242
19243 __extension__ extern __inline int8x16_t
19244 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s8_bf16(bfloat16x8_t __a)19245 vreinterpretq_s8_bf16 (bfloat16x8_t __a)
19246 {
19247 return (int8x16_t)__a;
19248 }
19249
19250 __extension__ extern __inline int16x8_t
19251 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s16_bf16(bfloat16x8_t __a)19252 vreinterpretq_s16_bf16 (bfloat16x8_t __a)
19253 {
19254 return (int16x8_t)__a;
19255 }
19256
19257 __extension__ extern __inline int32x4_t
19258 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s32_bf16(bfloat16x8_t __a)19259 vreinterpretq_s32_bf16 (bfloat16x8_t __a)
19260 {
19261 return (int32x4_t)__a;
19262 }
19263
19264 __extension__ extern __inline int64x2_t
19265 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s64_bf16(bfloat16x8_t __a)19266 vreinterpretq_s64_bf16 (bfloat16x8_t __a)
19267 {
19268 return (int64x2_t)__a;
19269 }
19270
19271 __extension__ extern __inline uint8x16_t
19272 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u8_bf16(bfloat16x8_t __a)19273 vreinterpretq_u8_bf16 (bfloat16x8_t __a)
19274 {
19275 return (uint8x16_t)__a;
19276 }
19277
19278 __extension__ extern __inline uint16x8_t
19279 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u16_bf16(bfloat16x8_t __a)19280 vreinterpretq_u16_bf16 (bfloat16x8_t __a)
19281 {
19282 return (uint16x8_t)__a;
19283 }
19284
19285 __extension__ extern __inline uint32x4_t
19286 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u32_bf16(bfloat16x8_t __a)19287 vreinterpretq_u32_bf16 (bfloat16x8_t __a)
19288 {
19289 return (uint32x4_t)__a;
19290 }
19291
19292 __extension__ extern __inline uint64x2_t
19293 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u64_bf16(bfloat16x8_t __a)19294 vreinterpretq_u64_bf16 (bfloat16x8_t __a)
19295 {
19296 return (uint64x2_t)__a;
19297 }
19298
19299 __extension__ extern __inline float32x4_t
19300 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f32_bf16(bfloat16x8_t __a)19301 vreinterpretq_f32_bf16 (bfloat16x8_t __a)
19302 {
19303 return (float32x4_t)__a;
19304 }
19305
19306 __extension__ extern __inline poly8x16_t
19307 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p8_bf16(bfloat16x8_t __a)19308 vreinterpretq_p8_bf16 (bfloat16x8_t __a)
19309 {
19310 return (poly8x16_t)__a;
19311 }
19312
19313 __extension__ extern __inline poly16x8_t
19314 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p16_bf16(bfloat16x8_t __a)19315 vreinterpretq_p16_bf16 (bfloat16x8_t __a)
19316 {
19317 return (poly16x8_t)__a;
19318 }
19319
19320 __extension__ extern __inline poly64x2_t
19321 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p64_bf16(bfloat16x8_t __a)19322 vreinterpretq_p64_bf16 (bfloat16x8_t __a)
19323 {
19324 return (poly64x2_t)__a;
19325 }
19326
19327 __extension__ extern __inline poly128_t
19328 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p128_bf16(bfloat16x8_t __a)19329 vreinterpretq_p128_bf16 (bfloat16x8_t __a)
19330 {
19331 return (poly128_t)__a;
19332 }
19333
19334 __extension__ extern __inline float32x2_t
19335 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbfdot_f32(float32x2_t __r,bfloat16x4_t __a,bfloat16x4_t __b)19336 vbfdot_f32 (float32x2_t __r, bfloat16x4_t __a, bfloat16x4_t __b)
19337 {
19338 return __builtin_neon_vbfdotv2sf (__r, __a, __b);
19339 }
19340
19341 __extension__ extern __inline float32x4_t
19342 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbfdotq_f32(float32x4_t __r,bfloat16x8_t __a,bfloat16x8_t __b)19343 vbfdotq_f32 (float32x4_t __r, bfloat16x8_t __a, bfloat16x8_t __b)
19344 {
19345 return __builtin_neon_vbfdotv4sf (__r, __a, __b);
19346 }
19347
19348 __extension__ extern __inline float32x2_t
19349 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbfdot_lane_f32(float32x2_t __r,bfloat16x4_t __a,bfloat16x4_t __b,const int __index)19350 vbfdot_lane_f32 (float32x2_t __r, bfloat16x4_t __a, bfloat16x4_t __b,
19351 const int __index)
19352 {
19353 return __builtin_neon_vbfdot_lanev4bfv2sf (__r, __a, __b, __index);
19354 }
19355
19356 __extension__ extern __inline float32x4_t
19357 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbfdotq_laneq_f32(float32x4_t __r,bfloat16x8_t __a,bfloat16x8_t __b,const int __index)19358 vbfdotq_laneq_f32 (float32x4_t __r, bfloat16x8_t __a, bfloat16x8_t __b,
19359 const int __index)
19360 {
19361 return __builtin_neon_vbfdot_lanev8bfv4sf (__r, __a, __b, __index);
19362 }
19363
19364 __extension__ extern __inline float32x2_t
19365 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbfdot_laneq_f32(float32x2_t __r,bfloat16x4_t __a,bfloat16x8_t __b,const int __index)19366 vbfdot_laneq_f32 (float32x2_t __r, bfloat16x4_t __a, bfloat16x8_t __b,
19367 const int __index)
19368 {
19369 return __builtin_neon_vbfdot_lanev8bfv2sf (__r, __a, __b, __index);
19370 }
19371
19372 __extension__ extern __inline float32x4_t
19373 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbfdotq_lane_f32(float32x4_t __r,bfloat16x8_t __a,bfloat16x4_t __b,const int __index)19374 vbfdotq_lane_f32 (float32x4_t __r, bfloat16x8_t __a, bfloat16x4_t __b,
19375 const int __index)
19376 {
19377 return __builtin_neon_vbfdot_lanev4bfv4sf (__r, __a, __b, __index);
19378 }
19379
19380 #pragma GCC pop_options
19381
19382 #pragma GCC push_options
19383 #pragma GCC target ("arch=armv8.2-a+bf16")
19384
19385 typedef struct bfloat16x4x2_t
19386 {
19387 bfloat16x4_t val[2];
19388 } bfloat16x4x2_t;
19389
19390 typedef struct bfloat16x8x2_t
19391 {
19392 bfloat16x8_t val[2];
19393 } bfloat16x8x2_t;
19394
19395 typedef struct bfloat16x4x3_t
19396 {
19397 bfloat16x4_t val[3];
19398 } bfloat16x4x3_t;
19399
19400 typedef struct bfloat16x8x3_t
19401 {
19402 bfloat16x8_t val[3];
19403 } bfloat16x8x3_t;
19404
19405 typedef struct bfloat16x4x4_t
19406 {
19407 bfloat16x4_t val[4];
19408 } bfloat16x4x4_t;
19409
19410 typedef struct bfloat16x8x4_t
19411 {
19412 bfloat16x8_t val[4];
19413 } bfloat16x8x4_t;
19414
19415 __extension__ extern __inline float32x4_t
19416 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_f32_bf16(bfloat16x4_t __a)19417 vcvt_f32_bf16 (bfloat16x4_t __a)
19418 {
19419 return __builtin_neon_vbfcvtv4bf (__a);
19420 }
19421
19422 __extension__ extern __inline float32x4_t
19423 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_low_f32_bf16(bfloat16x8_t __a)19424 vcvtq_low_f32_bf16 (bfloat16x8_t __a)
19425 {
19426 return __builtin_neon_vbfcvtv8bf (__a);
19427 }
19428
19429 __extension__ extern __inline float32x4_t
19430 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_high_f32_bf16(bfloat16x8_t __a)19431 vcvtq_high_f32_bf16 (bfloat16x8_t __a)
19432 {
19433 return __builtin_neon_vbfcvt_highv8bf (__a);
19434 }
19435
19436 __extension__ extern __inline bfloat16x4_t
19437 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_bf16_f32(float32x4_t __a)19438 vcvt_bf16_f32 (float32x4_t __a)
19439 {
19440 return __builtin_neon_vbfcvtv4sfv4bf (__a);
19441 }
19442
19443 __extension__ extern __inline bfloat16x8_t
19444 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_low_bf16_f32(float32x4_t __a)19445 vcvtq_low_bf16_f32 (float32x4_t __a)
19446 {
19447 return __builtin_neon_vbfcvtv4sfv8bf (__a);
19448 }
19449
19450 /* The 'inactive' operand is not converted but it provides the
19451 low 64 bits to assemble the final 128-bit result. */
19452 __extension__ extern __inline bfloat16x8_t
19453 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_high_bf16_f32(bfloat16x8_t inactive,float32x4_t __a)19454 vcvtq_high_bf16_f32 (bfloat16x8_t inactive, float32x4_t __a)
19455 {
19456 return __builtin_neon_vbfcvtv4sf_highv8bf (inactive, __a);
19457 }
19458
19459 __extension__ extern __inline float32x4_t
19460 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbfmmlaq_f32(float32x4_t __r,bfloat16x8_t __a,bfloat16x8_t __b)19461 vbfmmlaq_f32 (float32x4_t __r, bfloat16x8_t __a, bfloat16x8_t __b)
19462 {
19463 return __builtin_neon_vmmlav8bf (__r, __a, __b);
19464 }
19465
19466 __extension__ extern __inline float32x4_t
19467 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbfmlalbq_f32(float32x4_t __r,bfloat16x8_t __a,bfloat16x8_t __b)19468 vbfmlalbq_f32 (float32x4_t __r, bfloat16x8_t __a, bfloat16x8_t __b)
19469 {
19470 return __builtin_neon_vfmabv8bf (__r, __a, __b);
19471 }
19472
19473 __extension__ extern __inline float32x4_t
19474 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbfmlaltq_f32(float32x4_t __r,bfloat16x8_t __a,bfloat16x8_t __b)19475 vbfmlaltq_f32 (float32x4_t __r, bfloat16x8_t __a, bfloat16x8_t __b)
19476 {
19477 return __builtin_neon_vfmatv8bf (__r, __a, __b);
19478 }
19479
19480 __extension__ extern __inline float32x4_t
19481 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbfmlalbq_lane_f32(float32x4_t __r,bfloat16x8_t __a,bfloat16x4_t __b,const int __index)19482 vbfmlalbq_lane_f32 (float32x4_t __r, bfloat16x8_t __a, bfloat16x4_t __b,
19483 const int __index)
19484 {
19485 return __builtin_neon_vfmab_lanev8bf (__r, __a, __b, __index);
19486 }
19487
19488 __extension__ extern __inline float32x4_t
19489 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbfmlaltq_lane_f32(float32x4_t __r,bfloat16x8_t __a,bfloat16x4_t __b,const int __index)19490 vbfmlaltq_lane_f32 (float32x4_t __r, bfloat16x8_t __a, bfloat16x4_t __b,
19491 const int __index)
19492 {
19493 return __builtin_neon_vfmat_lanev8bf (__r, __a, __b, __index);
19494 }
19495
19496 __extension__ extern __inline float32x4_t
19497 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbfmlalbq_laneq_f32(float32x4_t __r,bfloat16x8_t __a,bfloat16x8_t __b,const int __index)19498 vbfmlalbq_laneq_f32 (float32x4_t __r, bfloat16x8_t __a, bfloat16x8_t __b,
19499 const int __index)
19500 {
19501 return __builtin_neon_vfmab_laneqv8bf (__r, __a, __b, __index);
19502 }
19503
19504 __extension__ extern __inline float32x4_t
19505 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbfmlaltq_laneq_f32(float32x4_t __r,bfloat16x8_t __a,bfloat16x8_t __b,const int __index)19506 vbfmlaltq_laneq_f32 (float32x4_t __r, bfloat16x8_t __a, bfloat16x8_t __b,
19507 const int __index)
19508 {
19509 return __builtin_neon_vfmat_laneqv8bf (__r, __a, __b, __index);
19510 }
19511
19512 __extension__ extern __inline void
19513 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_bf16(bfloat16_t * __a,bfloat16x4_t __b)19514 vst1_bf16 (bfloat16_t * __a, bfloat16x4_t __b)
19515 {
19516 __builtin_neon_vst1v4bf (__a, __b);
19517 }
19518
19519 __extension__ extern __inline void
19520 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_bf16(bfloat16_t * __a,bfloat16x8_t __b)19521 vst1q_bf16 (bfloat16_t * __a, bfloat16x8_t __b)
19522 {
19523 __builtin_neon_vst1v8bf (__a, __b);
19524 }
19525
19526 __extension__ extern __inline void
19527 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2_bf16(bfloat16_t * __ptr,bfloat16x4x2_t __val)19528 vst2_bf16 (bfloat16_t * __ptr, bfloat16x4x2_t __val)
19529 {
19530 union { bfloat16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __val };
19531 return __builtin_neon_vst2v4bf (__ptr, __bu.__o);
19532 }
19533
19534 __extension__ extern __inline void
19535 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2q_bf16(bfloat16_t * __ptr,bfloat16x8x2_t __val)19536 vst2q_bf16 (bfloat16_t * __ptr, bfloat16x8x2_t __val)
19537 {
19538 union { bfloat16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __val };
19539 return __builtin_neon_vst2v8bf (__ptr, __bu.__o);
19540 }
19541
19542 __extension__ extern __inline void
19543 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3_bf16(bfloat16_t * __ptr,bfloat16x4x3_t __val)19544 vst3_bf16 (bfloat16_t * __ptr, bfloat16x4x3_t __val)
19545 {
19546 union { bfloat16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __val };
19547 return __builtin_neon_vst3v4bf (__ptr, __bu.__o);
19548 }
19549
19550 __extension__ extern __inline void
19551 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3q_bf16(bfloat16_t * __ptr,bfloat16x8x3_t __val)19552 vst3q_bf16 (bfloat16_t * __ptr, bfloat16x8x3_t __val)
19553 {
19554 union { bfloat16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __val };
19555 return __builtin_neon_vst3v8bf (__ptr, __bu.__o);
19556 }
19557
19558 __extension__ extern __inline void
19559 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4_bf16(bfloat16_t * __ptr,bfloat16x4x4_t __val)19560 vst4_bf16 (bfloat16_t * __ptr, bfloat16x4x4_t __val)
19561 {
19562 union { bfloat16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __val };
19563 return __builtin_neon_vst4v4bf (__ptr, __bu.__o);
19564 }
19565
19566 __extension__ extern __inline void
19567 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4q_bf16(bfloat16_t * __ptr,bfloat16x8x4_t __val)19568 vst4q_bf16 (bfloat16_t * __ptr, bfloat16x8x4_t __val)
19569 {
19570 union { bfloat16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __val };
19571 return __builtin_neon_vst4v8bf (__ptr, __bu.__o);
19572 }
19573
19574 __extension__ extern __inline bfloat16x4_t
19575 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_bf16(bfloat16_t const * __ptr)19576 vld1_bf16 (bfloat16_t const * __ptr)
19577 {
19578 return __builtin_neon_vld1v4bf (__ptr);
19579 }
19580
19581 __extension__ extern __inline bfloat16x8_t
19582 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_bf16(const bfloat16_t * __ptr)19583 vld1q_bf16 (const bfloat16_t * __ptr)
19584 {
19585 return __builtin_neon_vld1v8bf (__ptr);
19586 }
19587
19588 __extension__ extern __inline bfloat16x4x2_t
19589 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_bf16(bfloat16_t const * __ptr)19590 vld2_bf16 (bfloat16_t const * __ptr)
19591 {
19592 union { bfloat16x4x2_t __i; __builtin_neon_ti __o; } __rv;
19593 __rv.__o = __builtin_neon_vld2v4bf ((const __builtin_neon_bf *) __ptr);
19594 return __rv.__i;
19595 }
19596
19597 __extension__ extern __inline bfloat16x8x2_t
19598 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_bf16(const bfloat16_t * __ptr)19599 vld2q_bf16 (const bfloat16_t * __ptr)
19600 {
19601 union { bfloat16x8x2_t __i; __builtin_neon_oi __o; } __rv;
19602 __rv.__o = __builtin_neon_vld2v8bf ((const __builtin_neon_bf *) __ptr);
19603 return __rv.__i;
19604 }
19605
19606 __extension__ extern __inline bfloat16x4x3_t
19607 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_bf16(const bfloat16_t * __ptr)19608 vld3_bf16 (const bfloat16_t * __ptr)
19609 {
19610 union { bfloat16x4x3_t __i; __builtin_neon_ei __o; } __rv;
19611 __rv.__o = __builtin_neon_vld3v4bf ((const __builtin_neon_bf *) __ptr);
19612 return __rv.__i;
19613 }
19614
19615 __extension__ extern __inline bfloat16x8x3_t
19616 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_bf16(const bfloat16_t * __ptr)19617 vld3q_bf16 (const bfloat16_t * __ptr)
19618 {
19619 union { bfloat16x8x3_t __i; __builtin_neon_ci __o; } __rv;
19620 __rv.__o = __builtin_neon_vld3v8bf ((const __builtin_neon_bf *) __ptr);
19621 return __rv.__i;
19622 }
19623
19624 __extension__ extern __inline bfloat16x4x4_t
19625 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_bf16(const bfloat16_t * __ptr)19626 vld4_bf16 (const bfloat16_t * __ptr)
19627 {
19628 union { bfloat16x4x4_t __i; __builtin_neon_oi __o; } __rv;
19629 __rv.__o = __builtin_neon_vld4v4bf ((const __builtin_neon_bf *) __ptr);
19630 return __rv.__i;
19631 }
19632
19633 __extension__ extern __inline bfloat16x8x4_t
19634 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_bf16(const bfloat16_t * __ptr)19635 vld4q_bf16 (const bfloat16_t * __ptr)
19636 {
19637 union { bfloat16x8x4_t __i; __builtin_neon_xi __o; } __rv;
19638 __rv.__o = __builtin_neon_vld4v8bf ((const __builtin_neon_bf *) __ptr);
19639 return __rv.__i;
19640 }
19641
19642 __extension__ extern __inline bfloat16x4x2_t
19643 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_dup_bf16(const bfloat16_t * __ptr)19644 vld2_dup_bf16 (const bfloat16_t * __ptr)
19645 {
19646 union { bfloat16x4x2_t __i; __builtin_neon_ti __o; } __rv;
19647 __rv.__o = __builtin_neon_vld2_dupv4bf ((const __builtin_neon_bf *) __ptr);
19648 return __rv.__i;
19649 }
19650
19651 __extension__ extern __inline bfloat16x8x2_t
19652 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_dup_bf16(const bfloat16_t * __ptr)19653 vld2q_dup_bf16 (const bfloat16_t * __ptr)
19654 {
19655 union { bfloat16x8x2_t __i; __builtin_neon_oi __o; } __rv;
19656 __rv.__o = __builtin_neon_vld2_dupv8bf ((const __builtin_neon_bf *) __ptr);
19657 return __rv.__i;
19658 }
19659
19660 __extension__ extern __inline bfloat16x4x3_t
19661 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_dup_bf16(const bfloat16_t * __ptr)19662 vld3_dup_bf16 (const bfloat16_t * __ptr)
19663 {
19664 union { bfloat16x4x3_t __i; __builtin_neon_ei __o; } __rv;
19665 __rv.__o = __builtin_neon_vld3_dupv4bf ((const __builtin_neon_bf *) __ptr);
19666 return __rv.__i;
19667 }
19668
19669 __extension__ extern __inline bfloat16x8x3_t
19670 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_dup_bf16(const bfloat16_t * __ptr)19671 vld3q_dup_bf16 (const bfloat16_t * __ptr)
19672 {
19673 union { bfloat16x8x3_t __i; __builtin_neon_ci __o; } __rv;
19674 __rv.__o = __builtin_neon_vld3_dupv8bf ((const __builtin_neon_bf *) __ptr);
19675 return __rv.__i;
19676 }
19677
19678 __extension__ extern __inline bfloat16x4x4_t
19679 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_dup_bf16(const bfloat16_t * __ptr)19680 vld4_dup_bf16 (const bfloat16_t * __ptr)
19681 {
19682 union { bfloat16x4x4_t __i; __builtin_neon_oi __o; } __rv;
19683 __rv.__o = __builtin_neon_vld4_dupv4bf ((const __builtin_neon_bf *) __ptr);
19684 return __rv.__i;
19685 }
19686
19687 __extension__ extern __inline bfloat16x8x4_t
19688 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_dup_bf16(const bfloat16_t * __ptr)19689 vld4q_dup_bf16 (const bfloat16_t * __ptr)
19690 {
19691 union { bfloat16x8x4_t __i; __builtin_neon_xi __o; } __rv;
19692 __rv.__o = __builtin_neon_vld4_dupv8bf ((const __builtin_neon_bf *) __ptr);
19693 return __rv.__i;
19694 }
19695
19696 __extension__ extern __inline bfloat16x4_t
19697 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_lane_bf16(const bfloat16_t * __a,bfloat16x4_t __b,const int __c)19698 vld1_lane_bf16 (const bfloat16_t * __a, bfloat16x4_t __b, const int __c)
19699 {
19700 return __builtin_neon_vld1_lanev4bf (__a, __b, __c);
19701 }
19702
19703 __extension__ extern __inline bfloat16x8_t
19704 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_lane_bf16(const bfloat16_t * __a,bfloat16x8_t __b,const int __c)19705 vld1q_lane_bf16 (const bfloat16_t * __a, bfloat16x8_t __b, const int __c)
19706 {
19707 return __builtin_neon_vld1_lanev8bf (__a, __b, __c);
19708 }
19709
19710 __extension__ extern __inline void
19711 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_lane_bf16(bfloat16_t * __a,bfloat16x4_t __b,const int __c)19712 vst1_lane_bf16 (bfloat16_t * __a, bfloat16x4_t __b, const int __c)
19713 {
19714 __builtin_neon_vst1_lanev4bf (__a, __b, __c);
19715 }
19716
19717 __extension__ extern __inline void
19718 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_lane_bf16(bfloat16_t * __a,bfloat16x8_t __b,const int __c)19719 vst1q_lane_bf16 (bfloat16_t * __a, bfloat16x8_t __b, const int __c)
19720 {
19721 __builtin_neon_vst1_lanev8bf (__a, __b, __c);
19722 }
19723
19724 __extension__ extern __inline bfloat16x4x2_t
19725 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_lane_bf16(const bfloat16_t * __a,bfloat16x4x2_t __b,const int __c)19726 vld2_lane_bf16 (const bfloat16_t * __a, bfloat16x4x2_t __b, const int __c)
19727 {
19728 union { bfloat16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
19729 union { bfloat16x4x2_t __i; __builtin_neon_ti __o; } __rv;
19730 __rv.__o = __builtin_neon_vld2_lanev4bf ( __a, __bu.__o, __c);
19731 return __rv.__i;
19732 }
19733
19734 __extension__ extern __inline bfloat16x8x2_t
19735 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_lane_bf16(const bfloat16_t * __a,bfloat16x8x2_t __b,const int __c)19736 vld2q_lane_bf16 (const bfloat16_t * __a, bfloat16x8x2_t __b, const int __c)
19737 {
19738 union { bfloat16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
19739 union { bfloat16x8x2_t __i; __builtin_neon_oi __o; } __rv;
19740 __rv.__o = __builtin_neon_vld2_lanev8bf (__a, __bu.__o, __c);
19741 return __rv.__i;
19742 }
19743
19744 __extension__ extern __inline bfloat16x4x3_t
19745 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_lane_bf16(const bfloat16_t * __a,bfloat16x4x3_t __b,const int __c)19746 vld3_lane_bf16 (const bfloat16_t * __a, bfloat16x4x3_t __b, const int __c)
19747 {
19748 union { bfloat16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
19749 union { bfloat16x4x3_t __i; __builtin_neon_ei __o; } __rv;
19750 __rv.__o = __builtin_neon_vld3_lanev4bf (__a, __bu.__o, __c);
19751 return __rv.__i;
19752 }
19753
19754 __extension__ extern __inline bfloat16x8x3_t
19755 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_lane_bf16(const bfloat16_t * __a,bfloat16x8x3_t __b,const int __c)19756 vld3q_lane_bf16 (const bfloat16_t * __a, bfloat16x8x3_t __b, const int __c)
19757 {
19758 union { bfloat16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
19759 union { bfloat16x8x3_t __i; __builtin_neon_ci __o; } __rv;
19760 __rv.__o = __builtin_neon_vld3_lanev8bf (__a, __bu.__o, __c);
19761 return __rv.__i;
19762 }
19763
19764 __extension__ extern __inline bfloat16x4x4_t
19765 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_lane_bf16(const bfloat16_t * __a,bfloat16x4x4_t __b,const int __c)19766 vld4_lane_bf16 (const bfloat16_t * __a, bfloat16x4x4_t __b, const int __c)
19767 {
19768 union { bfloat16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
19769 union { bfloat16x4x4_t __i; __builtin_neon_oi __o; } __rv;
19770 __rv.__o = __builtin_neon_vld4_lanev4bf (__a,
19771 __bu.__o, __c);
19772 return __rv.__i;
19773 }
19774
19775 __extension__ extern __inline bfloat16x8x4_t
19776 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_lane_bf16(const bfloat16_t * __a,bfloat16x8x4_t __b,const int __c)19777 vld4q_lane_bf16 (const bfloat16_t * __a, bfloat16x8x4_t __b, const int __c)
19778 {
19779 union { bfloat16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
19780 union { bfloat16x8x4_t __i; __builtin_neon_xi __o; } __rv;
19781 __rv.__o = __builtin_neon_vld4_lanev8bf (__a,
19782 __bu.__o, __c);
19783 return __rv.__i;
19784 }
19785
19786 __extension__ extern __inline void
19787 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2_lane_bf16(bfloat16_t * __a,bfloat16x4x2_t __b,const int __c)19788 vst2_lane_bf16 (bfloat16_t * __a, bfloat16x4x2_t __b, const int __c)
19789 {
19790 union { bfloat16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
19791 __builtin_neon_vst2_lanev4bf (__a, __bu.__o, __c);
19792 }
19793
19794 __extension__ extern __inline void
19795 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2q_lane_bf16(bfloat16_t * __a,bfloat16x8x2_t __b,const int __c)19796 vst2q_lane_bf16 (bfloat16_t * __a, bfloat16x8x2_t __b, const int __c)
19797 {
19798 union { bfloat16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
19799 __builtin_neon_vst2_lanev8bf (__a, __bu.__o, __c);
19800 }
19801
19802 __extension__ extern __inline void
19803 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3_lane_bf16(bfloat16_t * __a,bfloat16x4x3_t __b,const int __c)19804 vst3_lane_bf16 (bfloat16_t * __a, bfloat16x4x3_t __b, const int __c)
19805 {
19806 union { bfloat16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
19807 __builtin_neon_vst3_lanev4bf (__a, __bu.__o, __c);
19808 }
19809
19810 __extension__ extern __inline void
19811 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3q_lane_bf16(bfloat16_t * __a,bfloat16x8x3_t __b,const int __c)19812 vst3q_lane_bf16 (bfloat16_t * __a, bfloat16x8x3_t __b, const int __c)
19813 {
19814 union { bfloat16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
19815 __builtin_neon_vst3_lanev8bf (__a, __bu.__o, __c);
19816 }
19817
19818 __extension__ extern __inline void
19819 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4_lane_bf16(bfloat16_t * __a,bfloat16x4x4_t __b,const int __c)19820 vst4_lane_bf16 (bfloat16_t * __a, bfloat16x4x4_t __b, const int __c)
19821 {
19822 union { bfloat16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
19823 __builtin_neon_vst4_lanev4bf (__a, __bu.__o, __c);
19824 }
19825
19826 __extension__ extern __inline void
19827 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4q_lane_bf16(bfloat16_t * __a,bfloat16x8x4_t __b,const int __c)19828 vst4q_lane_bf16 (bfloat16_t * __a, bfloat16x8x4_t __b, const int __c)
19829 {
19830 union { bfloat16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
19831 __builtin_neon_vst4_lanev8bf (__a, __bu.__o, __c);
19832 }
19833
19834 #pragma GCC pop_options
19835
19836 #ifdef __cplusplus
19837 }
19838 #endif
19839
19840 #pragma GCC pop_options
19841
19842 #endif
19843 #endif
19844