2016-11-28 Tamar Christina <tamar.christina@arm.com>
[official-gcc.git] / gcc / config / aarch64 / arm_neon.h
blob7d4d2a25ab80ae2daa9c8f8f004b07d2a64111ad
1 /* ARM NEON intrinsics include file.
3 Copyright (C) 2011-2016 Free Software Foundation, Inc.
4 Contributed by ARM Ltd.
6 This file is part of GCC.
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.
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.
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.
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/>. */
27 #ifndef _AARCH64_NEON_H_
28 #define _AARCH64_NEON_H_
30 #pragma GCC push_options
31 #pragma GCC target ("+nothing+simd")
33 #include <stdint.h>
35 #define __AARCH64_UINT64_C(__C) ((uint64_t) __C)
36 #define __AARCH64_INT64_C(__C) ((int64_t) __C)
38 typedef __Int8x8_t int8x8_t;
39 typedef __Int16x4_t int16x4_t;
40 typedef __Int32x2_t int32x2_t;
41 typedef __Int64x1_t int64x1_t;
42 typedef __Float16x4_t float16x4_t;
43 typedef __Float32x2_t float32x2_t;
44 typedef __Poly8x8_t poly8x8_t;
45 typedef __Poly16x4_t poly16x4_t;
46 typedef __Uint8x8_t uint8x8_t;
47 typedef __Uint16x4_t uint16x4_t;
48 typedef __Uint32x2_t uint32x2_t;
49 typedef __Float64x1_t float64x1_t;
50 typedef __Uint64x1_t uint64x1_t;
51 typedef __Int8x16_t int8x16_t;
52 typedef __Int16x8_t int16x8_t;
53 typedef __Int32x4_t int32x4_t;
54 typedef __Int64x2_t int64x2_t;
55 typedef __Float16x8_t float16x8_t;
56 typedef __Float32x4_t float32x4_t;
57 typedef __Float64x2_t float64x2_t;
58 typedef __Poly8x16_t poly8x16_t;
59 typedef __Poly16x8_t poly16x8_t;
60 typedef __Poly64x2_t poly64x2_t;
61 typedef __Poly64x1_t poly64x1_t;
62 typedef __Uint8x16_t uint8x16_t;
63 typedef __Uint16x8_t uint16x8_t;
64 typedef __Uint32x4_t uint32x4_t;
65 typedef __Uint64x2_t uint64x2_t;
67 typedef __Poly8_t poly8_t;
68 typedef __Poly16_t poly16_t;
69 typedef __Poly64_t poly64_t;
70 typedef __Poly128_t poly128_t;
72 typedef __fp16 float16_t;
73 typedef float float32_t;
74 typedef double float64_t;
76 typedef struct int8x8x2_t
78 int8x8_t val[2];
79 } int8x8x2_t;
81 typedef struct int8x16x2_t
83 int8x16_t val[2];
84 } int8x16x2_t;
86 typedef struct int16x4x2_t
88 int16x4_t val[2];
89 } int16x4x2_t;
91 typedef struct int16x8x2_t
93 int16x8_t val[2];
94 } int16x8x2_t;
96 typedef struct int32x2x2_t
98 int32x2_t val[2];
99 } int32x2x2_t;
101 typedef struct int32x4x2_t
103 int32x4_t val[2];
104 } int32x4x2_t;
106 typedef struct int64x1x2_t
108 int64x1_t val[2];
109 } int64x1x2_t;
111 typedef struct int64x2x2_t
113 int64x2_t val[2];
114 } int64x2x2_t;
116 typedef struct uint8x8x2_t
118 uint8x8_t val[2];
119 } uint8x8x2_t;
121 typedef struct uint8x16x2_t
123 uint8x16_t val[2];
124 } uint8x16x2_t;
126 typedef struct uint16x4x2_t
128 uint16x4_t val[2];
129 } uint16x4x2_t;
131 typedef struct uint16x8x2_t
133 uint16x8_t val[2];
134 } uint16x8x2_t;
136 typedef struct uint32x2x2_t
138 uint32x2_t val[2];
139 } uint32x2x2_t;
141 typedef struct uint32x4x2_t
143 uint32x4_t val[2];
144 } uint32x4x2_t;
146 typedef struct uint64x1x2_t
148 uint64x1_t val[2];
149 } uint64x1x2_t;
151 typedef struct uint64x2x2_t
153 uint64x2_t val[2];
154 } uint64x2x2_t;
156 typedef struct float16x4x2_t
158 float16x4_t val[2];
159 } float16x4x2_t;
161 typedef struct float16x8x2_t
163 float16x8_t val[2];
164 } float16x8x2_t;
166 typedef struct float32x2x2_t
168 float32x2_t val[2];
169 } float32x2x2_t;
171 typedef struct float32x4x2_t
173 float32x4_t val[2];
174 } float32x4x2_t;
176 typedef struct float64x2x2_t
178 float64x2_t val[2];
179 } float64x2x2_t;
181 typedef struct float64x1x2_t
183 float64x1_t val[2];
184 } float64x1x2_t;
186 typedef struct poly8x8x2_t
188 poly8x8_t val[2];
189 } poly8x8x2_t;
191 typedef struct poly8x16x2_t
193 poly8x16_t val[2];
194 } poly8x16x2_t;
196 typedef struct poly16x4x2_t
198 poly16x4_t val[2];
199 } poly16x4x2_t;
201 typedef struct poly16x8x2_t
203 poly16x8_t val[2];
204 } poly16x8x2_t;
206 typedef struct poly64x1x2_t
208 poly64x1_t val[2];
209 } poly64x1x2_t;
211 typedef struct poly64x1x3_t
213 poly64x1_t val[3];
214 } poly64x1x3_t;
216 typedef struct poly64x1x4_t
218 poly64x1_t val[4];
219 } poly64x1x4_t;
221 typedef struct poly64x2x2_t
223 poly64x2_t val[2];
224 } poly64x2x2_t;
226 typedef struct poly64x2x3_t
228 poly64x2_t val[3];
229 } poly64x2x3_t;
231 typedef struct poly64x2x4_t
233 poly64x2_t val[4];
234 } poly64x2x4_t;
236 typedef struct int8x8x3_t
238 int8x8_t val[3];
239 } int8x8x3_t;
241 typedef struct int8x16x3_t
243 int8x16_t val[3];
244 } int8x16x3_t;
246 typedef struct int16x4x3_t
248 int16x4_t val[3];
249 } int16x4x3_t;
251 typedef struct int16x8x3_t
253 int16x8_t val[3];
254 } int16x8x3_t;
256 typedef struct int32x2x3_t
258 int32x2_t val[3];
259 } int32x2x3_t;
261 typedef struct int32x4x3_t
263 int32x4_t val[3];
264 } int32x4x3_t;
266 typedef struct int64x1x3_t
268 int64x1_t val[3];
269 } int64x1x3_t;
271 typedef struct int64x2x3_t
273 int64x2_t val[3];
274 } int64x2x3_t;
276 typedef struct uint8x8x3_t
278 uint8x8_t val[3];
279 } uint8x8x3_t;
281 typedef struct uint8x16x3_t
283 uint8x16_t val[3];
284 } uint8x16x3_t;
286 typedef struct uint16x4x3_t
288 uint16x4_t val[3];
289 } uint16x4x3_t;
291 typedef struct uint16x8x3_t
293 uint16x8_t val[3];
294 } uint16x8x3_t;
296 typedef struct uint32x2x3_t
298 uint32x2_t val[3];
299 } uint32x2x3_t;
301 typedef struct uint32x4x3_t
303 uint32x4_t val[3];
304 } uint32x4x3_t;
306 typedef struct uint64x1x3_t
308 uint64x1_t val[3];
309 } uint64x1x3_t;
311 typedef struct uint64x2x3_t
313 uint64x2_t val[3];
314 } uint64x2x3_t;
316 typedef struct float16x4x3_t
318 float16x4_t val[3];
319 } float16x4x3_t;
321 typedef struct float16x8x3_t
323 float16x8_t val[3];
324 } float16x8x3_t;
326 typedef struct float32x2x3_t
328 float32x2_t val[3];
329 } float32x2x3_t;
331 typedef struct float32x4x3_t
333 float32x4_t val[3];
334 } float32x4x3_t;
336 typedef struct float64x2x3_t
338 float64x2_t val[3];
339 } float64x2x3_t;
341 typedef struct float64x1x3_t
343 float64x1_t val[3];
344 } float64x1x3_t;
346 typedef struct poly8x8x3_t
348 poly8x8_t val[3];
349 } poly8x8x3_t;
351 typedef struct poly8x16x3_t
353 poly8x16_t val[3];
354 } poly8x16x3_t;
356 typedef struct poly16x4x3_t
358 poly16x4_t val[3];
359 } poly16x4x3_t;
361 typedef struct poly16x8x3_t
363 poly16x8_t val[3];
364 } poly16x8x3_t;
366 typedef struct int8x8x4_t
368 int8x8_t val[4];
369 } int8x8x4_t;
371 typedef struct int8x16x4_t
373 int8x16_t val[4];
374 } int8x16x4_t;
376 typedef struct int16x4x4_t
378 int16x4_t val[4];
379 } int16x4x4_t;
381 typedef struct int16x8x4_t
383 int16x8_t val[4];
384 } int16x8x4_t;
386 typedef struct int32x2x4_t
388 int32x2_t val[4];
389 } int32x2x4_t;
391 typedef struct int32x4x4_t
393 int32x4_t val[4];
394 } int32x4x4_t;
396 typedef struct int64x1x4_t
398 int64x1_t val[4];
399 } int64x1x4_t;
401 typedef struct int64x2x4_t
403 int64x2_t val[4];
404 } int64x2x4_t;
406 typedef struct uint8x8x4_t
408 uint8x8_t val[4];
409 } uint8x8x4_t;
411 typedef struct uint8x16x4_t
413 uint8x16_t val[4];
414 } uint8x16x4_t;
416 typedef struct uint16x4x4_t
418 uint16x4_t val[4];
419 } uint16x4x4_t;
421 typedef struct uint16x8x4_t
423 uint16x8_t val[4];
424 } uint16x8x4_t;
426 typedef struct uint32x2x4_t
428 uint32x2_t val[4];
429 } uint32x2x4_t;
431 typedef struct uint32x4x4_t
433 uint32x4_t val[4];
434 } uint32x4x4_t;
436 typedef struct uint64x1x4_t
438 uint64x1_t val[4];
439 } uint64x1x4_t;
441 typedef struct uint64x2x4_t
443 uint64x2_t val[4];
444 } uint64x2x4_t;
446 typedef struct float16x4x4_t
448 float16x4_t val[4];
449 } float16x4x4_t;
451 typedef struct float16x8x4_t
453 float16x8_t val[4];
454 } float16x8x4_t;
456 typedef struct float32x2x4_t
458 float32x2_t val[4];
459 } float32x2x4_t;
461 typedef struct float32x4x4_t
463 float32x4_t val[4];
464 } float32x4x4_t;
466 typedef struct float64x2x4_t
468 float64x2_t val[4];
469 } float64x2x4_t;
471 typedef struct float64x1x4_t
473 float64x1_t val[4];
474 } float64x1x4_t;
476 typedef struct poly8x8x4_t
478 poly8x8_t val[4];
479 } poly8x8x4_t;
481 typedef struct poly8x16x4_t
483 poly8x16_t val[4];
484 } poly8x16x4_t;
486 typedef struct poly16x4x4_t
488 poly16x4_t val[4];
489 } poly16x4x4_t;
491 typedef struct poly16x8x4_t
493 poly16x8_t val[4];
494 } poly16x8x4_t;
496 /* __aarch64_vdup_lane internal macros. */
497 #define __aarch64_vdup_lane_any(__size, __q, __a, __b) \
498 vdup##__q##_n_##__size (__aarch64_vget_lane_any (__a, __b))
500 #define __aarch64_vdup_lane_f16(__a, __b) \
501 __aarch64_vdup_lane_any (f16, , __a, __b)
502 #define __aarch64_vdup_lane_f32(__a, __b) \
503 __aarch64_vdup_lane_any (f32, , __a, __b)
504 #define __aarch64_vdup_lane_f64(__a, __b) \
505 __aarch64_vdup_lane_any (f64, , __a, __b)
506 #define __aarch64_vdup_lane_p8(__a, __b) \
507 __aarch64_vdup_lane_any (p8, , __a, __b)
508 #define __aarch64_vdup_lane_p16(__a, __b) \
509 __aarch64_vdup_lane_any (p16, , __a, __b)
510 #define __aarch64_vdup_lane_p64(__a, __b) \
511 __aarch64_vdup_lane_any (p64, , __a, __b)
512 #define __aarch64_vdup_lane_s8(__a, __b) \
513 __aarch64_vdup_lane_any (s8, , __a, __b)
514 #define __aarch64_vdup_lane_s16(__a, __b) \
515 __aarch64_vdup_lane_any (s16, , __a, __b)
516 #define __aarch64_vdup_lane_s32(__a, __b) \
517 __aarch64_vdup_lane_any (s32, , __a, __b)
518 #define __aarch64_vdup_lane_s64(__a, __b) \
519 __aarch64_vdup_lane_any (s64, , __a, __b)
520 #define __aarch64_vdup_lane_u8(__a, __b) \
521 __aarch64_vdup_lane_any (u8, , __a, __b)
522 #define __aarch64_vdup_lane_u16(__a, __b) \
523 __aarch64_vdup_lane_any (u16, , __a, __b)
524 #define __aarch64_vdup_lane_u32(__a, __b) \
525 __aarch64_vdup_lane_any (u32, , __a, __b)
526 #define __aarch64_vdup_lane_u64(__a, __b) \
527 __aarch64_vdup_lane_any (u64, , __a, __b)
529 /* __aarch64_vdup_laneq internal macros. */
530 #define __aarch64_vdup_laneq_f16(__a, __b) \
531 __aarch64_vdup_lane_any (f16, , __a, __b)
532 #define __aarch64_vdup_laneq_f32(__a, __b) \
533 __aarch64_vdup_lane_any (f32, , __a, __b)
534 #define __aarch64_vdup_laneq_f64(__a, __b) \
535 __aarch64_vdup_lane_any (f64, , __a, __b)
536 #define __aarch64_vdup_laneq_p8(__a, __b) \
537 __aarch64_vdup_lane_any (p8, , __a, __b)
538 #define __aarch64_vdup_laneq_p16(__a, __b) \
539 __aarch64_vdup_lane_any (p16, , __a, __b)
540 #define __aarch64_vdup_laneq_p64(__a, __b) \
541 __aarch64_vdup_lane_any (p64, , __a, __b)
542 #define __aarch64_vdup_laneq_s8(__a, __b) \
543 __aarch64_vdup_lane_any (s8, , __a, __b)
544 #define __aarch64_vdup_laneq_s16(__a, __b) \
545 __aarch64_vdup_lane_any (s16, , __a, __b)
546 #define __aarch64_vdup_laneq_s32(__a, __b) \
547 __aarch64_vdup_lane_any (s32, , __a, __b)
548 #define __aarch64_vdup_laneq_s64(__a, __b) \
549 __aarch64_vdup_lane_any (s64, , __a, __b)
550 #define __aarch64_vdup_laneq_u8(__a, __b) \
551 __aarch64_vdup_lane_any (u8, , __a, __b)
552 #define __aarch64_vdup_laneq_u16(__a, __b) \
553 __aarch64_vdup_lane_any (u16, , __a, __b)
554 #define __aarch64_vdup_laneq_u32(__a, __b) \
555 __aarch64_vdup_lane_any (u32, , __a, __b)
556 #define __aarch64_vdup_laneq_u64(__a, __b) \
557 __aarch64_vdup_lane_any (u64, , __a, __b)
559 /* __aarch64_vdupq_lane internal macros. */
560 #define __aarch64_vdupq_lane_f16(__a, __b) \
561 __aarch64_vdup_lane_any (f16, q, __a, __b)
562 #define __aarch64_vdupq_lane_f32(__a, __b) \
563 __aarch64_vdup_lane_any (f32, q, __a, __b)
564 #define __aarch64_vdupq_lane_f64(__a, __b) \
565 __aarch64_vdup_lane_any (f64, q, __a, __b)
566 #define __aarch64_vdupq_lane_p8(__a, __b) \
567 __aarch64_vdup_lane_any (p8, q, __a, __b)
568 #define __aarch64_vdupq_lane_p16(__a, __b) \
569 __aarch64_vdup_lane_any (p16, q, __a, __b)
570 #define __aarch64_vdupq_lane_p64(__a, __b) \
571 __aarch64_vdup_lane_any (p64, q, __a, __b)
572 #define __aarch64_vdupq_lane_s8(__a, __b) \
573 __aarch64_vdup_lane_any (s8, q, __a, __b)
574 #define __aarch64_vdupq_lane_s16(__a, __b) \
575 __aarch64_vdup_lane_any (s16, q, __a, __b)
576 #define __aarch64_vdupq_lane_s32(__a, __b) \
577 __aarch64_vdup_lane_any (s32, q, __a, __b)
578 #define __aarch64_vdupq_lane_s64(__a, __b) \
579 __aarch64_vdup_lane_any (s64, q, __a, __b)
580 #define __aarch64_vdupq_lane_u8(__a, __b) \
581 __aarch64_vdup_lane_any (u8, q, __a, __b)
582 #define __aarch64_vdupq_lane_u16(__a, __b) \
583 __aarch64_vdup_lane_any (u16, q, __a, __b)
584 #define __aarch64_vdupq_lane_u32(__a, __b) \
585 __aarch64_vdup_lane_any (u32, q, __a, __b)
586 #define __aarch64_vdupq_lane_u64(__a, __b) \
587 __aarch64_vdup_lane_any (u64, q, __a, __b)
589 /* __aarch64_vdupq_laneq internal macros. */
590 #define __aarch64_vdupq_laneq_f16(__a, __b) \
591 __aarch64_vdup_lane_any (f16, q, __a, __b)
592 #define __aarch64_vdupq_laneq_f32(__a, __b) \
593 __aarch64_vdup_lane_any (f32, q, __a, __b)
594 #define __aarch64_vdupq_laneq_f64(__a, __b) \
595 __aarch64_vdup_lane_any (f64, q, __a, __b)
596 #define __aarch64_vdupq_laneq_p8(__a, __b) \
597 __aarch64_vdup_lane_any (p8, q, __a, __b)
598 #define __aarch64_vdupq_laneq_p16(__a, __b) \
599 __aarch64_vdup_lane_any (p16, q, __a, __b)
600 #define __aarch64_vdupq_laneq_p64(__a, __b) \
601 __aarch64_vdup_lane_any (p64, q, __a, __b)
602 #define __aarch64_vdupq_laneq_s8(__a, __b) \
603 __aarch64_vdup_lane_any (s8, q, __a, __b)
604 #define __aarch64_vdupq_laneq_s16(__a, __b) \
605 __aarch64_vdup_lane_any (s16, q, __a, __b)
606 #define __aarch64_vdupq_laneq_s32(__a, __b) \
607 __aarch64_vdup_lane_any (s32, q, __a, __b)
608 #define __aarch64_vdupq_laneq_s64(__a, __b) \
609 __aarch64_vdup_lane_any (s64, q, __a, __b)
610 #define __aarch64_vdupq_laneq_u8(__a, __b) \
611 __aarch64_vdup_lane_any (u8, q, __a, __b)
612 #define __aarch64_vdupq_laneq_u16(__a, __b) \
613 __aarch64_vdup_lane_any (u16, q, __a, __b)
614 #define __aarch64_vdupq_laneq_u32(__a, __b) \
615 __aarch64_vdup_lane_any (u32, q, __a, __b)
616 #define __aarch64_vdupq_laneq_u64(__a, __b) \
617 __aarch64_vdup_lane_any (u64, q, __a, __b)
619 /* Internal macro for lane indices. */
621 #define __AARCH64_NUM_LANES(__v) (sizeof (__v) / sizeof (__v[0]))
622 #define __AARCH64_LANE_CHECK(__vec, __idx) \
623 __builtin_aarch64_im_lane_boundsi (sizeof(__vec), sizeof(__vec[0]), __idx)
625 /* For big-endian, GCC's vector indices are the opposite way around
626 to the architectural lane indices used by Neon intrinsics. */
627 #ifdef __AARCH64EB__
628 #define __aarch64_lane(__vec, __idx) (__AARCH64_NUM_LANES (__vec) - 1 - __idx)
629 #else
630 #define __aarch64_lane(__vec, __idx) __idx
631 #endif
633 /* vget_lane internal macro. */
634 #define __aarch64_vget_lane_any(__vec, __index) \
635 __extension__ \
636 ({ \
637 __AARCH64_LANE_CHECK (__vec, __index); \
638 __vec[__aarch64_lane (__vec, __index)]; \
641 /* vset_lane and vld1_lane internal macro. */
642 #define __aarch64_vset_lane_any(__elem, __vec, __index) \
643 __extension__ \
644 ({ \
645 __AARCH64_LANE_CHECK (__vec, __index); \
646 __vec[__aarch64_lane (__vec, __index)] = __elem; \
647 __vec; \
650 /* vadd */
651 __extension__ extern __inline int8x8_t
652 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
653 vadd_s8 (int8x8_t __a, int8x8_t __b)
655 return __a + __b;
658 __extension__ extern __inline int16x4_t
659 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
660 vadd_s16 (int16x4_t __a, int16x4_t __b)
662 return __a + __b;
665 __extension__ extern __inline int32x2_t
666 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
667 vadd_s32 (int32x2_t __a, int32x2_t __b)
669 return __a + __b;
672 __extension__ extern __inline float32x2_t
673 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
674 vadd_f32 (float32x2_t __a, float32x2_t __b)
676 return __a + __b;
679 __extension__ extern __inline float64x1_t
680 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
681 vadd_f64 (float64x1_t __a, float64x1_t __b)
683 return __a + __b;
686 __extension__ extern __inline uint8x8_t
687 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
688 vadd_u8 (uint8x8_t __a, uint8x8_t __b)
690 return __a + __b;
693 __extension__ extern __inline uint16x4_t
694 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
695 vadd_u16 (uint16x4_t __a, uint16x4_t __b)
697 return __a + __b;
700 __extension__ extern __inline uint32x2_t
701 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
702 vadd_u32 (uint32x2_t __a, uint32x2_t __b)
704 return __a + __b;
707 __extension__ extern __inline int64x1_t
708 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
709 vadd_s64 (int64x1_t __a, int64x1_t __b)
711 return __a + __b;
714 __extension__ extern __inline uint64x1_t
715 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
716 vadd_u64 (uint64x1_t __a, uint64x1_t __b)
718 return __a + __b;
721 __extension__ extern __inline int8x16_t
722 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
723 vaddq_s8 (int8x16_t __a, int8x16_t __b)
725 return __a + __b;
728 __extension__ extern __inline int16x8_t
729 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
730 vaddq_s16 (int16x8_t __a, int16x8_t __b)
732 return __a + __b;
735 __extension__ extern __inline int32x4_t
736 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
737 vaddq_s32 (int32x4_t __a, int32x4_t __b)
739 return __a + __b;
742 __extension__ extern __inline int64x2_t
743 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
744 vaddq_s64 (int64x2_t __a, int64x2_t __b)
746 return __a + __b;
749 __extension__ extern __inline float32x4_t
750 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
751 vaddq_f32 (float32x4_t __a, float32x4_t __b)
753 return __a + __b;
756 __extension__ extern __inline float64x2_t
757 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
758 vaddq_f64 (float64x2_t __a, float64x2_t __b)
760 return __a + __b;
763 __extension__ extern __inline uint8x16_t
764 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
765 vaddq_u8 (uint8x16_t __a, uint8x16_t __b)
767 return __a + __b;
770 __extension__ extern __inline uint16x8_t
771 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
772 vaddq_u16 (uint16x8_t __a, uint16x8_t __b)
774 return __a + __b;
777 __extension__ extern __inline uint32x4_t
778 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
779 vaddq_u32 (uint32x4_t __a, uint32x4_t __b)
781 return __a + __b;
784 __extension__ extern __inline uint64x2_t
785 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
786 vaddq_u64 (uint64x2_t __a, uint64x2_t __b)
788 return __a + __b;
791 __extension__ extern __inline int16x8_t
792 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
793 vaddl_s8 (int8x8_t __a, int8x8_t __b)
795 return (int16x8_t) __builtin_aarch64_saddlv8qi (__a, __b);
798 __extension__ extern __inline int32x4_t
799 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
800 vaddl_s16 (int16x4_t __a, int16x4_t __b)
802 return (int32x4_t) __builtin_aarch64_saddlv4hi (__a, __b);
805 __extension__ extern __inline int64x2_t
806 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
807 vaddl_s32 (int32x2_t __a, int32x2_t __b)
809 return (int64x2_t) __builtin_aarch64_saddlv2si (__a, __b);
812 __extension__ extern __inline uint16x8_t
813 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
814 vaddl_u8 (uint8x8_t __a, uint8x8_t __b)
816 return (uint16x8_t) __builtin_aarch64_uaddlv8qi ((int8x8_t) __a,
817 (int8x8_t) __b);
820 __extension__ extern __inline uint32x4_t
821 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
822 vaddl_u16 (uint16x4_t __a, uint16x4_t __b)
824 return (uint32x4_t) __builtin_aarch64_uaddlv4hi ((int16x4_t) __a,
825 (int16x4_t) __b);
828 __extension__ extern __inline uint64x2_t
829 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
830 vaddl_u32 (uint32x2_t __a, uint32x2_t __b)
832 return (uint64x2_t) __builtin_aarch64_uaddlv2si ((int32x2_t) __a,
833 (int32x2_t) __b);
836 __extension__ extern __inline int16x8_t
837 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
838 vaddl_high_s8 (int8x16_t __a, int8x16_t __b)
840 return (int16x8_t) __builtin_aarch64_saddl2v16qi (__a, __b);
843 __extension__ extern __inline int32x4_t
844 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
845 vaddl_high_s16 (int16x8_t __a, int16x8_t __b)
847 return (int32x4_t) __builtin_aarch64_saddl2v8hi (__a, __b);
850 __extension__ extern __inline int64x2_t
851 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
852 vaddl_high_s32 (int32x4_t __a, int32x4_t __b)
854 return (int64x2_t) __builtin_aarch64_saddl2v4si (__a, __b);
857 __extension__ extern __inline uint16x8_t
858 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
859 vaddl_high_u8 (uint8x16_t __a, uint8x16_t __b)
861 return (uint16x8_t) __builtin_aarch64_uaddl2v16qi ((int8x16_t) __a,
862 (int8x16_t) __b);
865 __extension__ extern __inline uint32x4_t
866 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
867 vaddl_high_u16 (uint16x8_t __a, uint16x8_t __b)
869 return (uint32x4_t) __builtin_aarch64_uaddl2v8hi ((int16x8_t) __a,
870 (int16x8_t) __b);
873 __extension__ extern __inline uint64x2_t
874 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
875 vaddl_high_u32 (uint32x4_t __a, uint32x4_t __b)
877 return (uint64x2_t) __builtin_aarch64_uaddl2v4si ((int32x4_t) __a,
878 (int32x4_t) __b);
881 __extension__ extern __inline int16x8_t
882 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
883 vaddw_s8 (int16x8_t __a, int8x8_t __b)
885 return (int16x8_t) __builtin_aarch64_saddwv8qi (__a, __b);
888 __extension__ extern __inline int32x4_t
889 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
890 vaddw_s16 (int32x4_t __a, int16x4_t __b)
892 return (int32x4_t) __builtin_aarch64_saddwv4hi (__a, __b);
895 __extension__ extern __inline int64x2_t
896 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
897 vaddw_s32 (int64x2_t __a, int32x2_t __b)
899 return (int64x2_t) __builtin_aarch64_saddwv2si (__a, __b);
902 __extension__ extern __inline uint16x8_t
903 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
904 vaddw_u8 (uint16x8_t __a, uint8x8_t __b)
906 return (uint16x8_t) __builtin_aarch64_uaddwv8qi ((int16x8_t) __a,
907 (int8x8_t) __b);
910 __extension__ extern __inline uint32x4_t
911 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
912 vaddw_u16 (uint32x4_t __a, uint16x4_t __b)
914 return (uint32x4_t) __builtin_aarch64_uaddwv4hi ((int32x4_t) __a,
915 (int16x4_t) __b);
918 __extension__ extern __inline uint64x2_t
919 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
920 vaddw_u32 (uint64x2_t __a, uint32x2_t __b)
922 return (uint64x2_t) __builtin_aarch64_uaddwv2si ((int64x2_t) __a,
923 (int32x2_t) __b);
926 __extension__ extern __inline int16x8_t
927 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
928 vaddw_high_s8 (int16x8_t __a, int8x16_t __b)
930 return (int16x8_t) __builtin_aarch64_saddw2v16qi (__a, __b);
933 __extension__ extern __inline int32x4_t
934 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
935 vaddw_high_s16 (int32x4_t __a, int16x8_t __b)
937 return (int32x4_t) __builtin_aarch64_saddw2v8hi (__a, __b);
940 __extension__ extern __inline int64x2_t
941 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
942 vaddw_high_s32 (int64x2_t __a, int32x4_t __b)
944 return (int64x2_t) __builtin_aarch64_saddw2v4si (__a, __b);
947 __extension__ extern __inline uint16x8_t
948 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
949 vaddw_high_u8 (uint16x8_t __a, uint8x16_t __b)
951 return (uint16x8_t) __builtin_aarch64_uaddw2v16qi ((int16x8_t) __a,
952 (int8x16_t) __b);
955 __extension__ extern __inline uint32x4_t
956 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
957 vaddw_high_u16 (uint32x4_t __a, uint16x8_t __b)
959 return (uint32x4_t) __builtin_aarch64_uaddw2v8hi ((int32x4_t) __a,
960 (int16x8_t) __b);
963 __extension__ extern __inline uint64x2_t
964 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
965 vaddw_high_u32 (uint64x2_t __a, uint32x4_t __b)
967 return (uint64x2_t) __builtin_aarch64_uaddw2v4si ((int64x2_t) __a,
968 (int32x4_t) __b);
971 __extension__ extern __inline int8x8_t
972 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
973 vhadd_s8 (int8x8_t __a, int8x8_t __b)
975 return (int8x8_t) __builtin_aarch64_shaddv8qi (__a, __b);
978 __extension__ extern __inline int16x4_t
979 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
980 vhadd_s16 (int16x4_t __a, int16x4_t __b)
982 return (int16x4_t) __builtin_aarch64_shaddv4hi (__a, __b);
985 __extension__ extern __inline int32x2_t
986 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
987 vhadd_s32 (int32x2_t __a, int32x2_t __b)
989 return (int32x2_t) __builtin_aarch64_shaddv2si (__a, __b);
992 __extension__ extern __inline uint8x8_t
993 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
994 vhadd_u8 (uint8x8_t __a, uint8x8_t __b)
996 return (uint8x8_t) __builtin_aarch64_uhaddv8qi ((int8x8_t) __a,
997 (int8x8_t) __b);
1000 __extension__ extern __inline uint16x4_t
1001 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1002 vhadd_u16 (uint16x4_t __a, uint16x4_t __b)
1004 return (uint16x4_t) __builtin_aarch64_uhaddv4hi ((int16x4_t) __a,
1005 (int16x4_t) __b);
1008 __extension__ extern __inline uint32x2_t
1009 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1010 vhadd_u32 (uint32x2_t __a, uint32x2_t __b)
1012 return (uint32x2_t) __builtin_aarch64_uhaddv2si ((int32x2_t) __a,
1013 (int32x2_t) __b);
1016 __extension__ extern __inline int8x16_t
1017 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1018 vhaddq_s8 (int8x16_t __a, int8x16_t __b)
1020 return (int8x16_t) __builtin_aarch64_shaddv16qi (__a, __b);
1023 __extension__ extern __inline int16x8_t
1024 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1025 vhaddq_s16 (int16x8_t __a, int16x8_t __b)
1027 return (int16x8_t) __builtin_aarch64_shaddv8hi (__a, __b);
1030 __extension__ extern __inline int32x4_t
1031 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1032 vhaddq_s32 (int32x4_t __a, int32x4_t __b)
1034 return (int32x4_t) __builtin_aarch64_shaddv4si (__a, __b);
1037 __extension__ extern __inline uint8x16_t
1038 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1039 vhaddq_u8 (uint8x16_t __a, uint8x16_t __b)
1041 return (uint8x16_t) __builtin_aarch64_uhaddv16qi ((int8x16_t) __a,
1042 (int8x16_t) __b);
1045 __extension__ extern __inline uint16x8_t
1046 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1047 vhaddq_u16 (uint16x8_t __a, uint16x8_t __b)
1049 return (uint16x8_t) __builtin_aarch64_uhaddv8hi ((int16x8_t) __a,
1050 (int16x8_t) __b);
1053 __extension__ extern __inline uint32x4_t
1054 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1055 vhaddq_u32 (uint32x4_t __a, uint32x4_t __b)
1057 return (uint32x4_t) __builtin_aarch64_uhaddv4si ((int32x4_t) __a,
1058 (int32x4_t) __b);
1061 __extension__ extern __inline int8x8_t
1062 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1063 vrhadd_s8 (int8x8_t __a, int8x8_t __b)
1065 return (int8x8_t) __builtin_aarch64_srhaddv8qi (__a, __b);
1068 __extension__ extern __inline int16x4_t
1069 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1070 vrhadd_s16 (int16x4_t __a, int16x4_t __b)
1072 return (int16x4_t) __builtin_aarch64_srhaddv4hi (__a, __b);
1075 __extension__ extern __inline int32x2_t
1076 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1077 vrhadd_s32 (int32x2_t __a, int32x2_t __b)
1079 return (int32x2_t) __builtin_aarch64_srhaddv2si (__a, __b);
1082 __extension__ extern __inline uint8x8_t
1083 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1084 vrhadd_u8 (uint8x8_t __a, uint8x8_t __b)
1086 return (uint8x8_t) __builtin_aarch64_urhaddv8qi ((int8x8_t) __a,
1087 (int8x8_t) __b);
1090 __extension__ extern __inline uint16x4_t
1091 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1092 vrhadd_u16 (uint16x4_t __a, uint16x4_t __b)
1094 return (uint16x4_t) __builtin_aarch64_urhaddv4hi ((int16x4_t) __a,
1095 (int16x4_t) __b);
1098 __extension__ extern __inline uint32x2_t
1099 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1100 vrhadd_u32 (uint32x2_t __a, uint32x2_t __b)
1102 return (uint32x2_t) __builtin_aarch64_urhaddv2si ((int32x2_t) __a,
1103 (int32x2_t) __b);
1106 __extension__ extern __inline int8x16_t
1107 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1108 vrhaddq_s8 (int8x16_t __a, int8x16_t __b)
1110 return (int8x16_t) __builtin_aarch64_srhaddv16qi (__a, __b);
1113 __extension__ extern __inline int16x8_t
1114 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1115 vrhaddq_s16 (int16x8_t __a, int16x8_t __b)
1117 return (int16x8_t) __builtin_aarch64_srhaddv8hi (__a, __b);
1120 __extension__ extern __inline int32x4_t
1121 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1122 vrhaddq_s32 (int32x4_t __a, int32x4_t __b)
1124 return (int32x4_t) __builtin_aarch64_srhaddv4si (__a, __b);
1127 __extension__ extern __inline uint8x16_t
1128 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1129 vrhaddq_u8 (uint8x16_t __a, uint8x16_t __b)
1131 return (uint8x16_t) __builtin_aarch64_urhaddv16qi ((int8x16_t) __a,
1132 (int8x16_t) __b);
1135 __extension__ extern __inline uint16x8_t
1136 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1137 vrhaddq_u16 (uint16x8_t __a, uint16x8_t __b)
1139 return (uint16x8_t) __builtin_aarch64_urhaddv8hi ((int16x8_t) __a,
1140 (int16x8_t) __b);
1143 __extension__ extern __inline uint32x4_t
1144 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1145 vrhaddq_u32 (uint32x4_t __a, uint32x4_t __b)
1147 return (uint32x4_t) __builtin_aarch64_urhaddv4si ((int32x4_t) __a,
1148 (int32x4_t) __b);
1151 __extension__ extern __inline int8x8_t
1152 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1153 vaddhn_s16 (int16x8_t __a, int16x8_t __b)
1155 return (int8x8_t) __builtin_aarch64_addhnv8hi (__a, __b);
1158 __extension__ extern __inline int16x4_t
1159 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1160 vaddhn_s32 (int32x4_t __a, int32x4_t __b)
1162 return (int16x4_t) __builtin_aarch64_addhnv4si (__a, __b);
1165 __extension__ extern __inline int32x2_t
1166 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1167 vaddhn_s64 (int64x2_t __a, int64x2_t __b)
1169 return (int32x2_t) __builtin_aarch64_addhnv2di (__a, __b);
1172 __extension__ extern __inline uint8x8_t
1173 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1174 vaddhn_u16 (uint16x8_t __a, uint16x8_t __b)
1176 return (uint8x8_t) __builtin_aarch64_addhnv8hi ((int16x8_t) __a,
1177 (int16x8_t) __b);
1180 __extension__ extern __inline uint16x4_t
1181 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1182 vaddhn_u32 (uint32x4_t __a, uint32x4_t __b)
1184 return (uint16x4_t) __builtin_aarch64_addhnv4si ((int32x4_t) __a,
1185 (int32x4_t) __b);
1188 __extension__ extern __inline uint32x2_t
1189 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1190 vaddhn_u64 (uint64x2_t __a, uint64x2_t __b)
1192 return (uint32x2_t) __builtin_aarch64_addhnv2di ((int64x2_t) __a,
1193 (int64x2_t) __b);
1196 __extension__ extern __inline int8x8_t
1197 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1198 vraddhn_s16 (int16x8_t __a, int16x8_t __b)
1200 return (int8x8_t) __builtin_aarch64_raddhnv8hi (__a, __b);
1203 __extension__ extern __inline int16x4_t
1204 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1205 vraddhn_s32 (int32x4_t __a, int32x4_t __b)
1207 return (int16x4_t) __builtin_aarch64_raddhnv4si (__a, __b);
1210 __extension__ extern __inline int32x2_t
1211 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1212 vraddhn_s64 (int64x2_t __a, int64x2_t __b)
1214 return (int32x2_t) __builtin_aarch64_raddhnv2di (__a, __b);
1217 __extension__ extern __inline uint8x8_t
1218 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1219 vraddhn_u16 (uint16x8_t __a, uint16x8_t __b)
1221 return (uint8x8_t) __builtin_aarch64_raddhnv8hi ((int16x8_t) __a,
1222 (int16x8_t) __b);
1225 __extension__ extern __inline uint16x4_t
1226 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1227 vraddhn_u32 (uint32x4_t __a, uint32x4_t __b)
1229 return (uint16x4_t) __builtin_aarch64_raddhnv4si ((int32x4_t) __a,
1230 (int32x4_t) __b);
1233 __extension__ extern __inline uint32x2_t
1234 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1235 vraddhn_u64 (uint64x2_t __a, uint64x2_t __b)
1237 return (uint32x2_t) __builtin_aarch64_raddhnv2di ((int64x2_t) __a,
1238 (int64x2_t) __b);
1241 __extension__ extern __inline int8x16_t
1242 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1243 vaddhn_high_s16 (int8x8_t __a, int16x8_t __b, int16x8_t __c)
1245 return (int8x16_t) __builtin_aarch64_addhn2v8hi (__a, __b, __c);
1248 __extension__ extern __inline int16x8_t
1249 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1250 vaddhn_high_s32 (int16x4_t __a, int32x4_t __b, int32x4_t __c)
1252 return (int16x8_t) __builtin_aarch64_addhn2v4si (__a, __b, __c);
1255 __extension__ extern __inline int32x4_t
1256 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1257 vaddhn_high_s64 (int32x2_t __a, int64x2_t __b, int64x2_t __c)
1259 return (int32x4_t) __builtin_aarch64_addhn2v2di (__a, __b, __c);
1262 __extension__ extern __inline uint8x16_t
1263 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1264 vaddhn_high_u16 (uint8x8_t __a, uint16x8_t __b, uint16x8_t __c)
1266 return (uint8x16_t) __builtin_aarch64_addhn2v8hi ((int8x8_t) __a,
1267 (int16x8_t) __b,
1268 (int16x8_t) __c);
1271 __extension__ extern __inline uint16x8_t
1272 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1273 vaddhn_high_u32 (uint16x4_t __a, uint32x4_t __b, uint32x4_t __c)
1275 return (uint16x8_t) __builtin_aarch64_addhn2v4si ((int16x4_t) __a,
1276 (int32x4_t) __b,
1277 (int32x4_t) __c);
1280 __extension__ extern __inline uint32x4_t
1281 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1282 vaddhn_high_u64 (uint32x2_t __a, uint64x2_t __b, uint64x2_t __c)
1284 return (uint32x4_t) __builtin_aarch64_addhn2v2di ((int32x2_t) __a,
1285 (int64x2_t) __b,
1286 (int64x2_t) __c);
1289 __extension__ extern __inline int8x16_t
1290 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1291 vraddhn_high_s16 (int8x8_t __a, int16x8_t __b, int16x8_t __c)
1293 return (int8x16_t) __builtin_aarch64_raddhn2v8hi (__a, __b, __c);
1296 __extension__ extern __inline int16x8_t
1297 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1298 vraddhn_high_s32 (int16x4_t __a, int32x4_t __b, int32x4_t __c)
1300 return (int16x8_t) __builtin_aarch64_raddhn2v4si (__a, __b, __c);
1303 __extension__ extern __inline int32x4_t
1304 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1305 vraddhn_high_s64 (int32x2_t __a, int64x2_t __b, int64x2_t __c)
1307 return (int32x4_t) __builtin_aarch64_raddhn2v2di (__a, __b, __c);
1310 __extension__ extern __inline uint8x16_t
1311 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1312 vraddhn_high_u16 (uint8x8_t __a, uint16x8_t __b, uint16x8_t __c)
1314 return (uint8x16_t) __builtin_aarch64_raddhn2v8hi ((int8x8_t) __a,
1315 (int16x8_t) __b,
1316 (int16x8_t) __c);
1319 __extension__ extern __inline uint16x8_t
1320 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1321 vraddhn_high_u32 (uint16x4_t __a, uint32x4_t __b, uint32x4_t __c)
1323 return (uint16x8_t) __builtin_aarch64_raddhn2v4si ((int16x4_t) __a,
1324 (int32x4_t) __b,
1325 (int32x4_t) __c);
1328 __extension__ extern __inline uint32x4_t
1329 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1330 vraddhn_high_u64 (uint32x2_t __a, uint64x2_t __b, uint64x2_t __c)
1332 return (uint32x4_t) __builtin_aarch64_raddhn2v2di ((int32x2_t) __a,
1333 (int64x2_t) __b,
1334 (int64x2_t) __c);
1337 __extension__ extern __inline float32x2_t
1338 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1339 vdiv_f32 (float32x2_t __a, float32x2_t __b)
1341 return __a / __b;
1344 __extension__ extern __inline float64x1_t
1345 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1346 vdiv_f64 (float64x1_t __a, float64x1_t __b)
1348 return __a / __b;
1351 __extension__ extern __inline float32x4_t
1352 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1353 vdivq_f32 (float32x4_t __a, float32x4_t __b)
1355 return __a / __b;
1358 __extension__ extern __inline float64x2_t
1359 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1360 vdivq_f64 (float64x2_t __a, float64x2_t __b)
1362 return __a / __b;
1365 __extension__ extern __inline int8x8_t
1366 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1367 vmul_s8 (int8x8_t __a, int8x8_t __b)
1369 return __a * __b;
1372 __extension__ extern __inline int16x4_t
1373 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1374 vmul_s16 (int16x4_t __a, int16x4_t __b)
1376 return __a * __b;
1379 __extension__ extern __inline int32x2_t
1380 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1381 vmul_s32 (int32x2_t __a, int32x2_t __b)
1383 return __a * __b;
1386 __extension__ extern __inline float32x2_t
1387 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1388 vmul_f32 (float32x2_t __a, float32x2_t __b)
1390 return __a * __b;
1393 __extension__ extern __inline float64x1_t
1394 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1395 vmul_f64 (float64x1_t __a, float64x1_t __b)
1397 return __a * __b;
1400 __extension__ extern __inline uint8x8_t
1401 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1402 vmul_u8 (uint8x8_t __a, uint8x8_t __b)
1404 return __a * __b;
1407 __extension__ extern __inline uint16x4_t
1408 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1409 vmul_u16 (uint16x4_t __a, uint16x4_t __b)
1411 return __a * __b;
1414 __extension__ extern __inline uint32x2_t
1415 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1416 vmul_u32 (uint32x2_t __a, uint32x2_t __b)
1418 return __a * __b;
1421 __extension__ extern __inline poly8x8_t
1422 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1423 vmul_p8 (poly8x8_t __a, poly8x8_t __b)
1425 return (poly8x8_t) __builtin_aarch64_pmulv8qi ((int8x8_t) __a,
1426 (int8x8_t) __b);
1429 __extension__ extern __inline int8x16_t
1430 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1431 vmulq_s8 (int8x16_t __a, int8x16_t __b)
1433 return __a * __b;
1436 __extension__ extern __inline int16x8_t
1437 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1438 vmulq_s16 (int16x8_t __a, int16x8_t __b)
1440 return __a * __b;
1443 __extension__ extern __inline int32x4_t
1444 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1445 vmulq_s32 (int32x4_t __a, int32x4_t __b)
1447 return __a * __b;
1450 __extension__ extern __inline float32x4_t
1451 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1452 vmulq_f32 (float32x4_t __a, float32x4_t __b)
1454 return __a * __b;
1457 __extension__ extern __inline float64x2_t
1458 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1459 vmulq_f64 (float64x2_t __a, float64x2_t __b)
1461 return __a * __b;
1464 __extension__ extern __inline uint8x16_t
1465 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1466 vmulq_u8 (uint8x16_t __a, uint8x16_t __b)
1468 return __a * __b;
1471 __extension__ extern __inline uint16x8_t
1472 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1473 vmulq_u16 (uint16x8_t __a, uint16x8_t __b)
1475 return __a * __b;
1478 __extension__ extern __inline uint32x4_t
1479 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1480 vmulq_u32 (uint32x4_t __a, uint32x4_t __b)
1482 return __a * __b;
1485 __extension__ extern __inline poly8x16_t
1486 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1487 vmulq_p8 (poly8x16_t __a, poly8x16_t __b)
1489 return (poly8x16_t) __builtin_aarch64_pmulv16qi ((int8x16_t) __a,
1490 (int8x16_t) __b);
1493 __extension__ extern __inline int8x8_t
1494 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1495 vand_s8 (int8x8_t __a, int8x8_t __b)
1497 return __a & __b;
1500 __extension__ extern __inline int16x4_t
1501 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1502 vand_s16 (int16x4_t __a, int16x4_t __b)
1504 return __a & __b;
1507 __extension__ extern __inline int32x2_t
1508 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1509 vand_s32 (int32x2_t __a, int32x2_t __b)
1511 return __a & __b;
1514 __extension__ extern __inline uint8x8_t
1515 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1516 vand_u8 (uint8x8_t __a, uint8x8_t __b)
1518 return __a & __b;
1521 __extension__ extern __inline uint16x4_t
1522 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1523 vand_u16 (uint16x4_t __a, uint16x4_t __b)
1525 return __a & __b;
1528 __extension__ extern __inline uint32x2_t
1529 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1530 vand_u32 (uint32x2_t __a, uint32x2_t __b)
1532 return __a & __b;
1535 __extension__ extern __inline int64x1_t
1536 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1537 vand_s64 (int64x1_t __a, int64x1_t __b)
1539 return __a & __b;
1542 __extension__ extern __inline uint64x1_t
1543 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1544 vand_u64 (uint64x1_t __a, uint64x1_t __b)
1546 return __a & __b;
1549 __extension__ extern __inline int8x16_t
1550 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1551 vandq_s8 (int8x16_t __a, int8x16_t __b)
1553 return __a & __b;
1556 __extension__ extern __inline int16x8_t
1557 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1558 vandq_s16 (int16x8_t __a, int16x8_t __b)
1560 return __a & __b;
1563 __extension__ extern __inline int32x4_t
1564 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1565 vandq_s32 (int32x4_t __a, int32x4_t __b)
1567 return __a & __b;
1570 __extension__ extern __inline int64x2_t
1571 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1572 vandq_s64 (int64x2_t __a, int64x2_t __b)
1574 return __a & __b;
1577 __extension__ extern __inline uint8x16_t
1578 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1579 vandq_u8 (uint8x16_t __a, uint8x16_t __b)
1581 return __a & __b;
1584 __extension__ extern __inline uint16x8_t
1585 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1586 vandq_u16 (uint16x8_t __a, uint16x8_t __b)
1588 return __a & __b;
1591 __extension__ extern __inline uint32x4_t
1592 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1593 vandq_u32 (uint32x4_t __a, uint32x4_t __b)
1595 return __a & __b;
1598 __extension__ extern __inline uint64x2_t
1599 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1600 vandq_u64 (uint64x2_t __a, uint64x2_t __b)
1602 return __a & __b;
1605 __extension__ extern __inline int8x8_t
1606 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1607 vorr_s8 (int8x8_t __a, int8x8_t __b)
1609 return __a | __b;
1612 __extension__ extern __inline int16x4_t
1613 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1614 vorr_s16 (int16x4_t __a, int16x4_t __b)
1616 return __a | __b;
1619 __extension__ extern __inline int32x2_t
1620 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1621 vorr_s32 (int32x2_t __a, int32x2_t __b)
1623 return __a | __b;
1626 __extension__ extern __inline uint8x8_t
1627 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1628 vorr_u8 (uint8x8_t __a, uint8x8_t __b)
1630 return __a | __b;
1633 __extension__ extern __inline uint16x4_t
1634 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1635 vorr_u16 (uint16x4_t __a, uint16x4_t __b)
1637 return __a | __b;
1640 __extension__ extern __inline uint32x2_t
1641 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1642 vorr_u32 (uint32x2_t __a, uint32x2_t __b)
1644 return __a | __b;
1647 __extension__ extern __inline int64x1_t
1648 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1649 vorr_s64 (int64x1_t __a, int64x1_t __b)
1651 return __a | __b;
1654 __extension__ extern __inline uint64x1_t
1655 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1656 vorr_u64 (uint64x1_t __a, uint64x1_t __b)
1658 return __a | __b;
1661 __extension__ extern __inline int8x16_t
1662 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1663 vorrq_s8 (int8x16_t __a, int8x16_t __b)
1665 return __a | __b;
1668 __extension__ extern __inline int16x8_t
1669 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1670 vorrq_s16 (int16x8_t __a, int16x8_t __b)
1672 return __a | __b;
1675 __extension__ extern __inline int32x4_t
1676 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1677 vorrq_s32 (int32x4_t __a, int32x4_t __b)
1679 return __a | __b;
1682 __extension__ extern __inline int64x2_t
1683 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1684 vorrq_s64 (int64x2_t __a, int64x2_t __b)
1686 return __a | __b;
1689 __extension__ extern __inline uint8x16_t
1690 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1691 vorrq_u8 (uint8x16_t __a, uint8x16_t __b)
1693 return __a | __b;
1696 __extension__ extern __inline uint16x8_t
1697 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1698 vorrq_u16 (uint16x8_t __a, uint16x8_t __b)
1700 return __a | __b;
1703 __extension__ extern __inline uint32x4_t
1704 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1705 vorrq_u32 (uint32x4_t __a, uint32x4_t __b)
1707 return __a | __b;
1710 __extension__ extern __inline uint64x2_t
1711 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1712 vorrq_u64 (uint64x2_t __a, uint64x2_t __b)
1714 return __a | __b;
1717 __extension__ extern __inline int8x8_t
1718 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1719 veor_s8 (int8x8_t __a, int8x8_t __b)
1721 return __a ^ __b;
1724 __extension__ extern __inline int16x4_t
1725 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1726 veor_s16 (int16x4_t __a, int16x4_t __b)
1728 return __a ^ __b;
1731 __extension__ extern __inline int32x2_t
1732 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1733 veor_s32 (int32x2_t __a, int32x2_t __b)
1735 return __a ^ __b;
1738 __extension__ extern __inline uint8x8_t
1739 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1740 veor_u8 (uint8x8_t __a, uint8x8_t __b)
1742 return __a ^ __b;
1745 __extension__ extern __inline uint16x4_t
1746 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1747 veor_u16 (uint16x4_t __a, uint16x4_t __b)
1749 return __a ^ __b;
1752 __extension__ extern __inline uint32x2_t
1753 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1754 veor_u32 (uint32x2_t __a, uint32x2_t __b)
1756 return __a ^ __b;
1759 __extension__ extern __inline int64x1_t
1760 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1761 veor_s64 (int64x1_t __a, int64x1_t __b)
1763 return __a ^ __b;
1766 __extension__ extern __inline uint64x1_t
1767 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1768 veor_u64 (uint64x1_t __a, uint64x1_t __b)
1770 return __a ^ __b;
1773 __extension__ extern __inline int8x16_t
1774 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1775 veorq_s8 (int8x16_t __a, int8x16_t __b)
1777 return __a ^ __b;
1780 __extension__ extern __inline int16x8_t
1781 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1782 veorq_s16 (int16x8_t __a, int16x8_t __b)
1784 return __a ^ __b;
1787 __extension__ extern __inline int32x4_t
1788 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1789 veorq_s32 (int32x4_t __a, int32x4_t __b)
1791 return __a ^ __b;
1794 __extension__ extern __inline int64x2_t
1795 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1796 veorq_s64 (int64x2_t __a, int64x2_t __b)
1798 return __a ^ __b;
1801 __extension__ extern __inline uint8x16_t
1802 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1803 veorq_u8 (uint8x16_t __a, uint8x16_t __b)
1805 return __a ^ __b;
1808 __extension__ extern __inline uint16x8_t
1809 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1810 veorq_u16 (uint16x8_t __a, uint16x8_t __b)
1812 return __a ^ __b;
1815 __extension__ extern __inline uint32x4_t
1816 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1817 veorq_u32 (uint32x4_t __a, uint32x4_t __b)
1819 return __a ^ __b;
1822 __extension__ extern __inline uint64x2_t
1823 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1824 veorq_u64 (uint64x2_t __a, uint64x2_t __b)
1826 return __a ^ __b;
1829 __extension__ extern __inline int8x8_t
1830 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1831 vbic_s8 (int8x8_t __a, int8x8_t __b)
1833 return __a & ~__b;
1836 __extension__ extern __inline int16x4_t
1837 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1838 vbic_s16 (int16x4_t __a, int16x4_t __b)
1840 return __a & ~__b;
1843 __extension__ extern __inline int32x2_t
1844 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1845 vbic_s32 (int32x2_t __a, int32x2_t __b)
1847 return __a & ~__b;
1850 __extension__ extern __inline uint8x8_t
1851 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1852 vbic_u8 (uint8x8_t __a, uint8x8_t __b)
1854 return __a & ~__b;
1857 __extension__ extern __inline uint16x4_t
1858 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1859 vbic_u16 (uint16x4_t __a, uint16x4_t __b)
1861 return __a & ~__b;
1864 __extension__ extern __inline uint32x2_t
1865 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1866 vbic_u32 (uint32x2_t __a, uint32x2_t __b)
1868 return __a & ~__b;
1871 __extension__ extern __inline int64x1_t
1872 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1873 vbic_s64 (int64x1_t __a, int64x1_t __b)
1875 return __a & ~__b;
1878 __extension__ extern __inline uint64x1_t
1879 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1880 vbic_u64 (uint64x1_t __a, uint64x1_t __b)
1882 return __a & ~__b;
1885 __extension__ extern __inline int8x16_t
1886 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1887 vbicq_s8 (int8x16_t __a, int8x16_t __b)
1889 return __a & ~__b;
1892 __extension__ extern __inline int16x8_t
1893 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1894 vbicq_s16 (int16x8_t __a, int16x8_t __b)
1896 return __a & ~__b;
1899 __extension__ extern __inline int32x4_t
1900 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1901 vbicq_s32 (int32x4_t __a, int32x4_t __b)
1903 return __a & ~__b;
1906 __extension__ extern __inline int64x2_t
1907 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1908 vbicq_s64 (int64x2_t __a, int64x2_t __b)
1910 return __a & ~__b;
1913 __extension__ extern __inline uint8x16_t
1914 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1915 vbicq_u8 (uint8x16_t __a, uint8x16_t __b)
1917 return __a & ~__b;
1920 __extension__ extern __inline uint16x8_t
1921 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1922 vbicq_u16 (uint16x8_t __a, uint16x8_t __b)
1924 return __a & ~__b;
1927 __extension__ extern __inline uint32x4_t
1928 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1929 vbicq_u32 (uint32x4_t __a, uint32x4_t __b)
1931 return __a & ~__b;
1934 __extension__ extern __inline uint64x2_t
1935 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1936 vbicq_u64 (uint64x2_t __a, uint64x2_t __b)
1938 return __a & ~__b;
1941 __extension__ extern __inline int8x8_t
1942 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1943 vorn_s8 (int8x8_t __a, int8x8_t __b)
1945 return __a | ~__b;
1948 __extension__ extern __inline int16x4_t
1949 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1950 vorn_s16 (int16x4_t __a, int16x4_t __b)
1952 return __a | ~__b;
1955 __extension__ extern __inline int32x2_t
1956 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1957 vorn_s32 (int32x2_t __a, int32x2_t __b)
1959 return __a | ~__b;
1962 __extension__ extern __inline uint8x8_t
1963 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1964 vorn_u8 (uint8x8_t __a, uint8x8_t __b)
1966 return __a | ~__b;
1969 __extension__ extern __inline uint16x4_t
1970 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1971 vorn_u16 (uint16x4_t __a, uint16x4_t __b)
1973 return __a | ~__b;
1976 __extension__ extern __inline uint32x2_t
1977 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1978 vorn_u32 (uint32x2_t __a, uint32x2_t __b)
1980 return __a | ~__b;
1983 __extension__ extern __inline int64x1_t
1984 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1985 vorn_s64 (int64x1_t __a, int64x1_t __b)
1987 return __a | ~__b;
1990 __extension__ extern __inline uint64x1_t
1991 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1992 vorn_u64 (uint64x1_t __a, uint64x1_t __b)
1994 return __a | ~__b;
1997 __extension__ extern __inline int8x16_t
1998 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1999 vornq_s8 (int8x16_t __a, int8x16_t __b)
2001 return __a | ~__b;
2004 __extension__ extern __inline int16x8_t
2005 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2006 vornq_s16 (int16x8_t __a, int16x8_t __b)
2008 return __a | ~__b;
2011 __extension__ extern __inline int32x4_t
2012 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2013 vornq_s32 (int32x4_t __a, int32x4_t __b)
2015 return __a | ~__b;
2018 __extension__ extern __inline int64x2_t
2019 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2020 vornq_s64 (int64x2_t __a, int64x2_t __b)
2022 return __a | ~__b;
2025 __extension__ extern __inline uint8x16_t
2026 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2027 vornq_u8 (uint8x16_t __a, uint8x16_t __b)
2029 return __a | ~__b;
2032 __extension__ extern __inline uint16x8_t
2033 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2034 vornq_u16 (uint16x8_t __a, uint16x8_t __b)
2036 return __a | ~__b;
2039 __extension__ extern __inline uint32x4_t
2040 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2041 vornq_u32 (uint32x4_t __a, uint32x4_t __b)
2043 return __a | ~__b;
2046 __extension__ extern __inline uint64x2_t
2047 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2048 vornq_u64 (uint64x2_t __a, uint64x2_t __b)
2050 return __a | ~__b;
2053 __extension__ extern __inline int8x8_t
2054 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2055 vsub_s8 (int8x8_t __a, int8x8_t __b)
2057 return __a - __b;
2060 __extension__ extern __inline int16x4_t
2061 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2062 vsub_s16 (int16x4_t __a, int16x4_t __b)
2064 return __a - __b;
2067 __extension__ extern __inline int32x2_t
2068 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2069 vsub_s32 (int32x2_t __a, int32x2_t __b)
2071 return __a - __b;
2074 __extension__ extern __inline float32x2_t
2075 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2076 vsub_f32 (float32x2_t __a, float32x2_t __b)
2078 return __a - __b;
2081 __extension__ extern __inline float64x1_t
2082 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2083 vsub_f64 (float64x1_t __a, float64x1_t __b)
2085 return __a - __b;
2088 __extension__ extern __inline uint8x8_t
2089 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2090 vsub_u8 (uint8x8_t __a, uint8x8_t __b)
2092 return __a - __b;
2095 __extension__ extern __inline uint16x4_t
2096 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2097 vsub_u16 (uint16x4_t __a, uint16x4_t __b)
2099 return __a - __b;
2102 __extension__ extern __inline uint32x2_t
2103 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2104 vsub_u32 (uint32x2_t __a, uint32x2_t __b)
2106 return __a - __b;
2109 __extension__ extern __inline int64x1_t
2110 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2111 vsub_s64 (int64x1_t __a, int64x1_t __b)
2113 return __a - __b;
2116 __extension__ extern __inline uint64x1_t
2117 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2118 vsub_u64 (uint64x1_t __a, uint64x1_t __b)
2120 return __a - __b;
2123 __extension__ extern __inline int8x16_t
2124 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2125 vsubq_s8 (int8x16_t __a, int8x16_t __b)
2127 return __a - __b;
2130 __extension__ extern __inline int16x8_t
2131 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2132 vsubq_s16 (int16x8_t __a, int16x8_t __b)
2134 return __a - __b;
2137 __extension__ extern __inline int32x4_t
2138 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2139 vsubq_s32 (int32x4_t __a, int32x4_t __b)
2141 return __a - __b;
2144 __extension__ extern __inline int64x2_t
2145 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2146 vsubq_s64 (int64x2_t __a, int64x2_t __b)
2148 return __a - __b;
2151 __extension__ extern __inline float32x4_t
2152 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2153 vsubq_f32 (float32x4_t __a, float32x4_t __b)
2155 return __a - __b;
2158 __extension__ extern __inline float64x2_t
2159 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2160 vsubq_f64 (float64x2_t __a, float64x2_t __b)
2162 return __a - __b;
2165 __extension__ extern __inline uint8x16_t
2166 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2167 vsubq_u8 (uint8x16_t __a, uint8x16_t __b)
2169 return __a - __b;
2172 __extension__ extern __inline uint16x8_t
2173 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2174 vsubq_u16 (uint16x8_t __a, uint16x8_t __b)
2176 return __a - __b;
2179 __extension__ extern __inline uint32x4_t
2180 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2181 vsubq_u32 (uint32x4_t __a, uint32x4_t __b)
2183 return __a - __b;
2186 __extension__ extern __inline uint64x2_t
2187 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2188 vsubq_u64 (uint64x2_t __a, uint64x2_t __b)
2190 return __a - __b;
2193 __extension__ extern __inline int16x8_t
2194 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2195 vsubl_s8 (int8x8_t __a, int8x8_t __b)
2197 return (int16x8_t) __builtin_aarch64_ssublv8qi (__a, __b);
2200 __extension__ extern __inline int32x4_t
2201 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2202 vsubl_s16 (int16x4_t __a, int16x4_t __b)
2204 return (int32x4_t) __builtin_aarch64_ssublv4hi (__a, __b);
2207 __extension__ extern __inline int64x2_t
2208 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2209 vsubl_s32 (int32x2_t __a, int32x2_t __b)
2211 return (int64x2_t) __builtin_aarch64_ssublv2si (__a, __b);
2214 __extension__ extern __inline uint16x8_t
2215 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2216 vsubl_u8 (uint8x8_t __a, uint8x8_t __b)
2218 return (uint16x8_t) __builtin_aarch64_usublv8qi ((int8x8_t) __a,
2219 (int8x8_t) __b);
2222 __extension__ extern __inline uint32x4_t
2223 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2224 vsubl_u16 (uint16x4_t __a, uint16x4_t __b)
2226 return (uint32x4_t) __builtin_aarch64_usublv4hi ((int16x4_t) __a,
2227 (int16x4_t) __b);
2230 __extension__ extern __inline uint64x2_t
2231 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2232 vsubl_u32 (uint32x2_t __a, uint32x2_t __b)
2234 return (uint64x2_t) __builtin_aarch64_usublv2si ((int32x2_t) __a,
2235 (int32x2_t) __b);
2238 __extension__ extern __inline int16x8_t
2239 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2240 vsubl_high_s8 (int8x16_t __a, int8x16_t __b)
2242 return (int16x8_t) __builtin_aarch64_ssubl2v16qi (__a, __b);
2245 __extension__ extern __inline int32x4_t
2246 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2247 vsubl_high_s16 (int16x8_t __a, int16x8_t __b)
2249 return (int32x4_t) __builtin_aarch64_ssubl2v8hi (__a, __b);
2252 __extension__ extern __inline int64x2_t
2253 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2254 vsubl_high_s32 (int32x4_t __a, int32x4_t __b)
2256 return (int64x2_t) __builtin_aarch64_ssubl2v4si (__a, __b);
2259 __extension__ extern __inline uint16x8_t
2260 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2261 vsubl_high_u8 (uint8x16_t __a, uint8x16_t __b)
2263 return (uint16x8_t) __builtin_aarch64_usubl2v16qi ((int8x16_t) __a,
2264 (int8x16_t) __b);
2267 __extension__ extern __inline uint32x4_t
2268 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2269 vsubl_high_u16 (uint16x8_t __a, uint16x8_t __b)
2271 return (uint32x4_t) __builtin_aarch64_usubl2v8hi ((int16x8_t) __a,
2272 (int16x8_t) __b);
2275 __extension__ extern __inline uint64x2_t
2276 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2277 vsubl_high_u32 (uint32x4_t __a, uint32x4_t __b)
2279 return (uint64x2_t) __builtin_aarch64_usubl2v4si ((int32x4_t) __a,
2280 (int32x4_t) __b);
2283 __extension__ extern __inline int16x8_t
2284 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2285 vsubw_s8 (int16x8_t __a, int8x8_t __b)
2287 return (int16x8_t) __builtin_aarch64_ssubwv8qi (__a, __b);
2290 __extension__ extern __inline int32x4_t
2291 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2292 vsubw_s16 (int32x4_t __a, int16x4_t __b)
2294 return (int32x4_t) __builtin_aarch64_ssubwv4hi (__a, __b);
2297 __extension__ extern __inline int64x2_t
2298 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2299 vsubw_s32 (int64x2_t __a, int32x2_t __b)
2301 return (int64x2_t) __builtin_aarch64_ssubwv2si (__a, __b);
2304 __extension__ extern __inline uint16x8_t
2305 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2306 vsubw_u8 (uint16x8_t __a, uint8x8_t __b)
2308 return (uint16x8_t) __builtin_aarch64_usubwv8qi ((int16x8_t) __a,
2309 (int8x8_t) __b);
2312 __extension__ extern __inline uint32x4_t
2313 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2314 vsubw_u16 (uint32x4_t __a, uint16x4_t __b)
2316 return (uint32x4_t) __builtin_aarch64_usubwv4hi ((int32x4_t) __a,
2317 (int16x4_t) __b);
2320 __extension__ extern __inline uint64x2_t
2321 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2322 vsubw_u32 (uint64x2_t __a, uint32x2_t __b)
2324 return (uint64x2_t) __builtin_aarch64_usubwv2si ((int64x2_t) __a,
2325 (int32x2_t) __b);
2328 __extension__ extern __inline int16x8_t
2329 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2330 vsubw_high_s8 (int16x8_t __a, int8x16_t __b)
2332 return (int16x8_t) __builtin_aarch64_ssubw2v16qi (__a, __b);
2335 __extension__ extern __inline int32x4_t
2336 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2337 vsubw_high_s16 (int32x4_t __a, int16x8_t __b)
2339 return (int32x4_t) __builtin_aarch64_ssubw2v8hi (__a, __b);
2342 __extension__ extern __inline int64x2_t
2343 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2344 vsubw_high_s32 (int64x2_t __a, int32x4_t __b)
2346 return (int64x2_t) __builtin_aarch64_ssubw2v4si (__a, __b);
2349 __extension__ extern __inline uint16x8_t
2350 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2351 vsubw_high_u8 (uint16x8_t __a, uint8x16_t __b)
2353 return (uint16x8_t) __builtin_aarch64_usubw2v16qi ((int16x8_t) __a,
2354 (int8x16_t) __b);
2357 __extension__ extern __inline uint32x4_t
2358 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2359 vsubw_high_u16 (uint32x4_t __a, uint16x8_t __b)
2361 return (uint32x4_t) __builtin_aarch64_usubw2v8hi ((int32x4_t) __a,
2362 (int16x8_t) __b);
2365 __extension__ extern __inline uint64x2_t
2366 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2367 vsubw_high_u32 (uint64x2_t __a, uint32x4_t __b)
2369 return (uint64x2_t) __builtin_aarch64_usubw2v4si ((int64x2_t) __a,
2370 (int32x4_t) __b);
2373 __extension__ extern __inline int8x8_t
2374 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2375 vqadd_s8 (int8x8_t __a, int8x8_t __b)
2377 return (int8x8_t) __builtin_aarch64_sqaddv8qi (__a, __b);
2380 __extension__ extern __inline int16x4_t
2381 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2382 vqadd_s16 (int16x4_t __a, int16x4_t __b)
2384 return (int16x4_t) __builtin_aarch64_sqaddv4hi (__a, __b);
2387 __extension__ extern __inline int32x2_t
2388 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2389 vqadd_s32 (int32x2_t __a, int32x2_t __b)
2391 return (int32x2_t) __builtin_aarch64_sqaddv2si (__a, __b);
2394 __extension__ extern __inline int64x1_t
2395 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2396 vqadd_s64 (int64x1_t __a, int64x1_t __b)
2398 return (int64x1_t) {__builtin_aarch64_sqadddi (__a[0], __b[0])};
2401 __extension__ extern __inline uint8x8_t
2402 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2403 vqadd_u8 (uint8x8_t __a, uint8x8_t __b)
2405 return __builtin_aarch64_uqaddv8qi_uuu (__a, __b);
2408 __extension__ extern __inline int8x8_t
2409 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2410 vhsub_s8 (int8x8_t __a, int8x8_t __b)
2412 return (int8x8_t)__builtin_aarch64_shsubv8qi (__a, __b);
2415 __extension__ extern __inline int16x4_t
2416 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2417 vhsub_s16 (int16x4_t __a, int16x4_t __b)
2419 return (int16x4_t) __builtin_aarch64_shsubv4hi (__a, __b);
2422 __extension__ extern __inline int32x2_t
2423 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2424 vhsub_s32 (int32x2_t __a, int32x2_t __b)
2426 return (int32x2_t) __builtin_aarch64_shsubv2si (__a, __b);
2429 __extension__ extern __inline uint8x8_t
2430 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2431 vhsub_u8 (uint8x8_t __a, uint8x8_t __b)
2433 return (uint8x8_t) __builtin_aarch64_uhsubv8qi ((int8x8_t) __a,
2434 (int8x8_t) __b);
2437 __extension__ extern __inline uint16x4_t
2438 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2439 vhsub_u16 (uint16x4_t __a, uint16x4_t __b)
2441 return (uint16x4_t) __builtin_aarch64_uhsubv4hi ((int16x4_t) __a,
2442 (int16x4_t) __b);
2445 __extension__ extern __inline uint32x2_t
2446 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2447 vhsub_u32 (uint32x2_t __a, uint32x2_t __b)
2449 return (uint32x2_t) __builtin_aarch64_uhsubv2si ((int32x2_t) __a,
2450 (int32x2_t) __b);
2453 __extension__ extern __inline int8x16_t
2454 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2455 vhsubq_s8 (int8x16_t __a, int8x16_t __b)
2457 return (int8x16_t) __builtin_aarch64_shsubv16qi (__a, __b);
2460 __extension__ extern __inline int16x8_t
2461 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2462 vhsubq_s16 (int16x8_t __a, int16x8_t __b)
2464 return (int16x8_t) __builtin_aarch64_shsubv8hi (__a, __b);
2467 __extension__ extern __inline int32x4_t
2468 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2469 vhsubq_s32 (int32x4_t __a, int32x4_t __b)
2471 return (int32x4_t) __builtin_aarch64_shsubv4si (__a, __b);
2474 __extension__ extern __inline uint8x16_t
2475 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2476 vhsubq_u8 (uint8x16_t __a, uint8x16_t __b)
2478 return (uint8x16_t) __builtin_aarch64_uhsubv16qi ((int8x16_t) __a,
2479 (int8x16_t) __b);
2482 __extension__ extern __inline uint16x8_t
2483 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2484 vhsubq_u16 (uint16x8_t __a, uint16x8_t __b)
2486 return (uint16x8_t) __builtin_aarch64_uhsubv8hi ((int16x8_t) __a,
2487 (int16x8_t) __b);
2490 __extension__ extern __inline uint32x4_t
2491 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2492 vhsubq_u32 (uint32x4_t __a, uint32x4_t __b)
2494 return (uint32x4_t) __builtin_aarch64_uhsubv4si ((int32x4_t) __a,
2495 (int32x4_t) __b);
2498 __extension__ extern __inline int8x8_t
2499 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2500 vsubhn_s16 (int16x8_t __a, int16x8_t __b)
2502 return (int8x8_t) __builtin_aarch64_subhnv8hi (__a, __b);
2505 __extension__ extern __inline int16x4_t
2506 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2507 vsubhn_s32 (int32x4_t __a, int32x4_t __b)
2509 return (int16x4_t) __builtin_aarch64_subhnv4si (__a, __b);
2512 __extension__ extern __inline int32x2_t
2513 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2514 vsubhn_s64 (int64x2_t __a, int64x2_t __b)
2516 return (int32x2_t) __builtin_aarch64_subhnv2di (__a, __b);
2519 __extension__ extern __inline uint8x8_t
2520 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2521 vsubhn_u16 (uint16x8_t __a, uint16x8_t __b)
2523 return (uint8x8_t) __builtin_aarch64_subhnv8hi ((int16x8_t) __a,
2524 (int16x8_t) __b);
2527 __extension__ extern __inline uint16x4_t
2528 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2529 vsubhn_u32 (uint32x4_t __a, uint32x4_t __b)
2531 return (uint16x4_t) __builtin_aarch64_subhnv4si ((int32x4_t) __a,
2532 (int32x4_t) __b);
2535 __extension__ extern __inline uint32x2_t
2536 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2537 vsubhn_u64 (uint64x2_t __a, uint64x2_t __b)
2539 return (uint32x2_t) __builtin_aarch64_subhnv2di ((int64x2_t) __a,
2540 (int64x2_t) __b);
2543 __extension__ extern __inline int8x8_t
2544 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2545 vrsubhn_s16 (int16x8_t __a, int16x8_t __b)
2547 return (int8x8_t) __builtin_aarch64_rsubhnv8hi (__a, __b);
2550 __extension__ extern __inline int16x4_t
2551 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2552 vrsubhn_s32 (int32x4_t __a, int32x4_t __b)
2554 return (int16x4_t) __builtin_aarch64_rsubhnv4si (__a, __b);
2557 __extension__ extern __inline int32x2_t
2558 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2559 vrsubhn_s64 (int64x2_t __a, int64x2_t __b)
2561 return (int32x2_t) __builtin_aarch64_rsubhnv2di (__a, __b);
2564 __extension__ extern __inline uint8x8_t
2565 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2566 vrsubhn_u16 (uint16x8_t __a, uint16x8_t __b)
2568 return (uint8x8_t) __builtin_aarch64_rsubhnv8hi ((int16x8_t) __a,
2569 (int16x8_t) __b);
2572 __extension__ extern __inline uint16x4_t
2573 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2574 vrsubhn_u32 (uint32x4_t __a, uint32x4_t __b)
2576 return (uint16x4_t) __builtin_aarch64_rsubhnv4si ((int32x4_t) __a,
2577 (int32x4_t) __b);
2580 __extension__ extern __inline uint32x2_t
2581 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2582 vrsubhn_u64 (uint64x2_t __a, uint64x2_t __b)
2584 return (uint32x2_t) __builtin_aarch64_rsubhnv2di ((int64x2_t) __a,
2585 (int64x2_t) __b);
2588 __extension__ extern __inline int8x16_t
2589 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2590 vrsubhn_high_s16 (int8x8_t __a, int16x8_t __b, int16x8_t __c)
2592 return (int8x16_t) __builtin_aarch64_rsubhn2v8hi (__a, __b, __c);
2595 __extension__ extern __inline int16x8_t
2596 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2597 vrsubhn_high_s32 (int16x4_t __a, int32x4_t __b, int32x4_t __c)
2599 return (int16x8_t) __builtin_aarch64_rsubhn2v4si (__a, __b, __c);
2602 __extension__ extern __inline int32x4_t
2603 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2604 vrsubhn_high_s64 (int32x2_t __a, int64x2_t __b, int64x2_t __c)
2606 return (int32x4_t) __builtin_aarch64_rsubhn2v2di (__a, __b, __c);
2609 __extension__ extern __inline uint8x16_t
2610 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2611 vrsubhn_high_u16 (uint8x8_t __a, uint16x8_t __b, uint16x8_t __c)
2613 return (uint8x16_t) __builtin_aarch64_rsubhn2v8hi ((int8x8_t) __a,
2614 (int16x8_t) __b,
2615 (int16x8_t) __c);
2618 __extension__ extern __inline uint16x8_t
2619 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2620 vrsubhn_high_u32 (uint16x4_t __a, uint32x4_t __b, uint32x4_t __c)
2622 return (uint16x8_t) __builtin_aarch64_rsubhn2v4si ((int16x4_t) __a,
2623 (int32x4_t) __b,
2624 (int32x4_t) __c);
2627 __extension__ extern __inline uint32x4_t
2628 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2629 vrsubhn_high_u64 (uint32x2_t __a, uint64x2_t __b, uint64x2_t __c)
2631 return (uint32x4_t) __builtin_aarch64_rsubhn2v2di ((int32x2_t) __a,
2632 (int64x2_t) __b,
2633 (int64x2_t) __c);
2636 __extension__ extern __inline int8x16_t
2637 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2638 vsubhn_high_s16 (int8x8_t __a, int16x8_t __b, int16x8_t __c)
2640 return (int8x16_t) __builtin_aarch64_subhn2v8hi (__a, __b, __c);
2643 __extension__ extern __inline int16x8_t
2644 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2645 vsubhn_high_s32 (int16x4_t __a, int32x4_t __b, int32x4_t __c)
2647 return (int16x8_t) __builtin_aarch64_subhn2v4si (__a, __b, __c);;
2650 __extension__ extern __inline int32x4_t
2651 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2652 vsubhn_high_s64 (int32x2_t __a, int64x2_t __b, int64x2_t __c)
2654 return (int32x4_t) __builtin_aarch64_subhn2v2di (__a, __b, __c);
2657 __extension__ extern __inline uint8x16_t
2658 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2659 vsubhn_high_u16 (uint8x8_t __a, uint16x8_t __b, uint16x8_t __c)
2661 return (uint8x16_t) __builtin_aarch64_subhn2v8hi ((int8x8_t) __a,
2662 (int16x8_t) __b,
2663 (int16x8_t) __c);
2666 __extension__ extern __inline uint16x8_t
2667 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2668 vsubhn_high_u32 (uint16x4_t __a, uint32x4_t __b, uint32x4_t __c)
2670 return (uint16x8_t) __builtin_aarch64_subhn2v4si ((int16x4_t) __a,
2671 (int32x4_t) __b,
2672 (int32x4_t) __c);
2675 __extension__ extern __inline uint32x4_t
2676 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2677 vsubhn_high_u64 (uint32x2_t __a, uint64x2_t __b, uint64x2_t __c)
2679 return (uint32x4_t) __builtin_aarch64_subhn2v2di ((int32x2_t) __a,
2680 (int64x2_t) __b,
2681 (int64x2_t) __c);
2684 __extension__ extern __inline uint16x4_t
2685 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2686 vqadd_u16 (uint16x4_t __a, uint16x4_t __b)
2688 return __builtin_aarch64_uqaddv4hi_uuu (__a, __b);
2691 __extension__ extern __inline uint32x2_t
2692 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2693 vqadd_u32 (uint32x2_t __a, uint32x2_t __b)
2695 return __builtin_aarch64_uqaddv2si_uuu (__a, __b);
2698 __extension__ extern __inline uint64x1_t
2699 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2700 vqadd_u64 (uint64x1_t __a, uint64x1_t __b)
2702 return (uint64x1_t) {__builtin_aarch64_uqadddi_uuu (__a[0], __b[0])};
2705 __extension__ extern __inline int8x16_t
2706 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2707 vqaddq_s8 (int8x16_t __a, int8x16_t __b)
2709 return (int8x16_t) __builtin_aarch64_sqaddv16qi (__a, __b);
2712 __extension__ extern __inline int16x8_t
2713 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2714 vqaddq_s16 (int16x8_t __a, int16x8_t __b)
2716 return (int16x8_t) __builtin_aarch64_sqaddv8hi (__a, __b);
2719 __extension__ extern __inline int32x4_t
2720 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2721 vqaddq_s32 (int32x4_t __a, int32x4_t __b)
2723 return (int32x4_t) __builtin_aarch64_sqaddv4si (__a, __b);
2726 __extension__ extern __inline int64x2_t
2727 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2728 vqaddq_s64 (int64x2_t __a, int64x2_t __b)
2730 return (int64x2_t) __builtin_aarch64_sqaddv2di (__a, __b);
2733 __extension__ extern __inline uint8x16_t
2734 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2735 vqaddq_u8 (uint8x16_t __a, uint8x16_t __b)
2737 return __builtin_aarch64_uqaddv16qi_uuu (__a, __b);
2740 __extension__ extern __inline uint16x8_t
2741 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2742 vqaddq_u16 (uint16x8_t __a, uint16x8_t __b)
2744 return __builtin_aarch64_uqaddv8hi_uuu (__a, __b);
2747 __extension__ extern __inline uint32x4_t
2748 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2749 vqaddq_u32 (uint32x4_t __a, uint32x4_t __b)
2751 return __builtin_aarch64_uqaddv4si_uuu (__a, __b);
2754 __extension__ extern __inline uint64x2_t
2755 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2756 vqaddq_u64 (uint64x2_t __a, uint64x2_t __b)
2758 return __builtin_aarch64_uqaddv2di_uuu (__a, __b);
2761 __extension__ extern __inline int8x8_t
2762 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2763 vqsub_s8 (int8x8_t __a, int8x8_t __b)
2765 return (int8x8_t) __builtin_aarch64_sqsubv8qi (__a, __b);
2768 __extension__ extern __inline int16x4_t
2769 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2770 vqsub_s16 (int16x4_t __a, int16x4_t __b)
2772 return (int16x4_t) __builtin_aarch64_sqsubv4hi (__a, __b);
2775 __extension__ extern __inline int32x2_t
2776 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2777 vqsub_s32 (int32x2_t __a, int32x2_t __b)
2779 return (int32x2_t) __builtin_aarch64_sqsubv2si (__a, __b);
2782 __extension__ extern __inline int64x1_t
2783 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2784 vqsub_s64 (int64x1_t __a, int64x1_t __b)
2786 return (int64x1_t) {__builtin_aarch64_sqsubdi (__a[0], __b[0])};
2789 __extension__ extern __inline uint8x8_t
2790 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2791 vqsub_u8 (uint8x8_t __a, uint8x8_t __b)
2793 return __builtin_aarch64_uqsubv8qi_uuu (__a, __b);
2796 __extension__ extern __inline uint16x4_t
2797 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2798 vqsub_u16 (uint16x4_t __a, uint16x4_t __b)
2800 return __builtin_aarch64_uqsubv4hi_uuu (__a, __b);
2803 __extension__ extern __inline uint32x2_t
2804 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2805 vqsub_u32 (uint32x2_t __a, uint32x2_t __b)
2807 return __builtin_aarch64_uqsubv2si_uuu (__a, __b);
2810 __extension__ extern __inline uint64x1_t
2811 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2812 vqsub_u64 (uint64x1_t __a, uint64x1_t __b)
2814 return (uint64x1_t) {__builtin_aarch64_uqsubdi_uuu (__a[0], __b[0])};
2817 __extension__ extern __inline int8x16_t
2818 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2819 vqsubq_s8 (int8x16_t __a, int8x16_t __b)
2821 return (int8x16_t) __builtin_aarch64_sqsubv16qi (__a, __b);
2824 __extension__ extern __inline int16x8_t
2825 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2826 vqsubq_s16 (int16x8_t __a, int16x8_t __b)
2828 return (int16x8_t) __builtin_aarch64_sqsubv8hi (__a, __b);
2831 __extension__ extern __inline int32x4_t
2832 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2833 vqsubq_s32 (int32x4_t __a, int32x4_t __b)
2835 return (int32x4_t) __builtin_aarch64_sqsubv4si (__a, __b);
2838 __extension__ extern __inline int64x2_t
2839 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2840 vqsubq_s64 (int64x2_t __a, int64x2_t __b)
2842 return (int64x2_t) __builtin_aarch64_sqsubv2di (__a, __b);
2845 __extension__ extern __inline uint8x16_t
2846 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2847 vqsubq_u8 (uint8x16_t __a, uint8x16_t __b)
2849 return __builtin_aarch64_uqsubv16qi_uuu (__a, __b);
2852 __extension__ extern __inline uint16x8_t
2853 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2854 vqsubq_u16 (uint16x8_t __a, uint16x8_t __b)
2856 return __builtin_aarch64_uqsubv8hi_uuu (__a, __b);
2859 __extension__ extern __inline uint32x4_t
2860 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2861 vqsubq_u32 (uint32x4_t __a, uint32x4_t __b)
2863 return __builtin_aarch64_uqsubv4si_uuu (__a, __b);
2866 __extension__ extern __inline uint64x2_t
2867 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2868 vqsubq_u64 (uint64x2_t __a, uint64x2_t __b)
2870 return __builtin_aarch64_uqsubv2di_uuu (__a, __b);
2873 __extension__ extern __inline int8x8_t
2874 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2875 vqneg_s8 (int8x8_t __a)
2877 return (int8x8_t) __builtin_aarch64_sqnegv8qi (__a);
2880 __extension__ extern __inline int16x4_t
2881 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2882 vqneg_s16 (int16x4_t __a)
2884 return (int16x4_t) __builtin_aarch64_sqnegv4hi (__a);
2887 __extension__ extern __inline int32x2_t
2888 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2889 vqneg_s32 (int32x2_t __a)
2891 return (int32x2_t) __builtin_aarch64_sqnegv2si (__a);
2894 __extension__ extern __inline int64x1_t
2895 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2896 vqneg_s64 (int64x1_t __a)
2898 return (int64x1_t) {__builtin_aarch64_sqnegdi (__a[0])};
2901 __extension__ extern __inline int8x16_t
2902 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2903 vqnegq_s8 (int8x16_t __a)
2905 return (int8x16_t) __builtin_aarch64_sqnegv16qi (__a);
2908 __extension__ extern __inline int16x8_t
2909 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2910 vqnegq_s16 (int16x8_t __a)
2912 return (int16x8_t) __builtin_aarch64_sqnegv8hi (__a);
2915 __extension__ extern __inline int32x4_t
2916 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2917 vqnegq_s32 (int32x4_t __a)
2919 return (int32x4_t) __builtin_aarch64_sqnegv4si (__a);
2922 __extension__ extern __inline int8x8_t
2923 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2924 vqabs_s8 (int8x8_t __a)
2926 return (int8x8_t) __builtin_aarch64_sqabsv8qi (__a);
2929 __extension__ extern __inline int16x4_t
2930 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2931 vqabs_s16 (int16x4_t __a)
2933 return (int16x4_t) __builtin_aarch64_sqabsv4hi (__a);
2936 __extension__ extern __inline int32x2_t
2937 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2938 vqabs_s32 (int32x2_t __a)
2940 return (int32x2_t) __builtin_aarch64_sqabsv2si (__a);
2943 __extension__ extern __inline int64x1_t
2944 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2945 vqabs_s64 (int64x1_t __a)
2947 return (int64x1_t) {__builtin_aarch64_sqabsdi (__a[0])};
2950 __extension__ extern __inline int8x16_t
2951 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2952 vqabsq_s8 (int8x16_t __a)
2954 return (int8x16_t) __builtin_aarch64_sqabsv16qi (__a);
2957 __extension__ extern __inline int16x8_t
2958 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2959 vqabsq_s16 (int16x8_t __a)
2961 return (int16x8_t) __builtin_aarch64_sqabsv8hi (__a);
2964 __extension__ extern __inline int32x4_t
2965 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2966 vqabsq_s32 (int32x4_t __a)
2968 return (int32x4_t) __builtin_aarch64_sqabsv4si (__a);
2971 __extension__ extern __inline int16x4_t
2972 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2973 vqdmulh_s16 (int16x4_t __a, int16x4_t __b)
2975 return (int16x4_t) __builtin_aarch64_sqdmulhv4hi (__a, __b);
2978 __extension__ extern __inline int32x2_t
2979 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2980 vqdmulh_s32 (int32x2_t __a, int32x2_t __b)
2982 return (int32x2_t) __builtin_aarch64_sqdmulhv2si (__a, __b);
2985 __extension__ extern __inline int16x8_t
2986 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2987 vqdmulhq_s16 (int16x8_t __a, int16x8_t __b)
2989 return (int16x8_t) __builtin_aarch64_sqdmulhv8hi (__a, __b);
2992 __extension__ extern __inline int32x4_t
2993 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2994 vqdmulhq_s32 (int32x4_t __a, int32x4_t __b)
2996 return (int32x4_t) __builtin_aarch64_sqdmulhv4si (__a, __b);
2999 __extension__ extern __inline int16x4_t
3000 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3001 vqrdmulh_s16 (int16x4_t __a, int16x4_t __b)
3003 return (int16x4_t) __builtin_aarch64_sqrdmulhv4hi (__a, __b);
3006 __extension__ extern __inline int32x2_t
3007 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3008 vqrdmulh_s32 (int32x2_t __a, int32x2_t __b)
3010 return (int32x2_t) __builtin_aarch64_sqrdmulhv2si (__a, __b);
3013 __extension__ extern __inline int16x8_t
3014 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3015 vqrdmulhq_s16 (int16x8_t __a, int16x8_t __b)
3017 return (int16x8_t) __builtin_aarch64_sqrdmulhv8hi (__a, __b);
3020 __extension__ extern __inline int32x4_t
3021 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3022 vqrdmulhq_s32 (int32x4_t __a, int32x4_t __b)
3024 return (int32x4_t) __builtin_aarch64_sqrdmulhv4si (__a, __b);
3027 __extension__ extern __inline int8x8_t
3028 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3029 vcreate_s8 (uint64_t __a)
3031 return (int8x8_t) __a;
3034 __extension__ extern __inline int16x4_t
3035 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3036 vcreate_s16 (uint64_t __a)
3038 return (int16x4_t) __a;
3041 __extension__ extern __inline int32x2_t
3042 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3043 vcreate_s32 (uint64_t __a)
3045 return (int32x2_t) __a;
3048 __extension__ extern __inline int64x1_t
3049 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3050 vcreate_s64 (uint64_t __a)
3052 return (int64x1_t) {__a};
3055 __extension__ extern __inline float16x4_t
3056 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3057 vcreate_f16 (uint64_t __a)
3059 return (float16x4_t) __a;
3062 __extension__ extern __inline float32x2_t
3063 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3064 vcreate_f32 (uint64_t __a)
3066 return (float32x2_t) __a;
3069 __extension__ extern __inline uint8x8_t
3070 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3071 vcreate_u8 (uint64_t __a)
3073 return (uint8x8_t) __a;
3076 __extension__ extern __inline uint16x4_t
3077 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3078 vcreate_u16 (uint64_t __a)
3080 return (uint16x4_t) __a;
3083 __extension__ extern __inline uint32x2_t
3084 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3085 vcreate_u32 (uint64_t __a)
3087 return (uint32x2_t) __a;
3090 __extension__ extern __inline uint64x1_t
3091 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3092 vcreate_u64 (uint64_t __a)
3094 return (uint64x1_t) {__a};
3097 __extension__ extern __inline float64x1_t
3098 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3099 vcreate_f64 (uint64_t __a)
3101 return (float64x1_t) __a;
3104 __extension__ extern __inline poly8x8_t
3105 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3106 vcreate_p8 (uint64_t __a)
3108 return (poly8x8_t) __a;
3111 __extension__ extern __inline poly16x4_t
3112 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3113 vcreate_p16 (uint64_t __a)
3115 return (poly16x4_t) __a;
3118 __extension__ extern __inline poly64x1_t
3119 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3120 vcreate_p64 (uint64_t __a)
3122 return (poly64x1_t) __a;
3125 /* vget_lane */
3127 __extension__ extern __inline float16_t
3128 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3129 vget_lane_f16 (float16x4_t __a, const int __b)
3131 return __aarch64_vget_lane_any (__a, __b);
3134 __extension__ extern __inline float32_t
3135 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3136 vget_lane_f32 (float32x2_t __a, const int __b)
3138 return __aarch64_vget_lane_any (__a, __b);
3141 __extension__ extern __inline float64_t
3142 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3143 vget_lane_f64 (float64x1_t __a, const int __b)
3145 return __aarch64_vget_lane_any (__a, __b);
3148 __extension__ extern __inline poly8_t
3149 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3150 vget_lane_p8 (poly8x8_t __a, const int __b)
3152 return __aarch64_vget_lane_any (__a, __b);
3155 __extension__ extern __inline poly16_t
3156 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3157 vget_lane_p16 (poly16x4_t __a, const int __b)
3159 return __aarch64_vget_lane_any (__a, __b);
3162 __extension__ extern __inline poly64_t
3163 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3164 vget_lane_p64 (poly64x1_t __a, const int __b)
3166 return __aarch64_vget_lane_any (__a, __b);
3169 __extension__ extern __inline int8_t
3170 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3171 vget_lane_s8 (int8x8_t __a, const int __b)
3173 return __aarch64_vget_lane_any (__a, __b);
3176 __extension__ extern __inline int16_t
3177 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3178 vget_lane_s16 (int16x4_t __a, const int __b)
3180 return __aarch64_vget_lane_any (__a, __b);
3183 __extension__ extern __inline int32_t
3184 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3185 vget_lane_s32 (int32x2_t __a, const int __b)
3187 return __aarch64_vget_lane_any (__a, __b);
3190 __extension__ extern __inline int64_t
3191 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3192 vget_lane_s64 (int64x1_t __a, const int __b)
3194 return __aarch64_vget_lane_any (__a, __b);
3197 __extension__ extern __inline uint8_t
3198 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3199 vget_lane_u8 (uint8x8_t __a, const int __b)
3201 return __aarch64_vget_lane_any (__a, __b);
3204 __extension__ extern __inline uint16_t
3205 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3206 vget_lane_u16 (uint16x4_t __a, const int __b)
3208 return __aarch64_vget_lane_any (__a, __b);
3211 __extension__ extern __inline uint32_t
3212 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3213 vget_lane_u32 (uint32x2_t __a, const int __b)
3215 return __aarch64_vget_lane_any (__a, __b);
3218 __extension__ extern __inline uint64_t
3219 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3220 vget_lane_u64 (uint64x1_t __a, const int __b)
3222 return __aarch64_vget_lane_any (__a, __b);
3225 /* vgetq_lane */
3227 __extension__ extern __inline float16_t
3228 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3229 vgetq_lane_f16 (float16x8_t __a, const int __b)
3231 return __aarch64_vget_lane_any (__a, __b);
3234 __extension__ extern __inline float32_t
3235 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3236 vgetq_lane_f32 (float32x4_t __a, const int __b)
3238 return __aarch64_vget_lane_any (__a, __b);
3241 __extension__ extern __inline float64_t
3242 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3243 vgetq_lane_f64 (float64x2_t __a, const int __b)
3245 return __aarch64_vget_lane_any (__a, __b);
3248 __extension__ extern __inline poly8_t
3249 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3250 vgetq_lane_p8 (poly8x16_t __a, const int __b)
3252 return __aarch64_vget_lane_any (__a, __b);
3255 __extension__ extern __inline poly16_t
3256 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3257 vgetq_lane_p16 (poly16x8_t __a, const int __b)
3259 return __aarch64_vget_lane_any (__a, __b);
3262 __extension__ extern __inline poly64_t
3263 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3264 vgetq_lane_p64 (poly64x2_t __a, const int __b)
3266 return __aarch64_vget_lane_any (__a, __b);
3269 __extension__ extern __inline int8_t
3270 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3271 vgetq_lane_s8 (int8x16_t __a, const int __b)
3273 return __aarch64_vget_lane_any (__a, __b);
3276 __extension__ extern __inline int16_t
3277 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3278 vgetq_lane_s16 (int16x8_t __a, const int __b)
3280 return __aarch64_vget_lane_any (__a, __b);
3283 __extension__ extern __inline int32_t
3284 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3285 vgetq_lane_s32 (int32x4_t __a, const int __b)
3287 return __aarch64_vget_lane_any (__a, __b);
3290 __extension__ extern __inline int64_t
3291 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3292 vgetq_lane_s64 (int64x2_t __a, const int __b)
3294 return __aarch64_vget_lane_any (__a, __b);
3297 __extension__ extern __inline uint8_t
3298 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3299 vgetq_lane_u8 (uint8x16_t __a, const int __b)
3301 return __aarch64_vget_lane_any (__a, __b);
3304 __extension__ extern __inline uint16_t
3305 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3306 vgetq_lane_u16 (uint16x8_t __a, const int __b)
3308 return __aarch64_vget_lane_any (__a, __b);
3311 __extension__ extern __inline uint32_t
3312 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3313 vgetq_lane_u32 (uint32x4_t __a, const int __b)
3315 return __aarch64_vget_lane_any (__a, __b);
3318 __extension__ extern __inline uint64_t
3319 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3320 vgetq_lane_u64 (uint64x2_t __a, const int __b)
3322 return __aarch64_vget_lane_any (__a, __b);
3325 /* vreinterpret */
3327 __extension__ extern __inline poly8x8_t
3328 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3329 vreinterpret_p8_f16 (float16x4_t __a)
3331 return (poly8x8_t) __a;
3334 __extension__ extern __inline poly8x8_t
3335 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3336 vreinterpret_p8_f64 (float64x1_t __a)
3338 return (poly8x8_t) __a;
3341 __extension__ extern __inline poly8x8_t
3342 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3343 vreinterpret_p8_s8 (int8x8_t __a)
3345 return (poly8x8_t) __a;
3348 __extension__ extern __inline poly8x8_t
3349 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3350 vreinterpret_p8_s16 (int16x4_t __a)
3352 return (poly8x8_t) __a;
3355 __extension__ extern __inline poly8x8_t
3356 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3357 vreinterpret_p8_s32 (int32x2_t __a)
3359 return (poly8x8_t) __a;
3362 __extension__ extern __inline poly8x8_t
3363 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3364 vreinterpret_p8_s64 (int64x1_t __a)
3366 return (poly8x8_t) __a;
3369 __extension__ extern __inline poly8x8_t
3370 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3371 vreinterpret_p8_f32 (float32x2_t __a)
3373 return (poly8x8_t) __a;
3376 __extension__ extern __inline poly8x8_t
3377 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3378 vreinterpret_p8_u8 (uint8x8_t __a)
3380 return (poly8x8_t) __a;
3383 __extension__ extern __inline poly8x8_t
3384 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3385 vreinterpret_p8_u16 (uint16x4_t __a)
3387 return (poly8x8_t) __a;
3390 __extension__ extern __inline poly8x8_t
3391 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3392 vreinterpret_p8_u32 (uint32x2_t __a)
3394 return (poly8x8_t) __a;
3397 __extension__ extern __inline poly8x8_t
3398 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3399 vreinterpret_p8_u64 (uint64x1_t __a)
3401 return (poly8x8_t) __a;
3404 __extension__ extern __inline poly8x8_t
3405 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3406 vreinterpret_p8_p16 (poly16x4_t __a)
3408 return (poly8x8_t) __a;
3411 __extension__ extern __inline poly8x8_t
3412 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3413 vreinterpret_p8_p64 (poly64x1_t __a)
3415 return (poly8x8_t) __a;
3418 __extension__ extern __inline poly8x16_t
3419 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3420 vreinterpretq_p8_f64 (float64x2_t __a)
3422 return (poly8x16_t) __a;
3425 __extension__ extern __inline poly8x16_t
3426 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3427 vreinterpretq_p8_s8 (int8x16_t __a)
3429 return (poly8x16_t) __a;
3432 __extension__ extern __inline poly8x16_t
3433 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3434 vreinterpretq_p8_s16 (int16x8_t __a)
3436 return (poly8x16_t) __a;
3439 __extension__ extern __inline poly8x16_t
3440 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3441 vreinterpretq_p8_s32 (int32x4_t __a)
3443 return (poly8x16_t) __a;
3446 __extension__ extern __inline poly8x16_t
3447 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3448 vreinterpretq_p8_s64 (int64x2_t __a)
3450 return (poly8x16_t) __a;
3453 __extension__ extern __inline poly8x16_t
3454 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3455 vreinterpretq_p8_f16 (float16x8_t __a)
3457 return (poly8x16_t) __a;
3460 __extension__ extern __inline poly8x16_t
3461 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3462 vreinterpretq_p8_f32 (float32x4_t __a)
3464 return (poly8x16_t) __a;
3467 __extension__ extern __inline poly8x16_t
3468 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3469 vreinterpretq_p8_u8 (uint8x16_t __a)
3471 return (poly8x16_t) __a;
3474 __extension__ extern __inline poly8x16_t
3475 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3476 vreinterpretq_p8_u16 (uint16x8_t __a)
3478 return (poly8x16_t) __a;
3481 __extension__ extern __inline poly8x16_t
3482 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3483 vreinterpretq_p8_u32 (uint32x4_t __a)
3485 return (poly8x16_t) __a;
3488 __extension__ extern __inline poly8x16_t
3489 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3490 vreinterpretq_p8_u64 (uint64x2_t __a)
3492 return (poly8x16_t) __a;
3495 __extension__ extern __inline poly8x16_t
3496 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3497 vreinterpretq_p8_p16 (poly16x8_t __a)
3499 return (poly8x16_t) __a;
3502 __extension__ extern __inline poly8x16_t
3503 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3504 vreinterpretq_p8_p64 (poly64x2_t __a)
3506 return (poly8x16_t) __a;
3509 __extension__ extern __inline poly16x4_t
3510 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3511 vreinterpret_p16_f16 (float16x4_t __a)
3513 return (poly16x4_t) __a;
3516 __extension__ extern __inline poly16x4_t
3517 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3518 vreinterpret_p16_f64 (float64x1_t __a)
3520 return (poly16x4_t) __a;
3523 __extension__ extern __inline poly16x4_t
3524 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3525 vreinterpret_p16_s8 (int8x8_t __a)
3527 return (poly16x4_t) __a;
3530 __extension__ extern __inline poly16x4_t
3531 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3532 vreinterpret_p16_s16 (int16x4_t __a)
3534 return (poly16x4_t) __a;
3537 __extension__ extern __inline poly16x4_t
3538 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3539 vreinterpret_p16_s32 (int32x2_t __a)
3541 return (poly16x4_t) __a;
3544 __extension__ extern __inline poly16x4_t
3545 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3546 vreinterpret_p16_s64 (int64x1_t __a)
3548 return (poly16x4_t) __a;
3551 __extension__ extern __inline poly16x4_t
3552 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3553 vreinterpret_p16_f32 (float32x2_t __a)
3555 return (poly16x4_t) __a;
3558 __extension__ extern __inline poly16x4_t
3559 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3560 vreinterpret_p16_u8 (uint8x8_t __a)
3562 return (poly16x4_t) __a;
3565 __extension__ extern __inline poly16x4_t
3566 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3567 vreinterpret_p16_u16 (uint16x4_t __a)
3569 return (poly16x4_t) __a;
3572 __extension__ extern __inline poly16x4_t
3573 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3574 vreinterpret_p16_u32 (uint32x2_t __a)
3576 return (poly16x4_t) __a;
3579 __extension__ extern __inline poly16x4_t
3580 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3581 vreinterpret_p16_u64 (uint64x1_t __a)
3583 return (poly16x4_t) __a;
3586 __extension__ extern __inline poly16x4_t
3587 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3588 vreinterpret_p16_p8 (poly8x8_t __a)
3590 return (poly16x4_t) __a;
3593 __extension__ extern __inline poly16x4_t
3594 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3595 vreinterpret_p16_p64 (poly64x1_t __a)
3597 return (poly16x4_t) __a;
3600 __extension__ extern __inline poly16x8_t
3601 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3602 vreinterpretq_p16_f64 (float64x2_t __a)
3604 return (poly16x8_t) __a;
3607 __extension__ extern __inline poly16x8_t
3608 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3609 vreinterpretq_p16_s8 (int8x16_t __a)
3611 return (poly16x8_t) __a;
3614 __extension__ extern __inline poly16x8_t
3615 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3616 vreinterpretq_p16_s16 (int16x8_t __a)
3618 return (poly16x8_t) __a;
3621 __extension__ extern __inline poly16x8_t
3622 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3623 vreinterpretq_p16_s32 (int32x4_t __a)
3625 return (poly16x8_t) __a;
3628 __extension__ extern __inline poly16x8_t
3629 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3630 vreinterpretq_p16_s64 (int64x2_t __a)
3632 return (poly16x8_t) __a;
3635 __extension__ extern __inline poly16x8_t
3636 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3637 vreinterpretq_p16_f16 (float16x8_t __a)
3639 return (poly16x8_t) __a;
3642 __extension__ extern __inline poly16x8_t
3643 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3644 vreinterpretq_p16_f32 (float32x4_t __a)
3646 return (poly16x8_t) __a;
3649 __extension__ extern __inline poly16x8_t
3650 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3651 vreinterpretq_p16_u8 (uint8x16_t __a)
3653 return (poly16x8_t) __a;
3656 __extension__ extern __inline poly16x8_t
3657 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3658 vreinterpretq_p16_u16 (uint16x8_t __a)
3660 return (poly16x8_t) __a;
3663 __extension__ extern __inline poly16x8_t
3664 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3665 vreinterpretq_p16_u32 (uint32x4_t __a)
3667 return (poly16x8_t) __a;
3670 __extension__ extern __inline poly16x8_t
3671 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3672 vreinterpretq_p16_u64 (uint64x2_t __a)
3674 return (poly16x8_t) __a;
3677 __extension__ extern __inline poly16x8_t
3678 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3679 vreinterpretq_p16_p8 (poly8x16_t __a)
3681 return (poly16x8_t) __a;
3684 __extension__ extern __inline poly16x8_t
3685 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3686 vreinterpretq_p16_p64 (poly64x2_t __a)
3688 return (poly16x8_t) __a;
3691 __extension__ extern __inline poly64x1_t
3692 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3693 vreinterpret_p64_f16 (float16x4_t __a)
3695 return (poly64x1_t) __a;
3698 __extension__ extern __inline poly64x1_t
3699 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3700 vreinterpret_p64_f64 (float64x1_t __a)
3702 return (poly64x1_t) __a;
3705 __extension__ extern __inline poly64x1_t
3706 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3707 vreinterpret_p64_s8 (int8x8_t __a)
3709 return (poly64x1_t) __a;
3712 __extension__ extern __inline poly64x1_t
3713 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3714 vreinterpret_p64_s16 (int16x4_t __a)
3716 return (poly64x1_t) __a;
3719 __extension__ extern __inline poly64x1_t
3720 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3721 vreinterpret_p64_s32 (int32x2_t __a)
3723 return (poly64x1_t) __a;
3726 __extension__ extern __inline poly64x1_t
3727 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3728 vreinterpret_p64_s64 (int64x1_t __a)
3730 return (poly64x1_t) __a;
3733 __extension__ extern __inline poly64x1_t
3734 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3735 vreinterpret_p64_f32 (float32x2_t __a)
3737 return (poly64x1_t) __a;
3740 __extension__ extern __inline poly64x1_t
3741 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3742 vreinterpret_p64_u8 (uint8x8_t __a)
3744 return (poly64x1_t) __a;
3747 __extension__ extern __inline poly64x1_t
3748 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3749 vreinterpret_p64_u16 (uint16x4_t __a)
3751 return (poly64x1_t) __a;
3754 __extension__ extern __inline poly64x1_t
3755 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3756 vreinterpret_p64_u32 (uint32x2_t __a)
3758 return (poly64x1_t) __a;
3761 __extension__ extern __inline poly64x1_t
3762 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3763 vreinterpret_p64_u64 (uint64x1_t __a)
3765 return (poly64x1_t) __a;
3768 __extension__ extern __inline poly64x1_t
3769 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3770 vreinterpret_p64_p8 (poly8x8_t __a)
3772 return (poly64x1_t) __a;
3775 __extension__ extern __inline poly64x2_t
3776 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3777 vreinterpretq_p64_f64 (float64x2_t __a)
3779 return (poly64x2_t) __a;
3782 __extension__ extern __inline poly64x2_t
3783 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3784 vreinterpretq_p64_s8 (int8x16_t __a)
3786 return (poly64x2_t) __a;
3789 __extension__ extern __inline poly64x2_t
3790 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3791 vreinterpretq_p64_s16 (int16x8_t __a)
3793 return (poly64x2_t) __a;
3796 __extension__ extern __inline poly64x2_t
3797 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3798 vreinterpretq_p64_s32 (int32x4_t __a)
3800 return (poly64x2_t) __a;
3803 __extension__ extern __inline poly64x2_t
3804 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3805 vreinterpretq_p64_s64 (int64x2_t __a)
3807 return (poly64x2_t) __a;
3810 __extension__ extern __inline poly64x2_t
3811 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3812 vreinterpretq_p64_f16 (float16x8_t __a)
3814 return (poly64x2_t) __a;
3817 __extension__ extern __inline poly64x2_t
3818 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3819 vreinterpretq_p64_f32 (float32x4_t __a)
3821 return (poly64x2_t) __a;
3824 __extension__ extern __inline poly64x2_t
3825 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3826 vreinterpretq_p64_u8 (uint8x16_t __a)
3828 return (poly64x2_t) __a;
3831 __extension__ extern __inline poly64x2_t
3832 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3833 vreinterpretq_p64_u16 (uint16x8_t __a)
3835 return (poly64x2_t) __a;
3838 __extension__ extern __inline poly64x2_t
3839 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3840 vreinterpretq_p64_u32 (uint32x4_t __a)
3842 return (poly64x2_t) __a;
3845 __extension__ extern __inline poly64x2_t
3846 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3847 vreinterpretq_p64_u64 (uint64x2_t __a)
3849 return (poly64x2_t) __a;
3852 __extension__ extern __inline poly64x2_t
3853 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3854 vreinterpretq_p64_p8 (poly8x16_t __a)
3856 return (poly64x2_t) __a;
3859 __extension__ extern __inline float16x4_t
3860 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3861 vreinterpret_f16_f64 (float64x1_t __a)
3863 return (float16x4_t) __a;
3866 __extension__ extern __inline float16x4_t
3867 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3868 vreinterpret_f16_s8 (int8x8_t __a)
3870 return (float16x4_t) __a;
3873 __extension__ extern __inline float16x4_t
3874 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3875 vreinterpret_f16_s16 (int16x4_t __a)
3877 return (float16x4_t) __a;
3880 __extension__ extern __inline float16x4_t
3881 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3882 vreinterpret_f16_s32 (int32x2_t __a)
3884 return (float16x4_t) __a;
3887 __extension__ extern __inline float16x4_t
3888 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3889 vreinterpret_f16_s64 (int64x1_t __a)
3891 return (float16x4_t) __a;
3894 __extension__ extern __inline float16x4_t
3895 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3896 vreinterpret_f16_f32 (float32x2_t __a)
3898 return (float16x4_t) __a;
3901 __extension__ extern __inline float16x4_t
3902 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3903 vreinterpret_f16_u8 (uint8x8_t __a)
3905 return (float16x4_t) __a;
3908 __extension__ extern __inline float16x4_t
3909 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3910 vreinterpret_f16_u16 (uint16x4_t __a)
3912 return (float16x4_t) __a;
3915 __extension__ extern __inline float16x4_t
3916 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3917 vreinterpret_f16_u32 (uint32x2_t __a)
3919 return (float16x4_t) __a;
3922 __extension__ extern __inline float16x4_t
3923 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3924 vreinterpret_f16_u64 (uint64x1_t __a)
3926 return (float16x4_t) __a;
3929 __extension__ extern __inline float16x4_t
3930 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3931 vreinterpret_f16_p8 (poly8x8_t __a)
3933 return (float16x4_t) __a;
3936 __extension__ extern __inline float16x4_t
3937 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3938 vreinterpret_f16_p16 (poly16x4_t __a)
3940 return (float16x4_t) __a;
3943 __extension__ extern __inline float16x4_t
3944 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3945 vreinterpret_f16_p64 (poly64x1_t __a)
3947 return (float16x4_t) __a;
3950 __extension__ extern __inline float16x8_t
3951 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3952 vreinterpretq_f16_f64 (float64x2_t __a)
3954 return (float16x8_t) __a;
3957 __extension__ extern __inline float16x8_t
3958 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3959 vreinterpretq_f16_s8 (int8x16_t __a)
3961 return (float16x8_t) __a;
3964 __extension__ extern __inline float16x8_t
3965 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3966 vreinterpretq_f16_s16 (int16x8_t __a)
3968 return (float16x8_t) __a;
3971 __extension__ extern __inline float16x8_t
3972 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3973 vreinterpretq_f16_s32 (int32x4_t __a)
3975 return (float16x8_t) __a;
3978 __extension__ extern __inline float16x8_t
3979 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3980 vreinterpretq_f16_s64 (int64x2_t __a)
3982 return (float16x8_t) __a;
3985 __extension__ extern __inline float16x8_t
3986 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3987 vreinterpretq_f16_f32 (float32x4_t __a)
3989 return (float16x8_t) __a;
3992 __extension__ extern __inline float16x8_t
3993 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3994 vreinterpretq_f16_u8 (uint8x16_t __a)
3996 return (float16x8_t) __a;
3999 __extension__ extern __inline float16x8_t
4000 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4001 vreinterpretq_f16_u16 (uint16x8_t __a)
4003 return (float16x8_t) __a;
4006 __extension__ extern __inline float16x8_t
4007 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4008 vreinterpretq_f16_u32 (uint32x4_t __a)
4010 return (float16x8_t) __a;
4013 __extension__ extern __inline float16x8_t
4014 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4015 vreinterpretq_f16_u64 (uint64x2_t __a)
4017 return (float16x8_t) __a;
4020 __extension__ extern __inline float16x8_t
4021 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4022 vreinterpretq_f16_p8 (poly8x16_t __a)
4024 return (float16x8_t) __a;
4027 __extension__ extern __inline float16x8_t
4028 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4029 vreinterpretq_f16_p16 (poly16x8_t __a)
4031 return (float16x8_t) __a;
4034 __extension__ extern __inline float16x8_t
4035 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4036 vreinterpretq_f16_p64 (poly64x2_t __a)
4038 return (float16x8_t) __a;
4041 __extension__ extern __inline float32x2_t
4042 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4043 vreinterpret_f32_f16 (float16x4_t __a)
4045 return (float32x2_t) __a;
4048 __extension__ extern __inline float32x2_t
4049 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4050 vreinterpret_f32_f64 (float64x1_t __a)
4052 return (float32x2_t) __a;
4055 __extension__ extern __inline float32x2_t
4056 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4057 vreinterpret_f32_s8 (int8x8_t __a)
4059 return (float32x2_t) __a;
4062 __extension__ extern __inline float32x2_t
4063 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4064 vreinterpret_f32_s16 (int16x4_t __a)
4066 return (float32x2_t) __a;
4069 __extension__ extern __inline float32x2_t
4070 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4071 vreinterpret_f32_s32 (int32x2_t __a)
4073 return (float32x2_t) __a;
4076 __extension__ extern __inline float32x2_t
4077 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4078 vreinterpret_f32_s64 (int64x1_t __a)
4080 return (float32x2_t) __a;
4083 __extension__ extern __inline float32x2_t
4084 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4085 vreinterpret_f32_u8 (uint8x8_t __a)
4087 return (float32x2_t) __a;
4090 __extension__ extern __inline float32x2_t
4091 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4092 vreinterpret_f32_u16 (uint16x4_t __a)
4094 return (float32x2_t) __a;
4097 __extension__ extern __inline float32x2_t
4098 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4099 vreinterpret_f32_u32 (uint32x2_t __a)
4101 return (float32x2_t) __a;
4104 __extension__ extern __inline float32x2_t
4105 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4106 vreinterpret_f32_u64 (uint64x1_t __a)
4108 return (float32x2_t) __a;
4111 __extension__ extern __inline float32x2_t
4112 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4113 vreinterpret_f32_p8 (poly8x8_t __a)
4115 return (float32x2_t) __a;
4118 __extension__ extern __inline float32x2_t
4119 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4120 vreinterpret_f32_p16 (poly16x4_t __a)
4122 return (float32x2_t) __a;
4125 __extension__ extern __inline float32x2_t
4126 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4127 vreinterpret_f32_p64 (poly64x1_t __a)
4129 return (float32x2_t) __a;
4132 __extension__ extern __inline float32x4_t
4133 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4134 vreinterpretq_f32_f16 (float16x8_t __a)
4136 return (float32x4_t) __a;
4139 __extension__ extern __inline float32x4_t
4140 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4141 vreinterpretq_f32_f64 (float64x2_t __a)
4143 return (float32x4_t) __a;
4146 __extension__ extern __inline float32x4_t
4147 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4148 vreinterpretq_f32_s8 (int8x16_t __a)
4150 return (float32x4_t) __a;
4153 __extension__ extern __inline float32x4_t
4154 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4155 vreinterpretq_f32_s16 (int16x8_t __a)
4157 return (float32x4_t) __a;
4160 __extension__ extern __inline float32x4_t
4161 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4162 vreinterpretq_f32_s32 (int32x4_t __a)
4164 return (float32x4_t) __a;
4167 __extension__ extern __inline float32x4_t
4168 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4169 vreinterpretq_f32_s64 (int64x2_t __a)
4171 return (float32x4_t) __a;
4174 __extension__ extern __inline float32x4_t
4175 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4176 vreinterpretq_f32_u8 (uint8x16_t __a)
4178 return (float32x4_t) __a;
4181 __extension__ extern __inline float32x4_t
4182 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4183 vreinterpretq_f32_u16 (uint16x8_t __a)
4185 return (float32x4_t) __a;
4188 __extension__ extern __inline float32x4_t
4189 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4190 vreinterpretq_f32_u32 (uint32x4_t __a)
4192 return (float32x4_t) __a;
4195 __extension__ extern __inline float32x4_t
4196 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4197 vreinterpretq_f32_u64 (uint64x2_t __a)
4199 return (float32x4_t) __a;
4202 __extension__ extern __inline float32x4_t
4203 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4204 vreinterpretq_f32_p8 (poly8x16_t __a)
4206 return (float32x4_t) __a;
4209 __extension__ extern __inline float32x4_t
4210 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4211 vreinterpretq_f32_p16 (poly16x8_t __a)
4213 return (float32x4_t) __a;
4216 __extension__ extern __inline float32x4_t
4217 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4218 vreinterpretq_f32_p64 (poly64x2_t __a)
4220 return (float32x4_t) __a;
4223 __extension__ extern __inline float64x1_t
4224 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4225 vreinterpret_f64_f16 (float16x4_t __a)
4227 return (float64x1_t) __a;
4230 __extension__ extern __inline float64x1_t
4231 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4232 vreinterpret_f64_f32 (float32x2_t __a)
4234 return (float64x1_t) __a;
4237 __extension__ extern __inline float64x1_t
4238 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4239 vreinterpret_f64_p8 (poly8x8_t __a)
4241 return (float64x1_t) __a;
4244 __extension__ extern __inline float64x1_t
4245 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4246 vreinterpret_f64_p16 (poly16x4_t __a)
4248 return (float64x1_t) __a;
4251 __extension__ extern __inline float64x1_t
4252 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4253 vreinterpret_f64_p64 (poly64x1_t __a)
4255 return (float64x1_t) __a;
4258 __extension__ extern __inline float64x1_t
4259 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4260 vreinterpret_f64_s8 (int8x8_t __a)
4262 return (float64x1_t) __a;
4265 __extension__ extern __inline float64x1_t
4266 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4267 vreinterpret_f64_s16 (int16x4_t __a)
4269 return (float64x1_t) __a;
4272 __extension__ extern __inline float64x1_t
4273 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4274 vreinterpret_f64_s32 (int32x2_t __a)
4276 return (float64x1_t) __a;
4279 __extension__ extern __inline float64x1_t
4280 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4281 vreinterpret_f64_s64 (int64x1_t __a)
4283 return (float64x1_t) __a;
4286 __extension__ extern __inline float64x1_t
4287 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4288 vreinterpret_f64_u8 (uint8x8_t __a)
4290 return (float64x1_t) __a;
4293 __extension__ extern __inline float64x1_t
4294 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4295 vreinterpret_f64_u16 (uint16x4_t __a)
4297 return (float64x1_t) __a;
4300 __extension__ extern __inline float64x1_t
4301 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4302 vreinterpret_f64_u32 (uint32x2_t __a)
4304 return (float64x1_t) __a;
4307 __extension__ extern __inline float64x1_t
4308 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4309 vreinterpret_f64_u64 (uint64x1_t __a)
4311 return (float64x1_t) __a;
4314 __extension__ extern __inline float64x2_t
4315 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4316 vreinterpretq_f64_f16 (float16x8_t __a)
4318 return (float64x2_t) __a;
4321 __extension__ extern __inline float64x2_t
4322 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4323 vreinterpretq_f64_f32 (float32x4_t __a)
4325 return (float64x2_t) __a;
4328 __extension__ extern __inline float64x2_t
4329 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4330 vreinterpretq_f64_p8 (poly8x16_t __a)
4332 return (float64x2_t) __a;
4335 __extension__ extern __inline float64x2_t
4336 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4337 vreinterpretq_f64_p16 (poly16x8_t __a)
4339 return (float64x2_t) __a;
4342 __extension__ extern __inline float64x2_t
4343 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4344 vreinterpretq_f64_p64 (poly64x2_t __a)
4346 return (float64x2_t) __a;
4349 __extension__ extern __inline float64x2_t
4350 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4351 vreinterpretq_f64_s8 (int8x16_t __a)
4353 return (float64x2_t) __a;
4356 __extension__ extern __inline float64x2_t
4357 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4358 vreinterpretq_f64_s16 (int16x8_t __a)
4360 return (float64x2_t) __a;
4363 __extension__ extern __inline float64x2_t
4364 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4365 vreinterpretq_f64_s32 (int32x4_t __a)
4367 return (float64x2_t) __a;
4370 __extension__ extern __inline float64x2_t
4371 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4372 vreinterpretq_f64_s64 (int64x2_t __a)
4374 return (float64x2_t) __a;
4377 __extension__ extern __inline float64x2_t
4378 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4379 vreinterpretq_f64_u8 (uint8x16_t __a)
4381 return (float64x2_t) __a;
4384 __extension__ extern __inline float64x2_t
4385 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4386 vreinterpretq_f64_u16 (uint16x8_t __a)
4388 return (float64x2_t) __a;
4391 __extension__ extern __inline float64x2_t
4392 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4393 vreinterpretq_f64_u32 (uint32x4_t __a)
4395 return (float64x2_t) __a;
4398 __extension__ extern __inline float64x2_t
4399 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4400 vreinterpretq_f64_u64 (uint64x2_t __a)
4402 return (float64x2_t) __a;
4405 __extension__ extern __inline int64x1_t
4406 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4407 vreinterpret_s64_f16 (float16x4_t __a)
4409 return (int64x1_t) __a;
4412 __extension__ extern __inline int64x1_t
4413 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4414 vreinterpret_s64_f64 (float64x1_t __a)
4416 return (int64x1_t) __a;
4419 __extension__ extern __inline int64x1_t
4420 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4421 vreinterpret_s64_s8 (int8x8_t __a)
4423 return (int64x1_t) __a;
4426 __extension__ extern __inline int64x1_t
4427 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4428 vreinterpret_s64_s16 (int16x4_t __a)
4430 return (int64x1_t) __a;
4433 __extension__ extern __inline int64x1_t
4434 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4435 vreinterpret_s64_s32 (int32x2_t __a)
4437 return (int64x1_t) __a;
4440 __extension__ extern __inline int64x1_t
4441 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4442 vreinterpret_s64_f32 (float32x2_t __a)
4444 return (int64x1_t) __a;
4447 __extension__ extern __inline int64x1_t
4448 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4449 vreinterpret_s64_u8 (uint8x8_t __a)
4451 return (int64x1_t) __a;
4454 __extension__ extern __inline int64x1_t
4455 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4456 vreinterpret_s64_u16 (uint16x4_t __a)
4458 return (int64x1_t) __a;
4461 __extension__ extern __inline int64x1_t
4462 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4463 vreinterpret_s64_u32 (uint32x2_t __a)
4465 return (int64x1_t) __a;
4468 __extension__ extern __inline int64x1_t
4469 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4470 vreinterpret_s64_u64 (uint64x1_t __a)
4472 return (int64x1_t) __a;
4475 __extension__ extern __inline int64x1_t
4476 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4477 vreinterpret_s64_p8 (poly8x8_t __a)
4479 return (int64x1_t) __a;
4482 __extension__ extern __inline int64x1_t
4483 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4484 vreinterpret_s64_p16 (poly16x4_t __a)
4486 return (int64x1_t) __a;
4489 __extension__ extern __inline int64x1_t
4490 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4491 vreinterpret_s64_p64 (poly64x1_t __a)
4493 return (int64x1_t) __a;
4496 __extension__ extern __inline int64x2_t
4497 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4498 vreinterpretq_s64_f64 (float64x2_t __a)
4500 return (int64x2_t) __a;
4503 __extension__ extern __inline int64x2_t
4504 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4505 vreinterpretq_s64_s8 (int8x16_t __a)
4507 return (int64x2_t) __a;
4510 __extension__ extern __inline int64x2_t
4511 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4512 vreinterpretq_s64_s16 (int16x8_t __a)
4514 return (int64x2_t) __a;
4517 __extension__ extern __inline int64x2_t
4518 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4519 vreinterpretq_s64_s32 (int32x4_t __a)
4521 return (int64x2_t) __a;
4524 __extension__ extern __inline int64x2_t
4525 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4526 vreinterpretq_s64_f16 (float16x8_t __a)
4528 return (int64x2_t) __a;
4531 __extension__ extern __inline int64x2_t
4532 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4533 vreinterpretq_s64_f32 (float32x4_t __a)
4535 return (int64x2_t) __a;
4538 __extension__ extern __inline int64x2_t
4539 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4540 vreinterpretq_s64_u8 (uint8x16_t __a)
4542 return (int64x2_t) __a;
4545 __extension__ extern __inline int64x2_t
4546 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4547 vreinterpretq_s64_u16 (uint16x8_t __a)
4549 return (int64x2_t) __a;
4552 __extension__ extern __inline int64x2_t
4553 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4554 vreinterpretq_s64_u32 (uint32x4_t __a)
4556 return (int64x2_t) __a;
4559 __extension__ extern __inline int64x2_t
4560 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4561 vreinterpretq_s64_u64 (uint64x2_t __a)
4563 return (int64x2_t) __a;
4566 __extension__ extern __inline int64x2_t
4567 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4568 vreinterpretq_s64_p8 (poly8x16_t __a)
4570 return (int64x2_t) __a;
4573 __extension__ extern __inline int64x2_t
4574 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4575 vreinterpretq_s64_p16 (poly16x8_t __a)
4577 return (int64x2_t) __a;
4580 __extension__ extern __inline int64x2_t
4581 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4582 vreinterpretq_s64_p64 (poly64x2_t __a)
4584 return (int64x2_t) __a;
4587 __extension__ extern __inline uint64x1_t
4588 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4589 vreinterpret_u64_f16 (float16x4_t __a)
4591 return (uint64x1_t) __a;
4594 __extension__ extern __inline uint64x1_t
4595 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4596 vreinterpret_u64_f64 (float64x1_t __a)
4598 return (uint64x1_t) __a;
4601 __extension__ extern __inline uint64x1_t
4602 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4603 vreinterpret_u64_s8 (int8x8_t __a)
4605 return (uint64x1_t) __a;
4608 __extension__ extern __inline uint64x1_t
4609 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4610 vreinterpret_u64_s16 (int16x4_t __a)
4612 return (uint64x1_t) __a;
4615 __extension__ extern __inline uint64x1_t
4616 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4617 vreinterpret_u64_s32 (int32x2_t __a)
4619 return (uint64x1_t) __a;
4622 __extension__ extern __inline uint64x1_t
4623 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4624 vreinterpret_u64_s64 (int64x1_t __a)
4626 return (uint64x1_t) __a;
4629 __extension__ extern __inline uint64x1_t
4630 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4631 vreinterpret_u64_f32 (float32x2_t __a)
4633 return (uint64x1_t) __a;
4636 __extension__ extern __inline uint64x1_t
4637 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4638 vreinterpret_u64_u8 (uint8x8_t __a)
4640 return (uint64x1_t) __a;
4643 __extension__ extern __inline uint64x1_t
4644 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4645 vreinterpret_u64_u16 (uint16x4_t __a)
4647 return (uint64x1_t) __a;
4650 __extension__ extern __inline uint64x1_t
4651 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4652 vreinterpret_u64_u32 (uint32x2_t __a)
4654 return (uint64x1_t) __a;
4657 __extension__ extern __inline uint64x1_t
4658 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4659 vreinterpret_u64_p8 (poly8x8_t __a)
4661 return (uint64x1_t) __a;
4664 __extension__ extern __inline uint64x1_t
4665 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4666 vreinterpret_u64_p16 (poly16x4_t __a)
4668 return (uint64x1_t) __a;
4671 __extension__ extern __inline uint64x1_t
4672 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4673 vreinterpret_u64_p64 (poly64x1_t __a)
4675 return (uint64x1_t) __a;
4678 __extension__ extern __inline uint64x2_t
4679 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4680 vreinterpretq_u64_f64 (float64x2_t __a)
4682 return (uint64x2_t) __a;
4685 __extension__ extern __inline uint64x2_t
4686 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4687 vreinterpretq_u64_s8 (int8x16_t __a)
4689 return (uint64x2_t) __a;
4692 __extension__ extern __inline uint64x2_t
4693 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4694 vreinterpretq_u64_s16 (int16x8_t __a)
4696 return (uint64x2_t) __a;
4699 __extension__ extern __inline uint64x2_t
4700 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4701 vreinterpretq_u64_s32 (int32x4_t __a)
4703 return (uint64x2_t) __a;
4706 __extension__ extern __inline uint64x2_t
4707 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4708 vreinterpretq_u64_s64 (int64x2_t __a)
4710 return (uint64x2_t) __a;
4713 __extension__ extern __inline uint64x2_t
4714 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4715 vreinterpretq_u64_f16 (float16x8_t __a)
4717 return (uint64x2_t) __a;
4720 __extension__ extern __inline uint64x2_t
4721 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4722 vreinterpretq_u64_f32 (float32x4_t __a)
4724 return (uint64x2_t) __a;
4727 __extension__ extern __inline uint64x2_t
4728 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4729 vreinterpretq_u64_u8 (uint8x16_t __a)
4731 return (uint64x2_t) __a;
4734 __extension__ extern __inline uint64x2_t
4735 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4736 vreinterpretq_u64_u16 (uint16x8_t __a)
4738 return (uint64x2_t) __a;
4741 __extension__ extern __inline uint64x2_t
4742 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4743 vreinterpretq_u64_u32 (uint32x4_t __a)
4745 return (uint64x2_t) __a;
4748 __extension__ extern __inline uint64x2_t
4749 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4750 vreinterpretq_u64_p8 (poly8x16_t __a)
4752 return (uint64x2_t) __a;
4755 __extension__ extern __inline uint64x2_t
4756 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4757 vreinterpretq_u64_p16 (poly16x8_t __a)
4759 return (uint64x2_t) __a;
4762 __extension__ extern __inline uint64x2_t
4763 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4764 vreinterpretq_u64_p64 (poly64x2_t __a)
4766 return (uint64x2_t) __a;
4769 __extension__ extern __inline int8x8_t
4770 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4771 vreinterpret_s8_f16 (float16x4_t __a)
4773 return (int8x8_t) __a;
4776 __extension__ extern __inline int8x8_t
4777 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4778 vreinterpret_s8_f64 (float64x1_t __a)
4780 return (int8x8_t) __a;
4783 __extension__ extern __inline int8x8_t
4784 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4785 vreinterpret_s8_s16 (int16x4_t __a)
4787 return (int8x8_t) __a;
4790 __extension__ extern __inline int8x8_t
4791 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4792 vreinterpret_s8_s32 (int32x2_t __a)
4794 return (int8x8_t) __a;
4797 __extension__ extern __inline int8x8_t
4798 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4799 vreinterpret_s8_s64 (int64x1_t __a)
4801 return (int8x8_t) __a;
4804 __extension__ extern __inline int8x8_t
4805 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4806 vreinterpret_s8_f32 (float32x2_t __a)
4808 return (int8x8_t) __a;
4811 __extension__ extern __inline int8x8_t
4812 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4813 vreinterpret_s8_u8 (uint8x8_t __a)
4815 return (int8x8_t) __a;
4818 __extension__ extern __inline int8x8_t
4819 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4820 vreinterpret_s8_u16 (uint16x4_t __a)
4822 return (int8x8_t) __a;
4825 __extension__ extern __inline int8x8_t
4826 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4827 vreinterpret_s8_u32 (uint32x2_t __a)
4829 return (int8x8_t) __a;
4832 __extension__ extern __inline int8x8_t
4833 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4834 vreinterpret_s8_u64 (uint64x1_t __a)
4836 return (int8x8_t) __a;
4839 __extension__ extern __inline int8x8_t
4840 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4841 vreinterpret_s8_p8 (poly8x8_t __a)
4843 return (int8x8_t) __a;
4846 __extension__ extern __inline int8x8_t
4847 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4848 vreinterpret_s8_p16 (poly16x4_t __a)
4850 return (int8x8_t) __a;
4853 __extension__ extern __inline int8x8_t
4854 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4855 vreinterpret_s8_p64 (poly64x1_t __a)
4857 return (int8x8_t) __a;
4860 __extension__ extern __inline int8x16_t
4861 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4862 vreinterpretq_s8_f64 (float64x2_t __a)
4864 return (int8x16_t) __a;
4867 __extension__ extern __inline int8x16_t
4868 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4869 vreinterpretq_s8_s16 (int16x8_t __a)
4871 return (int8x16_t) __a;
4874 __extension__ extern __inline int8x16_t
4875 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4876 vreinterpretq_s8_s32 (int32x4_t __a)
4878 return (int8x16_t) __a;
4881 __extension__ extern __inline int8x16_t
4882 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4883 vreinterpretq_s8_s64 (int64x2_t __a)
4885 return (int8x16_t) __a;
4888 __extension__ extern __inline int8x16_t
4889 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4890 vreinterpretq_s8_f16 (float16x8_t __a)
4892 return (int8x16_t) __a;
4895 __extension__ extern __inline int8x16_t
4896 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4897 vreinterpretq_s8_f32 (float32x4_t __a)
4899 return (int8x16_t) __a;
4902 __extension__ extern __inline int8x16_t
4903 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4904 vreinterpretq_s8_u8 (uint8x16_t __a)
4906 return (int8x16_t) __a;
4909 __extension__ extern __inline int8x16_t
4910 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4911 vreinterpretq_s8_u16 (uint16x8_t __a)
4913 return (int8x16_t) __a;
4916 __extension__ extern __inline int8x16_t
4917 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4918 vreinterpretq_s8_u32 (uint32x4_t __a)
4920 return (int8x16_t) __a;
4923 __extension__ extern __inline int8x16_t
4924 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4925 vreinterpretq_s8_u64 (uint64x2_t __a)
4927 return (int8x16_t) __a;
4930 __extension__ extern __inline int8x16_t
4931 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4932 vreinterpretq_s8_p8 (poly8x16_t __a)
4934 return (int8x16_t) __a;
4937 __extension__ extern __inline int8x16_t
4938 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4939 vreinterpretq_s8_p16 (poly16x8_t __a)
4941 return (int8x16_t) __a;
4944 __extension__ extern __inline int8x16_t
4945 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4946 vreinterpretq_s8_p64 (poly64x2_t __a)
4948 return (int8x16_t) __a;
4951 __extension__ extern __inline int16x4_t
4952 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4953 vreinterpret_s16_f16 (float16x4_t __a)
4955 return (int16x4_t) __a;
4958 __extension__ extern __inline int16x4_t
4959 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4960 vreinterpret_s16_f64 (float64x1_t __a)
4962 return (int16x4_t) __a;
4965 __extension__ extern __inline int16x4_t
4966 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4967 vreinterpret_s16_s8 (int8x8_t __a)
4969 return (int16x4_t) __a;
4972 __extension__ extern __inline int16x4_t
4973 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4974 vreinterpret_s16_s32 (int32x2_t __a)
4976 return (int16x4_t) __a;
4979 __extension__ extern __inline int16x4_t
4980 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4981 vreinterpret_s16_s64 (int64x1_t __a)
4983 return (int16x4_t) __a;
4986 __extension__ extern __inline int16x4_t
4987 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4988 vreinterpret_s16_f32 (float32x2_t __a)
4990 return (int16x4_t) __a;
4993 __extension__ extern __inline int16x4_t
4994 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4995 vreinterpret_s16_u8 (uint8x8_t __a)
4997 return (int16x4_t) __a;
5000 __extension__ extern __inline int16x4_t
5001 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5002 vreinterpret_s16_u16 (uint16x4_t __a)
5004 return (int16x4_t) __a;
5007 __extension__ extern __inline int16x4_t
5008 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5009 vreinterpret_s16_u32 (uint32x2_t __a)
5011 return (int16x4_t) __a;
5014 __extension__ extern __inline int16x4_t
5015 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5016 vreinterpret_s16_u64 (uint64x1_t __a)
5018 return (int16x4_t) __a;
5021 __extension__ extern __inline int16x4_t
5022 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5023 vreinterpret_s16_p8 (poly8x8_t __a)
5025 return (int16x4_t) __a;
5028 __extension__ extern __inline int16x4_t
5029 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5030 vreinterpret_s16_p16 (poly16x4_t __a)
5032 return (int16x4_t) __a;
5035 __extension__ extern __inline int16x4_t
5036 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5037 vreinterpret_s16_p64 (poly64x1_t __a)
5039 return (int16x4_t) __a;
5042 __extension__ extern __inline int16x8_t
5043 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5044 vreinterpretq_s16_f64 (float64x2_t __a)
5046 return (int16x8_t) __a;
5049 __extension__ extern __inline int16x8_t
5050 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5051 vreinterpretq_s16_s8 (int8x16_t __a)
5053 return (int16x8_t) __a;
5056 __extension__ extern __inline int16x8_t
5057 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5058 vreinterpretq_s16_s32 (int32x4_t __a)
5060 return (int16x8_t) __a;
5063 __extension__ extern __inline int16x8_t
5064 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5065 vreinterpretq_s16_s64 (int64x2_t __a)
5067 return (int16x8_t) __a;
5070 __extension__ extern __inline int16x8_t
5071 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5072 vreinterpretq_s16_f16 (float16x8_t __a)
5074 return (int16x8_t) __a;
5077 __extension__ extern __inline int16x8_t
5078 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5079 vreinterpretq_s16_f32 (float32x4_t __a)
5081 return (int16x8_t) __a;
5084 __extension__ extern __inline int16x8_t
5085 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5086 vreinterpretq_s16_u8 (uint8x16_t __a)
5088 return (int16x8_t) __a;
5091 __extension__ extern __inline int16x8_t
5092 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5093 vreinterpretq_s16_u16 (uint16x8_t __a)
5095 return (int16x8_t) __a;
5098 __extension__ extern __inline int16x8_t
5099 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5100 vreinterpretq_s16_u32 (uint32x4_t __a)
5102 return (int16x8_t) __a;
5105 __extension__ extern __inline int16x8_t
5106 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5107 vreinterpretq_s16_u64 (uint64x2_t __a)
5109 return (int16x8_t) __a;
5112 __extension__ extern __inline int16x8_t
5113 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5114 vreinterpretq_s16_p8 (poly8x16_t __a)
5116 return (int16x8_t) __a;
5119 __extension__ extern __inline int16x8_t
5120 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5121 vreinterpretq_s16_p16 (poly16x8_t __a)
5123 return (int16x8_t) __a;
5126 __extension__ extern __inline int16x8_t
5127 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5128 vreinterpretq_s16_p64 (poly64x2_t __a)
5130 return (int16x8_t) __a;
5133 __extension__ extern __inline int32x2_t
5134 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5135 vreinterpret_s32_f16 (float16x4_t __a)
5137 return (int32x2_t) __a;
5140 __extension__ extern __inline int32x2_t
5141 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5142 vreinterpret_s32_f64 (float64x1_t __a)
5144 return (int32x2_t) __a;
5147 __extension__ extern __inline int32x2_t
5148 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5149 vreinterpret_s32_s8 (int8x8_t __a)
5151 return (int32x2_t) __a;
5154 __extension__ extern __inline int32x2_t
5155 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5156 vreinterpret_s32_s16 (int16x4_t __a)
5158 return (int32x2_t) __a;
5161 __extension__ extern __inline int32x2_t
5162 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5163 vreinterpret_s32_s64 (int64x1_t __a)
5165 return (int32x2_t) __a;
5168 __extension__ extern __inline int32x2_t
5169 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5170 vreinterpret_s32_f32 (float32x2_t __a)
5172 return (int32x2_t) __a;
5175 __extension__ extern __inline int32x2_t
5176 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5177 vreinterpret_s32_u8 (uint8x8_t __a)
5179 return (int32x2_t) __a;
5182 __extension__ extern __inline int32x2_t
5183 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5184 vreinterpret_s32_u16 (uint16x4_t __a)
5186 return (int32x2_t) __a;
5189 __extension__ extern __inline int32x2_t
5190 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5191 vreinterpret_s32_u32 (uint32x2_t __a)
5193 return (int32x2_t) __a;
5196 __extension__ extern __inline int32x2_t
5197 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5198 vreinterpret_s32_u64 (uint64x1_t __a)
5200 return (int32x2_t) __a;
5203 __extension__ extern __inline int32x2_t
5204 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5205 vreinterpret_s32_p8 (poly8x8_t __a)
5207 return (int32x2_t) __a;
5210 __extension__ extern __inline int32x2_t
5211 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5212 vreinterpret_s32_p16 (poly16x4_t __a)
5214 return (int32x2_t) __a;
5217 __extension__ extern __inline int32x2_t
5218 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5219 vreinterpret_s32_p64 (poly64x1_t __a)
5221 return (int32x2_t) __a;
5224 __extension__ extern __inline int32x4_t
5225 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5226 vreinterpretq_s32_f64 (float64x2_t __a)
5228 return (int32x4_t) __a;
5231 __extension__ extern __inline int32x4_t
5232 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5233 vreinterpretq_s32_s8 (int8x16_t __a)
5235 return (int32x4_t) __a;
5238 __extension__ extern __inline int32x4_t
5239 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5240 vreinterpretq_s32_s16 (int16x8_t __a)
5242 return (int32x4_t) __a;
5245 __extension__ extern __inline int32x4_t
5246 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5247 vreinterpretq_s32_s64 (int64x2_t __a)
5249 return (int32x4_t) __a;
5252 __extension__ extern __inline int32x4_t
5253 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5254 vreinterpretq_s32_f16 (float16x8_t __a)
5256 return (int32x4_t) __a;
5259 __extension__ extern __inline int32x4_t
5260 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5261 vreinterpretq_s32_f32 (float32x4_t __a)
5263 return (int32x4_t) __a;
5266 __extension__ extern __inline int32x4_t
5267 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5268 vreinterpretq_s32_u8 (uint8x16_t __a)
5270 return (int32x4_t) __a;
5273 __extension__ extern __inline int32x4_t
5274 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5275 vreinterpretq_s32_u16 (uint16x8_t __a)
5277 return (int32x4_t) __a;
5280 __extension__ extern __inline int32x4_t
5281 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5282 vreinterpretq_s32_u32 (uint32x4_t __a)
5284 return (int32x4_t) __a;
5287 __extension__ extern __inline int32x4_t
5288 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5289 vreinterpretq_s32_u64 (uint64x2_t __a)
5291 return (int32x4_t) __a;
5294 __extension__ extern __inline int32x4_t
5295 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5296 vreinterpretq_s32_p8 (poly8x16_t __a)
5298 return (int32x4_t) __a;
5301 __extension__ extern __inline int32x4_t
5302 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5303 vreinterpretq_s32_p16 (poly16x8_t __a)
5305 return (int32x4_t) __a;
5308 __extension__ extern __inline int32x4_t
5309 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5310 vreinterpretq_s32_p64 (poly64x2_t __a)
5312 return (int32x4_t) __a;
5315 __extension__ extern __inline uint8x8_t
5316 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5317 vreinterpret_u8_f16 (float16x4_t __a)
5319 return (uint8x8_t) __a;
5322 __extension__ extern __inline uint8x8_t
5323 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5324 vreinterpret_u8_f64 (float64x1_t __a)
5326 return (uint8x8_t) __a;
5329 __extension__ extern __inline uint8x8_t
5330 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5331 vreinterpret_u8_s8 (int8x8_t __a)
5333 return (uint8x8_t) __a;
5336 __extension__ extern __inline uint8x8_t
5337 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5338 vreinterpret_u8_s16 (int16x4_t __a)
5340 return (uint8x8_t) __a;
5343 __extension__ extern __inline uint8x8_t
5344 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5345 vreinterpret_u8_s32 (int32x2_t __a)
5347 return (uint8x8_t) __a;
5350 __extension__ extern __inline uint8x8_t
5351 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5352 vreinterpret_u8_s64 (int64x1_t __a)
5354 return (uint8x8_t) __a;
5357 __extension__ extern __inline uint8x8_t
5358 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5359 vreinterpret_u8_f32 (float32x2_t __a)
5361 return (uint8x8_t) __a;
5364 __extension__ extern __inline uint8x8_t
5365 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5366 vreinterpret_u8_u16 (uint16x4_t __a)
5368 return (uint8x8_t) __a;
5371 __extension__ extern __inline uint8x8_t
5372 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5373 vreinterpret_u8_u32 (uint32x2_t __a)
5375 return (uint8x8_t) __a;
5378 __extension__ extern __inline uint8x8_t
5379 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5380 vreinterpret_u8_u64 (uint64x1_t __a)
5382 return (uint8x8_t) __a;
5385 __extension__ extern __inline uint8x8_t
5386 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5387 vreinterpret_u8_p8 (poly8x8_t __a)
5389 return (uint8x8_t) __a;
5392 __extension__ extern __inline uint8x8_t
5393 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5394 vreinterpret_u8_p16 (poly16x4_t __a)
5396 return (uint8x8_t) __a;
5399 __extension__ extern __inline uint8x8_t
5400 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5401 vreinterpret_u8_p64 (poly64x1_t __a)
5403 return (uint8x8_t) __a;
5406 __extension__ extern __inline uint8x16_t
5407 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5408 vreinterpretq_u8_f64 (float64x2_t __a)
5410 return (uint8x16_t) __a;
5413 __extension__ extern __inline uint8x16_t
5414 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5415 vreinterpretq_u8_s8 (int8x16_t __a)
5417 return (uint8x16_t) __a;
5420 __extension__ extern __inline uint8x16_t
5421 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5422 vreinterpretq_u8_s16 (int16x8_t __a)
5424 return (uint8x16_t) __a;
5427 __extension__ extern __inline uint8x16_t
5428 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5429 vreinterpretq_u8_s32 (int32x4_t __a)
5431 return (uint8x16_t) __a;
5434 __extension__ extern __inline uint8x16_t
5435 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5436 vreinterpretq_u8_s64 (int64x2_t __a)
5438 return (uint8x16_t) __a;
5441 __extension__ extern __inline uint8x16_t
5442 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5443 vreinterpretq_u8_f16 (float16x8_t __a)
5445 return (uint8x16_t) __a;
5448 __extension__ extern __inline uint8x16_t
5449 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5450 vreinterpretq_u8_f32 (float32x4_t __a)
5452 return (uint8x16_t) __a;
5455 __extension__ extern __inline uint8x16_t
5456 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5457 vreinterpretq_u8_u16 (uint16x8_t __a)
5459 return (uint8x16_t) __a;
5462 __extension__ extern __inline uint8x16_t
5463 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5464 vreinterpretq_u8_u32 (uint32x4_t __a)
5466 return (uint8x16_t) __a;
5469 __extension__ extern __inline uint8x16_t
5470 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5471 vreinterpretq_u8_u64 (uint64x2_t __a)
5473 return (uint8x16_t) __a;
5476 __extension__ extern __inline uint8x16_t
5477 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5478 vreinterpretq_u8_p8 (poly8x16_t __a)
5480 return (uint8x16_t) __a;
5483 __extension__ extern __inline uint8x16_t
5484 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5485 vreinterpretq_u8_p16 (poly16x8_t __a)
5487 return (uint8x16_t) __a;
5490 __extension__ extern __inline uint8x16_t
5491 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5492 vreinterpretq_u8_p64 (poly64x2_t __a)
5494 return (uint8x16_t) __a;
5497 __extension__ extern __inline uint16x4_t
5498 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5499 vreinterpret_u16_f16 (float16x4_t __a)
5501 return (uint16x4_t) __a;
5504 __extension__ extern __inline uint16x4_t
5505 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5506 vreinterpret_u16_f64 (float64x1_t __a)
5508 return (uint16x4_t) __a;
5511 __extension__ extern __inline uint16x4_t
5512 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5513 vreinterpret_u16_s8 (int8x8_t __a)
5515 return (uint16x4_t) __a;
5518 __extension__ extern __inline uint16x4_t
5519 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5520 vreinterpret_u16_s16 (int16x4_t __a)
5522 return (uint16x4_t) __a;
5525 __extension__ extern __inline uint16x4_t
5526 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5527 vreinterpret_u16_s32 (int32x2_t __a)
5529 return (uint16x4_t) __a;
5532 __extension__ extern __inline uint16x4_t
5533 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5534 vreinterpret_u16_s64 (int64x1_t __a)
5536 return (uint16x4_t) __a;
5539 __extension__ extern __inline uint16x4_t
5540 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5541 vreinterpret_u16_f32 (float32x2_t __a)
5543 return (uint16x4_t) __a;
5546 __extension__ extern __inline uint16x4_t
5547 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5548 vreinterpret_u16_u8 (uint8x8_t __a)
5550 return (uint16x4_t) __a;
5553 __extension__ extern __inline uint16x4_t
5554 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5555 vreinterpret_u16_u32 (uint32x2_t __a)
5557 return (uint16x4_t) __a;
5560 __extension__ extern __inline uint16x4_t
5561 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5562 vreinterpret_u16_u64 (uint64x1_t __a)
5564 return (uint16x4_t) __a;
5567 __extension__ extern __inline uint16x4_t
5568 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5569 vreinterpret_u16_p8 (poly8x8_t __a)
5571 return (uint16x4_t) __a;
5574 __extension__ extern __inline uint16x4_t
5575 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5576 vreinterpret_u16_p16 (poly16x4_t __a)
5578 return (uint16x4_t) __a;
5581 __extension__ extern __inline uint16x4_t
5582 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5583 vreinterpret_u16_p64 (poly64x1_t __a)
5585 return (uint16x4_t) __a;
5588 __extension__ extern __inline uint16x8_t
5589 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5590 vreinterpretq_u16_f64 (float64x2_t __a)
5592 return (uint16x8_t) __a;
5595 __extension__ extern __inline uint16x8_t
5596 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5597 vreinterpretq_u16_s8 (int8x16_t __a)
5599 return (uint16x8_t) __a;
5602 __extension__ extern __inline uint16x8_t
5603 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5604 vreinterpretq_u16_s16 (int16x8_t __a)
5606 return (uint16x8_t) __a;
5609 __extension__ extern __inline uint16x8_t
5610 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5611 vreinterpretq_u16_s32 (int32x4_t __a)
5613 return (uint16x8_t) __a;
5616 __extension__ extern __inline uint16x8_t
5617 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5618 vreinterpretq_u16_s64 (int64x2_t __a)
5620 return (uint16x8_t) __a;
5623 __extension__ extern __inline uint16x8_t
5624 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5625 vreinterpretq_u16_f16 (float16x8_t __a)
5627 return (uint16x8_t) __a;
5630 __extension__ extern __inline uint16x8_t
5631 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5632 vreinterpretq_u16_f32 (float32x4_t __a)
5634 return (uint16x8_t) __a;
5637 __extension__ extern __inline uint16x8_t
5638 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5639 vreinterpretq_u16_u8 (uint8x16_t __a)
5641 return (uint16x8_t) __a;
5644 __extension__ extern __inline uint16x8_t
5645 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5646 vreinterpretq_u16_u32 (uint32x4_t __a)
5648 return (uint16x8_t) __a;
5651 __extension__ extern __inline uint16x8_t
5652 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5653 vreinterpretq_u16_u64 (uint64x2_t __a)
5655 return (uint16x8_t) __a;
5658 __extension__ extern __inline uint16x8_t
5659 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5660 vreinterpretq_u16_p8 (poly8x16_t __a)
5662 return (uint16x8_t) __a;
5665 __extension__ extern __inline uint16x8_t
5666 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5667 vreinterpretq_u16_p16 (poly16x8_t __a)
5669 return (uint16x8_t) __a;
5672 __extension__ extern __inline uint16x8_t
5673 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5674 vreinterpretq_u16_p64 (poly64x2_t __a)
5676 return (uint16x8_t) __a;
5679 __extension__ extern __inline uint32x2_t
5680 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5681 vreinterpret_u32_f16 (float16x4_t __a)
5683 return (uint32x2_t) __a;
5686 __extension__ extern __inline uint32x2_t
5687 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5688 vreinterpret_u32_f64 (float64x1_t __a)
5690 return (uint32x2_t) __a;
5693 __extension__ extern __inline uint32x2_t
5694 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5695 vreinterpret_u32_s8 (int8x8_t __a)
5697 return (uint32x2_t) __a;
5700 __extension__ extern __inline uint32x2_t
5701 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5702 vreinterpret_u32_s16 (int16x4_t __a)
5704 return (uint32x2_t) __a;
5707 __extension__ extern __inline uint32x2_t
5708 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5709 vreinterpret_u32_s32 (int32x2_t __a)
5711 return (uint32x2_t) __a;
5714 __extension__ extern __inline uint32x2_t
5715 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5716 vreinterpret_u32_s64 (int64x1_t __a)
5718 return (uint32x2_t) __a;
5721 __extension__ extern __inline uint32x2_t
5722 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5723 vreinterpret_u32_f32 (float32x2_t __a)
5725 return (uint32x2_t) __a;
5728 __extension__ extern __inline uint32x2_t
5729 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5730 vreinterpret_u32_u8 (uint8x8_t __a)
5732 return (uint32x2_t) __a;
5735 __extension__ extern __inline uint32x2_t
5736 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5737 vreinterpret_u32_u16 (uint16x4_t __a)
5739 return (uint32x2_t) __a;
5742 __extension__ extern __inline uint32x2_t
5743 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5744 vreinterpret_u32_u64 (uint64x1_t __a)
5746 return (uint32x2_t) __a;
5749 __extension__ extern __inline uint32x2_t
5750 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5751 vreinterpret_u32_p8 (poly8x8_t __a)
5753 return (uint32x2_t) __a;
5756 __extension__ extern __inline uint32x2_t
5757 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5758 vreinterpret_u32_p16 (poly16x4_t __a)
5760 return (uint32x2_t) __a;
5763 __extension__ extern __inline uint32x2_t
5764 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5765 vreinterpret_u32_p64 (poly64x1_t __a)
5767 return (uint32x2_t) __a;
5770 __extension__ extern __inline uint32x4_t
5771 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5772 vreinterpretq_u32_f64 (float64x2_t __a)
5774 return (uint32x4_t) __a;
5777 __extension__ extern __inline uint32x4_t
5778 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5779 vreinterpretq_u32_s8 (int8x16_t __a)
5781 return (uint32x4_t) __a;
5784 __extension__ extern __inline uint32x4_t
5785 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5786 vreinterpretq_u32_s16 (int16x8_t __a)
5788 return (uint32x4_t) __a;
5791 __extension__ extern __inline uint32x4_t
5792 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5793 vreinterpretq_u32_s32 (int32x4_t __a)
5795 return (uint32x4_t) __a;
5798 __extension__ extern __inline uint32x4_t
5799 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5800 vreinterpretq_u32_s64 (int64x2_t __a)
5802 return (uint32x4_t) __a;
5805 __extension__ extern __inline uint32x4_t
5806 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5807 vreinterpretq_u32_f16 (float16x8_t __a)
5809 return (uint32x4_t) __a;
5812 __extension__ extern __inline uint32x4_t
5813 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5814 vreinterpretq_u32_f32 (float32x4_t __a)
5816 return (uint32x4_t) __a;
5819 __extension__ extern __inline uint32x4_t
5820 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5821 vreinterpretq_u32_u8 (uint8x16_t __a)
5823 return (uint32x4_t) __a;
5826 __extension__ extern __inline uint32x4_t
5827 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5828 vreinterpretq_u32_u16 (uint16x8_t __a)
5830 return (uint32x4_t) __a;
5833 __extension__ extern __inline uint32x4_t
5834 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5835 vreinterpretq_u32_u64 (uint64x2_t __a)
5837 return (uint32x4_t) __a;
5840 __extension__ extern __inline uint32x4_t
5841 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5842 vreinterpretq_u32_p8 (poly8x16_t __a)
5844 return (uint32x4_t) __a;
5847 __extension__ extern __inline uint32x4_t
5848 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5849 vreinterpretq_u32_p16 (poly16x8_t __a)
5851 return (uint32x4_t) __a;
5854 __extension__ extern __inline uint32x4_t
5855 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5856 vreinterpretq_u32_p64 (poly64x2_t __a)
5858 return (uint32x4_t) __a;
5861 /* vset_lane */
5863 __extension__ extern __inline float16x4_t
5864 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5865 vset_lane_f16 (float16_t __elem, float16x4_t __vec, const int __index)
5867 return __aarch64_vset_lane_any (__elem, __vec, __index);
5870 __extension__ extern __inline float32x2_t
5871 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5872 vset_lane_f32 (float32_t __elem, float32x2_t __vec, const int __index)
5874 return __aarch64_vset_lane_any (__elem, __vec, __index);
5877 __extension__ extern __inline float64x1_t
5878 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5879 vset_lane_f64 (float64_t __elem, float64x1_t __vec, const int __index)
5881 return __aarch64_vset_lane_any (__elem, __vec, __index);
5884 __extension__ extern __inline poly8x8_t
5885 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5886 vset_lane_p8 (poly8_t __elem, poly8x8_t __vec, const int __index)
5888 return __aarch64_vset_lane_any (__elem, __vec, __index);
5891 __extension__ extern __inline poly16x4_t
5892 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5893 vset_lane_p16 (poly16_t __elem, poly16x4_t __vec, const int __index)
5895 return __aarch64_vset_lane_any (__elem, __vec, __index);
5898 __extension__ extern __inline poly64x1_t
5899 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5900 vset_lane_p64 (poly64_t __elem, poly64x1_t __vec, const int __index)
5902 return __aarch64_vset_lane_any (__elem, __vec, __index);
5905 __extension__ extern __inline int8x8_t
5906 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5907 vset_lane_s8 (int8_t __elem, int8x8_t __vec, const int __index)
5909 return __aarch64_vset_lane_any (__elem, __vec, __index);
5912 __extension__ extern __inline int16x4_t
5913 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5914 vset_lane_s16 (int16_t __elem, int16x4_t __vec, const int __index)
5916 return __aarch64_vset_lane_any (__elem, __vec, __index);
5919 __extension__ extern __inline int32x2_t
5920 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5921 vset_lane_s32 (int32_t __elem, int32x2_t __vec, const int __index)
5923 return __aarch64_vset_lane_any (__elem, __vec, __index);
5926 __extension__ extern __inline int64x1_t
5927 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5928 vset_lane_s64 (int64_t __elem, int64x1_t __vec, const int __index)
5930 return __aarch64_vset_lane_any (__elem, __vec, __index);
5933 __extension__ extern __inline uint8x8_t
5934 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5935 vset_lane_u8 (uint8_t __elem, uint8x8_t __vec, const int __index)
5937 return __aarch64_vset_lane_any (__elem, __vec, __index);
5940 __extension__ extern __inline uint16x4_t
5941 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5942 vset_lane_u16 (uint16_t __elem, uint16x4_t __vec, const int __index)
5944 return __aarch64_vset_lane_any (__elem, __vec, __index);
5947 __extension__ extern __inline uint32x2_t
5948 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5949 vset_lane_u32 (uint32_t __elem, uint32x2_t __vec, const int __index)
5951 return __aarch64_vset_lane_any (__elem, __vec, __index);
5954 __extension__ extern __inline uint64x1_t
5955 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5956 vset_lane_u64 (uint64_t __elem, uint64x1_t __vec, const int __index)
5958 return __aarch64_vset_lane_any (__elem, __vec, __index);
5961 /* vsetq_lane */
5963 __extension__ extern __inline float16x8_t
5964 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5965 vsetq_lane_f16 (float16_t __elem, float16x8_t __vec, const int __index)
5967 return __aarch64_vset_lane_any (__elem, __vec, __index);
5970 __extension__ extern __inline float32x4_t
5971 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5972 vsetq_lane_f32 (float32_t __elem, float32x4_t __vec, const int __index)
5974 return __aarch64_vset_lane_any (__elem, __vec, __index);
5977 __extension__ extern __inline float64x2_t
5978 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5979 vsetq_lane_f64 (float64_t __elem, float64x2_t __vec, const int __index)
5981 return __aarch64_vset_lane_any (__elem, __vec, __index);
5984 __extension__ extern __inline poly8x16_t
5985 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5986 vsetq_lane_p8 (poly8_t __elem, poly8x16_t __vec, const int __index)
5988 return __aarch64_vset_lane_any (__elem, __vec, __index);
5991 __extension__ extern __inline poly16x8_t
5992 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5993 vsetq_lane_p16 (poly16_t __elem, poly16x8_t __vec, const int __index)
5995 return __aarch64_vset_lane_any (__elem, __vec, __index);
5998 __extension__ extern __inline poly64x2_t
5999 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6000 vsetq_lane_p64 (poly64_t __elem, poly64x2_t __vec, const int __index)
6002 return __aarch64_vset_lane_any (__elem, __vec, __index);
6005 __extension__ extern __inline int8x16_t
6006 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6007 vsetq_lane_s8 (int8_t __elem, int8x16_t __vec, const int __index)
6009 return __aarch64_vset_lane_any (__elem, __vec, __index);
6012 __extension__ extern __inline int16x8_t
6013 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6014 vsetq_lane_s16 (int16_t __elem, int16x8_t __vec, const int __index)
6016 return __aarch64_vset_lane_any (__elem, __vec, __index);
6019 __extension__ extern __inline int32x4_t
6020 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6021 vsetq_lane_s32 (int32_t __elem, int32x4_t __vec, const int __index)
6023 return __aarch64_vset_lane_any (__elem, __vec, __index);
6026 __extension__ extern __inline int64x2_t
6027 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6028 vsetq_lane_s64 (int64_t __elem, int64x2_t __vec, const int __index)
6030 return __aarch64_vset_lane_any (__elem, __vec, __index);
6033 __extension__ extern __inline uint8x16_t
6034 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6035 vsetq_lane_u8 (uint8_t __elem, uint8x16_t __vec, const int __index)
6037 return __aarch64_vset_lane_any (__elem, __vec, __index);
6040 __extension__ extern __inline uint16x8_t
6041 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6042 vsetq_lane_u16 (uint16_t __elem, uint16x8_t __vec, const int __index)
6044 return __aarch64_vset_lane_any (__elem, __vec, __index);
6047 __extension__ extern __inline uint32x4_t
6048 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6049 vsetq_lane_u32 (uint32_t __elem, uint32x4_t __vec, const int __index)
6051 return __aarch64_vset_lane_any (__elem, __vec, __index);
6054 __extension__ extern __inline uint64x2_t
6055 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6056 vsetq_lane_u64 (uint64_t __elem, uint64x2_t __vec, const int __index)
6058 return __aarch64_vset_lane_any (__elem, __vec, __index);
6061 #define __GET_LOW(__TYPE) \
6062 uint64x2_t tmp = vreinterpretq_u64_##__TYPE (__a); \
6063 uint64x1_t lo = vcreate_u64 (vgetq_lane_u64 (tmp, 0)); \
6064 return vreinterpret_##__TYPE##_u64 (lo);
6066 __extension__ extern __inline float16x4_t
6067 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6068 vget_low_f16 (float16x8_t __a)
6070 __GET_LOW (f16);
6073 __extension__ extern __inline float32x2_t
6074 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6075 vget_low_f32 (float32x4_t __a)
6077 __GET_LOW (f32);
6080 __extension__ extern __inline float64x1_t
6081 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6082 vget_low_f64 (float64x2_t __a)
6084 return (float64x1_t) {vgetq_lane_f64 (__a, 0)};
6087 __extension__ extern __inline poly8x8_t
6088 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6089 vget_low_p8 (poly8x16_t __a)
6091 __GET_LOW (p8);
6094 __extension__ extern __inline poly16x4_t
6095 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6096 vget_low_p16 (poly16x8_t __a)
6098 __GET_LOW (p16);
6101 __extension__ extern __inline poly64x1_t
6102 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6103 vget_low_p64 (poly64x2_t __a)
6105 __GET_LOW (p64);
6108 __extension__ extern __inline int8x8_t
6109 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6110 vget_low_s8 (int8x16_t __a)
6112 __GET_LOW (s8);
6115 __extension__ extern __inline int16x4_t
6116 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6117 vget_low_s16 (int16x8_t __a)
6119 __GET_LOW (s16);
6122 __extension__ extern __inline int32x2_t
6123 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6124 vget_low_s32 (int32x4_t __a)
6126 __GET_LOW (s32);
6129 __extension__ extern __inline int64x1_t
6130 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6131 vget_low_s64 (int64x2_t __a)
6133 __GET_LOW (s64);
6136 __extension__ extern __inline uint8x8_t
6137 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6138 vget_low_u8 (uint8x16_t __a)
6140 __GET_LOW (u8);
6143 __extension__ extern __inline uint16x4_t
6144 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6145 vget_low_u16 (uint16x8_t __a)
6147 __GET_LOW (u16);
6150 __extension__ extern __inline uint32x2_t
6151 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6152 vget_low_u32 (uint32x4_t __a)
6154 __GET_LOW (u32);
6157 __extension__ extern __inline uint64x1_t
6158 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6159 vget_low_u64 (uint64x2_t __a)
6161 return vcreate_u64 (vgetq_lane_u64 (__a, 0));
6164 #undef __GET_LOW
6166 #define __GET_HIGH(__TYPE) \
6167 uint64x2_t tmp = vreinterpretq_u64_##__TYPE (__a); \
6168 uint64x1_t hi = vcreate_u64 (vgetq_lane_u64 (tmp, 1)); \
6169 return vreinterpret_##__TYPE##_u64 (hi);
6171 __extension__ extern __inline float16x4_t
6172 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6173 vget_high_f16 (float16x8_t __a)
6175 __GET_HIGH (f16);
6178 __extension__ extern __inline float32x2_t
6179 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6180 vget_high_f32 (float32x4_t __a)
6182 __GET_HIGH (f32);
6185 __extension__ extern __inline float64x1_t
6186 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6187 vget_high_f64 (float64x2_t __a)
6189 __GET_HIGH (f64);
6192 __extension__ extern __inline poly8x8_t
6193 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6194 vget_high_p8 (poly8x16_t __a)
6196 __GET_HIGH (p8);
6199 __extension__ extern __inline poly16x4_t
6200 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6201 vget_high_p16 (poly16x8_t __a)
6203 __GET_HIGH (p16);
6206 __extension__ extern __inline poly64x1_t
6207 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6208 vget_high_p64 (poly64x2_t __a)
6210 __GET_HIGH (p64);
6213 __extension__ extern __inline int8x8_t
6214 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6215 vget_high_s8 (int8x16_t __a)
6217 __GET_HIGH (s8);
6220 __extension__ extern __inline int16x4_t
6221 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6222 vget_high_s16 (int16x8_t __a)
6224 __GET_HIGH (s16);
6227 __extension__ extern __inline int32x2_t
6228 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6229 vget_high_s32 (int32x4_t __a)
6231 __GET_HIGH (s32);
6234 __extension__ extern __inline int64x1_t
6235 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6236 vget_high_s64 (int64x2_t __a)
6238 __GET_HIGH (s64);
6241 __extension__ extern __inline uint8x8_t
6242 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6243 vget_high_u8 (uint8x16_t __a)
6245 __GET_HIGH (u8);
6248 __extension__ extern __inline uint16x4_t
6249 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6250 vget_high_u16 (uint16x8_t __a)
6252 __GET_HIGH (u16);
6255 __extension__ extern __inline uint32x2_t
6256 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6257 vget_high_u32 (uint32x4_t __a)
6259 __GET_HIGH (u32);
6262 #undef __GET_HIGH
6264 __extension__ extern __inline uint64x1_t
6265 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6266 vget_high_u64 (uint64x2_t __a)
6268 return vcreate_u64 (vgetq_lane_u64 (__a, 1));
6271 __extension__ extern __inline int8x16_t
6272 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6273 vcombine_s8 (int8x8_t __a, int8x8_t __b)
6275 return (int8x16_t) __builtin_aarch64_combinev8qi (__a, __b);
6278 __extension__ extern __inline int16x8_t
6279 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6280 vcombine_s16 (int16x4_t __a, int16x4_t __b)
6282 return (int16x8_t) __builtin_aarch64_combinev4hi (__a, __b);
6285 __extension__ extern __inline int32x4_t
6286 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6287 vcombine_s32 (int32x2_t __a, int32x2_t __b)
6289 return (int32x4_t) __builtin_aarch64_combinev2si (__a, __b);
6292 __extension__ extern __inline int64x2_t
6293 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6294 vcombine_s64 (int64x1_t __a, int64x1_t __b)
6296 return __builtin_aarch64_combinedi (__a[0], __b[0]);
6299 __extension__ extern __inline float16x8_t
6300 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6301 vcombine_f16 (float16x4_t __a, float16x4_t __b)
6303 return __builtin_aarch64_combinev4hf (__a, __b);
6306 __extension__ extern __inline float32x4_t
6307 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6308 vcombine_f32 (float32x2_t __a, float32x2_t __b)
6310 return (float32x4_t) __builtin_aarch64_combinev2sf (__a, __b);
6313 __extension__ extern __inline uint8x16_t
6314 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6315 vcombine_u8 (uint8x8_t __a, uint8x8_t __b)
6317 return (uint8x16_t) __builtin_aarch64_combinev8qi ((int8x8_t) __a,
6318 (int8x8_t) __b);
6321 __extension__ extern __inline uint16x8_t
6322 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6323 vcombine_u16 (uint16x4_t __a, uint16x4_t __b)
6325 return (uint16x8_t) __builtin_aarch64_combinev4hi ((int16x4_t) __a,
6326 (int16x4_t) __b);
6329 __extension__ extern __inline uint32x4_t
6330 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6331 vcombine_u32 (uint32x2_t __a, uint32x2_t __b)
6333 return (uint32x4_t) __builtin_aarch64_combinev2si ((int32x2_t) __a,
6334 (int32x2_t) __b);
6337 __extension__ extern __inline uint64x2_t
6338 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6339 vcombine_u64 (uint64x1_t __a, uint64x1_t __b)
6341 return (uint64x2_t) __builtin_aarch64_combinedi (__a[0], __b[0]);
6344 __extension__ extern __inline float64x2_t
6345 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6346 vcombine_f64 (float64x1_t __a, float64x1_t __b)
6348 return __builtin_aarch64_combinedf (__a[0], __b[0]);
6351 __extension__ extern __inline poly8x16_t
6352 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6353 vcombine_p8 (poly8x8_t __a, poly8x8_t __b)
6355 return (poly8x16_t) __builtin_aarch64_combinev8qi ((int8x8_t) __a,
6356 (int8x8_t) __b);
6359 __extension__ extern __inline poly16x8_t
6360 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6361 vcombine_p16 (poly16x4_t __a, poly16x4_t __b)
6363 return (poly16x8_t) __builtin_aarch64_combinev4hi ((int16x4_t) __a,
6364 (int16x4_t) __b);
6367 __extension__ extern __inline poly64x2_t
6368 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6369 vcombine_p64 (poly64x1_t __a, poly64x1_t __b)
6371 return (poly64x2_t) __builtin_aarch64_combinedi_ppp (__a[0], __b[0]);
6374 /* Start of temporary inline asm implementations. */
6376 __extension__ extern __inline int8x8_t
6377 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6378 vaba_s8 (int8x8_t a, int8x8_t b, int8x8_t c)
6380 int8x8_t result;
6381 __asm__ ("saba %0.8b,%2.8b,%3.8b"
6382 : "=w"(result)
6383 : "0"(a), "w"(b), "w"(c)
6384 : /* No clobbers */);
6385 return result;
6388 __extension__ extern __inline int16x4_t
6389 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6390 vaba_s16 (int16x4_t a, int16x4_t b, int16x4_t c)
6392 int16x4_t result;
6393 __asm__ ("saba %0.4h,%2.4h,%3.4h"
6394 : "=w"(result)
6395 : "0"(a), "w"(b), "w"(c)
6396 : /* No clobbers */);
6397 return result;
6400 __extension__ extern __inline int32x2_t
6401 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6402 vaba_s32 (int32x2_t a, int32x2_t b, int32x2_t c)
6404 int32x2_t result;
6405 __asm__ ("saba %0.2s,%2.2s,%3.2s"
6406 : "=w"(result)
6407 : "0"(a), "w"(b), "w"(c)
6408 : /* No clobbers */);
6409 return result;
6412 __extension__ extern __inline uint8x8_t
6413 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6414 vaba_u8 (uint8x8_t a, uint8x8_t b, uint8x8_t c)
6416 uint8x8_t result;
6417 __asm__ ("uaba %0.8b,%2.8b,%3.8b"
6418 : "=w"(result)
6419 : "0"(a), "w"(b), "w"(c)
6420 : /* No clobbers */);
6421 return result;
6424 __extension__ extern __inline uint16x4_t
6425 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6426 vaba_u16 (uint16x4_t a, uint16x4_t b, uint16x4_t c)
6428 uint16x4_t result;
6429 __asm__ ("uaba %0.4h,%2.4h,%3.4h"
6430 : "=w"(result)
6431 : "0"(a), "w"(b), "w"(c)
6432 : /* No clobbers */);
6433 return result;
6436 __extension__ extern __inline uint32x2_t
6437 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6438 vaba_u32 (uint32x2_t a, uint32x2_t b, uint32x2_t c)
6440 uint32x2_t result;
6441 __asm__ ("uaba %0.2s,%2.2s,%3.2s"
6442 : "=w"(result)
6443 : "0"(a), "w"(b), "w"(c)
6444 : /* No clobbers */);
6445 return result;
6448 __extension__ extern __inline int16x8_t
6449 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6450 vabal_high_s8 (int16x8_t a, int8x16_t b, int8x16_t c)
6452 int16x8_t result;
6453 __asm__ ("sabal2 %0.8h,%2.16b,%3.16b"
6454 : "=w"(result)
6455 : "0"(a), "w"(b), "w"(c)
6456 : /* No clobbers */);
6457 return result;
6460 __extension__ extern __inline int32x4_t
6461 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6462 vabal_high_s16 (int32x4_t a, int16x8_t b, int16x8_t c)
6464 int32x4_t result;
6465 __asm__ ("sabal2 %0.4s,%2.8h,%3.8h"
6466 : "=w"(result)
6467 : "0"(a), "w"(b), "w"(c)
6468 : /* No clobbers */);
6469 return result;
6472 __extension__ extern __inline int64x2_t
6473 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6474 vabal_high_s32 (int64x2_t a, int32x4_t b, int32x4_t c)
6476 int64x2_t result;
6477 __asm__ ("sabal2 %0.2d,%2.4s,%3.4s"
6478 : "=w"(result)
6479 : "0"(a), "w"(b), "w"(c)
6480 : /* No clobbers */);
6481 return result;
6484 __extension__ extern __inline uint16x8_t
6485 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6486 vabal_high_u8 (uint16x8_t a, uint8x16_t b, uint8x16_t c)
6488 uint16x8_t result;
6489 __asm__ ("uabal2 %0.8h,%2.16b,%3.16b"
6490 : "=w"(result)
6491 : "0"(a), "w"(b), "w"(c)
6492 : /* No clobbers */);
6493 return result;
6496 __extension__ extern __inline uint32x4_t
6497 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6498 vabal_high_u16 (uint32x4_t a, uint16x8_t b, uint16x8_t c)
6500 uint32x4_t result;
6501 __asm__ ("uabal2 %0.4s,%2.8h,%3.8h"
6502 : "=w"(result)
6503 : "0"(a), "w"(b), "w"(c)
6504 : /* No clobbers */);
6505 return result;
6508 __extension__ extern __inline uint64x2_t
6509 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6510 vabal_high_u32 (uint64x2_t a, uint32x4_t b, uint32x4_t c)
6512 uint64x2_t result;
6513 __asm__ ("uabal2 %0.2d,%2.4s,%3.4s"
6514 : "=w"(result)
6515 : "0"(a), "w"(b), "w"(c)
6516 : /* No clobbers */);
6517 return result;
6520 __extension__ extern __inline int16x8_t
6521 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6522 vabal_s8 (int16x8_t a, int8x8_t b, int8x8_t c)
6524 int16x8_t result;
6525 __asm__ ("sabal %0.8h,%2.8b,%3.8b"
6526 : "=w"(result)
6527 : "0"(a), "w"(b), "w"(c)
6528 : /* No clobbers */);
6529 return result;
6532 __extension__ extern __inline int32x4_t
6533 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6534 vabal_s16 (int32x4_t a, int16x4_t b, int16x4_t c)
6536 int32x4_t result;
6537 __asm__ ("sabal %0.4s,%2.4h,%3.4h"
6538 : "=w"(result)
6539 : "0"(a), "w"(b), "w"(c)
6540 : /* No clobbers */);
6541 return result;
6544 __extension__ extern __inline int64x2_t
6545 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6546 vabal_s32 (int64x2_t a, int32x2_t b, int32x2_t c)
6548 int64x2_t result;
6549 __asm__ ("sabal %0.2d,%2.2s,%3.2s"
6550 : "=w"(result)
6551 : "0"(a), "w"(b), "w"(c)
6552 : /* No clobbers */);
6553 return result;
6556 __extension__ extern __inline uint16x8_t
6557 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6558 vabal_u8 (uint16x8_t a, uint8x8_t b, uint8x8_t c)
6560 uint16x8_t result;
6561 __asm__ ("uabal %0.8h,%2.8b,%3.8b"
6562 : "=w"(result)
6563 : "0"(a), "w"(b), "w"(c)
6564 : /* No clobbers */);
6565 return result;
6568 __extension__ extern __inline uint32x4_t
6569 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6570 vabal_u16 (uint32x4_t a, uint16x4_t b, uint16x4_t c)
6572 uint32x4_t result;
6573 __asm__ ("uabal %0.4s,%2.4h,%3.4h"
6574 : "=w"(result)
6575 : "0"(a), "w"(b), "w"(c)
6576 : /* No clobbers */);
6577 return result;
6580 __extension__ extern __inline uint64x2_t
6581 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6582 vabal_u32 (uint64x2_t a, uint32x2_t b, uint32x2_t c)
6584 uint64x2_t result;
6585 __asm__ ("uabal %0.2d,%2.2s,%3.2s"
6586 : "=w"(result)
6587 : "0"(a), "w"(b), "w"(c)
6588 : /* No clobbers */);
6589 return result;
6592 __extension__ extern __inline int8x16_t
6593 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6594 vabaq_s8 (int8x16_t a, int8x16_t b, int8x16_t c)
6596 int8x16_t result;
6597 __asm__ ("saba %0.16b,%2.16b,%3.16b"
6598 : "=w"(result)
6599 : "0"(a), "w"(b), "w"(c)
6600 : /* No clobbers */);
6601 return result;
6604 __extension__ extern __inline int16x8_t
6605 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6606 vabaq_s16 (int16x8_t a, int16x8_t b, int16x8_t c)
6608 int16x8_t result;
6609 __asm__ ("saba %0.8h,%2.8h,%3.8h"
6610 : "=w"(result)
6611 : "0"(a), "w"(b), "w"(c)
6612 : /* No clobbers */);
6613 return result;
6616 __extension__ extern __inline int32x4_t
6617 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6618 vabaq_s32 (int32x4_t a, int32x4_t b, int32x4_t c)
6620 int32x4_t result;
6621 __asm__ ("saba %0.4s,%2.4s,%3.4s"
6622 : "=w"(result)
6623 : "0"(a), "w"(b), "w"(c)
6624 : /* No clobbers */);
6625 return result;
6628 __extension__ extern __inline uint8x16_t
6629 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6630 vabaq_u8 (uint8x16_t a, uint8x16_t b, uint8x16_t c)
6632 uint8x16_t result;
6633 __asm__ ("uaba %0.16b,%2.16b,%3.16b"
6634 : "=w"(result)
6635 : "0"(a), "w"(b), "w"(c)
6636 : /* No clobbers */);
6637 return result;
6640 __extension__ extern __inline uint16x8_t
6641 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6642 vabaq_u16 (uint16x8_t a, uint16x8_t b, uint16x8_t c)
6644 uint16x8_t result;
6645 __asm__ ("uaba %0.8h,%2.8h,%3.8h"
6646 : "=w"(result)
6647 : "0"(a), "w"(b), "w"(c)
6648 : /* No clobbers */);
6649 return result;
6652 __extension__ extern __inline uint32x4_t
6653 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6654 vabaq_u32 (uint32x4_t a, uint32x4_t b, uint32x4_t c)
6656 uint32x4_t result;
6657 __asm__ ("uaba %0.4s,%2.4s,%3.4s"
6658 : "=w"(result)
6659 : "0"(a), "w"(b), "w"(c)
6660 : /* No clobbers */);
6661 return result;
6664 __extension__ extern __inline int8x8_t
6665 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6666 vabd_s8 (int8x8_t a, int8x8_t b)
6668 int8x8_t result;
6669 __asm__ ("sabd %0.8b, %1.8b, %2.8b"
6670 : "=w"(result)
6671 : "w"(a), "w"(b)
6672 : /* No clobbers */);
6673 return result;
6676 __extension__ extern __inline int16x4_t
6677 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6678 vabd_s16 (int16x4_t a, int16x4_t b)
6680 int16x4_t result;
6681 __asm__ ("sabd %0.4h, %1.4h, %2.4h"
6682 : "=w"(result)
6683 : "w"(a), "w"(b)
6684 : /* No clobbers */);
6685 return result;
6688 __extension__ extern __inline int32x2_t
6689 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6690 vabd_s32 (int32x2_t a, int32x2_t b)
6692 int32x2_t result;
6693 __asm__ ("sabd %0.2s, %1.2s, %2.2s"
6694 : "=w"(result)
6695 : "w"(a), "w"(b)
6696 : /* No clobbers */);
6697 return result;
6700 __extension__ extern __inline uint8x8_t
6701 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6702 vabd_u8 (uint8x8_t a, uint8x8_t b)
6704 uint8x8_t result;
6705 __asm__ ("uabd %0.8b, %1.8b, %2.8b"
6706 : "=w"(result)
6707 : "w"(a), "w"(b)
6708 : /* No clobbers */);
6709 return result;
6712 __extension__ extern __inline uint16x4_t
6713 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6714 vabd_u16 (uint16x4_t a, uint16x4_t b)
6716 uint16x4_t result;
6717 __asm__ ("uabd %0.4h, %1.4h, %2.4h"
6718 : "=w"(result)
6719 : "w"(a), "w"(b)
6720 : /* No clobbers */);
6721 return result;
6724 __extension__ extern __inline uint32x2_t
6725 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6726 vabd_u32 (uint32x2_t a, uint32x2_t b)
6728 uint32x2_t result;
6729 __asm__ ("uabd %0.2s, %1.2s, %2.2s"
6730 : "=w"(result)
6731 : "w"(a), "w"(b)
6732 : /* No clobbers */);
6733 return result;
6736 __extension__ extern __inline int16x8_t
6737 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6738 vabdl_high_s8 (int8x16_t a, int8x16_t b)
6740 int16x8_t result;
6741 __asm__ ("sabdl2 %0.8h,%1.16b,%2.16b"
6742 : "=w"(result)
6743 : "w"(a), "w"(b)
6744 : /* No clobbers */);
6745 return result;
6748 __extension__ extern __inline int32x4_t
6749 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6750 vabdl_high_s16 (int16x8_t a, int16x8_t b)
6752 int32x4_t result;
6753 __asm__ ("sabdl2 %0.4s,%1.8h,%2.8h"
6754 : "=w"(result)
6755 : "w"(a), "w"(b)
6756 : /* No clobbers */);
6757 return result;
6760 __extension__ extern __inline int64x2_t
6761 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6762 vabdl_high_s32 (int32x4_t a, int32x4_t b)
6764 int64x2_t result;
6765 __asm__ ("sabdl2 %0.2d,%1.4s,%2.4s"
6766 : "=w"(result)
6767 : "w"(a), "w"(b)
6768 : /* No clobbers */);
6769 return result;
6772 __extension__ extern __inline uint16x8_t
6773 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6774 vabdl_high_u8 (uint8x16_t a, uint8x16_t b)
6776 uint16x8_t result;
6777 __asm__ ("uabdl2 %0.8h,%1.16b,%2.16b"
6778 : "=w"(result)
6779 : "w"(a), "w"(b)
6780 : /* No clobbers */);
6781 return result;
6784 __extension__ extern __inline uint32x4_t
6785 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6786 vabdl_high_u16 (uint16x8_t a, uint16x8_t b)
6788 uint32x4_t result;
6789 __asm__ ("uabdl2 %0.4s,%1.8h,%2.8h"
6790 : "=w"(result)
6791 : "w"(a), "w"(b)
6792 : /* No clobbers */);
6793 return result;
6796 __extension__ extern __inline uint64x2_t
6797 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6798 vabdl_high_u32 (uint32x4_t a, uint32x4_t b)
6800 uint64x2_t result;
6801 __asm__ ("uabdl2 %0.2d,%1.4s,%2.4s"
6802 : "=w"(result)
6803 : "w"(a), "w"(b)
6804 : /* No clobbers */);
6805 return result;
6808 __extension__ extern __inline int16x8_t
6809 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6810 vabdl_s8 (int8x8_t a, int8x8_t b)
6812 int16x8_t result;
6813 __asm__ ("sabdl %0.8h, %1.8b, %2.8b"
6814 : "=w"(result)
6815 : "w"(a), "w"(b)
6816 : /* No clobbers */);
6817 return result;
6820 __extension__ extern __inline int32x4_t
6821 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6822 vabdl_s16 (int16x4_t a, int16x4_t b)
6824 int32x4_t result;
6825 __asm__ ("sabdl %0.4s, %1.4h, %2.4h"
6826 : "=w"(result)
6827 : "w"(a), "w"(b)
6828 : /* No clobbers */);
6829 return result;
6832 __extension__ extern __inline int64x2_t
6833 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6834 vabdl_s32 (int32x2_t a, int32x2_t b)
6836 int64x2_t result;
6837 __asm__ ("sabdl %0.2d, %1.2s, %2.2s"
6838 : "=w"(result)
6839 : "w"(a), "w"(b)
6840 : /* No clobbers */);
6841 return result;
6844 __extension__ extern __inline uint16x8_t
6845 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6846 vabdl_u8 (uint8x8_t a, uint8x8_t b)
6848 uint16x8_t result;
6849 __asm__ ("uabdl %0.8h, %1.8b, %2.8b"
6850 : "=w"(result)
6851 : "w"(a), "w"(b)
6852 : /* No clobbers */);
6853 return result;
6856 __extension__ extern __inline uint32x4_t
6857 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6858 vabdl_u16 (uint16x4_t a, uint16x4_t b)
6860 uint32x4_t result;
6861 __asm__ ("uabdl %0.4s, %1.4h, %2.4h"
6862 : "=w"(result)
6863 : "w"(a), "w"(b)
6864 : /* No clobbers */);
6865 return result;
6868 __extension__ extern __inline uint64x2_t
6869 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6870 vabdl_u32 (uint32x2_t a, uint32x2_t b)
6872 uint64x2_t result;
6873 __asm__ ("uabdl %0.2d, %1.2s, %2.2s"
6874 : "=w"(result)
6875 : "w"(a), "w"(b)
6876 : /* No clobbers */);
6877 return result;
6880 __extension__ extern __inline int8x16_t
6881 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6882 vabdq_s8 (int8x16_t a, int8x16_t b)
6884 int8x16_t result;
6885 __asm__ ("sabd %0.16b, %1.16b, %2.16b"
6886 : "=w"(result)
6887 : "w"(a), "w"(b)
6888 : /* No clobbers */);
6889 return result;
6892 __extension__ extern __inline int16x8_t
6893 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6894 vabdq_s16 (int16x8_t a, int16x8_t b)
6896 int16x8_t result;
6897 __asm__ ("sabd %0.8h, %1.8h, %2.8h"
6898 : "=w"(result)
6899 : "w"(a), "w"(b)
6900 : /* No clobbers */);
6901 return result;
6904 __extension__ extern __inline int32x4_t
6905 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6906 vabdq_s32 (int32x4_t a, int32x4_t b)
6908 int32x4_t result;
6909 __asm__ ("sabd %0.4s, %1.4s, %2.4s"
6910 : "=w"(result)
6911 : "w"(a), "w"(b)
6912 : /* No clobbers */);
6913 return result;
6916 __extension__ extern __inline uint8x16_t
6917 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6918 vabdq_u8 (uint8x16_t a, uint8x16_t b)
6920 uint8x16_t result;
6921 __asm__ ("uabd %0.16b, %1.16b, %2.16b"
6922 : "=w"(result)
6923 : "w"(a), "w"(b)
6924 : /* No clobbers */);
6925 return result;
6928 __extension__ extern __inline uint16x8_t
6929 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6930 vabdq_u16 (uint16x8_t a, uint16x8_t b)
6932 uint16x8_t result;
6933 __asm__ ("uabd %0.8h, %1.8h, %2.8h"
6934 : "=w"(result)
6935 : "w"(a), "w"(b)
6936 : /* No clobbers */);
6937 return result;
6940 __extension__ extern __inline uint32x4_t
6941 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6942 vabdq_u32 (uint32x4_t a, uint32x4_t b)
6944 uint32x4_t result;
6945 __asm__ ("uabd %0.4s, %1.4s, %2.4s"
6946 : "=w"(result)
6947 : "w"(a), "w"(b)
6948 : /* No clobbers */);
6949 return result;
6952 __extension__ extern __inline int16_t
6953 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6954 vaddlv_s8 (int8x8_t a)
6956 int16_t result;
6957 __asm__ ("saddlv %h0,%1.8b"
6958 : "=w"(result)
6959 : "w"(a)
6960 : /* No clobbers */);
6961 return result;
6964 __extension__ extern __inline int32_t
6965 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6966 vaddlv_s16 (int16x4_t a)
6968 int32_t result;
6969 __asm__ ("saddlv %s0,%1.4h"
6970 : "=w"(result)
6971 : "w"(a)
6972 : /* No clobbers */);
6973 return result;
6976 __extension__ extern __inline uint16_t
6977 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6978 vaddlv_u8 (uint8x8_t a)
6980 uint16_t result;
6981 __asm__ ("uaddlv %h0,%1.8b"
6982 : "=w"(result)
6983 : "w"(a)
6984 : /* No clobbers */);
6985 return result;
6988 __extension__ extern __inline uint32_t
6989 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6990 vaddlv_u16 (uint16x4_t a)
6992 uint32_t result;
6993 __asm__ ("uaddlv %s0,%1.4h"
6994 : "=w"(result)
6995 : "w"(a)
6996 : /* No clobbers */);
6997 return result;
7000 __extension__ extern __inline int16_t
7001 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7002 vaddlvq_s8 (int8x16_t a)
7004 int16_t result;
7005 __asm__ ("saddlv %h0,%1.16b"
7006 : "=w"(result)
7007 : "w"(a)
7008 : /* No clobbers */);
7009 return result;
7012 __extension__ extern __inline int32_t
7013 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7014 vaddlvq_s16 (int16x8_t a)
7016 int32_t result;
7017 __asm__ ("saddlv %s0,%1.8h"
7018 : "=w"(result)
7019 : "w"(a)
7020 : /* No clobbers */);
7021 return result;
7024 __extension__ extern __inline int64_t
7025 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7026 vaddlvq_s32 (int32x4_t a)
7028 int64_t result;
7029 __asm__ ("saddlv %d0,%1.4s"
7030 : "=w"(result)
7031 : "w"(a)
7032 : /* No clobbers */);
7033 return result;
7036 __extension__ extern __inline uint16_t
7037 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7038 vaddlvq_u8 (uint8x16_t a)
7040 uint16_t result;
7041 __asm__ ("uaddlv %h0,%1.16b"
7042 : "=w"(result)
7043 : "w"(a)
7044 : /* No clobbers */);
7045 return result;
7048 __extension__ extern __inline uint32_t
7049 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7050 vaddlvq_u16 (uint16x8_t a)
7052 uint32_t result;
7053 __asm__ ("uaddlv %s0,%1.8h"
7054 : "=w"(result)
7055 : "w"(a)
7056 : /* No clobbers */);
7057 return result;
7060 __extension__ extern __inline uint64_t
7061 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7062 vaddlvq_u32 (uint32x4_t a)
7064 uint64_t result;
7065 __asm__ ("uaddlv %d0,%1.4s"
7066 : "=w"(result)
7067 : "w"(a)
7068 : /* No clobbers */);
7069 return result;
7072 __extension__ extern __inline float32x2_t
7073 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7074 vcvtx_f32_f64 (float64x2_t a)
7076 float32x2_t result;
7077 __asm__ ("fcvtxn %0.2s,%1.2d"
7078 : "=w"(result)
7079 : "w"(a)
7080 : /* No clobbers */);
7081 return result;
7084 __extension__ extern __inline float32x4_t
7085 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7086 vcvtx_high_f32_f64 (float32x2_t a, float64x2_t b)
7088 float32x4_t result;
7089 __asm__ ("fcvtxn2 %0.4s,%1.2d"
7090 : "=w"(result)
7091 : "w" (b), "0"(a)
7092 : /* No clobbers */);
7093 return result;
7096 __extension__ extern __inline float32_t
7097 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7098 vcvtxd_f32_f64 (float64_t a)
7100 float32_t result;
7101 __asm__ ("fcvtxn %s0,%d1"
7102 : "=w"(result)
7103 : "w"(a)
7104 : /* No clobbers */);
7105 return result;
7108 __extension__ extern __inline float32x2_t
7109 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7110 vmla_n_f32 (float32x2_t a, float32x2_t b, float32_t c)
7112 float32x2_t result;
7113 float32x2_t t1;
7114 __asm__ ("fmul %1.2s, %3.2s, %4.s[0]; fadd %0.2s, %0.2s, %1.2s"
7115 : "=w"(result), "=w"(t1)
7116 : "0"(a), "w"(b), "w"(c)
7117 : /* No clobbers */);
7118 return result;
7121 __extension__ extern __inline int16x4_t
7122 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7123 vmla_n_s16 (int16x4_t a, int16x4_t b, int16_t c)
7125 int16x4_t result;
7126 __asm__ ("mla %0.4h,%2.4h,%3.h[0]"
7127 : "=w"(result)
7128 : "0"(a), "w"(b), "x"(c)
7129 : /* No clobbers */);
7130 return result;
7133 __extension__ extern __inline int32x2_t
7134 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7135 vmla_n_s32 (int32x2_t a, int32x2_t b, int32_t c)
7137 int32x2_t result;
7138 __asm__ ("mla %0.2s,%2.2s,%3.s[0]"
7139 : "=w"(result)
7140 : "0"(a), "w"(b), "w"(c)
7141 : /* No clobbers */);
7142 return result;
7145 __extension__ extern __inline uint16x4_t
7146 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7147 vmla_n_u16 (uint16x4_t a, uint16x4_t b, uint16_t c)
7149 uint16x4_t result;
7150 __asm__ ("mla %0.4h,%2.4h,%3.h[0]"
7151 : "=w"(result)
7152 : "0"(a), "w"(b), "x"(c)
7153 : /* No clobbers */);
7154 return result;
7157 __extension__ extern __inline uint32x2_t
7158 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7159 vmla_n_u32 (uint32x2_t a, uint32x2_t b, uint32_t c)
7161 uint32x2_t result;
7162 __asm__ ("mla %0.2s,%2.2s,%3.s[0]"
7163 : "=w"(result)
7164 : "0"(a), "w"(b), "w"(c)
7165 : /* No clobbers */);
7166 return result;
7169 __extension__ extern __inline int8x8_t
7170 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7171 vmla_s8 (int8x8_t a, int8x8_t b, int8x8_t c)
7173 int8x8_t result;
7174 __asm__ ("mla %0.8b, %2.8b, %3.8b"
7175 : "=w"(result)
7176 : "0"(a), "w"(b), "w"(c)
7177 : /* No clobbers */);
7178 return result;
7181 __extension__ extern __inline int16x4_t
7182 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7183 vmla_s16 (int16x4_t a, int16x4_t b, int16x4_t c)
7185 int16x4_t result;
7186 __asm__ ("mla %0.4h, %2.4h, %3.4h"
7187 : "=w"(result)
7188 : "0"(a), "w"(b), "w"(c)
7189 : /* No clobbers */);
7190 return result;
7193 __extension__ extern __inline int32x2_t
7194 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7195 vmla_s32 (int32x2_t a, int32x2_t b, int32x2_t c)
7197 int32x2_t result;
7198 __asm__ ("mla %0.2s, %2.2s, %3.2s"
7199 : "=w"(result)
7200 : "0"(a), "w"(b), "w"(c)
7201 : /* No clobbers */);
7202 return result;
7205 __extension__ extern __inline uint8x8_t
7206 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7207 vmla_u8 (uint8x8_t a, uint8x8_t b, uint8x8_t c)
7209 uint8x8_t result;
7210 __asm__ ("mla %0.8b, %2.8b, %3.8b"
7211 : "=w"(result)
7212 : "0"(a), "w"(b), "w"(c)
7213 : /* No clobbers */);
7214 return result;
7217 __extension__ extern __inline uint16x4_t
7218 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7219 vmla_u16 (uint16x4_t a, uint16x4_t b, uint16x4_t c)
7221 uint16x4_t result;
7222 __asm__ ("mla %0.4h, %2.4h, %3.4h"
7223 : "=w"(result)
7224 : "0"(a), "w"(b), "w"(c)
7225 : /* No clobbers */);
7226 return result;
7229 __extension__ extern __inline uint32x2_t
7230 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7231 vmla_u32 (uint32x2_t a, uint32x2_t b, uint32x2_t c)
7233 uint32x2_t result;
7234 __asm__ ("mla %0.2s, %2.2s, %3.2s"
7235 : "=w"(result)
7236 : "0"(a), "w"(b), "w"(c)
7237 : /* No clobbers */);
7238 return result;
7241 #define vmlal_high_lane_s16(a, b, c, d) \
7242 __extension__ \
7243 ({ \
7244 int16x4_t c_ = (c); \
7245 int16x8_t b_ = (b); \
7246 int32x4_t a_ = (a); \
7247 int32x4_t result; \
7248 __asm__ ("smlal2 %0.4s, %2.8h, %3.h[%4]" \
7249 : "=w"(result) \
7250 : "0"(a_), "w"(b_), "x"(c_), "i"(d) \
7251 : /* No clobbers */); \
7252 result; \
7255 #define vmlal_high_lane_s32(a, b, c, d) \
7256 __extension__ \
7257 ({ \
7258 int32x2_t c_ = (c); \
7259 int32x4_t b_ = (b); \
7260 int64x2_t a_ = (a); \
7261 int64x2_t result; \
7262 __asm__ ("smlal2 %0.2d, %2.4s, %3.s[%4]" \
7263 : "=w"(result) \
7264 : "0"(a_), "w"(b_), "w"(c_), "i"(d) \
7265 : /* No clobbers */); \
7266 result; \
7269 #define vmlal_high_lane_u16(a, b, c, d) \
7270 __extension__ \
7271 ({ \
7272 uint16x4_t c_ = (c); \
7273 uint16x8_t b_ = (b); \
7274 uint32x4_t a_ = (a); \
7275 uint32x4_t result; \
7276 __asm__ ("umlal2 %0.4s, %2.8h, %3.h[%4]" \
7277 : "=w"(result) \
7278 : "0"(a_), "w"(b_), "x"(c_), "i"(d) \
7279 : /* No clobbers */); \
7280 result; \
7283 #define vmlal_high_lane_u32(a, b, c, d) \
7284 __extension__ \
7285 ({ \
7286 uint32x2_t c_ = (c); \
7287 uint32x4_t b_ = (b); \
7288 uint64x2_t a_ = (a); \
7289 uint64x2_t result; \
7290 __asm__ ("umlal2 %0.2d, %2.4s, %3.s[%4]" \
7291 : "=w"(result) \
7292 : "0"(a_), "w"(b_), "w"(c_), "i"(d) \
7293 : /* No clobbers */); \
7294 result; \
7297 #define vmlal_high_laneq_s16(a, b, c, d) \
7298 __extension__ \
7299 ({ \
7300 int16x8_t c_ = (c); \
7301 int16x8_t b_ = (b); \
7302 int32x4_t a_ = (a); \
7303 int32x4_t result; \
7304 __asm__ ("smlal2 %0.4s, %2.8h, %3.h[%4]" \
7305 : "=w"(result) \
7306 : "0"(a_), "w"(b_), "x"(c_), "i"(d) \
7307 : /* No clobbers */); \
7308 result; \
7311 #define vmlal_high_laneq_s32(a, b, c, d) \
7312 __extension__ \
7313 ({ \
7314 int32x4_t c_ = (c); \
7315 int32x4_t b_ = (b); \
7316 int64x2_t a_ = (a); \
7317 int64x2_t result; \
7318 __asm__ ("smlal2 %0.2d, %2.4s, %3.s[%4]" \
7319 : "=w"(result) \
7320 : "0"(a_), "w"(b_), "w"(c_), "i"(d) \
7321 : /* No clobbers */); \
7322 result; \
7325 #define vmlal_high_laneq_u16(a, b, c, d) \
7326 __extension__ \
7327 ({ \
7328 uint16x8_t c_ = (c); \
7329 uint16x8_t b_ = (b); \
7330 uint32x4_t a_ = (a); \
7331 uint32x4_t result; \
7332 __asm__ ("umlal2 %0.4s, %2.8h, %3.h[%4]" \
7333 : "=w"(result) \
7334 : "0"(a_), "w"(b_), "x"(c_), "i"(d) \
7335 : /* No clobbers */); \
7336 result; \
7339 #define vmlal_high_laneq_u32(a, b, c, d) \
7340 __extension__ \
7341 ({ \
7342 uint32x4_t c_ = (c); \
7343 uint32x4_t b_ = (b); \
7344 uint64x2_t a_ = (a); \
7345 uint64x2_t result; \
7346 __asm__ ("umlal2 %0.2d, %2.4s, %3.s[%4]" \
7347 : "=w"(result) \
7348 : "0"(a_), "w"(b_), "w"(c_), "i"(d) \
7349 : /* No clobbers */); \
7350 result; \
7353 __extension__ extern __inline int32x4_t
7354 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7355 vmlal_high_n_s16 (int32x4_t a, int16x8_t b, int16_t c)
7357 int32x4_t result;
7358 __asm__ ("smlal2 %0.4s,%2.8h,%3.h[0]"
7359 : "=w"(result)
7360 : "0"(a), "w"(b), "x"(c)
7361 : /* No clobbers */);
7362 return result;
7365 __extension__ extern __inline int64x2_t
7366 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7367 vmlal_high_n_s32 (int64x2_t a, int32x4_t b, int32_t c)
7369 int64x2_t result;
7370 __asm__ ("smlal2 %0.2d,%2.4s,%3.s[0]"
7371 : "=w"(result)
7372 : "0"(a), "w"(b), "w"(c)
7373 : /* No clobbers */);
7374 return result;
7377 __extension__ extern __inline uint32x4_t
7378 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7379 vmlal_high_n_u16 (uint32x4_t a, uint16x8_t b, uint16_t c)
7381 uint32x4_t result;
7382 __asm__ ("umlal2 %0.4s,%2.8h,%3.h[0]"
7383 : "=w"(result)
7384 : "0"(a), "w"(b), "x"(c)
7385 : /* No clobbers */);
7386 return result;
7389 __extension__ extern __inline uint64x2_t
7390 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7391 vmlal_high_n_u32 (uint64x2_t a, uint32x4_t b, uint32_t c)
7393 uint64x2_t result;
7394 __asm__ ("umlal2 %0.2d,%2.4s,%3.s[0]"
7395 : "=w"(result)
7396 : "0"(a), "w"(b), "w"(c)
7397 : /* No clobbers */);
7398 return result;
7401 __extension__ extern __inline int16x8_t
7402 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7403 vmlal_high_s8 (int16x8_t a, int8x16_t b, int8x16_t c)
7405 int16x8_t result;
7406 __asm__ ("smlal2 %0.8h,%2.16b,%3.16b"
7407 : "=w"(result)
7408 : "0"(a), "w"(b), "w"(c)
7409 : /* No clobbers */);
7410 return result;
7413 __extension__ extern __inline int32x4_t
7414 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7415 vmlal_high_s16 (int32x4_t a, int16x8_t b, int16x8_t c)
7417 int32x4_t result;
7418 __asm__ ("smlal2 %0.4s,%2.8h,%3.8h"
7419 : "=w"(result)
7420 : "0"(a), "w"(b), "w"(c)
7421 : /* No clobbers */);
7422 return result;
7425 __extension__ extern __inline int64x2_t
7426 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7427 vmlal_high_s32 (int64x2_t a, int32x4_t b, int32x4_t c)
7429 int64x2_t result;
7430 __asm__ ("smlal2 %0.2d,%2.4s,%3.4s"
7431 : "=w"(result)
7432 : "0"(a), "w"(b), "w"(c)
7433 : /* No clobbers */);
7434 return result;
7437 __extension__ extern __inline uint16x8_t
7438 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7439 vmlal_high_u8 (uint16x8_t a, uint8x16_t b, uint8x16_t c)
7441 uint16x8_t result;
7442 __asm__ ("umlal2 %0.8h,%2.16b,%3.16b"
7443 : "=w"(result)
7444 : "0"(a), "w"(b), "w"(c)
7445 : /* No clobbers */);
7446 return result;
7449 __extension__ extern __inline uint32x4_t
7450 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7451 vmlal_high_u16 (uint32x4_t a, uint16x8_t b, uint16x8_t c)
7453 uint32x4_t result;
7454 __asm__ ("umlal2 %0.4s,%2.8h,%3.8h"
7455 : "=w"(result)
7456 : "0"(a), "w"(b), "w"(c)
7457 : /* No clobbers */);
7458 return result;
7461 __extension__ extern __inline uint64x2_t
7462 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7463 vmlal_high_u32 (uint64x2_t a, uint32x4_t b, uint32x4_t c)
7465 uint64x2_t result;
7466 __asm__ ("umlal2 %0.2d,%2.4s,%3.4s"
7467 : "=w"(result)
7468 : "0"(a), "w"(b), "w"(c)
7469 : /* No clobbers */);
7470 return result;
7473 #define vmlal_lane_s16(a, b, c, d) \
7474 __extension__ \
7475 ({ \
7476 int16x4_t c_ = (c); \
7477 int16x4_t b_ = (b); \
7478 int32x4_t a_ = (a); \
7479 int32x4_t result; \
7480 __asm__ ("smlal %0.4s,%2.4h,%3.h[%4]" \
7481 : "=w"(result) \
7482 : "0"(a_), "w"(b_), "x"(c_), "i"(d) \
7483 : /* No clobbers */); \
7484 result; \
7487 #define vmlal_lane_s32(a, b, c, d) \
7488 __extension__ \
7489 ({ \
7490 int32x2_t c_ = (c); \
7491 int32x2_t b_ = (b); \
7492 int64x2_t a_ = (a); \
7493 int64x2_t result; \
7494 __asm__ ("smlal %0.2d,%2.2s,%3.s[%4]" \
7495 : "=w"(result) \
7496 : "0"(a_), "w"(b_), "w"(c_), "i"(d) \
7497 : /* No clobbers */); \
7498 result; \
7501 #define vmlal_lane_u16(a, b, c, d) \
7502 __extension__ \
7503 ({ \
7504 uint16x4_t c_ = (c); \
7505 uint16x4_t b_ = (b); \
7506 uint32x4_t a_ = (a); \
7507 uint32x4_t result; \
7508 __asm__ ("umlal %0.4s,%2.4h,%3.h[%4]" \
7509 : "=w"(result) \
7510 : "0"(a_), "w"(b_), "x"(c_), "i"(d) \
7511 : /* No clobbers */); \
7512 result; \
7515 #define vmlal_lane_u32(a, b, c, d) \
7516 __extension__ \
7517 ({ \
7518 uint32x2_t c_ = (c); \
7519 uint32x2_t b_ = (b); \
7520 uint64x2_t a_ = (a); \
7521 uint64x2_t result; \
7522 __asm__ ("umlal %0.2d, %2.2s, %3.s[%4]" \
7523 : "=w"(result) \
7524 : "0"(a_), "w"(b_), "w"(c_), "i"(d) \
7525 : /* No clobbers */); \
7526 result; \
7529 #define vmlal_laneq_s16(a, b, c, d) \
7530 __extension__ \
7531 ({ \
7532 int16x8_t c_ = (c); \
7533 int16x4_t b_ = (b); \
7534 int32x4_t a_ = (a); \
7535 int32x4_t result; \
7536 __asm__ ("smlal %0.4s, %2.4h, %3.h[%4]" \
7537 : "=w"(result) \
7538 : "0"(a_), "w"(b_), "x"(c_), "i"(d) \
7539 : /* No clobbers */); \
7540 result; \
7543 #define vmlal_laneq_s32(a, b, c, d) \
7544 __extension__ \
7545 ({ \
7546 int32x4_t c_ = (c); \
7547 int32x2_t b_ = (b); \
7548 int64x2_t a_ = (a); \
7549 int64x2_t result; \
7550 __asm__ ("smlal %0.2d, %2.2s, %3.s[%4]" \
7551 : "=w"(result) \
7552 : "0"(a_), "w"(b_), "w"(c_), "i"(d) \
7553 : /* No clobbers */); \
7554 result; \
7557 #define vmlal_laneq_u16(a, b, c, d) \
7558 __extension__ \
7559 ({ \
7560 uint16x8_t c_ = (c); \
7561 uint16x4_t b_ = (b); \
7562 uint32x4_t a_ = (a); \
7563 uint32x4_t result; \
7564 __asm__ ("umlal %0.4s, %2.4h, %3.h[%4]" \
7565 : "=w"(result) \
7566 : "0"(a_), "w"(b_), "x"(c_), "i"(d) \
7567 : /* No clobbers */); \
7568 result; \
7571 #define vmlal_laneq_u32(a, b, c, d) \
7572 __extension__ \
7573 ({ \
7574 uint32x4_t c_ = (c); \
7575 uint32x2_t b_ = (b); \
7576 uint64x2_t a_ = (a); \
7577 uint64x2_t result; \
7578 __asm__ ("umlal %0.2d, %2.2s, %3.s[%4]" \
7579 : "=w"(result) \
7580 : "0"(a_), "w"(b_), "w"(c_), "i"(d) \
7581 : /* No clobbers */); \
7582 result; \
7585 __extension__ extern __inline int32x4_t
7586 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7587 vmlal_n_s16 (int32x4_t a, int16x4_t b, int16_t c)
7589 int32x4_t result;
7590 __asm__ ("smlal %0.4s,%2.4h,%3.h[0]"
7591 : "=w"(result)
7592 : "0"(a), "w"(b), "x"(c)
7593 : /* No clobbers */);
7594 return result;
7597 __extension__ extern __inline int64x2_t
7598 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7599 vmlal_n_s32 (int64x2_t a, int32x2_t b, int32_t c)
7601 int64x2_t result;
7602 __asm__ ("smlal %0.2d,%2.2s,%3.s[0]"
7603 : "=w"(result)
7604 : "0"(a), "w"(b), "w"(c)
7605 : /* No clobbers */);
7606 return result;
7609 __extension__ extern __inline uint32x4_t
7610 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7611 vmlal_n_u16 (uint32x4_t a, uint16x4_t b, uint16_t c)
7613 uint32x4_t result;
7614 __asm__ ("umlal %0.4s,%2.4h,%3.h[0]"
7615 : "=w"(result)
7616 : "0"(a), "w"(b), "x"(c)
7617 : /* No clobbers */);
7618 return result;
7621 __extension__ extern __inline uint64x2_t
7622 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7623 vmlal_n_u32 (uint64x2_t a, uint32x2_t b, uint32_t c)
7625 uint64x2_t result;
7626 __asm__ ("umlal %0.2d,%2.2s,%3.s[0]"
7627 : "=w"(result)
7628 : "0"(a), "w"(b), "w"(c)
7629 : /* No clobbers */);
7630 return result;
7633 __extension__ extern __inline int16x8_t
7634 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7635 vmlal_s8 (int16x8_t a, int8x8_t b, int8x8_t c)
7637 int16x8_t result;
7638 __asm__ ("smlal %0.8h,%2.8b,%3.8b"
7639 : "=w"(result)
7640 : "0"(a), "w"(b), "w"(c)
7641 : /* No clobbers */);
7642 return result;
7645 __extension__ extern __inline int32x4_t
7646 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7647 vmlal_s16 (int32x4_t a, int16x4_t b, int16x4_t c)
7649 int32x4_t result;
7650 __asm__ ("smlal %0.4s,%2.4h,%3.4h"
7651 : "=w"(result)
7652 : "0"(a), "w"(b), "w"(c)
7653 : /* No clobbers */);
7654 return result;
7657 __extension__ extern __inline int64x2_t
7658 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7659 vmlal_s32 (int64x2_t a, int32x2_t b, int32x2_t c)
7661 int64x2_t result;
7662 __asm__ ("smlal %0.2d,%2.2s,%3.2s"
7663 : "=w"(result)
7664 : "0"(a), "w"(b), "w"(c)
7665 : /* No clobbers */);
7666 return result;
7669 __extension__ extern __inline uint16x8_t
7670 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7671 vmlal_u8 (uint16x8_t a, uint8x8_t b, uint8x8_t c)
7673 uint16x8_t result;
7674 __asm__ ("umlal %0.8h,%2.8b,%3.8b"
7675 : "=w"(result)
7676 : "0"(a), "w"(b), "w"(c)
7677 : /* No clobbers */);
7678 return result;
7681 __extension__ extern __inline uint32x4_t
7682 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7683 vmlal_u16 (uint32x4_t a, uint16x4_t b, uint16x4_t c)
7685 uint32x4_t result;
7686 __asm__ ("umlal %0.4s,%2.4h,%3.4h"
7687 : "=w"(result)
7688 : "0"(a), "w"(b), "w"(c)
7689 : /* No clobbers */);
7690 return result;
7693 __extension__ extern __inline uint64x2_t
7694 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7695 vmlal_u32 (uint64x2_t a, uint32x2_t b, uint32x2_t c)
7697 uint64x2_t result;
7698 __asm__ ("umlal %0.2d,%2.2s,%3.2s"
7699 : "=w"(result)
7700 : "0"(a), "w"(b), "w"(c)
7701 : /* No clobbers */);
7702 return result;
7705 __extension__ extern __inline float32x4_t
7706 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7707 vmlaq_n_f32 (float32x4_t a, float32x4_t b, float32_t c)
7709 float32x4_t result;
7710 float32x4_t t1;
7711 __asm__ ("fmul %1.4s, %3.4s, %4.s[0]; fadd %0.4s, %0.4s, %1.4s"
7712 : "=w"(result), "=w"(t1)
7713 : "0"(a), "w"(b), "w"(c)
7714 : /* No clobbers */);
7715 return result;
7718 __extension__ extern __inline int16x8_t
7719 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7720 vmlaq_n_s16 (int16x8_t a, int16x8_t b, int16_t c)
7722 int16x8_t result;
7723 __asm__ ("mla %0.8h,%2.8h,%3.h[0]"
7724 : "=w"(result)
7725 : "0"(a), "w"(b), "x"(c)
7726 : /* No clobbers */);
7727 return result;
7730 __extension__ extern __inline int32x4_t
7731 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7732 vmlaq_n_s32 (int32x4_t a, int32x4_t b, int32_t c)
7734 int32x4_t result;
7735 __asm__ ("mla %0.4s,%2.4s,%3.s[0]"
7736 : "=w"(result)
7737 : "0"(a), "w"(b), "w"(c)
7738 : /* No clobbers */);
7739 return result;
7742 __extension__ extern __inline uint16x8_t
7743 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7744 vmlaq_n_u16 (uint16x8_t a, uint16x8_t b, uint16_t c)
7746 uint16x8_t result;
7747 __asm__ ("mla %0.8h,%2.8h,%3.h[0]"
7748 : "=w"(result)
7749 : "0"(a), "w"(b), "x"(c)
7750 : /* No clobbers */);
7751 return result;
7754 __extension__ extern __inline uint32x4_t
7755 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7756 vmlaq_n_u32 (uint32x4_t a, uint32x4_t b, uint32_t c)
7758 uint32x4_t result;
7759 __asm__ ("mla %0.4s,%2.4s,%3.s[0]"
7760 : "=w"(result)
7761 : "0"(a), "w"(b), "w"(c)
7762 : /* No clobbers */);
7763 return result;
7766 __extension__ extern __inline int8x16_t
7767 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7768 vmlaq_s8 (int8x16_t a, int8x16_t b, int8x16_t c)
7770 int8x16_t result;
7771 __asm__ ("mla %0.16b, %2.16b, %3.16b"
7772 : "=w"(result)
7773 : "0"(a), "w"(b), "w"(c)
7774 : /* No clobbers */);
7775 return result;
7778 __extension__ extern __inline int16x8_t
7779 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7780 vmlaq_s16 (int16x8_t a, int16x8_t b, int16x8_t c)
7782 int16x8_t result;
7783 __asm__ ("mla %0.8h, %2.8h, %3.8h"
7784 : "=w"(result)
7785 : "0"(a), "w"(b), "w"(c)
7786 : /* No clobbers */);
7787 return result;
7790 __extension__ extern __inline int32x4_t
7791 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7792 vmlaq_s32 (int32x4_t a, int32x4_t b, int32x4_t c)
7794 int32x4_t result;
7795 __asm__ ("mla %0.4s, %2.4s, %3.4s"
7796 : "=w"(result)
7797 : "0"(a), "w"(b), "w"(c)
7798 : /* No clobbers */);
7799 return result;
7802 __extension__ extern __inline uint8x16_t
7803 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7804 vmlaq_u8 (uint8x16_t a, uint8x16_t b, uint8x16_t c)
7806 uint8x16_t result;
7807 __asm__ ("mla %0.16b, %2.16b, %3.16b"
7808 : "=w"(result)
7809 : "0"(a), "w"(b), "w"(c)
7810 : /* No clobbers */);
7811 return result;
7814 __extension__ extern __inline uint16x8_t
7815 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7816 vmlaq_u16 (uint16x8_t a, uint16x8_t b, uint16x8_t c)
7818 uint16x8_t result;
7819 __asm__ ("mla %0.8h, %2.8h, %3.8h"
7820 : "=w"(result)
7821 : "0"(a), "w"(b), "w"(c)
7822 : /* No clobbers */);
7823 return result;
7826 __extension__ extern __inline uint32x4_t
7827 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7828 vmlaq_u32 (uint32x4_t a, uint32x4_t b, uint32x4_t c)
7830 uint32x4_t result;
7831 __asm__ ("mla %0.4s, %2.4s, %3.4s"
7832 : "=w"(result)
7833 : "0"(a), "w"(b), "w"(c)
7834 : /* No clobbers */);
7835 return result;
7838 __extension__ extern __inline float32x2_t
7839 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7840 vmls_n_f32 (float32x2_t a, float32x2_t b, float32_t c)
7842 float32x2_t result;
7843 float32x2_t t1;
7844 __asm__ ("fmul %1.2s, %3.2s, %4.s[0]; fsub %0.2s, %0.2s, %1.2s"
7845 : "=w"(result), "=w"(t1)
7846 : "0"(a), "w"(b), "w"(c)
7847 : /* No clobbers */);
7848 return result;
7851 __extension__ extern __inline int16x4_t
7852 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7853 vmls_n_s16 (int16x4_t a, int16x4_t b, int16_t c)
7855 int16x4_t result;
7856 __asm__ ("mls %0.4h, %2.4h, %3.h[0]"
7857 : "=w"(result)
7858 : "0"(a), "w"(b), "x"(c)
7859 : /* No clobbers */);
7860 return result;
7863 __extension__ extern __inline int32x2_t
7864 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7865 vmls_n_s32 (int32x2_t a, int32x2_t b, int32_t c)
7867 int32x2_t result;
7868 __asm__ ("mls %0.2s, %2.2s, %3.s[0]"
7869 : "=w"(result)
7870 : "0"(a), "w"(b), "w"(c)
7871 : /* No clobbers */);
7872 return result;
7875 __extension__ extern __inline uint16x4_t
7876 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7877 vmls_n_u16 (uint16x4_t a, uint16x4_t b, uint16_t c)
7879 uint16x4_t result;
7880 __asm__ ("mls %0.4h, %2.4h, %3.h[0]"
7881 : "=w"(result)
7882 : "0"(a), "w"(b), "x"(c)
7883 : /* No clobbers */);
7884 return result;
7887 __extension__ extern __inline uint32x2_t
7888 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7889 vmls_n_u32 (uint32x2_t a, uint32x2_t b, uint32_t c)
7891 uint32x2_t result;
7892 __asm__ ("mls %0.2s, %2.2s, %3.s[0]"
7893 : "=w"(result)
7894 : "0"(a), "w"(b), "w"(c)
7895 : /* No clobbers */);
7896 return result;
7899 __extension__ extern __inline int8x8_t
7900 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7901 vmls_s8 (int8x8_t a, int8x8_t b, int8x8_t c)
7903 int8x8_t result;
7904 __asm__ ("mls %0.8b,%2.8b,%3.8b"
7905 : "=w"(result)
7906 : "0"(a), "w"(b), "w"(c)
7907 : /* No clobbers */);
7908 return result;
7911 __extension__ extern __inline int16x4_t
7912 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7913 vmls_s16 (int16x4_t a, int16x4_t b, int16x4_t c)
7915 int16x4_t result;
7916 __asm__ ("mls %0.4h,%2.4h,%3.4h"
7917 : "=w"(result)
7918 : "0"(a), "w"(b), "w"(c)
7919 : /* No clobbers */);
7920 return result;
7923 __extension__ extern __inline int32x2_t
7924 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7925 vmls_s32 (int32x2_t a, int32x2_t b, int32x2_t c)
7927 int32x2_t result;
7928 __asm__ ("mls %0.2s,%2.2s,%3.2s"
7929 : "=w"(result)
7930 : "0"(a), "w"(b), "w"(c)
7931 : /* No clobbers */);
7932 return result;
7935 __extension__ extern __inline uint8x8_t
7936 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7937 vmls_u8 (uint8x8_t a, uint8x8_t b, uint8x8_t c)
7939 uint8x8_t result;
7940 __asm__ ("mls %0.8b,%2.8b,%3.8b"
7941 : "=w"(result)
7942 : "0"(a), "w"(b), "w"(c)
7943 : /* No clobbers */);
7944 return result;
7947 __extension__ extern __inline uint16x4_t
7948 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7949 vmls_u16 (uint16x4_t a, uint16x4_t b, uint16x4_t c)
7951 uint16x4_t result;
7952 __asm__ ("mls %0.4h,%2.4h,%3.4h"
7953 : "=w"(result)
7954 : "0"(a), "w"(b), "w"(c)
7955 : /* No clobbers */);
7956 return result;
7959 __extension__ extern __inline uint32x2_t
7960 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7961 vmls_u32 (uint32x2_t a, uint32x2_t b, uint32x2_t c)
7963 uint32x2_t result;
7964 __asm__ ("mls %0.2s,%2.2s,%3.2s"
7965 : "=w"(result)
7966 : "0"(a), "w"(b), "w"(c)
7967 : /* No clobbers */);
7968 return result;
7971 #define vmlsl_high_lane_s16(a, b, c, d) \
7972 __extension__ \
7973 ({ \
7974 int16x4_t c_ = (c); \
7975 int16x8_t b_ = (b); \
7976 int32x4_t a_ = (a); \
7977 int32x4_t result; \
7978 __asm__ ("smlsl2 %0.4s, %2.8h, %3.h[%4]" \
7979 : "=w"(result) \
7980 : "0"(a_), "w"(b_), "x"(c_), "i"(d) \
7981 : /* No clobbers */); \
7982 result; \
7985 #define vmlsl_high_lane_s32(a, b, c, d) \
7986 __extension__ \
7987 ({ \
7988 int32x2_t c_ = (c); \
7989 int32x4_t b_ = (b); \
7990 int64x2_t a_ = (a); \
7991 int64x2_t result; \
7992 __asm__ ("smlsl2 %0.2d, %2.4s, %3.s[%4]" \
7993 : "=w"(result) \
7994 : "0"(a_), "w"(b_), "w"(c_), "i"(d) \
7995 : /* No clobbers */); \
7996 result; \
7999 #define vmlsl_high_lane_u16(a, b, c, d) \
8000 __extension__ \
8001 ({ \
8002 uint16x4_t c_ = (c); \
8003 uint16x8_t b_ = (b); \
8004 uint32x4_t a_ = (a); \
8005 uint32x4_t result; \
8006 __asm__ ("umlsl2 %0.4s, %2.8h, %3.h[%4]" \
8007 : "=w"(result) \
8008 : "0"(a_), "w"(b_), "x"(c_), "i"(d) \
8009 : /* No clobbers */); \
8010 result; \
8013 #define vmlsl_high_lane_u32(a, b, c, d) \
8014 __extension__ \
8015 ({ \
8016 uint32x2_t c_ = (c); \
8017 uint32x4_t b_ = (b); \
8018 uint64x2_t a_ = (a); \
8019 uint64x2_t result; \
8020 __asm__ ("umlsl2 %0.2d, %2.4s, %3.s[%4]" \
8021 : "=w"(result) \
8022 : "0"(a_), "w"(b_), "w"(c_), "i"(d) \
8023 : /* No clobbers */); \
8024 result; \
8027 #define vmlsl_high_laneq_s16(a, b, c, d) \
8028 __extension__ \
8029 ({ \
8030 int16x8_t c_ = (c); \
8031 int16x8_t b_ = (b); \
8032 int32x4_t a_ = (a); \
8033 int32x4_t result; \
8034 __asm__ ("smlsl2 %0.4s, %2.8h, %3.h[%4]" \
8035 : "=w"(result) \
8036 : "0"(a_), "w"(b_), "x"(c_), "i"(d) \
8037 : /* No clobbers */); \
8038 result; \
8041 #define vmlsl_high_laneq_s32(a, b, c, d) \
8042 __extension__ \
8043 ({ \
8044 int32x4_t c_ = (c); \
8045 int32x4_t b_ = (b); \
8046 int64x2_t a_ = (a); \
8047 int64x2_t result; \
8048 __asm__ ("smlsl2 %0.2d, %2.4s, %3.s[%4]" \
8049 : "=w"(result) \
8050 : "0"(a_), "w"(b_), "w"(c_), "i"(d) \
8051 : /* No clobbers */); \
8052 result; \
8055 #define vmlsl_high_laneq_u16(a, b, c, d) \
8056 __extension__ \
8057 ({ \
8058 uint16x8_t c_ = (c); \
8059 uint16x8_t b_ = (b); \
8060 uint32x4_t a_ = (a); \
8061 uint32x4_t result; \
8062 __asm__ ("umlsl2 %0.4s, %2.8h, %3.h[%4]" \
8063 : "=w"(result) \
8064 : "0"(a_), "w"(b_), "x"(c_), "i"(d) \
8065 : /* No clobbers */); \
8066 result; \
8069 #define vmlsl_high_laneq_u32(a, b, c, d) \
8070 __extension__ \
8071 ({ \
8072 uint32x4_t c_ = (c); \
8073 uint32x4_t b_ = (b); \
8074 uint64x2_t a_ = (a); \
8075 uint64x2_t result; \
8076 __asm__ ("umlsl2 %0.2d, %2.4s, %3.s[%4]" \
8077 : "=w"(result) \
8078 : "0"(a_), "w"(b_), "w"(c_), "i"(d) \
8079 : /* No clobbers */); \
8080 result; \
8083 __extension__ extern __inline int32x4_t
8084 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8085 vmlsl_high_n_s16 (int32x4_t a, int16x8_t b, int16_t c)
8087 int32x4_t result;
8088 __asm__ ("smlsl2 %0.4s, %2.8h, %3.h[0]"
8089 : "=w"(result)
8090 : "0"(a), "w"(b), "x"(c)
8091 : /* No clobbers */);
8092 return result;
8095 __extension__ extern __inline int64x2_t
8096 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8097 vmlsl_high_n_s32 (int64x2_t a, int32x4_t b, int32_t c)
8099 int64x2_t result;
8100 __asm__ ("smlsl2 %0.2d, %2.4s, %3.s[0]"
8101 : "=w"(result)
8102 : "0"(a), "w"(b), "w"(c)
8103 : /* No clobbers */);
8104 return result;
8107 __extension__ extern __inline uint32x4_t
8108 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8109 vmlsl_high_n_u16 (uint32x4_t a, uint16x8_t b, uint16_t c)
8111 uint32x4_t result;
8112 __asm__ ("umlsl2 %0.4s, %2.8h, %3.h[0]"
8113 : "=w"(result)
8114 : "0"(a), "w"(b), "x"(c)
8115 : /* No clobbers */);
8116 return result;
8119 __extension__ extern __inline uint64x2_t
8120 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8121 vmlsl_high_n_u32 (uint64x2_t a, uint32x4_t b, uint32_t c)
8123 uint64x2_t result;
8124 __asm__ ("umlsl2 %0.2d, %2.4s, %3.s[0]"
8125 : "=w"(result)
8126 : "0"(a), "w"(b), "w"(c)
8127 : /* No clobbers */);
8128 return result;
8131 __extension__ extern __inline int16x8_t
8132 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8133 vmlsl_high_s8 (int16x8_t a, int8x16_t b, int8x16_t c)
8135 int16x8_t result;
8136 __asm__ ("smlsl2 %0.8h,%2.16b,%3.16b"
8137 : "=w"(result)
8138 : "0"(a), "w"(b), "w"(c)
8139 : /* No clobbers */);
8140 return result;
8143 __extension__ extern __inline int32x4_t
8144 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8145 vmlsl_high_s16 (int32x4_t a, int16x8_t b, int16x8_t c)
8147 int32x4_t result;
8148 __asm__ ("smlsl2 %0.4s,%2.8h,%3.8h"
8149 : "=w"(result)
8150 : "0"(a), "w"(b), "w"(c)
8151 : /* No clobbers */);
8152 return result;
8155 __extension__ extern __inline int64x2_t
8156 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8157 vmlsl_high_s32 (int64x2_t a, int32x4_t b, int32x4_t c)
8159 int64x2_t result;
8160 __asm__ ("smlsl2 %0.2d,%2.4s,%3.4s"
8161 : "=w"(result)
8162 : "0"(a), "w"(b), "w"(c)
8163 : /* No clobbers */);
8164 return result;
8167 __extension__ extern __inline uint16x8_t
8168 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8169 vmlsl_high_u8 (uint16x8_t a, uint8x16_t b, uint8x16_t c)
8171 uint16x8_t result;
8172 __asm__ ("umlsl2 %0.8h,%2.16b,%3.16b"
8173 : "=w"(result)
8174 : "0"(a), "w"(b), "w"(c)
8175 : /* No clobbers */);
8176 return result;
8179 __extension__ extern __inline uint32x4_t
8180 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8181 vmlsl_high_u16 (uint32x4_t a, uint16x8_t b, uint16x8_t c)
8183 uint32x4_t result;
8184 __asm__ ("umlsl2 %0.4s,%2.8h,%3.8h"
8185 : "=w"(result)
8186 : "0"(a), "w"(b), "w"(c)
8187 : /* No clobbers */);
8188 return result;
8191 __extension__ extern __inline uint64x2_t
8192 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8193 vmlsl_high_u32 (uint64x2_t a, uint32x4_t b, uint32x4_t c)
8195 uint64x2_t result;
8196 __asm__ ("umlsl2 %0.2d,%2.4s,%3.4s"
8197 : "=w"(result)
8198 : "0"(a), "w"(b), "w"(c)
8199 : /* No clobbers */);
8200 return result;
8203 #define vmlsl_lane_s16(a, b, c, d) \
8204 __extension__ \
8205 ({ \
8206 int16x4_t c_ = (c); \
8207 int16x4_t b_ = (b); \
8208 int32x4_t a_ = (a); \
8209 int32x4_t result; \
8210 __asm__ ("smlsl %0.4s, %2.4h, %3.h[%4]" \
8211 : "=w"(result) \
8212 : "0"(a_), "w"(b_), "x"(c_), "i"(d) \
8213 : /* No clobbers */); \
8214 result; \
8217 #define vmlsl_lane_s32(a, b, c, d) \
8218 __extension__ \
8219 ({ \
8220 int32x2_t c_ = (c); \
8221 int32x2_t b_ = (b); \
8222 int64x2_t a_ = (a); \
8223 int64x2_t result; \
8224 __asm__ ("smlsl %0.2d, %2.2s, %3.s[%4]" \
8225 : "=w"(result) \
8226 : "0"(a_), "w"(b_), "w"(c_), "i"(d) \
8227 : /* No clobbers */); \
8228 result; \
8231 #define vmlsl_lane_u16(a, b, c, d) \
8232 __extension__ \
8233 ({ \
8234 uint16x4_t c_ = (c); \
8235 uint16x4_t b_ = (b); \
8236 uint32x4_t a_ = (a); \
8237 uint32x4_t result; \
8238 __asm__ ("umlsl %0.4s, %2.4h, %3.h[%4]" \
8239 : "=w"(result) \
8240 : "0"(a_), "w"(b_), "x"(c_), "i"(d) \
8241 : /* No clobbers */); \
8242 result; \
8245 #define vmlsl_lane_u32(a, b, c, d) \
8246 __extension__ \
8247 ({ \
8248 uint32x2_t c_ = (c); \
8249 uint32x2_t b_ = (b); \
8250 uint64x2_t a_ = (a); \
8251 uint64x2_t result; \
8252 __asm__ ("umlsl %0.2d, %2.2s, %3.s[%4]" \
8253 : "=w"(result) \
8254 : "0"(a_), "w"(b_), "w"(c_), "i"(d) \
8255 : /* No clobbers */); \
8256 result; \
8259 #define vmlsl_laneq_s16(a, b, c, d) \
8260 __extension__ \
8261 ({ \
8262 int16x8_t c_ = (c); \
8263 int16x4_t b_ = (b); \
8264 int32x4_t a_ = (a); \
8265 int32x4_t result; \
8266 __asm__ ("smlsl %0.4s, %2.4h, %3.h[%4]" \
8267 : "=w"(result) \
8268 : "0"(a_), "w"(b_), "x"(c_), "i"(d) \
8269 : /* No clobbers */); \
8270 result; \
8273 #define vmlsl_laneq_s32(a, b, c, d) \
8274 __extension__ \
8275 ({ \
8276 int32x4_t c_ = (c); \
8277 int32x2_t b_ = (b); \
8278 int64x2_t a_ = (a); \
8279 int64x2_t result; \
8280 __asm__ ("smlsl %0.2d, %2.2s, %3.s[%4]" \
8281 : "=w"(result) \
8282 : "0"(a_), "w"(b_), "w"(c_), "i"(d) \
8283 : /* No clobbers */); \
8284 result; \
8287 #define vmlsl_laneq_u16(a, b, c, d) \
8288 __extension__ \
8289 ({ \
8290 uint16x8_t c_ = (c); \
8291 uint16x4_t b_ = (b); \
8292 uint32x4_t a_ = (a); \
8293 uint32x4_t result; \
8294 __asm__ ("umlsl %0.4s, %2.4h, %3.h[%4]" \
8295 : "=w"(result) \
8296 : "0"(a_), "w"(b_), "x"(c_), "i"(d) \
8297 : /* No clobbers */); \
8298 result; \
8301 #define vmlsl_laneq_u32(a, b, c, d) \
8302 __extension__ \
8303 ({ \
8304 uint32x4_t c_ = (c); \
8305 uint32x2_t b_ = (b); \
8306 uint64x2_t a_ = (a); \
8307 uint64x2_t result; \
8308 __asm__ ("umlsl %0.2d, %2.2s, %3.s[%4]" \
8309 : "=w"(result) \
8310 : "0"(a_), "w"(b_), "w"(c_), "i"(d) \
8311 : /* No clobbers */); \
8312 result; \
8315 __extension__ extern __inline int32x4_t
8316 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8317 vmlsl_n_s16 (int32x4_t a, int16x4_t b, int16_t c)
8319 int32x4_t result;
8320 __asm__ ("smlsl %0.4s, %2.4h, %3.h[0]"
8321 : "=w"(result)
8322 : "0"(a), "w"(b), "x"(c)
8323 : /* No clobbers */);
8324 return result;
8327 __extension__ extern __inline int64x2_t
8328 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8329 vmlsl_n_s32 (int64x2_t a, int32x2_t b, int32_t c)
8331 int64x2_t result;
8332 __asm__ ("smlsl %0.2d, %2.2s, %3.s[0]"
8333 : "=w"(result)
8334 : "0"(a), "w"(b), "w"(c)
8335 : /* No clobbers */);
8336 return result;
8339 __extension__ extern __inline uint32x4_t
8340 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8341 vmlsl_n_u16 (uint32x4_t a, uint16x4_t b, uint16_t c)
8343 uint32x4_t result;
8344 __asm__ ("umlsl %0.4s, %2.4h, %3.h[0]"
8345 : "=w"(result)
8346 : "0"(a), "w"(b), "x"(c)
8347 : /* No clobbers */);
8348 return result;
8351 __extension__ extern __inline uint64x2_t
8352 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8353 vmlsl_n_u32 (uint64x2_t a, uint32x2_t b, uint32_t c)
8355 uint64x2_t result;
8356 __asm__ ("umlsl %0.2d, %2.2s, %3.s[0]"
8357 : "=w"(result)
8358 : "0"(a), "w"(b), "w"(c)
8359 : /* No clobbers */);
8360 return result;
8363 __extension__ extern __inline int16x8_t
8364 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8365 vmlsl_s8 (int16x8_t a, int8x8_t b, int8x8_t c)
8367 int16x8_t result;
8368 __asm__ ("smlsl %0.8h, %2.8b, %3.8b"
8369 : "=w"(result)
8370 : "0"(a), "w"(b), "w"(c)
8371 : /* No clobbers */);
8372 return result;
8375 __extension__ extern __inline int32x4_t
8376 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8377 vmlsl_s16 (int32x4_t a, int16x4_t b, int16x4_t c)
8379 int32x4_t result;
8380 __asm__ ("smlsl %0.4s, %2.4h, %3.4h"
8381 : "=w"(result)
8382 : "0"(a), "w"(b), "w"(c)
8383 : /* No clobbers */);
8384 return result;
8387 __extension__ extern __inline int64x2_t
8388 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8389 vmlsl_s32 (int64x2_t a, int32x2_t b, int32x2_t c)
8391 int64x2_t result;
8392 __asm__ ("smlsl %0.2d, %2.2s, %3.2s"
8393 : "=w"(result)
8394 : "0"(a), "w"(b), "w"(c)
8395 : /* No clobbers */);
8396 return result;
8399 __extension__ extern __inline uint16x8_t
8400 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8401 vmlsl_u8 (uint16x8_t a, uint8x8_t b, uint8x8_t c)
8403 uint16x8_t result;
8404 __asm__ ("umlsl %0.8h, %2.8b, %3.8b"
8405 : "=w"(result)
8406 : "0"(a), "w"(b), "w"(c)
8407 : /* No clobbers */);
8408 return result;
8411 __extension__ extern __inline uint32x4_t
8412 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8413 vmlsl_u16 (uint32x4_t a, uint16x4_t b, uint16x4_t c)
8415 uint32x4_t result;
8416 __asm__ ("umlsl %0.4s, %2.4h, %3.4h"
8417 : "=w"(result)
8418 : "0"(a), "w"(b), "w"(c)
8419 : /* No clobbers */);
8420 return result;
8423 __extension__ extern __inline uint64x2_t
8424 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8425 vmlsl_u32 (uint64x2_t a, uint32x2_t b, uint32x2_t c)
8427 uint64x2_t result;
8428 __asm__ ("umlsl %0.2d, %2.2s, %3.2s"
8429 : "=w"(result)
8430 : "0"(a), "w"(b), "w"(c)
8431 : /* No clobbers */);
8432 return result;
8435 __extension__ extern __inline float32x4_t
8436 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8437 vmlsq_n_f32 (float32x4_t a, float32x4_t b, float32_t c)
8439 float32x4_t result;
8440 float32x4_t t1;
8441 __asm__ ("fmul %1.4s, %3.4s, %4.s[0]; fsub %0.4s, %0.4s, %1.4s"
8442 : "=w"(result), "=w"(t1)
8443 : "0"(a), "w"(b), "w"(c)
8444 : /* No clobbers */);
8445 return result;
8448 __extension__ extern __inline int16x8_t
8449 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8450 vmlsq_n_s16 (int16x8_t a, int16x8_t b, int16_t c)
8452 int16x8_t result;
8453 __asm__ ("mls %0.8h, %2.8h, %3.h[0]"
8454 : "=w"(result)
8455 : "0"(a), "w"(b), "x"(c)
8456 : /* No clobbers */);
8457 return result;
8460 __extension__ extern __inline int32x4_t
8461 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8462 vmlsq_n_s32 (int32x4_t a, int32x4_t b, int32_t c)
8464 int32x4_t result;
8465 __asm__ ("mls %0.4s, %2.4s, %3.s[0]"
8466 : "=w"(result)
8467 : "0"(a), "w"(b), "w"(c)
8468 : /* No clobbers */);
8469 return result;
8472 __extension__ extern __inline uint16x8_t
8473 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8474 vmlsq_n_u16 (uint16x8_t a, uint16x8_t b, uint16_t c)
8476 uint16x8_t result;
8477 __asm__ ("mls %0.8h, %2.8h, %3.h[0]"
8478 : "=w"(result)
8479 : "0"(a), "w"(b), "x"(c)
8480 : /* No clobbers */);
8481 return result;
8484 __extension__ extern __inline uint32x4_t
8485 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8486 vmlsq_n_u32 (uint32x4_t a, uint32x4_t b, uint32_t c)
8488 uint32x4_t result;
8489 __asm__ ("mls %0.4s, %2.4s, %3.s[0]"
8490 : "=w"(result)
8491 : "0"(a), "w"(b), "w"(c)
8492 : /* No clobbers */);
8493 return result;
8496 __extension__ extern __inline int8x16_t
8497 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8498 vmlsq_s8 (int8x16_t a, int8x16_t b, int8x16_t c)
8500 int8x16_t result;
8501 __asm__ ("mls %0.16b,%2.16b,%3.16b"
8502 : "=w"(result)
8503 : "0"(a), "w"(b), "w"(c)
8504 : /* No clobbers */);
8505 return result;
8508 __extension__ extern __inline int16x8_t
8509 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8510 vmlsq_s16 (int16x8_t a, int16x8_t b, int16x8_t c)
8512 int16x8_t result;
8513 __asm__ ("mls %0.8h,%2.8h,%3.8h"
8514 : "=w"(result)
8515 : "0"(a), "w"(b), "w"(c)
8516 : /* No clobbers */);
8517 return result;
8520 __extension__ extern __inline int32x4_t
8521 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8522 vmlsq_s32 (int32x4_t a, int32x4_t b, int32x4_t c)
8524 int32x4_t result;
8525 __asm__ ("mls %0.4s,%2.4s,%3.4s"
8526 : "=w"(result)
8527 : "0"(a), "w"(b), "w"(c)
8528 : /* No clobbers */);
8529 return result;
8532 __extension__ extern __inline uint8x16_t
8533 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8534 vmlsq_u8 (uint8x16_t a, uint8x16_t b, uint8x16_t c)
8536 uint8x16_t result;
8537 __asm__ ("mls %0.16b,%2.16b,%3.16b"
8538 : "=w"(result)
8539 : "0"(a), "w"(b), "w"(c)
8540 : /* No clobbers */);
8541 return result;
8544 __extension__ extern __inline uint16x8_t
8545 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8546 vmlsq_u16 (uint16x8_t a, uint16x8_t b, uint16x8_t c)
8548 uint16x8_t result;
8549 __asm__ ("mls %0.8h,%2.8h,%3.8h"
8550 : "=w"(result)
8551 : "0"(a), "w"(b), "w"(c)
8552 : /* No clobbers */);
8553 return result;
8556 __extension__ extern __inline uint32x4_t
8557 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8558 vmlsq_u32 (uint32x4_t a, uint32x4_t b, uint32x4_t c)
8560 uint32x4_t result;
8561 __asm__ ("mls %0.4s,%2.4s,%3.4s"
8562 : "=w"(result)
8563 : "0"(a), "w"(b), "w"(c)
8564 : /* No clobbers */);
8565 return result;
8568 __extension__ extern __inline int16x8_t
8569 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8570 vmovl_high_s8 (int8x16_t a)
8572 int16x8_t result;
8573 __asm__ ("sshll2 %0.8h,%1.16b,#0"
8574 : "=w"(result)
8575 : "w"(a)
8576 : /* No clobbers */);
8577 return result;
8580 __extension__ extern __inline int32x4_t
8581 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8582 vmovl_high_s16 (int16x8_t a)
8584 int32x4_t result;
8585 __asm__ ("sshll2 %0.4s,%1.8h,#0"
8586 : "=w"(result)
8587 : "w"(a)
8588 : /* No clobbers */);
8589 return result;
8592 __extension__ extern __inline int64x2_t
8593 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8594 vmovl_high_s32 (int32x4_t a)
8596 int64x2_t result;
8597 __asm__ ("sshll2 %0.2d,%1.4s,#0"
8598 : "=w"(result)
8599 : "w"(a)
8600 : /* No clobbers */);
8601 return result;
8604 __extension__ extern __inline uint16x8_t
8605 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8606 vmovl_high_u8 (uint8x16_t a)
8608 uint16x8_t result;
8609 __asm__ ("ushll2 %0.8h,%1.16b,#0"
8610 : "=w"(result)
8611 : "w"(a)
8612 : /* No clobbers */);
8613 return result;
8616 __extension__ extern __inline uint32x4_t
8617 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8618 vmovl_high_u16 (uint16x8_t a)
8620 uint32x4_t result;
8621 __asm__ ("ushll2 %0.4s,%1.8h,#0"
8622 : "=w"(result)
8623 : "w"(a)
8624 : /* No clobbers */);
8625 return result;
8628 __extension__ extern __inline uint64x2_t
8629 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8630 vmovl_high_u32 (uint32x4_t a)
8632 uint64x2_t result;
8633 __asm__ ("ushll2 %0.2d,%1.4s,#0"
8634 : "=w"(result)
8635 : "w"(a)
8636 : /* No clobbers */);
8637 return result;
8640 __extension__ extern __inline int16x8_t
8641 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8642 vmovl_s8 (int8x8_t a)
8644 int16x8_t result;
8645 __asm__ ("sshll %0.8h,%1.8b,#0"
8646 : "=w"(result)
8647 : "w"(a)
8648 : /* No clobbers */);
8649 return result;
8652 __extension__ extern __inline int32x4_t
8653 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8654 vmovl_s16 (int16x4_t a)
8656 int32x4_t result;
8657 __asm__ ("sshll %0.4s,%1.4h,#0"
8658 : "=w"(result)
8659 : "w"(a)
8660 : /* No clobbers */);
8661 return result;
8664 __extension__ extern __inline int64x2_t
8665 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8666 vmovl_s32 (int32x2_t a)
8668 int64x2_t result;
8669 __asm__ ("sshll %0.2d,%1.2s,#0"
8670 : "=w"(result)
8671 : "w"(a)
8672 : /* No clobbers */);
8673 return result;
8676 __extension__ extern __inline uint16x8_t
8677 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8678 vmovl_u8 (uint8x8_t a)
8680 uint16x8_t result;
8681 __asm__ ("ushll %0.8h,%1.8b,#0"
8682 : "=w"(result)
8683 : "w"(a)
8684 : /* No clobbers */);
8685 return result;
8688 __extension__ extern __inline uint32x4_t
8689 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8690 vmovl_u16 (uint16x4_t a)
8692 uint32x4_t result;
8693 __asm__ ("ushll %0.4s,%1.4h,#0"
8694 : "=w"(result)
8695 : "w"(a)
8696 : /* No clobbers */);
8697 return result;
8700 __extension__ extern __inline uint64x2_t
8701 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8702 vmovl_u32 (uint32x2_t a)
8704 uint64x2_t result;
8705 __asm__ ("ushll %0.2d,%1.2s,#0"
8706 : "=w"(result)
8707 : "w"(a)
8708 : /* No clobbers */);
8709 return result;
8712 __extension__ extern __inline int8x16_t
8713 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8714 vmovn_high_s16 (int8x8_t a, int16x8_t b)
8716 int8x16_t result = vcombine_s8 (a, vcreate_s8 (__AARCH64_UINT64_C (0x0)));
8717 __asm__ ("xtn2 %0.16b,%1.8h"
8718 : "+w"(result)
8719 : "w"(b)
8720 : /* No clobbers */);
8721 return result;
8724 __extension__ extern __inline int16x8_t
8725 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8726 vmovn_high_s32 (int16x4_t a, int32x4_t b)
8728 int16x8_t result = vcombine_s16 (a, vcreate_s16 (__AARCH64_UINT64_C (0x0)));
8729 __asm__ ("xtn2 %0.8h,%1.4s"
8730 : "+w"(result)
8731 : "w"(b)
8732 : /* No clobbers */);
8733 return result;
8736 __extension__ extern __inline int32x4_t
8737 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8738 vmovn_high_s64 (int32x2_t a, int64x2_t b)
8740 int32x4_t result = vcombine_s32 (a, vcreate_s32 (__AARCH64_UINT64_C (0x0)));
8741 __asm__ ("xtn2 %0.4s,%1.2d"
8742 : "+w"(result)
8743 : "w"(b)
8744 : /* No clobbers */);
8745 return result;
8748 __extension__ extern __inline uint8x16_t
8749 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8750 vmovn_high_u16 (uint8x8_t a, uint16x8_t b)
8752 uint8x16_t result = vcombine_u8 (a, vcreate_u8 (__AARCH64_UINT64_C (0x0)));
8753 __asm__ ("xtn2 %0.16b,%1.8h"
8754 : "+w"(result)
8755 : "w"(b)
8756 : /* No clobbers */);
8757 return result;
8760 __extension__ extern __inline uint16x8_t
8761 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8762 vmovn_high_u32 (uint16x4_t a, uint32x4_t b)
8764 uint16x8_t result = vcombine_u16 (a, vcreate_u16 (__AARCH64_UINT64_C (0x0)));
8765 __asm__ ("xtn2 %0.8h,%1.4s"
8766 : "+w"(result)
8767 : "w"(b)
8768 : /* No clobbers */);
8769 return result;
8772 __extension__ extern __inline uint32x4_t
8773 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8774 vmovn_high_u64 (uint32x2_t a, uint64x2_t b)
8776 uint32x4_t result = vcombine_u32 (a, vcreate_u32 (__AARCH64_UINT64_C (0x0)));
8777 __asm__ ("xtn2 %0.4s,%1.2d"
8778 : "+w"(result)
8779 : "w"(b)
8780 : /* No clobbers */);
8781 return result;
8784 __extension__ extern __inline int8x8_t
8785 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8786 vmovn_s16 (int16x8_t a)
8788 int8x8_t result;
8789 __asm__ ("xtn %0.8b,%1.8h"
8790 : "=w"(result)
8791 : "w"(a)
8792 : /* No clobbers */);
8793 return result;
8796 __extension__ extern __inline int16x4_t
8797 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8798 vmovn_s32 (int32x4_t a)
8800 int16x4_t result;
8801 __asm__ ("xtn %0.4h,%1.4s"
8802 : "=w"(result)
8803 : "w"(a)
8804 : /* No clobbers */);
8805 return result;
8808 __extension__ extern __inline int32x2_t
8809 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8810 vmovn_s64 (int64x2_t a)
8812 int32x2_t result;
8813 __asm__ ("xtn %0.2s,%1.2d"
8814 : "=w"(result)
8815 : "w"(a)
8816 : /* No clobbers */);
8817 return result;
8820 __extension__ extern __inline uint8x8_t
8821 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8822 vmovn_u16 (uint16x8_t a)
8824 uint8x8_t result;
8825 __asm__ ("xtn %0.8b,%1.8h"
8826 : "=w"(result)
8827 : "w"(a)
8828 : /* No clobbers */);
8829 return result;
8832 __extension__ extern __inline uint16x4_t
8833 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8834 vmovn_u32 (uint32x4_t a)
8836 uint16x4_t result;
8837 __asm__ ("xtn %0.4h,%1.4s"
8838 : "=w"(result)
8839 : "w"(a)
8840 : /* No clobbers */);
8841 return result;
8844 __extension__ extern __inline uint32x2_t
8845 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8846 vmovn_u64 (uint64x2_t a)
8848 uint32x2_t result;
8849 __asm__ ("xtn %0.2s,%1.2d"
8850 : "=w"(result)
8851 : "w"(a)
8852 : /* No clobbers */);
8853 return result;
8856 #define vmull_high_lane_s16(a, b, c) \
8857 __extension__ \
8858 ({ \
8859 int16x4_t b_ = (b); \
8860 int16x8_t a_ = (a); \
8861 int32x4_t result; \
8862 __asm__ ("smull2 %0.4s, %1.8h, %2.h[%3]" \
8863 : "=w"(result) \
8864 : "w"(a_), "x"(b_), "i"(c) \
8865 : /* No clobbers */); \
8866 result; \
8869 #define vmull_high_lane_s32(a, b, c) \
8870 __extension__ \
8871 ({ \
8872 int32x2_t b_ = (b); \
8873 int32x4_t a_ = (a); \
8874 int64x2_t result; \
8875 __asm__ ("smull2 %0.2d, %1.4s, %2.s[%3]" \
8876 : "=w"(result) \
8877 : "w"(a_), "w"(b_), "i"(c) \
8878 : /* No clobbers */); \
8879 result; \
8882 #define vmull_high_lane_u16(a, b, c) \
8883 __extension__ \
8884 ({ \
8885 uint16x4_t b_ = (b); \
8886 uint16x8_t a_ = (a); \
8887 uint32x4_t result; \
8888 __asm__ ("umull2 %0.4s, %1.8h, %2.h[%3]" \
8889 : "=w"(result) \
8890 : "w"(a_), "x"(b_), "i"(c) \
8891 : /* No clobbers */); \
8892 result; \
8895 #define vmull_high_lane_u32(a, b, c) \
8896 __extension__ \
8897 ({ \
8898 uint32x2_t b_ = (b); \
8899 uint32x4_t a_ = (a); \
8900 uint64x2_t result; \
8901 __asm__ ("umull2 %0.2d, %1.4s, %2.s[%3]" \
8902 : "=w"(result) \
8903 : "w"(a_), "w"(b_), "i"(c) \
8904 : /* No clobbers */); \
8905 result; \
8908 #define vmull_high_laneq_s16(a, b, c) \
8909 __extension__ \
8910 ({ \
8911 int16x8_t b_ = (b); \
8912 int16x8_t a_ = (a); \
8913 int32x4_t result; \
8914 __asm__ ("smull2 %0.4s, %1.8h, %2.h[%3]" \
8915 : "=w"(result) \
8916 : "w"(a_), "x"(b_), "i"(c) \
8917 : /* No clobbers */); \
8918 result; \
8921 #define vmull_high_laneq_s32(a, b, c) \
8922 __extension__ \
8923 ({ \
8924 int32x4_t b_ = (b); \
8925 int32x4_t a_ = (a); \
8926 int64x2_t result; \
8927 __asm__ ("smull2 %0.2d, %1.4s, %2.s[%3]" \
8928 : "=w"(result) \
8929 : "w"(a_), "w"(b_), "i"(c) \
8930 : /* No clobbers */); \
8931 result; \
8934 #define vmull_high_laneq_u16(a, b, c) \
8935 __extension__ \
8936 ({ \
8937 uint16x8_t b_ = (b); \
8938 uint16x8_t a_ = (a); \
8939 uint32x4_t result; \
8940 __asm__ ("umull2 %0.4s, %1.8h, %2.h[%3]" \
8941 : "=w"(result) \
8942 : "w"(a_), "x"(b_), "i"(c) \
8943 : /* No clobbers */); \
8944 result; \
8947 #define vmull_high_laneq_u32(a, b, c) \
8948 __extension__ \
8949 ({ \
8950 uint32x4_t b_ = (b); \
8951 uint32x4_t a_ = (a); \
8952 uint64x2_t result; \
8953 __asm__ ("umull2 %0.2d, %1.4s, %2.s[%3]" \
8954 : "=w"(result) \
8955 : "w"(a_), "w"(b_), "i"(c) \
8956 : /* No clobbers */); \
8957 result; \
8960 __extension__ extern __inline int32x4_t
8961 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8962 vmull_high_n_s16 (int16x8_t a, int16_t b)
8964 int32x4_t result;
8965 __asm__ ("smull2 %0.4s,%1.8h,%2.h[0]"
8966 : "=w"(result)
8967 : "w"(a), "x"(b)
8968 : /* No clobbers */);
8969 return result;
8972 __extension__ extern __inline int64x2_t
8973 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8974 vmull_high_n_s32 (int32x4_t a, int32_t b)
8976 int64x2_t result;
8977 __asm__ ("smull2 %0.2d,%1.4s,%2.s[0]"
8978 : "=w"(result)
8979 : "w"(a), "w"(b)
8980 : /* No clobbers */);
8981 return result;
8984 __extension__ extern __inline uint32x4_t
8985 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8986 vmull_high_n_u16 (uint16x8_t a, uint16_t b)
8988 uint32x4_t result;
8989 __asm__ ("umull2 %0.4s,%1.8h,%2.h[0]"
8990 : "=w"(result)
8991 : "w"(a), "x"(b)
8992 : /* No clobbers */);
8993 return result;
8996 __extension__ extern __inline uint64x2_t
8997 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8998 vmull_high_n_u32 (uint32x4_t a, uint32_t b)
9000 uint64x2_t result;
9001 __asm__ ("umull2 %0.2d,%1.4s,%2.s[0]"
9002 : "=w"(result)
9003 : "w"(a), "w"(b)
9004 : /* No clobbers */);
9005 return result;
9008 __extension__ extern __inline poly16x8_t
9009 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9010 vmull_high_p8 (poly8x16_t a, poly8x16_t b)
9012 poly16x8_t result;
9013 __asm__ ("pmull2 %0.8h,%1.16b,%2.16b"
9014 : "=w"(result)
9015 : "w"(a), "w"(b)
9016 : /* No clobbers */);
9017 return result;
9020 __extension__ extern __inline int16x8_t
9021 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9022 vmull_high_s8 (int8x16_t a, int8x16_t b)
9024 int16x8_t result;
9025 __asm__ ("smull2 %0.8h,%1.16b,%2.16b"
9026 : "=w"(result)
9027 : "w"(a), "w"(b)
9028 : /* No clobbers */);
9029 return result;
9032 __extension__ extern __inline int32x4_t
9033 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9034 vmull_high_s16 (int16x8_t a, int16x8_t b)
9036 int32x4_t result;
9037 __asm__ ("smull2 %0.4s,%1.8h,%2.8h"
9038 : "=w"(result)
9039 : "w"(a), "w"(b)
9040 : /* No clobbers */);
9041 return result;
9044 __extension__ extern __inline int64x2_t
9045 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9046 vmull_high_s32 (int32x4_t a, int32x4_t b)
9048 int64x2_t result;
9049 __asm__ ("smull2 %0.2d,%1.4s,%2.4s"
9050 : "=w"(result)
9051 : "w"(a), "w"(b)
9052 : /* No clobbers */);
9053 return result;
9056 __extension__ extern __inline uint16x8_t
9057 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9058 vmull_high_u8 (uint8x16_t a, uint8x16_t b)
9060 uint16x8_t result;
9061 __asm__ ("umull2 %0.8h,%1.16b,%2.16b"
9062 : "=w"(result)
9063 : "w"(a), "w"(b)
9064 : /* No clobbers */);
9065 return result;
9068 __extension__ extern __inline uint32x4_t
9069 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9070 vmull_high_u16 (uint16x8_t a, uint16x8_t b)
9072 uint32x4_t result;
9073 __asm__ ("umull2 %0.4s,%1.8h,%2.8h"
9074 : "=w"(result)
9075 : "w"(a), "w"(b)
9076 : /* No clobbers */);
9077 return result;
9080 __extension__ extern __inline uint64x2_t
9081 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9082 vmull_high_u32 (uint32x4_t a, uint32x4_t b)
9084 uint64x2_t result;
9085 __asm__ ("umull2 %0.2d,%1.4s,%2.4s"
9086 : "=w"(result)
9087 : "w"(a), "w"(b)
9088 : /* No clobbers */);
9089 return result;
9092 #define vmull_lane_s16(a, b, c) \
9093 __extension__ \
9094 ({ \
9095 int16x4_t b_ = (b); \
9096 int16x4_t a_ = (a); \
9097 int32x4_t result; \
9098 __asm__ ("smull %0.4s,%1.4h,%2.h[%3]" \
9099 : "=w"(result) \
9100 : "w"(a_), "x"(b_), "i"(c) \
9101 : /* No clobbers */); \
9102 result; \
9105 #define vmull_lane_s32(a, b, c) \
9106 __extension__ \
9107 ({ \
9108 int32x2_t b_ = (b); \
9109 int32x2_t a_ = (a); \
9110 int64x2_t result; \
9111 __asm__ ("smull %0.2d,%1.2s,%2.s[%3]" \
9112 : "=w"(result) \
9113 : "w"(a_), "w"(b_), "i"(c) \
9114 : /* No clobbers */); \
9115 result; \
9118 #define vmull_lane_u16(a, b, c) \
9119 __extension__ \
9120 ({ \
9121 uint16x4_t b_ = (b); \
9122 uint16x4_t a_ = (a); \
9123 uint32x4_t result; \
9124 __asm__ ("umull %0.4s,%1.4h,%2.h[%3]" \
9125 : "=w"(result) \
9126 : "w"(a_), "x"(b_), "i"(c) \
9127 : /* No clobbers */); \
9128 result; \
9131 #define vmull_lane_u32(a, b, c) \
9132 __extension__ \
9133 ({ \
9134 uint32x2_t b_ = (b); \
9135 uint32x2_t a_ = (a); \
9136 uint64x2_t result; \
9137 __asm__ ("umull %0.2d, %1.2s, %2.s[%3]" \
9138 : "=w"(result) \
9139 : "w"(a_), "w"(b_), "i"(c) \
9140 : /* No clobbers */); \
9141 result; \
9144 #define vmull_laneq_s16(a, b, c) \
9145 __extension__ \
9146 ({ \
9147 int16x8_t b_ = (b); \
9148 int16x4_t a_ = (a); \
9149 int32x4_t result; \
9150 __asm__ ("smull %0.4s, %1.4h, %2.h[%3]" \
9151 : "=w"(result) \
9152 : "w"(a_), "x"(b_), "i"(c) \
9153 : /* No clobbers */); \
9154 result; \
9157 #define vmull_laneq_s32(a, b, c) \
9158 __extension__ \
9159 ({ \
9160 int32x4_t b_ = (b); \
9161 int32x2_t a_ = (a); \
9162 int64x2_t result; \
9163 __asm__ ("smull %0.2d, %1.2s, %2.s[%3]" \
9164 : "=w"(result) \
9165 : "w"(a_), "w"(b_), "i"(c) \
9166 : /* No clobbers */); \
9167 result; \
9170 #define vmull_laneq_u16(a, b, c) \
9171 __extension__ \
9172 ({ \
9173 uint16x8_t b_ = (b); \
9174 uint16x4_t a_ = (a); \
9175 uint32x4_t result; \
9176 __asm__ ("umull %0.4s, %1.4h, %2.h[%3]" \
9177 : "=w"(result) \
9178 : "w"(a_), "x"(b_), "i"(c) \
9179 : /* No clobbers */); \
9180 result; \
9183 #define vmull_laneq_u32(a, b, c) \
9184 __extension__ \
9185 ({ \
9186 uint32x4_t b_ = (b); \
9187 uint32x2_t a_ = (a); \
9188 uint64x2_t result; \
9189 __asm__ ("umull %0.2d, %1.2s, %2.s[%3]" \
9190 : "=w"(result) \
9191 : "w"(a_), "w"(b_), "i"(c) \
9192 : /* No clobbers */); \
9193 result; \
9196 __extension__ extern __inline int32x4_t
9197 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9198 vmull_n_s16 (int16x4_t a, int16_t b)
9200 int32x4_t result;
9201 __asm__ ("smull %0.4s,%1.4h,%2.h[0]"
9202 : "=w"(result)
9203 : "w"(a), "x"(b)
9204 : /* No clobbers */);
9205 return result;
9208 __extension__ extern __inline int64x2_t
9209 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9210 vmull_n_s32 (int32x2_t a, int32_t b)
9212 int64x2_t result;
9213 __asm__ ("smull %0.2d,%1.2s,%2.s[0]"
9214 : "=w"(result)
9215 : "w"(a), "w"(b)
9216 : /* No clobbers */);
9217 return result;
9220 __extension__ extern __inline uint32x4_t
9221 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9222 vmull_n_u16 (uint16x4_t a, uint16_t b)
9224 uint32x4_t result;
9225 __asm__ ("umull %0.4s,%1.4h,%2.h[0]"
9226 : "=w"(result)
9227 : "w"(a), "x"(b)
9228 : /* No clobbers */);
9229 return result;
9232 __extension__ extern __inline uint64x2_t
9233 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9234 vmull_n_u32 (uint32x2_t a, uint32_t b)
9236 uint64x2_t result;
9237 __asm__ ("umull %0.2d,%1.2s,%2.s[0]"
9238 : "=w"(result)
9239 : "w"(a), "w"(b)
9240 : /* No clobbers */);
9241 return result;
9244 __extension__ extern __inline poly16x8_t
9245 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9246 vmull_p8 (poly8x8_t a, poly8x8_t b)
9248 poly16x8_t result;
9249 __asm__ ("pmull %0.8h, %1.8b, %2.8b"
9250 : "=w"(result)
9251 : "w"(a), "w"(b)
9252 : /* No clobbers */);
9253 return result;
9256 __extension__ extern __inline int16x8_t
9257 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9258 vmull_s8 (int8x8_t a, int8x8_t b)
9260 int16x8_t result;
9261 __asm__ ("smull %0.8h, %1.8b, %2.8b"
9262 : "=w"(result)
9263 : "w"(a), "w"(b)
9264 : /* No clobbers */);
9265 return result;
9268 __extension__ extern __inline int32x4_t
9269 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9270 vmull_s16 (int16x4_t a, int16x4_t b)
9272 int32x4_t result;
9273 __asm__ ("smull %0.4s, %1.4h, %2.4h"
9274 : "=w"(result)
9275 : "w"(a), "w"(b)
9276 : /* No clobbers */);
9277 return result;
9280 __extension__ extern __inline int64x2_t
9281 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9282 vmull_s32 (int32x2_t a, int32x2_t b)
9284 int64x2_t result;
9285 __asm__ ("smull %0.2d, %1.2s, %2.2s"
9286 : "=w"(result)
9287 : "w"(a), "w"(b)
9288 : /* No clobbers */);
9289 return result;
9292 __extension__ extern __inline uint16x8_t
9293 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9294 vmull_u8 (uint8x8_t a, uint8x8_t b)
9296 uint16x8_t result;
9297 __asm__ ("umull %0.8h, %1.8b, %2.8b"
9298 : "=w"(result)
9299 : "w"(a), "w"(b)
9300 : /* No clobbers */);
9301 return result;
9304 __extension__ extern __inline uint32x4_t
9305 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9306 vmull_u16 (uint16x4_t a, uint16x4_t b)
9308 uint32x4_t result;
9309 __asm__ ("umull %0.4s, %1.4h, %2.4h"
9310 : "=w"(result)
9311 : "w"(a), "w"(b)
9312 : /* No clobbers */);
9313 return result;
9316 __extension__ extern __inline uint64x2_t
9317 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9318 vmull_u32 (uint32x2_t a, uint32x2_t b)
9320 uint64x2_t result;
9321 __asm__ ("umull %0.2d, %1.2s, %2.2s"
9322 : "=w"(result)
9323 : "w"(a), "w"(b)
9324 : /* No clobbers */);
9325 return result;
9328 __extension__ extern __inline int16x4_t
9329 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9330 vpadal_s8 (int16x4_t a, int8x8_t b)
9332 int16x4_t result;
9333 __asm__ ("sadalp %0.4h,%2.8b"
9334 : "=w"(result)
9335 : "0"(a), "w"(b)
9336 : /* No clobbers */);
9337 return result;
9340 __extension__ extern __inline int32x2_t
9341 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9342 vpadal_s16 (int32x2_t a, int16x4_t b)
9344 int32x2_t result;
9345 __asm__ ("sadalp %0.2s,%2.4h"
9346 : "=w"(result)
9347 : "0"(a), "w"(b)
9348 : /* No clobbers */);
9349 return result;
9352 __extension__ extern __inline int64x1_t
9353 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9354 vpadal_s32 (int64x1_t a, int32x2_t b)
9356 int64x1_t result;
9357 __asm__ ("sadalp %0.1d,%2.2s"
9358 : "=w"(result)
9359 : "0"(a), "w"(b)
9360 : /* No clobbers */);
9361 return result;
9364 __extension__ extern __inline uint16x4_t
9365 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9366 vpadal_u8 (uint16x4_t a, uint8x8_t b)
9368 uint16x4_t result;
9369 __asm__ ("uadalp %0.4h,%2.8b"
9370 : "=w"(result)
9371 : "0"(a), "w"(b)
9372 : /* No clobbers */);
9373 return result;
9376 __extension__ extern __inline uint32x2_t
9377 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9378 vpadal_u16 (uint32x2_t a, uint16x4_t b)
9380 uint32x2_t result;
9381 __asm__ ("uadalp %0.2s,%2.4h"
9382 : "=w"(result)
9383 : "0"(a), "w"(b)
9384 : /* No clobbers */);
9385 return result;
9388 __extension__ extern __inline uint64x1_t
9389 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9390 vpadal_u32 (uint64x1_t a, uint32x2_t b)
9392 uint64x1_t result;
9393 __asm__ ("uadalp %0.1d,%2.2s"
9394 : "=w"(result)
9395 : "0"(a), "w"(b)
9396 : /* No clobbers */);
9397 return result;
9400 __extension__ extern __inline int16x8_t
9401 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9402 vpadalq_s8 (int16x8_t a, int8x16_t b)
9404 int16x8_t result;
9405 __asm__ ("sadalp %0.8h,%2.16b"
9406 : "=w"(result)
9407 : "0"(a), "w"(b)
9408 : /* No clobbers */);
9409 return result;
9412 __extension__ extern __inline int32x4_t
9413 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9414 vpadalq_s16 (int32x4_t a, int16x8_t b)
9416 int32x4_t result;
9417 __asm__ ("sadalp %0.4s,%2.8h"
9418 : "=w"(result)
9419 : "0"(a), "w"(b)
9420 : /* No clobbers */);
9421 return result;
9424 __extension__ extern __inline int64x2_t
9425 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9426 vpadalq_s32 (int64x2_t a, int32x4_t b)
9428 int64x2_t result;
9429 __asm__ ("sadalp %0.2d,%2.4s"
9430 : "=w"(result)
9431 : "0"(a), "w"(b)
9432 : /* No clobbers */);
9433 return result;
9436 __extension__ extern __inline uint16x8_t
9437 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9438 vpadalq_u8 (uint16x8_t a, uint8x16_t b)
9440 uint16x8_t result;
9441 __asm__ ("uadalp %0.8h,%2.16b"
9442 : "=w"(result)
9443 : "0"(a), "w"(b)
9444 : /* No clobbers */);
9445 return result;
9448 __extension__ extern __inline uint32x4_t
9449 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9450 vpadalq_u16 (uint32x4_t a, uint16x8_t b)
9452 uint32x4_t result;
9453 __asm__ ("uadalp %0.4s,%2.8h"
9454 : "=w"(result)
9455 : "0"(a), "w"(b)
9456 : /* No clobbers */);
9457 return result;
9460 __extension__ extern __inline uint64x2_t
9461 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9462 vpadalq_u32 (uint64x2_t a, uint32x4_t b)
9464 uint64x2_t result;
9465 __asm__ ("uadalp %0.2d,%2.4s"
9466 : "=w"(result)
9467 : "0"(a), "w"(b)
9468 : /* No clobbers */);
9469 return result;
9472 __extension__ extern __inline int16x4_t
9473 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9474 vpaddl_s8 (int8x8_t a)
9476 int16x4_t result;
9477 __asm__ ("saddlp %0.4h,%1.8b"
9478 : "=w"(result)
9479 : "w"(a)
9480 : /* No clobbers */);
9481 return result;
9484 __extension__ extern __inline int32x2_t
9485 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9486 vpaddl_s16 (int16x4_t a)
9488 int32x2_t result;
9489 __asm__ ("saddlp %0.2s,%1.4h"
9490 : "=w"(result)
9491 : "w"(a)
9492 : /* No clobbers */);
9493 return result;
9496 __extension__ extern __inline int64x1_t
9497 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9498 vpaddl_s32 (int32x2_t a)
9500 int64x1_t result;
9501 __asm__ ("saddlp %0.1d,%1.2s"
9502 : "=w"(result)
9503 : "w"(a)
9504 : /* No clobbers */);
9505 return result;
9508 __extension__ extern __inline uint16x4_t
9509 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9510 vpaddl_u8 (uint8x8_t a)
9512 uint16x4_t result;
9513 __asm__ ("uaddlp %0.4h,%1.8b"
9514 : "=w"(result)
9515 : "w"(a)
9516 : /* No clobbers */);
9517 return result;
9520 __extension__ extern __inline uint32x2_t
9521 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9522 vpaddl_u16 (uint16x4_t a)
9524 uint32x2_t result;
9525 __asm__ ("uaddlp %0.2s,%1.4h"
9526 : "=w"(result)
9527 : "w"(a)
9528 : /* No clobbers */);
9529 return result;
9532 __extension__ extern __inline uint64x1_t
9533 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9534 vpaddl_u32 (uint32x2_t a)
9536 uint64x1_t result;
9537 __asm__ ("uaddlp %0.1d,%1.2s"
9538 : "=w"(result)
9539 : "w"(a)
9540 : /* No clobbers */);
9541 return result;
9544 __extension__ extern __inline int16x8_t
9545 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9546 vpaddlq_s8 (int8x16_t a)
9548 int16x8_t result;
9549 __asm__ ("saddlp %0.8h,%1.16b"
9550 : "=w"(result)
9551 : "w"(a)
9552 : /* No clobbers */);
9553 return result;
9556 __extension__ extern __inline int32x4_t
9557 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9558 vpaddlq_s16 (int16x8_t a)
9560 int32x4_t result;
9561 __asm__ ("saddlp %0.4s,%1.8h"
9562 : "=w"(result)
9563 : "w"(a)
9564 : /* No clobbers */);
9565 return result;
9568 __extension__ extern __inline int64x2_t
9569 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9570 vpaddlq_s32 (int32x4_t a)
9572 int64x2_t result;
9573 __asm__ ("saddlp %0.2d,%1.4s"
9574 : "=w"(result)
9575 : "w"(a)
9576 : /* No clobbers */);
9577 return result;
9580 __extension__ extern __inline uint16x8_t
9581 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9582 vpaddlq_u8 (uint8x16_t a)
9584 uint16x8_t result;
9585 __asm__ ("uaddlp %0.8h,%1.16b"
9586 : "=w"(result)
9587 : "w"(a)
9588 : /* No clobbers */);
9589 return result;
9592 __extension__ extern __inline uint32x4_t
9593 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9594 vpaddlq_u16 (uint16x8_t a)
9596 uint32x4_t result;
9597 __asm__ ("uaddlp %0.4s,%1.8h"
9598 : "=w"(result)
9599 : "w"(a)
9600 : /* No clobbers */);
9601 return result;
9604 __extension__ extern __inline uint64x2_t
9605 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9606 vpaddlq_u32 (uint32x4_t a)
9608 uint64x2_t result;
9609 __asm__ ("uaddlp %0.2d,%1.4s"
9610 : "=w"(result)
9611 : "w"(a)
9612 : /* No clobbers */);
9613 return result;
9616 __extension__ extern __inline int8x16_t
9617 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9618 vpaddq_s8 (int8x16_t a, int8x16_t b)
9620 int8x16_t result;
9621 __asm__ ("addp %0.16b,%1.16b,%2.16b"
9622 : "=w"(result)
9623 : "w"(a), "w"(b)
9624 : /* No clobbers */);
9625 return result;
9628 __extension__ extern __inline int16x8_t
9629 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9630 vpaddq_s16 (int16x8_t a, int16x8_t b)
9632 int16x8_t result;
9633 __asm__ ("addp %0.8h,%1.8h,%2.8h"
9634 : "=w"(result)
9635 : "w"(a), "w"(b)
9636 : /* No clobbers */);
9637 return result;
9640 __extension__ extern __inline int32x4_t
9641 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9642 vpaddq_s32 (int32x4_t a, int32x4_t b)
9644 int32x4_t result;
9645 __asm__ ("addp %0.4s,%1.4s,%2.4s"
9646 : "=w"(result)
9647 : "w"(a), "w"(b)
9648 : /* No clobbers */);
9649 return result;
9652 __extension__ extern __inline int64x2_t
9653 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9654 vpaddq_s64 (int64x2_t a, int64x2_t b)
9656 int64x2_t result;
9657 __asm__ ("addp %0.2d,%1.2d,%2.2d"
9658 : "=w"(result)
9659 : "w"(a), "w"(b)
9660 : /* No clobbers */);
9661 return result;
9664 __extension__ extern __inline uint8x16_t
9665 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9666 vpaddq_u8 (uint8x16_t a, uint8x16_t b)
9668 uint8x16_t result;
9669 __asm__ ("addp %0.16b,%1.16b,%2.16b"
9670 : "=w"(result)
9671 : "w"(a), "w"(b)
9672 : /* No clobbers */);
9673 return result;
9676 __extension__ extern __inline uint16x8_t
9677 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9678 vpaddq_u16 (uint16x8_t a, uint16x8_t b)
9680 uint16x8_t result;
9681 __asm__ ("addp %0.8h,%1.8h,%2.8h"
9682 : "=w"(result)
9683 : "w"(a), "w"(b)
9684 : /* No clobbers */);
9685 return result;
9688 __extension__ extern __inline uint32x4_t
9689 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9690 vpaddq_u32 (uint32x4_t a, uint32x4_t b)
9692 uint32x4_t result;
9693 __asm__ ("addp %0.4s,%1.4s,%2.4s"
9694 : "=w"(result)
9695 : "w"(a), "w"(b)
9696 : /* No clobbers */);
9697 return result;
9700 __extension__ extern __inline uint64x2_t
9701 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9702 vpaddq_u64 (uint64x2_t a, uint64x2_t b)
9704 uint64x2_t result;
9705 __asm__ ("addp %0.2d,%1.2d,%2.2d"
9706 : "=w"(result)
9707 : "w"(a), "w"(b)
9708 : /* No clobbers */);
9709 return result;
9712 __extension__ extern __inline int16x4_t
9713 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9714 vqdmulh_n_s16 (int16x4_t a, int16_t b)
9716 int16x4_t result;
9717 __asm__ ("sqdmulh %0.4h,%1.4h,%2.h[0]"
9718 : "=w"(result)
9719 : "w"(a), "x"(b)
9720 : /* No clobbers */);
9721 return result;
9724 __extension__ extern __inline int32x2_t
9725 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9726 vqdmulh_n_s32 (int32x2_t a, int32_t b)
9728 int32x2_t result;
9729 __asm__ ("sqdmulh %0.2s,%1.2s,%2.s[0]"
9730 : "=w"(result)
9731 : "w"(a), "w"(b)
9732 : /* No clobbers */);
9733 return result;
9736 __extension__ extern __inline int16x8_t
9737 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9738 vqdmulhq_n_s16 (int16x8_t a, int16_t b)
9740 int16x8_t result;
9741 __asm__ ("sqdmulh %0.8h,%1.8h,%2.h[0]"
9742 : "=w"(result)
9743 : "w"(a), "x"(b)
9744 : /* No clobbers */);
9745 return result;
9748 __extension__ extern __inline int32x4_t
9749 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9750 vqdmulhq_n_s32 (int32x4_t a, int32_t b)
9752 int32x4_t result;
9753 __asm__ ("sqdmulh %0.4s,%1.4s,%2.s[0]"
9754 : "=w"(result)
9755 : "w"(a), "w"(b)
9756 : /* No clobbers */);
9757 return result;
9760 __extension__ extern __inline int8x16_t
9761 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9762 vqmovn_high_s16 (int8x8_t a, int16x8_t b)
9764 int8x16_t result = vcombine_s8 (a, vcreate_s8 (__AARCH64_UINT64_C (0x0)));
9765 __asm__ ("sqxtn2 %0.16b, %1.8h"
9766 : "+w"(result)
9767 : "w"(b)
9768 : /* No clobbers */);
9769 return result;
9772 __extension__ extern __inline int16x8_t
9773 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9774 vqmovn_high_s32 (int16x4_t a, int32x4_t b)
9776 int16x8_t result = vcombine_s16 (a, vcreate_s16 (__AARCH64_UINT64_C (0x0)));
9777 __asm__ ("sqxtn2 %0.8h, %1.4s"
9778 : "+w"(result)
9779 : "w"(b)
9780 : /* No clobbers */);
9781 return result;
9784 __extension__ extern __inline int32x4_t
9785 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9786 vqmovn_high_s64 (int32x2_t a, int64x2_t b)
9788 int32x4_t result = vcombine_s32 (a, vcreate_s32 (__AARCH64_UINT64_C (0x0)));
9789 __asm__ ("sqxtn2 %0.4s, %1.2d"
9790 : "+w"(result)
9791 : "w"(b)
9792 : /* No clobbers */);
9793 return result;
9796 __extension__ extern __inline uint8x16_t
9797 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9798 vqmovn_high_u16 (uint8x8_t a, uint16x8_t b)
9800 uint8x16_t result = vcombine_u8 (a, vcreate_u8 (__AARCH64_UINT64_C (0x0)));
9801 __asm__ ("uqxtn2 %0.16b, %1.8h"
9802 : "+w"(result)
9803 : "w"(b)
9804 : /* No clobbers */);
9805 return result;
9808 __extension__ extern __inline uint16x8_t
9809 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9810 vqmovn_high_u32 (uint16x4_t a, uint32x4_t b)
9812 uint16x8_t result = vcombine_u16 (a, vcreate_u16 (__AARCH64_UINT64_C (0x0)));
9813 __asm__ ("uqxtn2 %0.8h, %1.4s"
9814 : "+w"(result)
9815 : "w"(b)
9816 : /* No clobbers */);
9817 return result;
9820 __extension__ extern __inline uint32x4_t
9821 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9822 vqmovn_high_u64 (uint32x2_t a, uint64x2_t b)
9824 uint32x4_t result = vcombine_u32 (a, vcreate_u32 (__AARCH64_UINT64_C (0x0)));
9825 __asm__ ("uqxtn2 %0.4s, %1.2d"
9826 : "+w"(result)
9827 : "w"(b)
9828 : /* No clobbers */);
9829 return result;
9832 __extension__ extern __inline uint8x16_t
9833 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9834 vqmovun_high_s16 (uint8x8_t a, int16x8_t b)
9836 uint8x16_t result = vcombine_u8 (a, vcreate_u8 (__AARCH64_UINT64_C (0x0)));
9837 __asm__ ("sqxtun2 %0.16b, %1.8h"
9838 : "+w"(result)
9839 : "w"(b)
9840 : /* No clobbers */);
9841 return result;
9844 __extension__ extern __inline uint16x8_t
9845 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9846 vqmovun_high_s32 (uint16x4_t a, int32x4_t b)
9848 uint16x8_t result = vcombine_u16 (a, vcreate_u16 (__AARCH64_UINT64_C (0x0)));
9849 __asm__ ("sqxtun2 %0.8h, %1.4s"
9850 : "+w"(result)
9851 : "w"(b)
9852 : /* No clobbers */);
9853 return result;
9856 __extension__ extern __inline uint32x4_t
9857 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9858 vqmovun_high_s64 (uint32x2_t a, int64x2_t b)
9860 uint32x4_t result = vcombine_u32 (a, vcreate_u32 (__AARCH64_UINT64_C (0x0)));
9861 __asm__ ("sqxtun2 %0.4s, %1.2d"
9862 : "+w"(result)
9863 : "w"(b)
9864 : /* No clobbers */);
9865 return result;
9868 __extension__ extern __inline int16x4_t
9869 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9870 vqrdmulh_n_s16 (int16x4_t a, int16_t b)
9872 int16x4_t result;
9873 __asm__ ("sqrdmulh %0.4h,%1.4h,%2.h[0]"
9874 : "=w"(result)
9875 : "w"(a), "x"(b)
9876 : /* No clobbers */);
9877 return result;
9880 __extension__ extern __inline int32x2_t
9881 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9882 vqrdmulh_n_s32 (int32x2_t a, int32_t b)
9884 int32x2_t result;
9885 __asm__ ("sqrdmulh %0.2s,%1.2s,%2.s[0]"
9886 : "=w"(result)
9887 : "w"(a), "w"(b)
9888 : /* No clobbers */);
9889 return result;
9892 __extension__ extern __inline int16x8_t
9893 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9894 vqrdmulhq_n_s16 (int16x8_t a, int16_t b)
9896 int16x8_t result;
9897 __asm__ ("sqrdmulh %0.8h,%1.8h,%2.h[0]"
9898 : "=w"(result)
9899 : "w"(a), "x"(b)
9900 : /* No clobbers */);
9901 return result;
9904 __extension__ extern __inline int32x4_t
9905 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9906 vqrdmulhq_n_s32 (int32x4_t a, int32_t b)
9908 int32x4_t result;
9909 __asm__ ("sqrdmulh %0.4s,%1.4s,%2.s[0]"
9910 : "=w"(result)
9911 : "w"(a), "w"(b)
9912 : /* No clobbers */);
9913 return result;
9916 #define vqrshrn_high_n_s16(a, b, c) \
9917 __extension__ \
9918 ({ \
9919 int16x8_t b_ = (b); \
9920 int8x8_t a_ = (a); \
9921 int8x16_t result = vcombine_s8 \
9922 (a_, vcreate_s8 \
9923 (__AARCH64_UINT64_C (0x0))); \
9924 __asm__ ("sqrshrn2 %0.16b, %1.8h, #%2" \
9925 : "+w"(result) \
9926 : "w"(b_), "i"(c) \
9927 : /* No clobbers */); \
9928 result; \
9931 #define vqrshrn_high_n_s32(a, b, c) \
9932 __extension__ \
9933 ({ \
9934 int32x4_t b_ = (b); \
9935 int16x4_t a_ = (a); \
9936 int16x8_t result = vcombine_s16 \
9937 (a_, vcreate_s16 \
9938 (__AARCH64_UINT64_C (0x0))); \
9939 __asm__ ("sqrshrn2 %0.8h, %1.4s, #%2" \
9940 : "+w"(result) \
9941 : "w"(b_), "i"(c) \
9942 : /* No clobbers */); \
9943 result; \
9946 #define vqrshrn_high_n_s64(a, b, c) \
9947 __extension__ \
9948 ({ \
9949 int64x2_t b_ = (b); \
9950 int32x2_t a_ = (a); \
9951 int32x4_t result = vcombine_s32 \
9952 (a_, vcreate_s32 \
9953 (__AARCH64_UINT64_C (0x0))); \
9954 __asm__ ("sqrshrn2 %0.4s, %1.2d, #%2" \
9955 : "+w"(result) \
9956 : "w"(b_), "i"(c) \
9957 : /* No clobbers */); \
9958 result; \
9961 #define vqrshrn_high_n_u16(a, b, c) \
9962 __extension__ \
9963 ({ \
9964 uint16x8_t b_ = (b); \
9965 uint8x8_t a_ = (a); \
9966 uint8x16_t result = vcombine_u8 \
9967 (a_, vcreate_u8 \
9968 (__AARCH64_UINT64_C (0x0))); \
9969 __asm__ ("uqrshrn2 %0.16b, %1.8h, #%2" \
9970 : "+w"(result) \
9971 : "w"(b_), "i"(c) \
9972 : /* No clobbers */); \
9973 result; \
9976 #define vqrshrn_high_n_u32(a, b, c) \
9977 __extension__ \
9978 ({ \
9979 uint32x4_t b_ = (b); \
9980 uint16x4_t a_ = (a); \
9981 uint16x8_t result = vcombine_u16 \
9982 (a_, vcreate_u16 \
9983 (__AARCH64_UINT64_C (0x0))); \
9984 __asm__ ("uqrshrn2 %0.8h, %1.4s, #%2" \
9985 : "+w"(result) \
9986 : "w"(b_), "i"(c) \
9987 : /* No clobbers */); \
9988 result; \
9991 #define vqrshrn_high_n_u64(a, b, c) \
9992 __extension__ \
9993 ({ \
9994 uint64x2_t b_ = (b); \
9995 uint32x2_t a_ = (a); \
9996 uint32x4_t result = vcombine_u32 \
9997 (a_, vcreate_u32 \
9998 (__AARCH64_UINT64_C (0x0))); \
9999 __asm__ ("uqrshrn2 %0.4s, %1.2d, #%2" \
10000 : "+w"(result) \
10001 : "w"(b_), "i"(c) \
10002 : /* No clobbers */); \
10003 result; \
10006 #define vqrshrun_high_n_s16(a, b, c) \
10007 __extension__ \
10008 ({ \
10009 int16x8_t b_ = (b); \
10010 uint8x8_t a_ = (a); \
10011 uint8x16_t result = vcombine_u8 \
10012 (a_, vcreate_u8 \
10013 (__AARCH64_UINT64_C (0x0))); \
10014 __asm__ ("sqrshrun2 %0.16b, %1.8h, #%2" \
10015 : "+w"(result) \
10016 : "w"(b_), "i"(c) \
10017 : /* No clobbers */); \
10018 result; \
10021 #define vqrshrun_high_n_s32(a, b, c) \
10022 __extension__ \
10023 ({ \
10024 int32x4_t b_ = (b); \
10025 uint16x4_t a_ = (a); \
10026 uint16x8_t result = vcombine_u16 \
10027 (a_, vcreate_u16 \
10028 (__AARCH64_UINT64_C (0x0))); \
10029 __asm__ ("sqrshrun2 %0.8h, %1.4s, #%2" \
10030 : "+w"(result) \
10031 : "w"(b_), "i"(c) \
10032 : /* No clobbers */); \
10033 result; \
10036 #define vqrshrun_high_n_s64(a, b, c) \
10037 __extension__ \
10038 ({ \
10039 int64x2_t b_ = (b); \
10040 uint32x2_t a_ = (a); \
10041 uint32x4_t result = vcombine_u32 \
10042 (a_, vcreate_u32 \
10043 (__AARCH64_UINT64_C (0x0))); \
10044 __asm__ ("sqrshrun2 %0.4s, %1.2d, #%2" \
10045 : "+w"(result) \
10046 : "w"(b_), "i"(c) \
10047 : /* No clobbers */); \
10048 result; \
10051 #define vqshrn_high_n_s16(a, b, c) \
10052 __extension__ \
10053 ({ \
10054 int16x8_t b_ = (b); \
10055 int8x8_t a_ = (a); \
10056 int8x16_t result = vcombine_s8 \
10057 (a_, vcreate_s8 \
10058 (__AARCH64_UINT64_C (0x0))); \
10059 __asm__ ("sqshrn2 %0.16b, %1.8h, #%2" \
10060 : "+w"(result) \
10061 : "w"(b_), "i"(c) \
10062 : /* No clobbers */); \
10063 result; \
10066 #define vqshrn_high_n_s32(a, b, c) \
10067 __extension__ \
10068 ({ \
10069 int32x4_t b_ = (b); \
10070 int16x4_t a_ = (a); \
10071 int16x8_t result = vcombine_s16 \
10072 (a_, vcreate_s16 \
10073 (__AARCH64_UINT64_C (0x0))); \
10074 __asm__ ("sqshrn2 %0.8h, %1.4s, #%2" \
10075 : "+w"(result) \
10076 : "w"(b_), "i"(c) \
10077 : /* No clobbers */); \
10078 result; \
10081 #define vqshrn_high_n_s64(a, b, c) \
10082 __extension__ \
10083 ({ \
10084 int64x2_t b_ = (b); \
10085 int32x2_t a_ = (a); \
10086 int32x4_t result = vcombine_s32 \
10087 (a_, vcreate_s32 \
10088 (__AARCH64_UINT64_C (0x0))); \
10089 __asm__ ("sqshrn2 %0.4s, %1.2d, #%2" \
10090 : "+w"(result) \
10091 : "w"(b_), "i"(c) \
10092 : /* No clobbers */); \
10093 result; \
10096 #define vqshrn_high_n_u16(a, b, c) \
10097 __extension__ \
10098 ({ \
10099 uint16x8_t b_ = (b); \
10100 uint8x8_t a_ = (a); \
10101 uint8x16_t result = vcombine_u8 \
10102 (a_, vcreate_u8 \
10103 (__AARCH64_UINT64_C (0x0))); \
10104 __asm__ ("uqshrn2 %0.16b, %1.8h, #%2" \
10105 : "+w"(result) \
10106 : "w"(b_), "i"(c) \
10107 : /* No clobbers */); \
10108 result; \
10111 #define vqshrn_high_n_u32(a, b, c) \
10112 __extension__ \
10113 ({ \
10114 uint32x4_t b_ = (b); \
10115 uint16x4_t a_ = (a); \
10116 uint16x8_t result = vcombine_u16 \
10117 (a_, vcreate_u16 \
10118 (__AARCH64_UINT64_C (0x0))); \
10119 __asm__ ("uqshrn2 %0.8h, %1.4s, #%2" \
10120 : "+w"(result) \
10121 : "w"(b_), "i"(c) \
10122 : /* No clobbers */); \
10123 result; \
10126 #define vqshrn_high_n_u64(a, b, c) \
10127 __extension__ \
10128 ({ \
10129 uint64x2_t b_ = (b); \
10130 uint32x2_t a_ = (a); \
10131 uint32x4_t result = vcombine_u32 \
10132 (a_, vcreate_u32 \
10133 (__AARCH64_UINT64_C (0x0))); \
10134 __asm__ ("uqshrn2 %0.4s, %1.2d, #%2" \
10135 : "+w"(result) \
10136 : "w"(b_), "i"(c) \
10137 : /* No clobbers */); \
10138 result; \
10141 #define vqshrun_high_n_s16(a, b, c) \
10142 __extension__ \
10143 ({ \
10144 int16x8_t b_ = (b); \
10145 uint8x8_t a_ = (a); \
10146 uint8x16_t result = vcombine_u8 \
10147 (a_, vcreate_u8 \
10148 (__AARCH64_UINT64_C (0x0))); \
10149 __asm__ ("sqshrun2 %0.16b, %1.8h, #%2" \
10150 : "+w"(result) \
10151 : "w"(b_), "i"(c) \
10152 : /* No clobbers */); \
10153 result; \
10156 #define vqshrun_high_n_s32(a, b, c) \
10157 __extension__ \
10158 ({ \
10159 int32x4_t b_ = (b); \
10160 uint16x4_t a_ = (a); \
10161 uint16x8_t result = vcombine_u16 \
10162 (a_, vcreate_u16 \
10163 (__AARCH64_UINT64_C (0x0))); \
10164 __asm__ ("sqshrun2 %0.8h, %1.4s, #%2" \
10165 : "+w"(result) \
10166 : "w"(b_), "i"(c) \
10167 : /* No clobbers */); \
10168 result; \
10171 #define vqshrun_high_n_s64(a, b, c) \
10172 __extension__ \
10173 ({ \
10174 int64x2_t b_ = (b); \
10175 uint32x2_t a_ = (a); \
10176 uint32x4_t result = vcombine_u32 \
10177 (a_, vcreate_u32 \
10178 (__AARCH64_UINT64_C (0x0))); \
10179 __asm__ ("sqshrun2 %0.4s, %1.2d, #%2" \
10180 : "+w"(result) \
10181 : "w"(b_), "i"(c) \
10182 : /* No clobbers */); \
10183 result; \
10186 #define vrshrn_high_n_s16(a, b, c) \
10187 __extension__ \
10188 ({ \
10189 int16x8_t b_ = (b); \
10190 int8x8_t a_ = (a); \
10191 int8x16_t result = vcombine_s8 \
10192 (a_, vcreate_s8 \
10193 (__AARCH64_UINT64_C (0x0))); \
10194 __asm__ ("rshrn2 %0.16b,%1.8h,#%2" \
10195 : "+w"(result) \
10196 : "w"(b_), "i"(c) \
10197 : /* No clobbers */); \
10198 result; \
10201 #define vrshrn_high_n_s32(a, b, c) \
10202 __extension__ \
10203 ({ \
10204 int32x4_t b_ = (b); \
10205 int16x4_t a_ = (a); \
10206 int16x8_t result = vcombine_s16 \
10207 (a_, vcreate_s16 \
10208 (__AARCH64_UINT64_C (0x0))); \
10209 __asm__ ("rshrn2 %0.8h,%1.4s,#%2" \
10210 : "+w"(result) \
10211 : "w"(b_), "i"(c) \
10212 : /* No clobbers */); \
10213 result; \
10216 #define vrshrn_high_n_s64(a, b, c) \
10217 __extension__ \
10218 ({ \
10219 int64x2_t b_ = (b); \
10220 int32x2_t a_ = (a); \
10221 int32x4_t result = vcombine_s32 \
10222 (a_, vcreate_s32 \
10223 (__AARCH64_UINT64_C (0x0))); \
10224 __asm__ ("rshrn2 %0.4s,%1.2d,#%2" \
10225 : "+w"(result) \
10226 : "w"(b_), "i"(c) \
10227 : /* No clobbers */); \
10228 result; \
10231 #define vrshrn_high_n_u16(a, b, c) \
10232 __extension__ \
10233 ({ \
10234 uint16x8_t b_ = (b); \
10235 uint8x8_t a_ = (a); \
10236 uint8x16_t result = vcombine_u8 \
10237 (a_, vcreate_u8 \
10238 (__AARCH64_UINT64_C (0x0))); \
10239 __asm__ ("rshrn2 %0.16b,%1.8h,#%2" \
10240 : "+w"(result) \
10241 : "w"(b_), "i"(c) \
10242 : /* No clobbers */); \
10243 result; \
10246 #define vrshrn_high_n_u32(a, b, c) \
10247 __extension__ \
10248 ({ \
10249 uint32x4_t b_ = (b); \
10250 uint16x4_t a_ = (a); \
10251 uint16x8_t result = vcombine_u16 \
10252 (a_, vcreate_u16 \
10253 (__AARCH64_UINT64_C (0x0))); \
10254 __asm__ ("rshrn2 %0.8h,%1.4s,#%2" \
10255 : "+w"(result) \
10256 : "w"(b_), "i"(c) \
10257 : /* No clobbers */); \
10258 result; \
10261 #define vrshrn_high_n_u64(a, b, c) \
10262 __extension__ \
10263 ({ \
10264 uint64x2_t b_ = (b); \
10265 uint32x2_t a_ = (a); \
10266 uint32x4_t result = vcombine_u32 \
10267 (a_, vcreate_u32 \
10268 (__AARCH64_UINT64_C (0x0))); \
10269 __asm__ ("rshrn2 %0.4s,%1.2d,#%2" \
10270 : "+w"(result) \
10271 : "w"(b_), "i"(c) \
10272 : /* No clobbers */); \
10273 result; \
10276 #define vrshrn_n_s16(a, b) \
10277 __extension__ \
10278 ({ \
10279 int16x8_t a_ = (a); \
10280 int8x8_t result; \
10281 __asm__ ("rshrn %0.8b,%1.8h,%2" \
10282 : "=w"(result) \
10283 : "w"(a_), "i"(b) \
10284 : /* No clobbers */); \
10285 result; \
10288 #define vrshrn_n_s32(a, b) \
10289 __extension__ \
10290 ({ \
10291 int32x4_t a_ = (a); \
10292 int16x4_t result; \
10293 __asm__ ("rshrn %0.4h,%1.4s,%2" \
10294 : "=w"(result) \
10295 : "w"(a_), "i"(b) \
10296 : /* No clobbers */); \
10297 result; \
10300 #define vrshrn_n_s64(a, b) \
10301 __extension__ \
10302 ({ \
10303 int64x2_t a_ = (a); \
10304 int32x2_t result; \
10305 __asm__ ("rshrn %0.2s,%1.2d,%2" \
10306 : "=w"(result) \
10307 : "w"(a_), "i"(b) \
10308 : /* No clobbers */); \
10309 result; \
10312 #define vrshrn_n_u16(a, b) \
10313 __extension__ \
10314 ({ \
10315 uint16x8_t a_ = (a); \
10316 uint8x8_t result; \
10317 __asm__ ("rshrn %0.8b,%1.8h,%2" \
10318 : "=w"(result) \
10319 : "w"(a_), "i"(b) \
10320 : /* No clobbers */); \
10321 result; \
10324 #define vrshrn_n_u32(a, b) \
10325 __extension__ \
10326 ({ \
10327 uint32x4_t a_ = (a); \
10328 uint16x4_t result; \
10329 __asm__ ("rshrn %0.4h,%1.4s,%2" \
10330 : "=w"(result) \
10331 : "w"(a_), "i"(b) \
10332 : /* No clobbers */); \
10333 result; \
10336 #define vrshrn_n_u64(a, b) \
10337 __extension__ \
10338 ({ \
10339 uint64x2_t a_ = (a); \
10340 uint32x2_t result; \
10341 __asm__ ("rshrn %0.2s,%1.2d,%2" \
10342 : "=w"(result) \
10343 : "w"(a_), "i"(b) \
10344 : /* No clobbers */); \
10345 result; \
10348 __extension__ extern __inline uint32x2_t
10349 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10350 vrsqrte_u32 (uint32x2_t a)
10352 uint32x2_t result;
10353 __asm__ ("ursqrte %0.2s,%1.2s"
10354 : "=w"(result)
10355 : "w"(a)
10356 : /* No clobbers */);
10357 return result;
10360 __extension__ extern __inline uint32x4_t
10361 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10362 vrsqrteq_u32 (uint32x4_t a)
10364 uint32x4_t result;
10365 __asm__ ("ursqrte %0.4s,%1.4s"
10366 : "=w"(result)
10367 : "w"(a)
10368 : /* No clobbers */);
10369 return result;
10372 #define vshrn_high_n_s16(a, b, c) \
10373 __extension__ \
10374 ({ \
10375 int16x8_t b_ = (b); \
10376 int8x8_t a_ = (a); \
10377 int8x16_t result = vcombine_s8 \
10378 (a_, vcreate_s8 \
10379 (__AARCH64_UINT64_C (0x0))); \
10380 __asm__ ("shrn2 %0.16b,%1.8h,#%2" \
10381 : "+w"(result) \
10382 : "w"(b_), "i"(c) \
10383 : /* No clobbers */); \
10384 result; \
10387 #define vshrn_high_n_s32(a, b, c) \
10388 __extension__ \
10389 ({ \
10390 int32x4_t b_ = (b); \
10391 int16x4_t a_ = (a); \
10392 int16x8_t result = vcombine_s16 \
10393 (a_, vcreate_s16 \
10394 (__AARCH64_UINT64_C (0x0))); \
10395 __asm__ ("shrn2 %0.8h,%1.4s,#%2" \
10396 : "+w"(result) \
10397 : "w"(b_), "i"(c) \
10398 : /* No clobbers */); \
10399 result; \
10402 #define vshrn_high_n_s64(a, b, c) \
10403 __extension__ \
10404 ({ \
10405 int64x2_t b_ = (b); \
10406 int32x2_t a_ = (a); \
10407 int32x4_t result = vcombine_s32 \
10408 (a_, vcreate_s32 \
10409 (__AARCH64_UINT64_C (0x0))); \
10410 __asm__ ("shrn2 %0.4s,%1.2d,#%2" \
10411 : "+w"(result) \
10412 : "w"(b_), "i"(c) \
10413 : /* No clobbers */); \
10414 result; \
10417 #define vshrn_high_n_u16(a, b, c) \
10418 __extension__ \
10419 ({ \
10420 uint16x8_t b_ = (b); \
10421 uint8x8_t a_ = (a); \
10422 uint8x16_t result = vcombine_u8 \
10423 (a_, vcreate_u8 \
10424 (__AARCH64_UINT64_C (0x0))); \
10425 __asm__ ("shrn2 %0.16b,%1.8h,#%2" \
10426 : "+w"(result) \
10427 : "w"(b_), "i"(c) \
10428 : /* No clobbers */); \
10429 result; \
10432 #define vshrn_high_n_u32(a, b, c) \
10433 __extension__ \
10434 ({ \
10435 uint32x4_t b_ = (b); \
10436 uint16x4_t a_ = (a); \
10437 uint16x8_t result = vcombine_u16 \
10438 (a_, vcreate_u16 \
10439 (__AARCH64_UINT64_C (0x0))); \
10440 __asm__ ("shrn2 %0.8h,%1.4s,#%2" \
10441 : "+w"(result) \
10442 : "w"(b_), "i"(c) \
10443 : /* No clobbers */); \
10444 result; \
10447 #define vshrn_high_n_u64(a, b, c) \
10448 __extension__ \
10449 ({ \
10450 uint64x2_t b_ = (b); \
10451 uint32x2_t a_ = (a); \
10452 uint32x4_t result = vcombine_u32 \
10453 (a_, vcreate_u32 \
10454 (__AARCH64_UINT64_C (0x0))); \
10455 __asm__ ("shrn2 %0.4s,%1.2d,#%2" \
10456 : "+w"(result) \
10457 : "w"(b_), "i"(c) \
10458 : /* No clobbers */); \
10459 result; \
10462 #define vshrn_n_s16(a, b) \
10463 __extension__ \
10464 ({ \
10465 int16x8_t a_ = (a); \
10466 int8x8_t result; \
10467 __asm__ ("shrn %0.8b,%1.8h,%2" \
10468 : "=w"(result) \
10469 : "w"(a_), "i"(b) \
10470 : /* No clobbers */); \
10471 result; \
10474 #define vshrn_n_s32(a, b) \
10475 __extension__ \
10476 ({ \
10477 int32x4_t a_ = (a); \
10478 int16x4_t result; \
10479 __asm__ ("shrn %0.4h,%1.4s,%2" \
10480 : "=w"(result) \
10481 : "w"(a_), "i"(b) \
10482 : /* No clobbers */); \
10483 result; \
10486 #define vshrn_n_s64(a, b) \
10487 __extension__ \
10488 ({ \
10489 int64x2_t a_ = (a); \
10490 int32x2_t result; \
10491 __asm__ ("shrn %0.2s,%1.2d,%2" \
10492 : "=w"(result) \
10493 : "w"(a_), "i"(b) \
10494 : /* No clobbers */); \
10495 result; \
10498 #define vshrn_n_u16(a, b) \
10499 __extension__ \
10500 ({ \
10501 uint16x8_t a_ = (a); \
10502 uint8x8_t result; \
10503 __asm__ ("shrn %0.8b,%1.8h,%2" \
10504 : "=w"(result) \
10505 : "w"(a_), "i"(b) \
10506 : /* No clobbers */); \
10507 result; \
10510 #define vshrn_n_u32(a, b) \
10511 __extension__ \
10512 ({ \
10513 uint32x4_t a_ = (a); \
10514 uint16x4_t result; \
10515 __asm__ ("shrn %0.4h,%1.4s,%2" \
10516 : "=w"(result) \
10517 : "w"(a_), "i"(b) \
10518 : /* No clobbers */); \
10519 result; \
10522 #define vshrn_n_u64(a, b) \
10523 __extension__ \
10524 ({ \
10525 uint64x2_t a_ = (a); \
10526 uint32x2_t result; \
10527 __asm__ ("shrn %0.2s,%1.2d,%2" \
10528 : "=w"(result) \
10529 : "w"(a_), "i"(b) \
10530 : /* No clobbers */); \
10531 result; \
10534 #define vsli_n_p8(a, b, c) \
10535 __extension__ \
10536 ({ \
10537 poly8x8_t b_ = (b); \
10538 poly8x8_t a_ = (a); \
10539 poly8x8_t result; \
10540 __asm__ ("sli %0.8b,%2.8b,%3" \
10541 : "=w"(result) \
10542 : "0"(a_), "w"(b_), "i"(c) \
10543 : /* No clobbers */); \
10544 result; \
10547 #define vsli_n_p16(a, b, c) \
10548 __extension__ \
10549 ({ \
10550 poly16x4_t b_ = (b); \
10551 poly16x4_t a_ = (a); \
10552 poly16x4_t result; \
10553 __asm__ ("sli %0.4h,%2.4h,%3" \
10554 : "=w"(result) \
10555 : "0"(a_), "w"(b_), "i"(c) \
10556 : /* No clobbers */); \
10557 result; \
10560 #define vsliq_n_p8(a, b, c) \
10561 __extension__ \
10562 ({ \
10563 poly8x16_t b_ = (b); \
10564 poly8x16_t a_ = (a); \
10565 poly8x16_t result; \
10566 __asm__ ("sli %0.16b,%2.16b,%3" \
10567 : "=w"(result) \
10568 : "0"(a_), "w"(b_), "i"(c) \
10569 : /* No clobbers */); \
10570 result; \
10573 #define vsliq_n_p16(a, b, c) \
10574 __extension__ \
10575 ({ \
10576 poly16x8_t b_ = (b); \
10577 poly16x8_t a_ = (a); \
10578 poly16x8_t result; \
10579 __asm__ ("sli %0.8h,%2.8h,%3" \
10580 : "=w"(result) \
10581 : "0"(a_), "w"(b_), "i"(c) \
10582 : /* No clobbers */); \
10583 result; \
10586 #define vsri_n_p8(a, b, c) \
10587 __extension__ \
10588 ({ \
10589 poly8x8_t b_ = (b); \
10590 poly8x8_t a_ = (a); \
10591 poly8x8_t result; \
10592 __asm__ ("sri %0.8b,%2.8b,%3" \
10593 : "=w"(result) \
10594 : "0"(a_), "w"(b_), "i"(c) \
10595 : /* No clobbers */); \
10596 result; \
10599 #define vsri_n_p16(a, b, c) \
10600 __extension__ \
10601 ({ \
10602 poly16x4_t b_ = (b); \
10603 poly16x4_t a_ = (a); \
10604 poly16x4_t result; \
10605 __asm__ ("sri %0.4h,%2.4h,%3" \
10606 : "=w"(result) \
10607 : "0"(a_), "w"(b_), "i"(c) \
10608 : /* No clobbers */); \
10609 result; \
10612 #define vsri_n_p64(a, b, c) \
10613 __extension__ \
10614 ({ \
10615 poly64x1_t b_ = (b); \
10616 poly64x1_t a_ = (a); \
10617 poly64x1_t result; \
10618 __asm__ ("sri %d0,%d2,%3" \
10619 : "=w"(result) \
10620 : "0"(a_), "w"(b_), "i"(c) \
10621 : /* No clobbers. */); \
10622 result; \
10625 #define vsriq_n_p8(a, b, c) \
10626 __extension__ \
10627 ({ \
10628 poly8x16_t b_ = (b); \
10629 poly8x16_t a_ = (a); \
10630 poly8x16_t result; \
10631 __asm__ ("sri %0.16b,%2.16b,%3" \
10632 : "=w"(result) \
10633 : "0"(a_), "w"(b_), "i"(c) \
10634 : /* No clobbers */); \
10635 result; \
10638 #define vsriq_n_p16(a, b, c) \
10639 __extension__ \
10640 ({ \
10641 poly16x8_t b_ = (b); \
10642 poly16x8_t a_ = (a); \
10643 poly16x8_t result; \
10644 __asm__ ("sri %0.8h,%2.8h,%3" \
10645 : "=w"(result) \
10646 : "0"(a_), "w"(b_), "i"(c) \
10647 : /* No clobbers */); \
10648 result; \
10651 #define vsriq_n_p64(a, b, c) \
10652 __extension__ \
10653 ({ \
10654 poly64x2_t b_ = (b); \
10655 poly64x2_t a_ = (a); \
10656 poly64x2_t result; \
10657 __asm__ ("sri %0.2d,%2.2d,%3" \
10658 : "=w"(result) \
10659 : "0"(a_), "w"(b_), "i"(c) \
10660 : /* No clobbers. */); \
10661 result; \
10664 __extension__ extern __inline uint8x8_t
10665 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10666 vtst_p8 (poly8x8_t a, poly8x8_t b)
10668 uint8x8_t result;
10669 __asm__ ("cmtst %0.8b, %1.8b, %2.8b"
10670 : "=w"(result)
10671 : "w"(a), "w"(b)
10672 : /* No clobbers */);
10673 return result;
10676 __extension__ extern __inline uint16x4_t
10677 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10678 vtst_p16 (poly16x4_t a, poly16x4_t b)
10680 uint16x4_t result;
10681 __asm__ ("cmtst %0.4h, %1.4h, %2.4h"
10682 : "=w"(result)
10683 : "w"(a), "w"(b)
10684 : /* No clobbers */);
10685 return result;
10688 __extension__ extern __inline uint8x16_t
10689 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10690 vtstq_p8 (poly8x16_t a, poly8x16_t b)
10692 uint8x16_t result;
10693 __asm__ ("cmtst %0.16b, %1.16b, %2.16b"
10694 : "=w"(result)
10695 : "w"(a), "w"(b)
10696 : /* No clobbers */);
10697 return result;
10700 __extension__ extern __inline uint16x8_t
10701 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10702 vtstq_p16 (poly16x8_t a, poly16x8_t b)
10704 uint16x8_t result;
10705 __asm__ ("cmtst %0.8h, %1.8h, %2.8h"
10706 : "=w"(result)
10707 : "w"(a), "w"(b)
10708 : /* No clobbers */);
10709 return result;
10712 /* End of temporary inline asm implementations. */
10714 /* Start of temporary inline asm for vldn, vstn and friends. */
10716 /* Create struct element types for duplicating loads.
10718 Create 2 element structures of:
10720 +------+----+----+----+----+
10721 | | 8 | 16 | 32 | 64 |
10722 +------+----+----+----+----+
10723 |int | Y | Y | N | N |
10724 +------+----+----+----+----+
10725 |uint | Y | Y | N | N |
10726 +------+----+----+----+----+
10727 |float | - | Y | N | N |
10728 +------+----+----+----+----+
10729 |poly | Y | Y | - | - |
10730 +------+----+----+----+----+
10732 Create 3 element structures of:
10734 +------+----+----+----+----+
10735 | | 8 | 16 | 32 | 64 |
10736 +------+----+----+----+----+
10737 |int | Y | Y | Y | Y |
10738 +------+----+----+----+----+
10739 |uint | Y | Y | Y | Y |
10740 +------+----+----+----+----+
10741 |float | - | Y | Y | Y |
10742 +------+----+----+----+----+
10743 |poly | Y | Y | - | - |
10744 +------+----+----+----+----+
10746 Create 4 element structures of:
10748 +------+----+----+----+----+
10749 | | 8 | 16 | 32 | 64 |
10750 +------+----+----+----+----+
10751 |int | Y | N | N | Y |
10752 +------+----+----+----+----+
10753 |uint | Y | N | N | Y |
10754 +------+----+----+----+----+
10755 |float | - | N | N | Y |
10756 +------+----+----+----+----+
10757 |poly | Y | N | - | - |
10758 +------+----+----+----+----+
10760 This is required for casting memory reference. */
10761 #define __STRUCTN(t, sz, nelem) \
10762 typedef struct t ## sz ## x ## nelem ## _t { \
10763 t ## sz ## _t val[nelem]; \
10764 } t ## sz ## x ## nelem ## _t;
10766 /* 2-element structs. */
10767 __STRUCTN (int, 8, 2)
10768 __STRUCTN (int, 16, 2)
10769 __STRUCTN (uint, 8, 2)
10770 __STRUCTN (uint, 16, 2)
10771 __STRUCTN (float, 16, 2)
10772 __STRUCTN (poly, 8, 2)
10773 __STRUCTN (poly, 16, 2)
10774 /* 3-element structs. */
10775 __STRUCTN (int, 8, 3)
10776 __STRUCTN (int, 16, 3)
10777 __STRUCTN (int, 32, 3)
10778 __STRUCTN (int, 64, 3)
10779 __STRUCTN (uint, 8, 3)
10780 __STRUCTN (uint, 16, 3)
10781 __STRUCTN (uint, 32, 3)
10782 __STRUCTN (uint, 64, 3)
10783 __STRUCTN (float, 16, 3)
10784 __STRUCTN (float, 32, 3)
10785 __STRUCTN (float, 64, 3)
10786 __STRUCTN (poly, 8, 3)
10787 __STRUCTN (poly, 16, 3)
10788 /* 4-element structs. */
10789 __STRUCTN (int, 8, 4)
10790 __STRUCTN (int, 64, 4)
10791 __STRUCTN (uint, 8, 4)
10792 __STRUCTN (uint, 64, 4)
10793 __STRUCTN (poly, 8, 4)
10794 __STRUCTN (float, 64, 4)
10795 #undef __STRUCTN
10798 #define __ST2_LANE_FUNC(intype, largetype, ptrtype, mode, \
10799 qmode, ptr_mode, funcsuffix, signedtype) \
10800 __extension__ extern __inline void \
10801 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) \
10802 vst2_lane_ ## funcsuffix (ptrtype *__ptr, \
10803 intype __b, const int __c) \
10805 __builtin_aarch64_simd_oi __o; \
10806 largetype __temp; \
10807 __temp.val[0] \
10808 = vcombine_##funcsuffix (__b.val[0], \
10809 vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
10810 __temp.val[1] \
10811 = vcombine_##funcsuffix (__b.val[1], \
10812 vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
10813 __o = __builtin_aarch64_set_qregoi##qmode (__o, \
10814 (signedtype) __temp.val[0], 0); \
10815 __o = __builtin_aarch64_set_qregoi##qmode (__o, \
10816 (signedtype) __temp.val[1], 1); \
10817 __builtin_aarch64_st2_lane##mode ((__builtin_aarch64_simd_ ## ptr_mode *) \
10818 __ptr, __o, __c); \
10821 __ST2_LANE_FUNC (float16x4x2_t, float16x8x2_t, float16_t, v4hf, v8hf, hf, f16,
10822 float16x8_t)
10823 __ST2_LANE_FUNC (float32x2x2_t, float32x4x2_t, float32_t, v2sf, v4sf, sf, f32,
10824 float32x4_t)
10825 __ST2_LANE_FUNC (float64x1x2_t, float64x2x2_t, float64_t, df, v2df, df, f64,
10826 float64x2_t)
10827 __ST2_LANE_FUNC (poly8x8x2_t, poly8x16x2_t, poly8_t, v8qi, v16qi, qi, p8,
10828 int8x16_t)
10829 __ST2_LANE_FUNC (poly16x4x2_t, poly16x8x2_t, poly16_t, v4hi, v8hi, hi, p16,
10830 int16x8_t)
10831 __ST2_LANE_FUNC (poly64x1x2_t, poly64x2x2_t, poly64_t, di, v2di_ssps, di, p64,
10832 poly64x2_t)
10833 __ST2_LANE_FUNC (int8x8x2_t, int8x16x2_t, int8_t, v8qi, v16qi, qi, s8,
10834 int8x16_t)
10835 __ST2_LANE_FUNC (int16x4x2_t, int16x8x2_t, int16_t, v4hi, v8hi, hi, s16,
10836 int16x8_t)
10837 __ST2_LANE_FUNC (int32x2x2_t, int32x4x2_t, int32_t, v2si, v4si, si, s32,
10838 int32x4_t)
10839 __ST2_LANE_FUNC (int64x1x2_t, int64x2x2_t, int64_t, di, v2di, di, s64,
10840 int64x2_t)
10841 __ST2_LANE_FUNC (uint8x8x2_t, uint8x16x2_t, uint8_t, v8qi, v16qi, qi, u8,
10842 int8x16_t)
10843 __ST2_LANE_FUNC (uint16x4x2_t, uint16x8x2_t, uint16_t, v4hi, v8hi, hi, u16,
10844 int16x8_t)
10845 __ST2_LANE_FUNC (uint32x2x2_t, uint32x4x2_t, uint32_t, v2si, v4si, si, u32,
10846 int32x4_t)
10847 __ST2_LANE_FUNC (uint64x1x2_t, uint64x2x2_t, uint64_t, di, v2di, di, u64,
10848 int64x2_t)
10850 #undef __ST2_LANE_FUNC
10851 #define __ST2_LANE_FUNC(intype, ptrtype, mode, ptr_mode, funcsuffix) \
10852 __extension__ extern __inline void \
10853 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) \
10854 vst2q_lane_ ## funcsuffix (ptrtype *__ptr, \
10855 intype __b, const int __c) \
10857 union { intype __i; \
10858 __builtin_aarch64_simd_oi __o; } __temp = { __b }; \
10859 __builtin_aarch64_st2_lane##mode ((__builtin_aarch64_simd_ ## ptr_mode *) \
10860 __ptr, __temp.__o, __c); \
10863 __ST2_LANE_FUNC (float16x8x2_t, float16_t, v8hf, hf, f16)
10864 __ST2_LANE_FUNC (float32x4x2_t, float32_t, v4sf, sf, f32)
10865 __ST2_LANE_FUNC (float64x2x2_t, float64_t, v2df, df, f64)
10866 __ST2_LANE_FUNC (poly8x16x2_t, poly8_t, v16qi, qi, p8)
10867 __ST2_LANE_FUNC (poly16x8x2_t, poly16_t, v8hi, hi, p16)
10868 __ST2_LANE_FUNC (poly64x2x2_t, poly64_t, v2di, di, p64)
10869 __ST2_LANE_FUNC (int8x16x2_t, int8_t, v16qi, qi, s8)
10870 __ST2_LANE_FUNC (int16x8x2_t, int16_t, v8hi, hi, s16)
10871 __ST2_LANE_FUNC (int32x4x2_t, int32_t, v4si, si, s32)
10872 __ST2_LANE_FUNC (int64x2x2_t, int64_t, v2di, di, s64)
10873 __ST2_LANE_FUNC (uint8x16x2_t, uint8_t, v16qi, qi, u8)
10874 __ST2_LANE_FUNC (uint16x8x2_t, uint16_t, v8hi, hi, u16)
10875 __ST2_LANE_FUNC (uint32x4x2_t, uint32_t, v4si, si, u32)
10876 __ST2_LANE_FUNC (uint64x2x2_t, uint64_t, v2di, di, u64)
10878 #define __ST3_LANE_FUNC(intype, largetype, ptrtype, mode, \
10879 qmode, ptr_mode, funcsuffix, signedtype) \
10880 __extension__ extern __inline void \
10881 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) \
10882 vst3_lane_ ## funcsuffix (ptrtype *__ptr, \
10883 intype __b, const int __c) \
10885 __builtin_aarch64_simd_ci __o; \
10886 largetype __temp; \
10887 __temp.val[0] \
10888 = vcombine_##funcsuffix (__b.val[0], \
10889 vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
10890 __temp.val[1] \
10891 = vcombine_##funcsuffix (__b.val[1], \
10892 vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
10893 __temp.val[2] \
10894 = vcombine_##funcsuffix (__b.val[2], \
10895 vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
10896 __o = __builtin_aarch64_set_qregci##qmode (__o, \
10897 (signedtype) __temp.val[0], 0); \
10898 __o = __builtin_aarch64_set_qregci##qmode (__o, \
10899 (signedtype) __temp.val[1], 1); \
10900 __o = __builtin_aarch64_set_qregci##qmode (__o, \
10901 (signedtype) __temp.val[2], 2); \
10902 __builtin_aarch64_st3_lane##mode ((__builtin_aarch64_simd_ ## ptr_mode *) \
10903 __ptr, __o, __c); \
10906 __ST3_LANE_FUNC (float16x4x3_t, float16x8x3_t, float16_t, v4hf, v8hf, hf, f16,
10907 float16x8_t)
10908 __ST3_LANE_FUNC (float32x2x3_t, float32x4x3_t, float32_t, v2sf, v4sf, sf, f32,
10909 float32x4_t)
10910 __ST3_LANE_FUNC (float64x1x3_t, float64x2x3_t, float64_t, df, v2df, df, f64,
10911 float64x2_t)
10912 __ST3_LANE_FUNC (poly8x8x3_t, poly8x16x3_t, poly8_t, v8qi, v16qi, qi, p8,
10913 int8x16_t)
10914 __ST3_LANE_FUNC (poly16x4x3_t, poly16x8x3_t, poly16_t, v4hi, v8hi, hi, p16,
10915 int16x8_t)
10916 __ST3_LANE_FUNC (poly64x1x3_t, poly64x2x3_t, poly64_t, di, v2di_ssps, di, p64,
10917 poly64x2_t)
10918 __ST3_LANE_FUNC (int8x8x3_t, int8x16x3_t, int8_t, v8qi, v16qi, qi, s8,
10919 int8x16_t)
10920 __ST3_LANE_FUNC (int16x4x3_t, int16x8x3_t, int16_t, v4hi, v8hi, hi, s16,
10921 int16x8_t)
10922 __ST3_LANE_FUNC (int32x2x3_t, int32x4x3_t, int32_t, v2si, v4si, si, s32,
10923 int32x4_t)
10924 __ST3_LANE_FUNC (int64x1x3_t, int64x2x3_t, int64_t, di, v2di, di, s64,
10925 int64x2_t)
10926 __ST3_LANE_FUNC (uint8x8x3_t, uint8x16x3_t, uint8_t, v8qi, v16qi, qi, u8,
10927 int8x16_t)
10928 __ST3_LANE_FUNC (uint16x4x3_t, uint16x8x3_t, uint16_t, v4hi, v8hi, hi, u16,
10929 int16x8_t)
10930 __ST3_LANE_FUNC (uint32x2x3_t, uint32x4x3_t, uint32_t, v2si, v4si, si, u32,
10931 int32x4_t)
10932 __ST3_LANE_FUNC (uint64x1x3_t, uint64x2x3_t, uint64_t, di, v2di, di, u64,
10933 int64x2_t)
10935 #undef __ST3_LANE_FUNC
10936 #define __ST3_LANE_FUNC(intype, ptrtype, mode, ptr_mode, funcsuffix) \
10937 __extension__ extern __inline void \
10938 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) \
10939 vst3q_lane_ ## funcsuffix (ptrtype *__ptr, \
10940 intype __b, const int __c) \
10942 union { intype __i; \
10943 __builtin_aarch64_simd_ci __o; } __temp = { __b }; \
10944 __builtin_aarch64_st3_lane##mode ((__builtin_aarch64_simd_ ## ptr_mode *) \
10945 __ptr, __temp.__o, __c); \
10948 __ST3_LANE_FUNC (float16x8x3_t, float16_t, v8hf, hf, f16)
10949 __ST3_LANE_FUNC (float32x4x3_t, float32_t, v4sf, sf, f32)
10950 __ST3_LANE_FUNC (float64x2x3_t, float64_t, v2df, df, f64)
10951 __ST3_LANE_FUNC (poly8x16x3_t, poly8_t, v16qi, qi, p8)
10952 __ST3_LANE_FUNC (poly16x8x3_t, poly16_t, v8hi, hi, p16)
10953 __ST3_LANE_FUNC (poly64x2x3_t, poly64_t, v2di, di, p64)
10954 __ST3_LANE_FUNC (int8x16x3_t, int8_t, v16qi, qi, s8)
10955 __ST3_LANE_FUNC (int16x8x3_t, int16_t, v8hi, hi, s16)
10956 __ST3_LANE_FUNC (int32x4x3_t, int32_t, v4si, si, s32)
10957 __ST3_LANE_FUNC (int64x2x3_t, int64_t, v2di, di, s64)
10958 __ST3_LANE_FUNC (uint8x16x3_t, uint8_t, v16qi, qi, u8)
10959 __ST3_LANE_FUNC (uint16x8x3_t, uint16_t, v8hi, hi, u16)
10960 __ST3_LANE_FUNC (uint32x4x3_t, uint32_t, v4si, si, u32)
10961 __ST3_LANE_FUNC (uint64x2x3_t, uint64_t, v2di, di, u64)
10963 #define __ST4_LANE_FUNC(intype, largetype, ptrtype, mode, \
10964 qmode, ptr_mode, funcsuffix, signedtype) \
10965 __extension__ extern __inline void \
10966 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) \
10967 vst4_lane_ ## funcsuffix (ptrtype *__ptr, \
10968 intype __b, const int __c) \
10970 __builtin_aarch64_simd_xi __o; \
10971 largetype __temp; \
10972 __temp.val[0] \
10973 = vcombine_##funcsuffix (__b.val[0], \
10974 vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
10975 __temp.val[1] \
10976 = vcombine_##funcsuffix (__b.val[1], \
10977 vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
10978 __temp.val[2] \
10979 = vcombine_##funcsuffix (__b.val[2], \
10980 vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
10981 __temp.val[3] \
10982 = vcombine_##funcsuffix (__b.val[3], \
10983 vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
10984 __o = __builtin_aarch64_set_qregxi##qmode (__o, \
10985 (signedtype) __temp.val[0], 0); \
10986 __o = __builtin_aarch64_set_qregxi##qmode (__o, \
10987 (signedtype) __temp.val[1], 1); \
10988 __o = __builtin_aarch64_set_qregxi##qmode (__o, \
10989 (signedtype) __temp.val[2], 2); \
10990 __o = __builtin_aarch64_set_qregxi##qmode (__o, \
10991 (signedtype) __temp.val[3], 3); \
10992 __builtin_aarch64_st4_lane##mode ((__builtin_aarch64_simd_ ## ptr_mode *) \
10993 __ptr, __o, __c); \
10996 __ST4_LANE_FUNC (float16x4x4_t, float16x8x4_t, float16_t, v4hf, v8hf, hf, f16,
10997 float16x8_t)
10998 __ST4_LANE_FUNC (float32x2x4_t, float32x4x4_t, float32_t, v2sf, v4sf, sf, f32,
10999 float32x4_t)
11000 __ST4_LANE_FUNC (float64x1x4_t, float64x2x4_t, float64_t, df, v2df, df, f64,
11001 float64x2_t)
11002 __ST4_LANE_FUNC (poly8x8x4_t, poly8x16x4_t, poly8_t, v8qi, v16qi, qi, p8,
11003 int8x16_t)
11004 __ST4_LANE_FUNC (poly16x4x4_t, poly16x8x4_t, poly16_t, v4hi, v8hi, hi, p16,
11005 int16x8_t)
11006 __ST4_LANE_FUNC (poly64x1x4_t, poly64x2x4_t, poly64_t, di, v2di_ssps, di, p64,
11007 poly64x2_t)
11008 __ST4_LANE_FUNC (int8x8x4_t, int8x16x4_t, int8_t, v8qi, v16qi, qi, s8,
11009 int8x16_t)
11010 __ST4_LANE_FUNC (int16x4x4_t, int16x8x4_t, int16_t, v4hi, v8hi, hi, s16,
11011 int16x8_t)
11012 __ST4_LANE_FUNC (int32x2x4_t, int32x4x4_t, int32_t, v2si, v4si, si, s32,
11013 int32x4_t)
11014 __ST4_LANE_FUNC (int64x1x4_t, int64x2x4_t, int64_t, di, v2di, di, s64,
11015 int64x2_t)
11016 __ST4_LANE_FUNC (uint8x8x4_t, uint8x16x4_t, uint8_t, v8qi, v16qi, qi, u8,
11017 int8x16_t)
11018 __ST4_LANE_FUNC (uint16x4x4_t, uint16x8x4_t, uint16_t, v4hi, v8hi, hi, u16,
11019 int16x8_t)
11020 __ST4_LANE_FUNC (uint32x2x4_t, uint32x4x4_t, uint32_t, v2si, v4si, si, u32,
11021 int32x4_t)
11022 __ST4_LANE_FUNC (uint64x1x4_t, uint64x2x4_t, uint64_t, di, v2di, di, u64,
11023 int64x2_t)
11025 #undef __ST4_LANE_FUNC
11026 #define __ST4_LANE_FUNC(intype, ptrtype, mode, ptr_mode, funcsuffix) \
11027 __extension__ extern __inline void \
11028 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) \
11029 vst4q_lane_ ## funcsuffix (ptrtype *__ptr, \
11030 intype __b, const int __c) \
11032 union { intype __i; \
11033 __builtin_aarch64_simd_xi __o; } __temp = { __b }; \
11034 __builtin_aarch64_st4_lane##mode ((__builtin_aarch64_simd_ ## ptr_mode *) \
11035 __ptr, __temp.__o, __c); \
11038 __ST4_LANE_FUNC (float16x8x4_t, float16_t, v8hf, hf, f16)
11039 __ST4_LANE_FUNC (float32x4x4_t, float32_t, v4sf, sf, f32)
11040 __ST4_LANE_FUNC (float64x2x4_t, float64_t, v2df, df, f64)
11041 __ST4_LANE_FUNC (poly8x16x4_t, poly8_t, v16qi, qi, p8)
11042 __ST4_LANE_FUNC (poly16x8x4_t, poly16_t, v8hi, hi, p16)
11043 __ST4_LANE_FUNC (poly64x2x4_t, poly64_t, v2di, di, p64)
11044 __ST4_LANE_FUNC (int8x16x4_t, int8_t, v16qi, qi, s8)
11045 __ST4_LANE_FUNC (int16x8x4_t, int16_t, v8hi, hi, s16)
11046 __ST4_LANE_FUNC (int32x4x4_t, int32_t, v4si, si, s32)
11047 __ST4_LANE_FUNC (int64x2x4_t, int64_t, v2di, di, s64)
11048 __ST4_LANE_FUNC (uint8x16x4_t, uint8_t, v16qi, qi, u8)
11049 __ST4_LANE_FUNC (uint16x8x4_t, uint16_t, v8hi, hi, u16)
11050 __ST4_LANE_FUNC (uint32x4x4_t, uint32_t, v4si, si, u32)
11051 __ST4_LANE_FUNC (uint64x2x4_t, uint64_t, v2di, di, u64)
11053 __extension__ extern __inline int64_t
11054 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11055 vaddlv_s32 (int32x2_t a)
11057 int64_t result;
11058 __asm__ ("saddlp %0.1d, %1.2s" : "=w"(result) : "w"(a) : );
11059 return result;
11062 __extension__ extern __inline uint64_t
11063 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11064 vaddlv_u32 (uint32x2_t a)
11066 uint64_t result;
11067 __asm__ ("uaddlp %0.1d, %1.2s" : "=w"(result) : "w"(a) : );
11068 return result;
11071 __extension__ extern __inline int16x4_t
11072 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11073 vqdmulh_laneq_s16 (int16x4_t __a, int16x8_t __b, const int __c)
11075 return __builtin_aarch64_sqdmulh_laneqv4hi (__a, __b, __c);
11078 __extension__ extern __inline int32x2_t
11079 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11080 vqdmulh_laneq_s32 (int32x2_t __a, int32x4_t __b, const int __c)
11082 return __builtin_aarch64_sqdmulh_laneqv2si (__a, __b, __c);
11085 __extension__ extern __inline int16x8_t
11086 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11087 vqdmulhq_laneq_s16 (int16x8_t __a, int16x8_t __b, const int __c)
11089 return __builtin_aarch64_sqdmulh_laneqv8hi (__a, __b, __c);
11092 __extension__ extern __inline int32x4_t
11093 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11094 vqdmulhq_laneq_s32 (int32x4_t __a, int32x4_t __b, const int __c)
11096 return __builtin_aarch64_sqdmulh_laneqv4si (__a, __b, __c);
11099 __extension__ extern __inline int16x4_t
11100 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11101 vqrdmulh_laneq_s16 (int16x4_t __a, int16x8_t __b, const int __c)
11103 return __builtin_aarch64_sqrdmulh_laneqv4hi (__a, __b, __c);
11106 __extension__ extern __inline int32x2_t
11107 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11108 vqrdmulh_laneq_s32 (int32x2_t __a, int32x4_t __b, const int __c)
11110 return __builtin_aarch64_sqrdmulh_laneqv2si (__a, __b, __c);
11113 __extension__ extern __inline int16x8_t
11114 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11115 vqrdmulhq_laneq_s16 (int16x8_t __a, int16x8_t __b, const int __c)
11117 return __builtin_aarch64_sqrdmulh_laneqv8hi (__a, __b, __c);
11120 __extension__ extern __inline int32x4_t
11121 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11122 vqrdmulhq_laneq_s32 (int32x4_t __a, int32x4_t __b, const int __c)
11124 return __builtin_aarch64_sqrdmulh_laneqv4si (__a, __b, __c);
11127 /* Table intrinsics. */
11129 __extension__ extern __inline poly8x8_t
11130 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11131 vqtbl1_p8 (poly8x16_t a, uint8x8_t b)
11133 poly8x8_t result;
11134 __asm__ ("tbl %0.8b, {%1.16b}, %2.8b"
11135 : "=w"(result)
11136 : "w"(a), "w"(b)
11137 : /* No clobbers */);
11138 return result;
11141 __extension__ extern __inline int8x8_t
11142 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11143 vqtbl1_s8 (int8x16_t a, uint8x8_t b)
11145 int8x8_t result;
11146 __asm__ ("tbl %0.8b, {%1.16b}, %2.8b"
11147 : "=w"(result)
11148 : "w"(a), "w"(b)
11149 : /* No clobbers */);
11150 return result;
11153 __extension__ extern __inline uint8x8_t
11154 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11155 vqtbl1_u8 (uint8x16_t a, uint8x8_t b)
11157 uint8x8_t result;
11158 __asm__ ("tbl %0.8b, {%1.16b}, %2.8b"
11159 : "=w"(result)
11160 : "w"(a), "w"(b)
11161 : /* No clobbers */);
11162 return result;
11165 __extension__ extern __inline poly8x16_t
11166 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11167 vqtbl1q_p8 (poly8x16_t a, uint8x16_t b)
11169 poly8x16_t result;
11170 __asm__ ("tbl %0.16b, {%1.16b}, %2.16b"
11171 : "=w"(result)
11172 : "w"(a), "w"(b)
11173 : /* No clobbers */);
11174 return result;
11177 __extension__ extern __inline int8x16_t
11178 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11179 vqtbl1q_s8 (int8x16_t a, uint8x16_t b)
11181 int8x16_t result;
11182 __asm__ ("tbl %0.16b, {%1.16b}, %2.16b"
11183 : "=w"(result)
11184 : "w"(a), "w"(b)
11185 : /* No clobbers */);
11186 return result;
11189 __extension__ extern __inline uint8x16_t
11190 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11191 vqtbl1q_u8 (uint8x16_t a, uint8x16_t b)
11193 uint8x16_t result;
11194 __asm__ ("tbl %0.16b, {%1.16b}, %2.16b"
11195 : "=w"(result)
11196 : "w"(a), "w"(b)
11197 : /* No clobbers */);
11198 return result;
11201 __extension__ extern __inline int8x8_t
11202 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11203 vqtbx1_s8 (int8x8_t r, int8x16_t tab, uint8x8_t idx)
11205 int8x8_t result = r;
11206 __asm__ ("tbx %0.8b,{%1.16b},%2.8b"
11207 : "+w"(result)
11208 : "w"(tab), "w"(idx)
11209 : /* No clobbers */);
11210 return result;
11213 __extension__ extern __inline uint8x8_t
11214 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11215 vqtbx1_u8 (uint8x8_t r, uint8x16_t tab, uint8x8_t idx)
11217 uint8x8_t result = r;
11218 __asm__ ("tbx %0.8b,{%1.16b},%2.8b"
11219 : "+w"(result)
11220 : "w"(tab), "w"(idx)
11221 : /* No clobbers */);
11222 return result;
11225 __extension__ extern __inline poly8x8_t
11226 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11227 vqtbx1_p8 (poly8x8_t r, poly8x16_t tab, uint8x8_t idx)
11229 poly8x8_t result = r;
11230 __asm__ ("tbx %0.8b,{%1.16b},%2.8b"
11231 : "+w"(result)
11232 : "w"(tab), "w"(idx)
11233 : /* No clobbers */);
11234 return result;
11237 __extension__ extern __inline int8x16_t
11238 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11239 vqtbx1q_s8 (int8x16_t r, int8x16_t tab, uint8x16_t idx)
11241 int8x16_t result = r;
11242 __asm__ ("tbx %0.16b,{%1.16b},%2.16b"
11243 : "+w"(result)
11244 : "w"(tab), "w"(idx)
11245 : /* No clobbers */);
11246 return result;
11249 __extension__ extern __inline uint8x16_t
11250 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11251 vqtbx1q_u8 (uint8x16_t r, uint8x16_t tab, uint8x16_t idx)
11253 uint8x16_t result = r;
11254 __asm__ ("tbx %0.16b,{%1.16b},%2.16b"
11255 : "+w"(result)
11256 : "w"(tab), "w"(idx)
11257 : /* No clobbers */);
11258 return result;
11261 __extension__ extern __inline poly8x16_t
11262 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11263 vqtbx1q_p8 (poly8x16_t r, poly8x16_t tab, uint8x16_t idx)
11265 poly8x16_t result = r;
11266 __asm__ ("tbx %0.16b,{%1.16b},%2.16b"
11267 : "+w"(result)
11268 : "w"(tab), "w"(idx)
11269 : /* No clobbers */);
11270 return result;
11273 /* V7 legacy table intrinsics. */
11275 __extension__ extern __inline int8x8_t
11276 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11277 vtbl1_s8 (int8x8_t tab, int8x8_t idx)
11279 int8x8_t result;
11280 int8x16_t temp = vcombine_s8 (tab, vcreate_s8 (__AARCH64_UINT64_C (0x0)));
11281 __asm__ ("tbl %0.8b, {%1.16b}, %2.8b"
11282 : "=w"(result)
11283 : "w"(temp), "w"(idx)
11284 : /* No clobbers */);
11285 return result;
11288 __extension__ extern __inline uint8x8_t
11289 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11290 vtbl1_u8 (uint8x8_t tab, uint8x8_t idx)
11292 uint8x8_t result;
11293 uint8x16_t temp = vcombine_u8 (tab, vcreate_u8 (__AARCH64_UINT64_C (0x0)));
11294 __asm__ ("tbl %0.8b, {%1.16b}, %2.8b"
11295 : "=w"(result)
11296 : "w"(temp), "w"(idx)
11297 : /* No clobbers */);
11298 return result;
11301 __extension__ extern __inline poly8x8_t
11302 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11303 vtbl1_p8 (poly8x8_t tab, uint8x8_t idx)
11305 poly8x8_t result;
11306 poly8x16_t temp = vcombine_p8 (tab, vcreate_p8 (__AARCH64_UINT64_C (0x0)));
11307 __asm__ ("tbl %0.8b, {%1.16b}, %2.8b"
11308 : "=w"(result)
11309 : "w"(temp), "w"(idx)
11310 : /* No clobbers */);
11311 return result;
11314 __extension__ extern __inline int8x8_t
11315 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11316 vtbl2_s8 (int8x8x2_t tab, int8x8_t idx)
11318 int8x8_t result;
11319 int8x16_t temp = vcombine_s8 (tab.val[0], tab.val[1]);
11320 __asm__ ("tbl %0.8b, {%1.16b}, %2.8b"
11321 : "=w"(result)
11322 : "w"(temp), "w"(idx)
11323 : /* No clobbers */);
11324 return result;
11327 __extension__ extern __inline uint8x8_t
11328 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11329 vtbl2_u8 (uint8x8x2_t tab, uint8x8_t idx)
11331 uint8x8_t result;
11332 uint8x16_t temp = vcombine_u8 (tab.val[0], tab.val[1]);
11333 __asm__ ("tbl %0.8b, {%1.16b}, %2.8b"
11334 : "=w"(result)
11335 : "w"(temp), "w"(idx)
11336 : /* No clobbers */);
11337 return result;
11340 __extension__ extern __inline poly8x8_t
11341 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11342 vtbl2_p8 (poly8x8x2_t tab, uint8x8_t idx)
11344 poly8x8_t result;
11345 poly8x16_t temp = vcombine_p8 (tab.val[0], tab.val[1]);
11346 __asm__ ("tbl %0.8b, {%1.16b}, %2.8b"
11347 : "=w"(result)
11348 : "w"(temp), "w"(idx)
11349 : /* No clobbers */);
11350 return result;
11353 __extension__ extern __inline int8x8_t
11354 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11355 vtbl3_s8 (int8x8x3_t tab, int8x8_t idx)
11357 int8x8_t result;
11358 int8x16x2_t temp;
11359 __builtin_aarch64_simd_oi __o;
11360 temp.val[0] = vcombine_s8 (tab.val[0], tab.val[1]);
11361 temp.val[1] = vcombine_s8 (tab.val[2], vcreate_s8 (__AARCH64_UINT64_C (0x0)));
11362 __o = __builtin_aarch64_set_qregoiv16qi (__o,
11363 (int8x16_t) temp.val[0], 0);
11364 __o = __builtin_aarch64_set_qregoiv16qi (__o,
11365 (int8x16_t) temp.val[1], 1);
11366 result = __builtin_aarch64_tbl3v8qi (__o, idx);
11367 return result;
11370 __extension__ extern __inline uint8x8_t
11371 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11372 vtbl3_u8 (uint8x8x3_t tab, uint8x8_t idx)
11374 uint8x8_t result;
11375 uint8x16x2_t temp;
11376 __builtin_aarch64_simd_oi __o;
11377 temp.val[0] = vcombine_u8 (tab.val[0], tab.val[1]);
11378 temp.val[1] = vcombine_u8 (tab.val[2], vcreate_u8 (__AARCH64_UINT64_C (0x0)));
11379 __o = __builtin_aarch64_set_qregoiv16qi (__o,
11380 (int8x16_t) temp.val[0], 0);
11381 __o = __builtin_aarch64_set_qregoiv16qi (__o,
11382 (int8x16_t) temp.val[1], 1);
11383 result = (uint8x8_t)__builtin_aarch64_tbl3v8qi (__o, (int8x8_t)idx);
11384 return result;
11387 __extension__ extern __inline poly8x8_t
11388 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11389 vtbl3_p8 (poly8x8x3_t tab, uint8x8_t idx)
11391 poly8x8_t result;
11392 poly8x16x2_t temp;
11393 __builtin_aarch64_simd_oi __o;
11394 temp.val[0] = vcombine_p8 (tab.val[0], tab.val[1]);
11395 temp.val[1] = vcombine_p8 (tab.val[2], vcreate_p8 (__AARCH64_UINT64_C (0x0)));
11396 __o = __builtin_aarch64_set_qregoiv16qi (__o,
11397 (int8x16_t) temp.val[0], 0);
11398 __o = __builtin_aarch64_set_qregoiv16qi (__o,
11399 (int8x16_t) temp.val[1], 1);
11400 result = (poly8x8_t)__builtin_aarch64_tbl3v8qi (__o, (int8x8_t)idx);
11401 return result;
11404 __extension__ extern __inline int8x8_t
11405 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11406 vtbl4_s8 (int8x8x4_t tab, int8x8_t idx)
11408 int8x8_t result;
11409 int8x16x2_t temp;
11410 __builtin_aarch64_simd_oi __o;
11411 temp.val[0] = vcombine_s8 (tab.val[0], tab.val[1]);
11412 temp.val[1] = vcombine_s8 (tab.val[2], tab.val[3]);
11413 __o = __builtin_aarch64_set_qregoiv16qi (__o,
11414 (int8x16_t) temp.val[0], 0);
11415 __o = __builtin_aarch64_set_qregoiv16qi (__o,
11416 (int8x16_t) temp.val[1], 1);
11417 result = __builtin_aarch64_tbl3v8qi (__o, idx);
11418 return result;
11421 __extension__ extern __inline uint8x8_t
11422 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11423 vtbl4_u8 (uint8x8x4_t tab, uint8x8_t idx)
11425 uint8x8_t result;
11426 uint8x16x2_t temp;
11427 __builtin_aarch64_simd_oi __o;
11428 temp.val[0] = vcombine_u8 (tab.val[0], tab.val[1]);
11429 temp.val[1] = vcombine_u8 (tab.val[2], tab.val[3]);
11430 __o = __builtin_aarch64_set_qregoiv16qi (__o,
11431 (int8x16_t) temp.val[0], 0);
11432 __o = __builtin_aarch64_set_qregoiv16qi (__o,
11433 (int8x16_t) temp.val[1], 1);
11434 result = (uint8x8_t)__builtin_aarch64_tbl3v8qi (__o, (int8x8_t)idx);
11435 return result;
11438 __extension__ extern __inline poly8x8_t
11439 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11440 vtbl4_p8 (poly8x8x4_t tab, uint8x8_t idx)
11442 poly8x8_t result;
11443 poly8x16x2_t temp;
11444 __builtin_aarch64_simd_oi __o;
11445 temp.val[0] = vcombine_p8 (tab.val[0], tab.val[1]);
11446 temp.val[1] = vcombine_p8 (tab.val[2], tab.val[3]);
11447 __o = __builtin_aarch64_set_qregoiv16qi (__o,
11448 (int8x16_t) temp.val[0], 0);
11449 __o = __builtin_aarch64_set_qregoiv16qi (__o,
11450 (int8x16_t) temp.val[1], 1);
11451 result = (poly8x8_t)__builtin_aarch64_tbl3v8qi (__o, (int8x8_t)idx);
11452 return result;
11455 __extension__ extern __inline int8x8_t
11456 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11457 vtbx2_s8 (int8x8_t r, int8x8x2_t tab, int8x8_t idx)
11459 int8x8_t result = r;
11460 int8x16_t temp = vcombine_s8 (tab.val[0], tab.val[1]);
11461 __asm__ ("tbx %0.8b, {%1.16b}, %2.8b"
11462 : "+w"(result)
11463 : "w"(temp), "w"(idx)
11464 : /* No clobbers */);
11465 return result;
11468 __extension__ extern __inline uint8x8_t
11469 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11470 vtbx2_u8 (uint8x8_t r, uint8x8x2_t tab, uint8x8_t idx)
11472 uint8x8_t result = r;
11473 uint8x16_t temp = vcombine_u8 (tab.val[0], tab.val[1]);
11474 __asm__ ("tbx %0.8b, {%1.16b}, %2.8b"
11475 : "+w"(result)
11476 : "w"(temp), "w"(idx)
11477 : /* No clobbers */);
11478 return result;
11481 __extension__ extern __inline poly8x8_t
11482 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11483 vtbx2_p8 (poly8x8_t r, poly8x8x2_t tab, uint8x8_t idx)
11485 poly8x8_t result = r;
11486 poly8x16_t temp = vcombine_p8 (tab.val[0], tab.val[1]);
11487 __asm__ ("tbx %0.8b, {%1.16b}, %2.8b"
11488 : "+w"(result)
11489 : "w"(temp), "w"(idx)
11490 : /* No clobbers */);
11491 return result;
11494 /* End of temporary inline asm. */
11496 /* Start of optimal implementations in approved order. */
11498 /* vabd. */
11500 __extension__ extern __inline float32_t
11501 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11502 vabds_f32 (float32_t __a, float32_t __b)
11504 return __builtin_aarch64_fabdsf (__a, __b);
11507 __extension__ extern __inline float64_t
11508 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11509 vabdd_f64 (float64_t __a, float64_t __b)
11511 return __builtin_aarch64_fabddf (__a, __b);
11514 __extension__ extern __inline float32x2_t
11515 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11516 vabd_f32 (float32x2_t __a, float32x2_t __b)
11518 return __builtin_aarch64_fabdv2sf (__a, __b);
11521 __extension__ extern __inline float64x1_t
11522 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11523 vabd_f64 (float64x1_t __a, float64x1_t __b)
11525 return (float64x1_t) {vabdd_f64 (vget_lane_f64 (__a, 0),
11526 vget_lane_f64 (__b, 0))};
11529 __extension__ extern __inline float32x4_t
11530 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11531 vabdq_f32 (float32x4_t __a, float32x4_t __b)
11533 return __builtin_aarch64_fabdv4sf (__a, __b);
11536 __extension__ extern __inline float64x2_t
11537 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11538 vabdq_f64 (float64x2_t __a, float64x2_t __b)
11540 return __builtin_aarch64_fabdv2df (__a, __b);
11543 /* vabs */
11545 __extension__ extern __inline float32x2_t
11546 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11547 vabs_f32 (float32x2_t __a)
11549 return __builtin_aarch64_absv2sf (__a);
11552 __extension__ extern __inline float64x1_t
11553 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11554 vabs_f64 (float64x1_t __a)
11556 return (float64x1_t) {__builtin_fabs (__a[0])};
11559 __extension__ extern __inline int8x8_t
11560 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11561 vabs_s8 (int8x8_t __a)
11563 return __builtin_aarch64_absv8qi (__a);
11566 __extension__ extern __inline int16x4_t
11567 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11568 vabs_s16 (int16x4_t __a)
11570 return __builtin_aarch64_absv4hi (__a);
11573 __extension__ extern __inline int32x2_t
11574 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11575 vabs_s32 (int32x2_t __a)
11577 return __builtin_aarch64_absv2si (__a);
11580 __extension__ extern __inline int64x1_t
11581 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11582 vabs_s64 (int64x1_t __a)
11584 return (int64x1_t) {__builtin_aarch64_absdi (__a[0])};
11587 __extension__ extern __inline float32x4_t
11588 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11589 vabsq_f32 (float32x4_t __a)
11591 return __builtin_aarch64_absv4sf (__a);
11594 __extension__ extern __inline float64x2_t
11595 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11596 vabsq_f64 (float64x2_t __a)
11598 return __builtin_aarch64_absv2df (__a);
11601 __extension__ extern __inline int8x16_t
11602 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11603 vabsq_s8 (int8x16_t __a)
11605 return __builtin_aarch64_absv16qi (__a);
11608 __extension__ extern __inline int16x8_t
11609 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11610 vabsq_s16 (int16x8_t __a)
11612 return __builtin_aarch64_absv8hi (__a);
11615 __extension__ extern __inline int32x4_t
11616 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11617 vabsq_s32 (int32x4_t __a)
11619 return __builtin_aarch64_absv4si (__a);
11622 __extension__ extern __inline int64x2_t
11623 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11624 vabsq_s64 (int64x2_t __a)
11626 return __builtin_aarch64_absv2di (__a);
11629 /* vadd */
11631 __extension__ extern __inline int64_t
11632 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11633 vaddd_s64 (int64_t __a, int64_t __b)
11635 return __a + __b;
11638 __extension__ extern __inline uint64_t
11639 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11640 vaddd_u64 (uint64_t __a, uint64_t __b)
11642 return __a + __b;
11645 /* vaddv */
11647 __extension__ extern __inline int8_t
11648 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11649 vaddv_s8 (int8x8_t __a)
11651 return __builtin_aarch64_reduc_plus_scal_v8qi (__a);
11654 __extension__ extern __inline int16_t
11655 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11656 vaddv_s16 (int16x4_t __a)
11658 return __builtin_aarch64_reduc_plus_scal_v4hi (__a);
11661 __extension__ extern __inline int32_t
11662 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11663 vaddv_s32 (int32x2_t __a)
11665 return __builtin_aarch64_reduc_plus_scal_v2si (__a);
11668 __extension__ extern __inline uint8_t
11669 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11670 vaddv_u8 (uint8x8_t __a)
11672 return (uint8_t) __builtin_aarch64_reduc_plus_scal_v8qi ((int8x8_t) __a);
11675 __extension__ extern __inline uint16_t
11676 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11677 vaddv_u16 (uint16x4_t __a)
11679 return (uint16_t) __builtin_aarch64_reduc_plus_scal_v4hi ((int16x4_t) __a);
11682 __extension__ extern __inline uint32_t
11683 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11684 vaddv_u32 (uint32x2_t __a)
11686 return (int32_t) __builtin_aarch64_reduc_plus_scal_v2si ((int32x2_t) __a);
11689 __extension__ extern __inline int8_t
11690 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11691 vaddvq_s8 (int8x16_t __a)
11693 return __builtin_aarch64_reduc_plus_scal_v16qi (__a);
11696 __extension__ extern __inline int16_t
11697 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11698 vaddvq_s16 (int16x8_t __a)
11700 return __builtin_aarch64_reduc_plus_scal_v8hi (__a);
11703 __extension__ extern __inline int32_t
11704 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11705 vaddvq_s32 (int32x4_t __a)
11707 return __builtin_aarch64_reduc_plus_scal_v4si (__a);
11710 __extension__ extern __inline int64_t
11711 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11712 vaddvq_s64 (int64x2_t __a)
11714 return __builtin_aarch64_reduc_plus_scal_v2di (__a);
11717 __extension__ extern __inline uint8_t
11718 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11719 vaddvq_u8 (uint8x16_t __a)
11721 return (uint8_t) __builtin_aarch64_reduc_plus_scal_v16qi ((int8x16_t) __a);
11724 __extension__ extern __inline uint16_t
11725 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11726 vaddvq_u16 (uint16x8_t __a)
11728 return (uint16_t) __builtin_aarch64_reduc_plus_scal_v8hi ((int16x8_t) __a);
11731 __extension__ extern __inline uint32_t
11732 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11733 vaddvq_u32 (uint32x4_t __a)
11735 return (uint32_t) __builtin_aarch64_reduc_plus_scal_v4si ((int32x4_t) __a);
11738 __extension__ extern __inline uint64_t
11739 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11740 vaddvq_u64 (uint64x2_t __a)
11742 return (uint64_t) __builtin_aarch64_reduc_plus_scal_v2di ((int64x2_t) __a);
11745 __extension__ extern __inline float32_t
11746 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11747 vaddv_f32 (float32x2_t __a)
11749 return __builtin_aarch64_reduc_plus_scal_v2sf (__a);
11752 __extension__ extern __inline float32_t
11753 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11754 vaddvq_f32 (float32x4_t __a)
11756 return __builtin_aarch64_reduc_plus_scal_v4sf (__a);
11759 __extension__ extern __inline float64_t
11760 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11761 vaddvq_f64 (float64x2_t __a)
11763 return __builtin_aarch64_reduc_plus_scal_v2df (__a);
11766 /* vbsl */
11768 __extension__ extern __inline float16x4_t
11769 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11770 vbsl_f16 (uint16x4_t __a, float16x4_t __b, float16x4_t __c)
11772 return __builtin_aarch64_simd_bslv4hf_suss (__a, __b, __c);
11775 __extension__ extern __inline float32x2_t
11776 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11777 vbsl_f32 (uint32x2_t __a, float32x2_t __b, float32x2_t __c)
11779 return __builtin_aarch64_simd_bslv2sf_suss (__a, __b, __c);
11782 __extension__ extern __inline float64x1_t
11783 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11784 vbsl_f64 (uint64x1_t __a, float64x1_t __b, float64x1_t __c)
11786 return (float64x1_t)
11787 { __builtin_aarch64_simd_bsldf_suss (__a[0], __b[0], __c[0]) };
11790 __extension__ extern __inline poly8x8_t
11791 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11792 vbsl_p8 (uint8x8_t __a, poly8x8_t __b, poly8x8_t __c)
11794 return __builtin_aarch64_simd_bslv8qi_pupp (__a, __b, __c);
11797 __extension__ extern __inline poly16x4_t
11798 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11799 vbsl_p16 (uint16x4_t __a, poly16x4_t __b, poly16x4_t __c)
11801 return __builtin_aarch64_simd_bslv4hi_pupp (__a, __b, __c);
11803 __extension__ extern __inline poly64x1_t
11804 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11805 vbsl_p64 (uint64x1_t __a, poly64x1_t __b, poly64x1_t __c)
11807 return (poly64x1_t)
11808 {__builtin_aarch64_simd_bsldi_pupp (__a[0], __b[0], __c[0])};
11811 __extension__ extern __inline int8x8_t
11812 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11813 vbsl_s8 (uint8x8_t __a, int8x8_t __b, int8x8_t __c)
11815 return __builtin_aarch64_simd_bslv8qi_suss (__a, __b, __c);
11818 __extension__ extern __inline int16x4_t
11819 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11820 vbsl_s16 (uint16x4_t __a, int16x4_t __b, int16x4_t __c)
11822 return __builtin_aarch64_simd_bslv4hi_suss (__a, __b, __c);
11825 __extension__ extern __inline int32x2_t
11826 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11827 vbsl_s32 (uint32x2_t __a, int32x2_t __b, int32x2_t __c)
11829 return __builtin_aarch64_simd_bslv2si_suss (__a, __b, __c);
11832 __extension__ extern __inline int64x1_t
11833 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11834 vbsl_s64 (uint64x1_t __a, int64x1_t __b, int64x1_t __c)
11836 return (int64x1_t)
11837 {__builtin_aarch64_simd_bsldi_suss (__a[0], __b[0], __c[0])};
11840 __extension__ extern __inline uint8x8_t
11841 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11842 vbsl_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c)
11844 return __builtin_aarch64_simd_bslv8qi_uuuu (__a, __b, __c);
11847 __extension__ extern __inline uint16x4_t
11848 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11849 vbsl_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c)
11851 return __builtin_aarch64_simd_bslv4hi_uuuu (__a, __b, __c);
11854 __extension__ extern __inline uint32x2_t
11855 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11856 vbsl_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c)
11858 return __builtin_aarch64_simd_bslv2si_uuuu (__a, __b, __c);
11861 __extension__ extern __inline uint64x1_t
11862 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11863 vbsl_u64 (uint64x1_t __a, uint64x1_t __b, uint64x1_t __c)
11865 return (uint64x1_t)
11866 {__builtin_aarch64_simd_bsldi_uuuu (__a[0], __b[0], __c[0])};
11869 __extension__ extern __inline float16x8_t
11870 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11871 vbslq_f16 (uint16x8_t __a, float16x8_t __b, float16x8_t __c)
11873 return __builtin_aarch64_simd_bslv8hf_suss (__a, __b, __c);
11876 __extension__ extern __inline float32x4_t
11877 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11878 vbslq_f32 (uint32x4_t __a, float32x4_t __b, float32x4_t __c)
11880 return __builtin_aarch64_simd_bslv4sf_suss (__a, __b, __c);
11883 __extension__ extern __inline float64x2_t
11884 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11885 vbslq_f64 (uint64x2_t __a, float64x2_t __b, float64x2_t __c)
11887 return __builtin_aarch64_simd_bslv2df_suss (__a, __b, __c);
11890 __extension__ extern __inline poly8x16_t
11891 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11892 vbslq_p8 (uint8x16_t __a, poly8x16_t __b, poly8x16_t __c)
11894 return __builtin_aarch64_simd_bslv16qi_pupp (__a, __b, __c);
11897 __extension__ extern __inline poly16x8_t
11898 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11899 vbslq_p16 (uint16x8_t __a, poly16x8_t __b, poly16x8_t __c)
11901 return __builtin_aarch64_simd_bslv8hi_pupp (__a, __b, __c);
11904 __extension__ extern __inline int8x16_t
11905 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11906 vbslq_s8 (uint8x16_t __a, int8x16_t __b, int8x16_t __c)
11908 return __builtin_aarch64_simd_bslv16qi_suss (__a, __b, __c);
11911 __extension__ extern __inline int16x8_t
11912 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11913 vbslq_s16 (uint16x8_t __a, int16x8_t __b, int16x8_t __c)
11915 return __builtin_aarch64_simd_bslv8hi_suss (__a, __b, __c);
11918 __extension__ extern __inline poly64x2_t
11919 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11920 vbslq_p64 (uint64x2_t __a, poly64x2_t __b, poly64x2_t __c)
11922 return __builtin_aarch64_simd_bslv2di_pupp (__a, __b, __c);
11925 __extension__ extern __inline int32x4_t
11926 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11927 vbslq_s32 (uint32x4_t __a, int32x4_t __b, int32x4_t __c)
11929 return __builtin_aarch64_simd_bslv4si_suss (__a, __b, __c);
11932 __extension__ extern __inline int64x2_t
11933 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11934 vbslq_s64 (uint64x2_t __a, int64x2_t __b, int64x2_t __c)
11936 return __builtin_aarch64_simd_bslv2di_suss (__a, __b, __c);
11939 __extension__ extern __inline uint8x16_t
11940 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11941 vbslq_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c)
11943 return __builtin_aarch64_simd_bslv16qi_uuuu (__a, __b, __c);
11946 __extension__ extern __inline uint16x8_t
11947 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11948 vbslq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
11950 return __builtin_aarch64_simd_bslv8hi_uuuu (__a, __b, __c);
11953 __extension__ extern __inline uint32x4_t
11954 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11955 vbslq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
11957 return __builtin_aarch64_simd_bslv4si_uuuu (__a, __b, __c);
11960 __extension__ extern __inline uint64x2_t
11961 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11962 vbslq_u64 (uint64x2_t __a, uint64x2_t __b, uint64x2_t __c)
11964 return __builtin_aarch64_simd_bslv2di_uuuu (__a, __b, __c);
11967 /* ARMv8.1-A instrinsics. */
11968 #pragma GCC push_options
11969 #pragma GCC target ("arch=armv8.1-a")
11971 __extension__ extern __inline int16x4_t
11972 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11973 vqrdmlah_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c)
11975 return __builtin_aarch64_sqrdmlahv4hi (__a, __b, __c);
11978 __extension__ extern __inline int32x2_t
11979 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11980 vqrdmlah_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c)
11982 return __builtin_aarch64_sqrdmlahv2si (__a, __b, __c);
11985 __extension__ extern __inline int16x8_t
11986 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11987 vqrdmlahq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
11989 return __builtin_aarch64_sqrdmlahv8hi (__a, __b, __c);
11992 __extension__ extern __inline int32x4_t
11993 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11994 vqrdmlahq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
11996 return __builtin_aarch64_sqrdmlahv4si (__a, __b, __c);
11999 __extension__ extern __inline int16x4_t
12000 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12001 vqrdmlsh_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c)
12003 return __builtin_aarch64_sqrdmlshv4hi (__a, __b, __c);
12006 __extension__ extern __inline int32x2_t
12007 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12008 vqrdmlsh_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c)
12010 return __builtin_aarch64_sqrdmlshv2si (__a, __b, __c);
12013 __extension__ extern __inline int16x8_t
12014 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12015 vqrdmlshq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
12017 return __builtin_aarch64_sqrdmlshv8hi (__a, __b, __c);
12020 __extension__ extern __inline int32x4_t
12021 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12022 vqrdmlshq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
12024 return __builtin_aarch64_sqrdmlshv4si (__a, __b, __c);
12027 __extension__ extern __inline int16x4_t
12028 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12029 vqrdmlah_laneq_s16 (int16x4_t __a, int16x4_t __b, int16x8_t __c, const int __d)
12031 return __builtin_aarch64_sqrdmlah_laneqv4hi (__a, __b, __c, __d);
12034 __extension__ extern __inline int32x2_t
12035 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12036 vqrdmlah_laneq_s32 (int32x2_t __a, int32x2_t __b, int32x4_t __c, const int __d)
12038 return __builtin_aarch64_sqrdmlah_laneqv2si (__a, __b, __c, __d);
12041 __extension__ extern __inline int16x8_t
12042 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12043 vqrdmlahq_laneq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c, const int __d)
12045 return __builtin_aarch64_sqrdmlah_laneqv8hi (__a, __b, __c, __d);
12048 __extension__ extern __inline int32x4_t
12049 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12050 vqrdmlahq_laneq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c, const int __d)
12052 return __builtin_aarch64_sqrdmlah_laneqv4si (__a, __b, __c, __d);
12055 __extension__ extern __inline int16x4_t
12056 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12057 vqrdmlsh_laneq_s16 (int16x4_t __a, int16x4_t __b, int16x8_t __c, const int __d)
12059 return __builtin_aarch64_sqrdmlsh_laneqv4hi (__a, __b, __c, __d);
12062 __extension__ extern __inline int32x2_t
12063 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12064 vqrdmlsh_laneq_s32 (int32x2_t __a, int32x2_t __b, int32x4_t __c, const int __d)
12066 return __builtin_aarch64_sqrdmlsh_laneqv2si (__a, __b, __c, __d);
12069 __extension__ extern __inline int16x8_t
12070 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12071 vqrdmlshq_laneq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c, const int __d)
12073 return __builtin_aarch64_sqrdmlsh_laneqv8hi (__a, __b, __c, __d);
12076 __extension__ extern __inline int32x4_t
12077 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12078 vqrdmlshq_laneq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c, const int __d)
12080 return __builtin_aarch64_sqrdmlsh_laneqv4si (__a, __b, __c, __d);
12083 __extension__ extern __inline int16x4_t
12084 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12085 vqrdmlah_lane_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
12087 return __builtin_aarch64_sqrdmlah_lanev4hi (__a, __b, __c, __d);
12090 __extension__ extern __inline int32x2_t
12091 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12092 vqrdmlah_lane_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
12094 return __builtin_aarch64_sqrdmlah_lanev2si (__a, __b, __c, __d);
12097 __extension__ extern __inline int16x8_t
12098 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12099 vqrdmlahq_lane_s16 (int16x8_t __a, int16x8_t __b, int16x4_t __c, const int __d)
12101 return __builtin_aarch64_sqrdmlah_lanev8hi (__a, __b, __c, __d);
12104 __extension__ extern __inline int32x4_t
12105 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12106 vqrdmlahq_lane_s32 (int32x4_t __a, int32x4_t __b, int32x2_t __c, const int __d)
12108 return __builtin_aarch64_sqrdmlah_lanev4si (__a, __b, __c, __d);
12111 __extension__ extern __inline int16_t
12112 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12113 vqrdmlahh_s16 (int16_t __a, int16_t __b, int16_t __c)
12115 return (int16_t) __builtin_aarch64_sqrdmlahhi (__a, __b, __c);
12118 __extension__ extern __inline int16_t
12119 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12120 vqrdmlahh_lane_s16 (int16_t __a, int16_t __b, int16x4_t __c, const int __d)
12122 return __builtin_aarch64_sqrdmlah_lanehi (__a, __b, __c, __d);
12125 __extension__ extern __inline int16_t
12126 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12127 vqrdmlahh_laneq_s16 (int16_t __a, int16_t __b, int16x8_t __c, const int __d)
12129 return __builtin_aarch64_sqrdmlah_laneqhi (__a, __b, __c, __d);
12132 __extension__ extern __inline int32_t
12133 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12134 vqrdmlahs_s32 (int32_t __a, int32_t __b, int32_t __c)
12136 return (int32_t) __builtin_aarch64_sqrdmlahsi (__a, __b, __c);
12139 __extension__ extern __inline int32_t
12140 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12141 vqrdmlahs_lane_s32 (int32_t __a, int32_t __b, int32x2_t __c, const int __d)
12143 return __builtin_aarch64_sqrdmlah_lanesi (__a, __b, __c, __d);
12146 __extension__ extern __inline int32_t
12147 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12148 vqrdmlahs_laneq_s32 (int32_t __a, int32_t __b, int32x4_t __c, const int __d)
12150 return __builtin_aarch64_sqrdmlah_laneqsi (__a, __b, __c, __d);
12153 __extension__ extern __inline int16x4_t
12154 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12155 vqrdmlsh_lane_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
12157 return __builtin_aarch64_sqrdmlsh_lanev4hi (__a, __b, __c, __d);
12160 __extension__ extern __inline int32x2_t
12161 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12162 vqrdmlsh_lane_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
12164 return __builtin_aarch64_sqrdmlsh_lanev2si (__a, __b, __c, __d);
12167 __extension__ extern __inline int16x8_t
12168 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12169 vqrdmlshq_lane_s16 (int16x8_t __a, int16x8_t __b, int16x4_t __c, const int __d)
12171 return __builtin_aarch64_sqrdmlsh_lanev8hi (__a, __b, __c, __d);
12174 __extension__ extern __inline int32x4_t
12175 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12176 vqrdmlshq_lane_s32 (int32x4_t __a, int32x4_t __b, int32x2_t __c, const int __d)
12178 return __builtin_aarch64_sqrdmlsh_lanev4si (__a, __b, __c, __d);
12181 __extension__ extern __inline int16_t
12182 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12183 vqrdmlshh_s16 (int16_t __a, int16_t __b, int16_t __c)
12185 return (int16_t) __builtin_aarch64_sqrdmlshhi (__a, __b, __c);
12188 __extension__ extern __inline int16_t
12189 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12190 vqrdmlshh_lane_s16 (int16_t __a, int16_t __b, int16x4_t __c, const int __d)
12192 return __builtin_aarch64_sqrdmlsh_lanehi (__a, __b, __c, __d);
12195 __extension__ extern __inline int16_t
12196 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12197 vqrdmlshh_laneq_s16 (int16_t __a, int16_t __b, int16x8_t __c, const int __d)
12199 return __builtin_aarch64_sqrdmlsh_laneqhi (__a, __b, __c, __d);
12202 __extension__ extern __inline int32_t
12203 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12204 vqrdmlshs_s32 (int32_t __a, int32_t __b, int32_t __c)
12206 return (int32_t) __builtin_aarch64_sqrdmlshsi (__a, __b, __c);
12209 __extension__ extern __inline int32_t
12210 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12211 vqrdmlshs_lane_s32 (int32_t __a, int32_t __b, int32x2_t __c, const int __d)
12213 return __builtin_aarch64_sqrdmlsh_lanesi (__a, __b, __c, __d);
12216 __extension__ extern __inline int32_t
12217 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12218 vqrdmlshs_laneq_s32 (int32_t __a, int32_t __b, int32x4_t __c, const int __d)
12220 return __builtin_aarch64_sqrdmlsh_laneqsi (__a, __b, __c, __d);
12222 #pragma GCC pop_options
12224 #pragma GCC push_options
12225 #pragma GCC target ("+nothing+crypto")
12226 /* vaes */
12228 __extension__ extern __inline uint8x16_t
12229 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12230 vaeseq_u8 (uint8x16_t data, uint8x16_t key)
12232 return __builtin_aarch64_crypto_aesev16qi_uuu (data, key);
12235 __extension__ extern __inline uint8x16_t
12236 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12237 vaesdq_u8 (uint8x16_t data, uint8x16_t key)
12239 return __builtin_aarch64_crypto_aesdv16qi_uuu (data, key);
12242 __extension__ extern __inline uint8x16_t
12243 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12244 vaesmcq_u8 (uint8x16_t data)
12246 return __builtin_aarch64_crypto_aesmcv16qi_uu (data);
12249 __extension__ extern __inline uint8x16_t
12250 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12251 vaesimcq_u8 (uint8x16_t data)
12253 return __builtin_aarch64_crypto_aesimcv16qi_uu (data);
12255 #pragma GCC pop_options
12257 /* vcage */
12259 __extension__ extern __inline uint64x1_t
12260 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12261 vcage_f64 (float64x1_t __a, float64x1_t __b)
12263 return vabs_f64 (__a) >= vabs_f64 (__b);
12266 __extension__ extern __inline uint32_t
12267 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12268 vcages_f32 (float32_t __a, float32_t __b)
12270 return __builtin_fabsf (__a) >= __builtin_fabsf (__b) ? -1 : 0;
12273 __extension__ extern __inline uint32x2_t
12274 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12275 vcage_f32 (float32x2_t __a, float32x2_t __b)
12277 return vabs_f32 (__a) >= vabs_f32 (__b);
12280 __extension__ extern __inline uint32x4_t
12281 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12282 vcageq_f32 (float32x4_t __a, float32x4_t __b)
12284 return vabsq_f32 (__a) >= vabsq_f32 (__b);
12287 __extension__ extern __inline uint64_t
12288 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12289 vcaged_f64 (float64_t __a, float64_t __b)
12291 return __builtin_fabs (__a) >= __builtin_fabs (__b) ? -1 : 0;
12294 __extension__ extern __inline uint64x2_t
12295 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12296 vcageq_f64 (float64x2_t __a, float64x2_t __b)
12298 return vabsq_f64 (__a) >= vabsq_f64 (__b);
12301 /* vcagt */
12303 __extension__ extern __inline uint32_t
12304 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12305 vcagts_f32 (float32_t __a, float32_t __b)
12307 return __builtin_fabsf (__a) > __builtin_fabsf (__b) ? -1 : 0;
12310 __extension__ extern __inline uint32x2_t
12311 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12312 vcagt_f32 (float32x2_t __a, float32x2_t __b)
12314 return vabs_f32 (__a) > vabs_f32 (__b);
12317 __extension__ extern __inline uint64x1_t
12318 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12319 vcagt_f64 (float64x1_t __a, float64x1_t __b)
12321 return vabs_f64 (__a) > vabs_f64 (__b);
12324 __extension__ extern __inline uint32x4_t
12325 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12326 vcagtq_f32 (float32x4_t __a, float32x4_t __b)
12328 return vabsq_f32 (__a) > vabsq_f32 (__b);
12331 __extension__ extern __inline uint64_t
12332 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12333 vcagtd_f64 (float64_t __a, float64_t __b)
12335 return __builtin_fabs (__a) > __builtin_fabs (__b) ? -1 : 0;
12338 __extension__ extern __inline uint64x2_t
12339 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12340 vcagtq_f64 (float64x2_t __a, float64x2_t __b)
12342 return vabsq_f64 (__a) > vabsq_f64 (__b);
12345 /* vcale */
12347 __extension__ extern __inline uint32x2_t
12348 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12349 vcale_f32 (float32x2_t __a, float32x2_t __b)
12351 return vabs_f32 (__a) <= vabs_f32 (__b);
12354 __extension__ extern __inline uint64x1_t
12355 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12356 vcale_f64 (float64x1_t __a, float64x1_t __b)
12358 return vabs_f64 (__a) <= vabs_f64 (__b);
12361 __extension__ extern __inline uint64_t
12362 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12363 vcaled_f64 (float64_t __a, float64_t __b)
12365 return __builtin_fabs (__a) <= __builtin_fabs (__b) ? -1 : 0;
12368 __extension__ extern __inline uint32_t
12369 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12370 vcales_f32 (float32_t __a, float32_t __b)
12372 return __builtin_fabsf (__a) <= __builtin_fabsf (__b) ? -1 : 0;
12375 __extension__ extern __inline uint32x4_t
12376 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12377 vcaleq_f32 (float32x4_t __a, float32x4_t __b)
12379 return vabsq_f32 (__a) <= vabsq_f32 (__b);
12382 __extension__ extern __inline uint64x2_t
12383 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12384 vcaleq_f64 (float64x2_t __a, float64x2_t __b)
12386 return vabsq_f64 (__a) <= vabsq_f64 (__b);
12389 /* vcalt */
12391 __extension__ extern __inline uint32x2_t
12392 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12393 vcalt_f32 (float32x2_t __a, float32x2_t __b)
12395 return vabs_f32 (__a) < vabs_f32 (__b);
12398 __extension__ extern __inline uint64x1_t
12399 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12400 vcalt_f64 (float64x1_t __a, float64x1_t __b)
12402 return vabs_f64 (__a) < vabs_f64 (__b);
12405 __extension__ extern __inline uint64_t
12406 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12407 vcaltd_f64 (float64_t __a, float64_t __b)
12409 return __builtin_fabs (__a) < __builtin_fabs (__b) ? -1 : 0;
12412 __extension__ extern __inline uint32x4_t
12413 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12414 vcaltq_f32 (float32x4_t __a, float32x4_t __b)
12416 return vabsq_f32 (__a) < vabsq_f32 (__b);
12419 __extension__ extern __inline uint64x2_t
12420 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12421 vcaltq_f64 (float64x2_t __a, float64x2_t __b)
12423 return vabsq_f64 (__a) < vabsq_f64 (__b);
12426 __extension__ extern __inline uint32_t
12427 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12428 vcalts_f32 (float32_t __a, float32_t __b)
12430 return __builtin_fabsf (__a) < __builtin_fabsf (__b) ? -1 : 0;
12433 /* vceq - vector. */
12435 __extension__ extern __inline uint32x2_t
12436 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12437 vceq_f32 (float32x2_t __a, float32x2_t __b)
12439 return (uint32x2_t) (__a == __b);
12442 __extension__ extern __inline uint64x1_t
12443 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12444 vceq_f64 (float64x1_t __a, float64x1_t __b)
12446 return (uint64x1_t) (__a == __b);
12449 __extension__ extern __inline uint8x8_t
12450 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12451 vceq_p8 (poly8x8_t __a, poly8x8_t __b)
12453 return (uint8x8_t) (__a == __b);
12456 __extension__ extern __inline uint64x1_t
12457 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12458 vceq_p64 (poly64x1_t __a, poly64x1_t __b)
12460 return (uint64x1_t) (__a == __b);
12463 __extension__ extern __inline uint8x8_t
12464 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12465 vceq_s8 (int8x8_t __a, int8x8_t __b)
12467 return (uint8x8_t) (__a == __b);
12470 __extension__ extern __inline uint16x4_t
12471 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12472 vceq_s16 (int16x4_t __a, int16x4_t __b)
12474 return (uint16x4_t) (__a == __b);
12477 __extension__ extern __inline uint32x2_t
12478 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12479 vceq_s32 (int32x2_t __a, int32x2_t __b)
12481 return (uint32x2_t) (__a == __b);
12484 __extension__ extern __inline uint64x1_t
12485 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12486 vceq_s64 (int64x1_t __a, int64x1_t __b)
12488 return (uint64x1_t) (__a == __b);
12491 __extension__ extern __inline uint8x8_t
12492 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12493 vceq_u8 (uint8x8_t __a, uint8x8_t __b)
12495 return (__a == __b);
12498 __extension__ extern __inline uint16x4_t
12499 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12500 vceq_u16 (uint16x4_t __a, uint16x4_t __b)
12502 return (__a == __b);
12505 __extension__ extern __inline uint32x2_t
12506 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12507 vceq_u32 (uint32x2_t __a, uint32x2_t __b)
12509 return (__a == __b);
12512 __extension__ extern __inline uint64x1_t
12513 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12514 vceq_u64 (uint64x1_t __a, uint64x1_t __b)
12516 return (__a == __b);
12519 __extension__ extern __inline uint32x4_t
12520 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12521 vceqq_f32 (float32x4_t __a, float32x4_t __b)
12523 return (uint32x4_t) (__a == __b);
12526 __extension__ extern __inline uint64x2_t
12527 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12528 vceqq_f64 (float64x2_t __a, float64x2_t __b)
12530 return (uint64x2_t) (__a == __b);
12533 __extension__ extern __inline uint8x16_t
12534 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12535 vceqq_p8 (poly8x16_t __a, poly8x16_t __b)
12537 return (uint8x16_t) (__a == __b);
12540 __extension__ extern __inline uint8x16_t
12541 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12542 vceqq_s8 (int8x16_t __a, int8x16_t __b)
12544 return (uint8x16_t) (__a == __b);
12547 __extension__ extern __inline uint16x8_t
12548 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12549 vceqq_s16 (int16x8_t __a, int16x8_t __b)
12551 return (uint16x8_t) (__a == __b);
12554 __extension__ extern __inline uint32x4_t
12555 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12556 vceqq_s32 (int32x4_t __a, int32x4_t __b)
12558 return (uint32x4_t) (__a == __b);
12561 __extension__ extern __inline uint64x2_t
12562 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12563 vceqq_s64 (int64x2_t __a, int64x2_t __b)
12565 return (uint64x2_t) (__a == __b);
12568 __extension__ extern __inline uint8x16_t
12569 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12570 vceqq_u8 (uint8x16_t __a, uint8x16_t __b)
12572 return (__a == __b);
12575 __extension__ extern __inline uint16x8_t
12576 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12577 vceqq_u16 (uint16x8_t __a, uint16x8_t __b)
12579 return (__a == __b);
12582 __extension__ extern __inline uint32x4_t
12583 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12584 vceqq_u32 (uint32x4_t __a, uint32x4_t __b)
12586 return (__a == __b);
12589 __extension__ extern __inline uint64x2_t
12590 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12591 vceqq_u64 (uint64x2_t __a, uint64x2_t __b)
12593 return (__a == __b);
12596 /* vceq - scalar. */
12598 __extension__ extern __inline uint32_t
12599 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12600 vceqs_f32 (float32_t __a, float32_t __b)
12602 return __a == __b ? -1 : 0;
12605 __extension__ extern __inline uint64_t
12606 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12607 vceqd_s64 (int64_t __a, int64_t __b)
12609 return __a == __b ? -1ll : 0ll;
12612 __extension__ extern __inline uint64_t
12613 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12614 vceqd_u64 (uint64_t __a, uint64_t __b)
12616 return __a == __b ? -1ll : 0ll;
12619 __extension__ extern __inline uint64_t
12620 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12621 vceqd_f64 (float64_t __a, float64_t __b)
12623 return __a == __b ? -1ll : 0ll;
12626 /* vceqz - vector. */
12628 __extension__ extern __inline uint32x2_t
12629 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12630 vceqz_f32 (float32x2_t __a)
12632 return (uint32x2_t) (__a == 0.0f);
12635 __extension__ extern __inline uint64x1_t
12636 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12637 vceqz_f64 (float64x1_t __a)
12639 return (uint64x1_t) (__a == (float64x1_t) {0.0});
12642 __extension__ extern __inline uint8x8_t
12643 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12644 vceqz_p8 (poly8x8_t __a)
12646 return (uint8x8_t) (__a == 0);
12649 __extension__ extern __inline uint8x8_t
12650 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12651 vceqz_s8 (int8x8_t __a)
12653 return (uint8x8_t) (__a == 0);
12656 __extension__ extern __inline uint16x4_t
12657 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12658 vceqz_s16 (int16x4_t __a)
12660 return (uint16x4_t) (__a == 0);
12663 __extension__ extern __inline uint32x2_t
12664 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12665 vceqz_s32 (int32x2_t __a)
12667 return (uint32x2_t) (__a == 0);
12670 __extension__ extern __inline uint64x1_t
12671 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12672 vceqz_s64 (int64x1_t __a)
12674 return (uint64x1_t) (__a == __AARCH64_INT64_C (0));
12677 __extension__ extern __inline uint8x8_t
12678 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12679 vceqz_u8 (uint8x8_t __a)
12681 return (__a == 0);
12684 __extension__ extern __inline uint16x4_t
12685 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12686 vceqz_u16 (uint16x4_t __a)
12688 return (__a == 0);
12691 __extension__ extern __inline uint32x2_t
12692 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12693 vceqz_u32 (uint32x2_t __a)
12695 return (__a == 0);
12698 __extension__ extern __inline uint64x1_t
12699 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12700 vceqz_u64 (uint64x1_t __a)
12702 return (__a == __AARCH64_UINT64_C (0));
12705 __extension__ extern __inline uint32x4_t
12706 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12707 vceqzq_f32 (float32x4_t __a)
12709 return (uint32x4_t) (__a == 0.0f);
12712 __extension__ extern __inline uint64x2_t
12713 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12714 vceqzq_f64 (float64x2_t __a)
12716 return (uint64x2_t) (__a == 0.0f);
12719 __extension__ extern __inline uint8x16_t
12720 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12721 vceqzq_p8 (poly8x16_t __a)
12723 return (uint8x16_t) (__a == 0);
12726 __extension__ extern __inline uint8x16_t
12727 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12728 vceqzq_s8 (int8x16_t __a)
12730 return (uint8x16_t) (__a == 0);
12733 __extension__ extern __inline uint16x8_t
12734 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12735 vceqzq_s16 (int16x8_t __a)
12737 return (uint16x8_t) (__a == 0);
12740 __extension__ extern __inline uint32x4_t
12741 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12742 vceqzq_s32 (int32x4_t __a)
12744 return (uint32x4_t) (__a == 0);
12747 __extension__ extern __inline uint64x2_t
12748 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12749 vceqzq_s64 (int64x2_t __a)
12751 return (uint64x2_t) (__a == __AARCH64_INT64_C (0));
12754 __extension__ extern __inline uint8x16_t
12755 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12756 vceqzq_u8 (uint8x16_t __a)
12758 return (__a == 0);
12761 __extension__ extern __inline uint16x8_t
12762 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12763 vceqzq_u16 (uint16x8_t __a)
12765 return (__a == 0);
12768 __extension__ extern __inline uint32x4_t
12769 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12770 vceqzq_u32 (uint32x4_t __a)
12772 return (__a == 0);
12775 __extension__ extern __inline uint64x2_t
12776 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12777 vceqzq_u64 (uint64x2_t __a)
12779 return (__a == __AARCH64_UINT64_C (0));
12782 /* vceqz - scalar. */
12784 __extension__ extern __inline uint32_t
12785 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12786 vceqzs_f32 (float32_t __a)
12788 return __a == 0.0f ? -1 : 0;
12791 __extension__ extern __inline uint64_t
12792 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12793 vceqzd_s64 (int64_t __a)
12795 return __a == 0 ? -1ll : 0ll;
12798 __extension__ extern __inline uint64_t
12799 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12800 vceqzd_u64 (uint64_t __a)
12802 return __a == 0 ? -1ll : 0ll;
12805 __extension__ extern __inline uint64_t
12806 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12807 vceqzd_f64 (float64_t __a)
12809 return __a == 0.0 ? -1ll : 0ll;
12812 /* vcge - vector. */
12814 __extension__ extern __inline uint32x2_t
12815 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12816 vcge_f32 (float32x2_t __a, float32x2_t __b)
12818 return (uint32x2_t) (__a >= __b);
12821 __extension__ extern __inline uint64x1_t
12822 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12823 vcge_f64 (float64x1_t __a, float64x1_t __b)
12825 return (uint64x1_t) (__a >= __b);
12828 __extension__ extern __inline uint8x8_t
12829 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12830 vcge_s8 (int8x8_t __a, int8x8_t __b)
12832 return (uint8x8_t) (__a >= __b);
12835 __extension__ extern __inline uint16x4_t
12836 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12837 vcge_s16 (int16x4_t __a, int16x4_t __b)
12839 return (uint16x4_t) (__a >= __b);
12842 __extension__ extern __inline uint32x2_t
12843 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12844 vcge_s32 (int32x2_t __a, int32x2_t __b)
12846 return (uint32x2_t) (__a >= __b);
12849 __extension__ extern __inline uint64x1_t
12850 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12851 vcge_s64 (int64x1_t __a, int64x1_t __b)
12853 return (uint64x1_t) (__a >= __b);
12856 __extension__ extern __inline uint8x8_t
12857 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12858 vcge_u8 (uint8x8_t __a, uint8x8_t __b)
12860 return (__a >= __b);
12863 __extension__ extern __inline uint16x4_t
12864 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12865 vcge_u16 (uint16x4_t __a, uint16x4_t __b)
12867 return (__a >= __b);
12870 __extension__ extern __inline uint32x2_t
12871 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12872 vcge_u32 (uint32x2_t __a, uint32x2_t __b)
12874 return (__a >= __b);
12877 __extension__ extern __inline uint64x1_t
12878 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12879 vcge_u64 (uint64x1_t __a, uint64x1_t __b)
12881 return (__a >= __b);
12884 __extension__ extern __inline uint32x4_t
12885 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12886 vcgeq_f32 (float32x4_t __a, float32x4_t __b)
12888 return (uint32x4_t) (__a >= __b);
12891 __extension__ extern __inline uint64x2_t
12892 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12893 vcgeq_f64 (float64x2_t __a, float64x2_t __b)
12895 return (uint64x2_t) (__a >= __b);
12898 __extension__ extern __inline uint8x16_t
12899 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12900 vcgeq_s8 (int8x16_t __a, int8x16_t __b)
12902 return (uint8x16_t) (__a >= __b);
12905 __extension__ extern __inline uint16x8_t
12906 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12907 vcgeq_s16 (int16x8_t __a, int16x8_t __b)
12909 return (uint16x8_t) (__a >= __b);
12912 __extension__ extern __inline uint32x4_t
12913 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12914 vcgeq_s32 (int32x4_t __a, int32x4_t __b)
12916 return (uint32x4_t) (__a >= __b);
12919 __extension__ extern __inline uint64x2_t
12920 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12921 vcgeq_s64 (int64x2_t __a, int64x2_t __b)
12923 return (uint64x2_t) (__a >= __b);
12926 __extension__ extern __inline uint8x16_t
12927 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12928 vcgeq_u8 (uint8x16_t __a, uint8x16_t __b)
12930 return (__a >= __b);
12933 __extension__ extern __inline uint16x8_t
12934 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12935 vcgeq_u16 (uint16x8_t __a, uint16x8_t __b)
12937 return (__a >= __b);
12940 __extension__ extern __inline uint32x4_t
12941 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12942 vcgeq_u32 (uint32x4_t __a, uint32x4_t __b)
12944 return (__a >= __b);
12947 __extension__ extern __inline uint64x2_t
12948 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12949 vcgeq_u64 (uint64x2_t __a, uint64x2_t __b)
12951 return (__a >= __b);
12954 /* vcge - scalar. */
12956 __extension__ extern __inline uint32_t
12957 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12958 vcges_f32 (float32_t __a, float32_t __b)
12960 return __a >= __b ? -1 : 0;
12963 __extension__ extern __inline uint64_t
12964 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12965 vcged_s64 (int64_t __a, int64_t __b)
12967 return __a >= __b ? -1ll : 0ll;
12970 __extension__ extern __inline uint64_t
12971 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12972 vcged_u64 (uint64_t __a, uint64_t __b)
12974 return __a >= __b ? -1ll : 0ll;
12977 __extension__ extern __inline uint64_t
12978 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12979 vcged_f64 (float64_t __a, float64_t __b)
12981 return __a >= __b ? -1ll : 0ll;
12984 /* vcgez - vector. */
12986 __extension__ extern __inline uint32x2_t
12987 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12988 vcgez_f32 (float32x2_t __a)
12990 return (uint32x2_t) (__a >= 0.0f);
12993 __extension__ extern __inline uint64x1_t
12994 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12995 vcgez_f64 (float64x1_t __a)
12997 return (uint64x1_t) (__a[0] >= (float64x1_t) {0.0});
13000 __extension__ extern __inline uint8x8_t
13001 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13002 vcgez_s8 (int8x8_t __a)
13004 return (uint8x8_t) (__a >= 0);
13007 __extension__ extern __inline uint16x4_t
13008 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13009 vcgez_s16 (int16x4_t __a)
13011 return (uint16x4_t) (__a >= 0);
13014 __extension__ extern __inline uint32x2_t
13015 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13016 vcgez_s32 (int32x2_t __a)
13018 return (uint32x2_t) (__a >= 0);
13021 __extension__ extern __inline uint64x1_t
13022 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13023 vcgez_s64 (int64x1_t __a)
13025 return (uint64x1_t) (__a >= __AARCH64_INT64_C (0));
13028 __extension__ extern __inline uint32x4_t
13029 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13030 vcgezq_f32 (float32x4_t __a)
13032 return (uint32x4_t) (__a >= 0.0f);
13035 __extension__ extern __inline uint64x2_t
13036 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13037 vcgezq_f64 (float64x2_t __a)
13039 return (uint64x2_t) (__a >= 0.0);
13042 __extension__ extern __inline uint8x16_t
13043 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13044 vcgezq_s8 (int8x16_t __a)
13046 return (uint8x16_t) (__a >= 0);
13049 __extension__ extern __inline uint16x8_t
13050 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13051 vcgezq_s16 (int16x8_t __a)
13053 return (uint16x8_t) (__a >= 0);
13056 __extension__ extern __inline uint32x4_t
13057 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13058 vcgezq_s32 (int32x4_t __a)
13060 return (uint32x4_t) (__a >= 0);
13063 __extension__ extern __inline uint64x2_t
13064 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13065 vcgezq_s64 (int64x2_t __a)
13067 return (uint64x2_t) (__a >= __AARCH64_INT64_C (0));
13070 /* vcgez - scalar. */
13072 __extension__ extern __inline uint32_t
13073 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13074 vcgezs_f32 (float32_t __a)
13076 return __a >= 0.0f ? -1 : 0;
13079 __extension__ extern __inline uint64_t
13080 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13081 vcgezd_s64 (int64_t __a)
13083 return __a >= 0 ? -1ll : 0ll;
13086 __extension__ extern __inline uint64_t
13087 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13088 vcgezd_f64 (float64_t __a)
13090 return __a >= 0.0 ? -1ll : 0ll;
13093 /* vcgt - vector. */
13095 __extension__ extern __inline uint32x2_t
13096 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13097 vcgt_f32 (float32x2_t __a, float32x2_t __b)
13099 return (uint32x2_t) (__a > __b);
13102 __extension__ extern __inline uint64x1_t
13103 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13104 vcgt_f64 (float64x1_t __a, float64x1_t __b)
13106 return (uint64x1_t) (__a > __b);
13109 __extension__ extern __inline uint8x8_t
13110 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13111 vcgt_s8 (int8x8_t __a, int8x8_t __b)
13113 return (uint8x8_t) (__a > __b);
13116 __extension__ extern __inline uint16x4_t
13117 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13118 vcgt_s16 (int16x4_t __a, int16x4_t __b)
13120 return (uint16x4_t) (__a > __b);
13123 __extension__ extern __inline uint32x2_t
13124 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13125 vcgt_s32 (int32x2_t __a, int32x2_t __b)
13127 return (uint32x2_t) (__a > __b);
13130 __extension__ extern __inline uint64x1_t
13131 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13132 vcgt_s64 (int64x1_t __a, int64x1_t __b)
13134 return (uint64x1_t) (__a > __b);
13137 __extension__ extern __inline uint8x8_t
13138 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13139 vcgt_u8 (uint8x8_t __a, uint8x8_t __b)
13141 return (__a > __b);
13144 __extension__ extern __inline uint16x4_t
13145 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13146 vcgt_u16 (uint16x4_t __a, uint16x4_t __b)
13148 return (__a > __b);
13151 __extension__ extern __inline uint32x2_t
13152 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13153 vcgt_u32 (uint32x2_t __a, uint32x2_t __b)
13155 return (__a > __b);
13158 __extension__ extern __inline uint64x1_t
13159 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13160 vcgt_u64 (uint64x1_t __a, uint64x1_t __b)
13162 return (__a > __b);
13165 __extension__ extern __inline uint32x4_t
13166 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13167 vcgtq_f32 (float32x4_t __a, float32x4_t __b)
13169 return (uint32x4_t) (__a > __b);
13172 __extension__ extern __inline uint64x2_t
13173 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13174 vcgtq_f64 (float64x2_t __a, float64x2_t __b)
13176 return (uint64x2_t) (__a > __b);
13179 __extension__ extern __inline uint8x16_t
13180 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13181 vcgtq_s8 (int8x16_t __a, int8x16_t __b)
13183 return (uint8x16_t) (__a > __b);
13186 __extension__ extern __inline uint16x8_t
13187 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13188 vcgtq_s16 (int16x8_t __a, int16x8_t __b)
13190 return (uint16x8_t) (__a > __b);
13193 __extension__ extern __inline uint32x4_t
13194 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13195 vcgtq_s32 (int32x4_t __a, int32x4_t __b)
13197 return (uint32x4_t) (__a > __b);
13200 __extension__ extern __inline uint64x2_t
13201 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13202 vcgtq_s64 (int64x2_t __a, int64x2_t __b)
13204 return (uint64x2_t) (__a > __b);
13207 __extension__ extern __inline uint8x16_t
13208 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13209 vcgtq_u8 (uint8x16_t __a, uint8x16_t __b)
13211 return (__a > __b);
13214 __extension__ extern __inline uint16x8_t
13215 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13216 vcgtq_u16 (uint16x8_t __a, uint16x8_t __b)
13218 return (__a > __b);
13221 __extension__ extern __inline uint32x4_t
13222 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13223 vcgtq_u32 (uint32x4_t __a, uint32x4_t __b)
13225 return (__a > __b);
13228 __extension__ extern __inline uint64x2_t
13229 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13230 vcgtq_u64 (uint64x2_t __a, uint64x2_t __b)
13232 return (__a > __b);
13235 /* vcgt - scalar. */
13237 __extension__ extern __inline uint32_t
13238 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13239 vcgts_f32 (float32_t __a, float32_t __b)
13241 return __a > __b ? -1 : 0;
13244 __extension__ extern __inline uint64_t
13245 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13246 vcgtd_s64 (int64_t __a, int64_t __b)
13248 return __a > __b ? -1ll : 0ll;
13251 __extension__ extern __inline uint64_t
13252 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13253 vcgtd_u64 (uint64_t __a, uint64_t __b)
13255 return __a > __b ? -1ll : 0ll;
13258 __extension__ extern __inline uint64_t
13259 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13260 vcgtd_f64 (float64_t __a, float64_t __b)
13262 return __a > __b ? -1ll : 0ll;
13265 /* vcgtz - vector. */
13267 __extension__ extern __inline uint32x2_t
13268 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13269 vcgtz_f32 (float32x2_t __a)
13271 return (uint32x2_t) (__a > 0.0f);
13274 __extension__ extern __inline uint64x1_t
13275 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13276 vcgtz_f64 (float64x1_t __a)
13278 return (uint64x1_t) (__a > (float64x1_t) {0.0});
13281 __extension__ extern __inline uint8x8_t
13282 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13283 vcgtz_s8 (int8x8_t __a)
13285 return (uint8x8_t) (__a > 0);
13288 __extension__ extern __inline uint16x4_t
13289 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13290 vcgtz_s16 (int16x4_t __a)
13292 return (uint16x4_t) (__a > 0);
13295 __extension__ extern __inline uint32x2_t
13296 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13297 vcgtz_s32 (int32x2_t __a)
13299 return (uint32x2_t) (__a > 0);
13302 __extension__ extern __inline uint64x1_t
13303 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13304 vcgtz_s64 (int64x1_t __a)
13306 return (uint64x1_t) (__a > __AARCH64_INT64_C (0));
13309 __extension__ extern __inline uint32x4_t
13310 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13311 vcgtzq_f32 (float32x4_t __a)
13313 return (uint32x4_t) (__a > 0.0f);
13316 __extension__ extern __inline uint64x2_t
13317 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13318 vcgtzq_f64 (float64x2_t __a)
13320 return (uint64x2_t) (__a > 0.0);
13323 __extension__ extern __inline uint8x16_t
13324 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13325 vcgtzq_s8 (int8x16_t __a)
13327 return (uint8x16_t) (__a > 0);
13330 __extension__ extern __inline uint16x8_t
13331 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13332 vcgtzq_s16 (int16x8_t __a)
13334 return (uint16x8_t) (__a > 0);
13337 __extension__ extern __inline uint32x4_t
13338 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13339 vcgtzq_s32 (int32x4_t __a)
13341 return (uint32x4_t) (__a > 0);
13344 __extension__ extern __inline uint64x2_t
13345 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13346 vcgtzq_s64 (int64x2_t __a)
13348 return (uint64x2_t) (__a > __AARCH64_INT64_C (0));
13351 /* vcgtz - scalar. */
13353 __extension__ extern __inline uint32_t
13354 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13355 vcgtzs_f32 (float32_t __a)
13357 return __a > 0.0f ? -1 : 0;
13360 __extension__ extern __inline uint64_t
13361 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13362 vcgtzd_s64 (int64_t __a)
13364 return __a > 0 ? -1ll : 0ll;
13367 __extension__ extern __inline uint64_t
13368 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13369 vcgtzd_f64 (float64_t __a)
13371 return __a > 0.0 ? -1ll : 0ll;
13374 /* vcle - vector. */
13376 __extension__ extern __inline uint32x2_t
13377 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13378 vcle_f32 (float32x2_t __a, float32x2_t __b)
13380 return (uint32x2_t) (__a <= __b);
13383 __extension__ extern __inline uint64x1_t
13384 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13385 vcle_f64 (float64x1_t __a, float64x1_t __b)
13387 return (uint64x1_t) (__a <= __b);
13390 __extension__ extern __inline uint8x8_t
13391 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13392 vcle_s8 (int8x8_t __a, int8x8_t __b)
13394 return (uint8x8_t) (__a <= __b);
13397 __extension__ extern __inline uint16x4_t
13398 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13399 vcle_s16 (int16x4_t __a, int16x4_t __b)
13401 return (uint16x4_t) (__a <= __b);
13404 __extension__ extern __inline uint32x2_t
13405 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13406 vcle_s32 (int32x2_t __a, int32x2_t __b)
13408 return (uint32x2_t) (__a <= __b);
13411 __extension__ extern __inline uint64x1_t
13412 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13413 vcle_s64 (int64x1_t __a, int64x1_t __b)
13415 return (uint64x1_t) (__a <= __b);
13418 __extension__ extern __inline uint8x8_t
13419 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13420 vcle_u8 (uint8x8_t __a, uint8x8_t __b)
13422 return (__a <= __b);
13425 __extension__ extern __inline uint16x4_t
13426 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13427 vcle_u16 (uint16x4_t __a, uint16x4_t __b)
13429 return (__a <= __b);
13432 __extension__ extern __inline uint32x2_t
13433 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13434 vcle_u32 (uint32x2_t __a, uint32x2_t __b)
13436 return (__a <= __b);
13439 __extension__ extern __inline uint64x1_t
13440 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13441 vcle_u64 (uint64x1_t __a, uint64x1_t __b)
13443 return (__a <= __b);
13446 __extension__ extern __inline uint32x4_t
13447 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13448 vcleq_f32 (float32x4_t __a, float32x4_t __b)
13450 return (uint32x4_t) (__a <= __b);
13453 __extension__ extern __inline uint64x2_t
13454 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13455 vcleq_f64 (float64x2_t __a, float64x2_t __b)
13457 return (uint64x2_t) (__a <= __b);
13460 __extension__ extern __inline uint8x16_t
13461 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13462 vcleq_s8 (int8x16_t __a, int8x16_t __b)
13464 return (uint8x16_t) (__a <= __b);
13467 __extension__ extern __inline uint16x8_t
13468 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13469 vcleq_s16 (int16x8_t __a, int16x8_t __b)
13471 return (uint16x8_t) (__a <= __b);
13474 __extension__ extern __inline uint32x4_t
13475 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13476 vcleq_s32 (int32x4_t __a, int32x4_t __b)
13478 return (uint32x4_t) (__a <= __b);
13481 __extension__ extern __inline uint64x2_t
13482 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13483 vcleq_s64 (int64x2_t __a, int64x2_t __b)
13485 return (uint64x2_t) (__a <= __b);
13488 __extension__ extern __inline uint8x16_t
13489 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13490 vcleq_u8 (uint8x16_t __a, uint8x16_t __b)
13492 return (__a <= __b);
13495 __extension__ extern __inline uint16x8_t
13496 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13497 vcleq_u16 (uint16x8_t __a, uint16x8_t __b)
13499 return (__a <= __b);
13502 __extension__ extern __inline uint32x4_t
13503 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13504 vcleq_u32 (uint32x4_t __a, uint32x4_t __b)
13506 return (__a <= __b);
13509 __extension__ extern __inline uint64x2_t
13510 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13511 vcleq_u64 (uint64x2_t __a, uint64x2_t __b)
13513 return (__a <= __b);
13516 /* vcle - scalar. */
13518 __extension__ extern __inline uint32_t
13519 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13520 vcles_f32 (float32_t __a, float32_t __b)
13522 return __a <= __b ? -1 : 0;
13525 __extension__ extern __inline uint64_t
13526 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13527 vcled_s64 (int64_t __a, int64_t __b)
13529 return __a <= __b ? -1ll : 0ll;
13532 __extension__ extern __inline uint64_t
13533 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13534 vcled_u64 (uint64_t __a, uint64_t __b)
13536 return __a <= __b ? -1ll : 0ll;
13539 __extension__ extern __inline uint64_t
13540 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13541 vcled_f64 (float64_t __a, float64_t __b)
13543 return __a <= __b ? -1ll : 0ll;
13546 /* vclez - vector. */
13548 __extension__ extern __inline uint32x2_t
13549 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13550 vclez_f32 (float32x2_t __a)
13552 return (uint32x2_t) (__a <= 0.0f);
13555 __extension__ extern __inline uint64x1_t
13556 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13557 vclez_f64 (float64x1_t __a)
13559 return (uint64x1_t) (__a <= (float64x1_t) {0.0});
13562 __extension__ extern __inline uint8x8_t
13563 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13564 vclez_s8 (int8x8_t __a)
13566 return (uint8x8_t) (__a <= 0);
13569 __extension__ extern __inline uint16x4_t
13570 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13571 vclez_s16 (int16x4_t __a)
13573 return (uint16x4_t) (__a <= 0);
13576 __extension__ extern __inline uint32x2_t
13577 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13578 vclez_s32 (int32x2_t __a)
13580 return (uint32x2_t) (__a <= 0);
13583 __extension__ extern __inline uint64x1_t
13584 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13585 vclez_s64 (int64x1_t __a)
13587 return (uint64x1_t) (__a <= __AARCH64_INT64_C (0));
13590 __extension__ extern __inline uint32x4_t
13591 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13592 vclezq_f32 (float32x4_t __a)
13594 return (uint32x4_t) (__a <= 0.0f);
13597 __extension__ extern __inline uint64x2_t
13598 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13599 vclezq_f64 (float64x2_t __a)
13601 return (uint64x2_t) (__a <= 0.0);
13604 __extension__ extern __inline uint8x16_t
13605 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13606 vclezq_s8 (int8x16_t __a)
13608 return (uint8x16_t) (__a <= 0);
13611 __extension__ extern __inline uint16x8_t
13612 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13613 vclezq_s16 (int16x8_t __a)
13615 return (uint16x8_t) (__a <= 0);
13618 __extension__ extern __inline uint32x4_t
13619 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13620 vclezq_s32 (int32x4_t __a)
13622 return (uint32x4_t) (__a <= 0);
13625 __extension__ extern __inline uint64x2_t
13626 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13627 vclezq_s64 (int64x2_t __a)
13629 return (uint64x2_t) (__a <= __AARCH64_INT64_C (0));
13632 /* vclez - scalar. */
13634 __extension__ extern __inline uint32_t
13635 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13636 vclezs_f32 (float32_t __a)
13638 return __a <= 0.0f ? -1 : 0;
13641 __extension__ extern __inline uint64_t
13642 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13643 vclezd_s64 (int64_t __a)
13645 return __a <= 0 ? -1ll : 0ll;
13648 __extension__ extern __inline uint64_t
13649 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13650 vclezd_f64 (float64_t __a)
13652 return __a <= 0.0 ? -1ll : 0ll;
13655 /* vclt - vector. */
13657 __extension__ extern __inline uint32x2_t
13658 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13659 vclt_f32 (float32x2_t __a, float32x2_t __b)
13661 return (uint32x2_t) (__a < __b);
13664 __extension__ extern __inline uint64x1_t
13665 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13666 vclt_f64 (float64x1_t __a, float64x1_t __b)
13668 return (uint64x1_t) (__a < __b);
13671 __extension__ extern __inline uint8x8_t
13672 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13673 vclt_s8 (int8x8_t __a, int8x8_t __b)
13675 return (uint8x8_t) (__a < __b);
13678 __extension__ extern __inline uint16x4_t
13679 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13680 vclt_s16 (int16x4_t __a, int16x4_t __b)
13682 return (uint16x4_t) (__a < __b);
13685 __extension__ extern __inline uint32x2_t
13686 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13687 vclt_s32 (int32x2_t __a, int32x2_t __b)
13689 return (uint32x2_t) (__a < __b);
13692 __extension__ extern __inline uint64x1_t
13693 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13694 vclt_s64 (int64x1_t __a, int64x1_t __b)
13696 return (uint64x1_t) (__a < __b);
13699 __extension__ extern __inline uint8x8_t
13700 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13701 vclt_u8 (uint8x8_t __a, uint8x8_t __b)
13703 return (__a < __b);
13706 __extension__ extern __inline uint16x4_t
13707 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13708 vclt_u16 (uint16x4_t __a, uint16x4_t __b)
13710 return (__a < __b);
13713 __extension__ extern __inline uint32x2_t
13714 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13715 vclt_u32 (uint32x2_t __a, uint32x2_t __b)
13717 return (__a < __b);
13720 __extension__ extern __inline uint64x1_t
13721 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13722 vclt_u64 (uint64x1_t __a, uint64x1_t __b)
13724 return (__a < __b);
13727 __extension__ extern __inline uint32x4_t
13728 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13729 vcltq_f32 (float32x4_t __a, float32x4_t __b)
13731 return (uint32x4_t) (__a < __b);
13734 __extension__ extern __inline uint64x2_t
13735 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13736 vcltq_f64 (float64x2_t __a, float64x2_t __b)
13738 return (uint64x2_t) (__a < __b);
13741 __extension__ extern __inline uint8x16_t
13742 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13743 vcltq_s8 (int8x16_t __a, int8x16_t __b)
13745 return (uint8x16_t) (__a < __b);
13748 __extension__ extern __inline uint16x8_t
13749 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13750 vcltq_s16 (int16x8_t __a, int16x8_t __b)
13752 return (uint16x8_t) (__a < __b);
13755 __extension__ extern __inline uint32x4_t
13756 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13757 vcltq_s32 (int32x4_t __a, int32x4_t __b)
13759 return (uint32x4_t) (__a < __b);
13762 __extension__ extern __inline uint64x2_t
13763 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13764 vcltq_s64 (int64x2_t __a, int64x2_t __b)
13766 return (uint64x2_t) (__a < __b);
13769 __extension__ extern __inline uint8x16_t
13770 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13771 vcltq_u8 (uint8x16_t __a, uint8x16_t __b)
13773 return (__a < __b);
13776 __extension__ extern __inline uint16x8_t
13777 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13778 vcltq_u16 (uint16x8_t __a, uint16x8_t __b)
13780 return (__a < __b);
13783 __extension__ extern __inline uint32x4_t
13784 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13785 vcltq_u32 (uint32x4_t __a, uint32x4_t __b)
13787 return (__a < __b);
13790 __extension__ extern __inline uint64x2_t
13791 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13792 vcltq_u64 (uint64x2_t __a, uint64x2_t __b)
13794 return (__a < __b);
13797 /* vclt - scalar. */
13799 __extension__ extern __inline uint32_t
13800 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13801 vclts_f32 (float32_t __a, float32_t __b)
13803 return __a < __b ? -1 : 0;
13806 __extension__ extern __inline uint64_t
13807 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13808 vcltd_s64 (int64_t __a, int64_t __b)
13810 return __a < __b ? -1ll : 0ll;
13813 __extension__ extern __inline uint64_t
13814 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13815 vcltd_u64 (uint64_t __a, uint64_t __b)
13817 return __a < __b ? -1ll : 0ll;
13820 __extension__ extern __inline uint64_t
13821 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13822 vcltd_f64 (float64_t __a, float64_t __b)
13824 return __a < __b ? -1ll : 0ll;
13827 /* vcltz - vector. */
13829 __extension__ extern __inline uint32x2_t
13830 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13831 vcltz_f32 (float32x2_t __a)
13833 return (uint32x2_t) (__a < 0.0f);
13836 __extension__ extern __inline uint64x1_t
13837 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13838 vcltz_f64 (float64x1_t __a)
13840 return (uint64x1_t) (__a < (float64x1_t) {0.0});
13843 __extension__ extern __inline uint8x8_t
13844 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13845 vcltz_s8 (int8x8_t __a)
13847 return (uint8x8_t) (__a < 0);
13850 __extension__ extern __inline uint16x4_t
13851 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13852 vcltz_s16 (int16x4_t __a)
13854 return (uint16x4_t) (__a < 0);
13857 __extension__ extern __inline uint32x2_t
13858 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13859 vcltz_s32 (int32x2_t __a)
13861 return (uint32x2_t) (__a < 0);
13864 __extension__ extern __inline uint64x1_t
13865 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13866 vcltz_s64 (int64x1_t __a)
13868 return (uint64x1_t) (__a < __AARCH64_INT64_C (0));
13871 __extension__ extern __inline uint32x4_t
13872 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13873 vcltzq_f32 (float32x4_t __a)
13875 return (uint32x4_t) (__a < 0.0f);
13878 __extension__ extern __inline uint64x2_t
13879 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13880 vcltzq_f64 (float64x2_t __a)
13882 return (uint64x2_t) (__a < 0.0);
13885 __extension__ extern __inline uint8x16_t
13886 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13887 vcltzq_s8 (int8x16_t __a)
13889 return (uint8x16_t) (__a < 0);
13892 __extension__ extern __inline uint16x8_t
13893 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13894 vcltzq_s16 (int16x8_t __a)
13896 return (uint16x8_t) (__a < 0);
13899 __extension__ extern __inline uint32x4_t
13900 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13901 vcltzq_s32 (int32x4_t __a)
13903 return (uint32x4_t) (__a < 0);
13906 __extension__ extern __inline uint64x2_t
13907 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13908 vcltzq_s64 (int64x2_t __a)
13910 return (uint64x2_t) (__a < __AARCH64_INT64_C (0));
13913 /* vcltz - scalar. */
13915 __extension__ extern __inline uint32_t
13916 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13917 vcltzs_f32 (float32_t __a)
13919 return __a < 0.0f ? -1 : 0;
13922 __extension__ extern __inline uint64_t
13923 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13924 vcltzd_s64 (int64_t __a)
13926 return __a < 0 ? -1ll : 0ll;
13929 __extension__ extern __inline uint64_t
13930 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13931 vcltzd_f64 (float64_t __a)
13933 return __a < 0.0 ? -1ll : 0ll;
13936 /* vcls. */
13938 __extension__ extern __inline int8x8_t
13939 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13940 vcls_s8 (int8x8_t __a)
13942 return __builtin_aarch64_clrsbv8qi (__a);
13945 __extension__ extern __inline int16x4_t
13946 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13947 vcls_s16 (int16x4_t __a)
13949 return __builtin_aarch64_clrsbv4hi (__a);
13952 __extension__ extern __inline int32x2_t
13953 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13954 vcls_s32 (int32x2_t __a)
13956 return __builtin_aarch64_clrsbv2si (__a);
13959 __extension__ extern __inline int8x16_t
13960 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13961 vclsq_s8 (int8x16_t __a)
13963 return __builtin_aarch64_clrsbv16qi (__a);
13966 __extension__ extern __inline int16x8_t
13967 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13968 vclsq_s16 (int16x8_t __a)
13970 return __builtin_aarch64_clrsbv8hi (__a);
13973 __extension__ extern __inline int32x4_t
13974 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13975 vclsq_s32 (int32x4_t __a)
13977 return __builtin_aarch64_clrsbv4si (__a);
13980 /* vclz. */
13982 __extension__ extern __inline int8x8_t
13983 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13984 vclz_s8 (int8x8_t __a)
13986 return __builtin_aarch64_clzv8qi (__a);
13989 __extension__ extern __inline int16x4_t
13990 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13991 vclz_s16 (int16x4_t __a)
13993 return __builtin_aarch64_clzv4hi (__a);
13996 __extension__ extern __inline int32x2_t
13997 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13998 vclz_s32 (int32x2_t __a)
14000 return __builtin_aarch64_clzv2si (__a);
14003 __extension__ extern __inline uint8x8_t
14004 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14005 vclz_u8 (uint8x8_t __a)
14007 return (uint8x8_t)__builtin_aarch64_clzv8qi ((int8x8_t)__a);
14010 __extension__ extern __inline uint16x4_t
14011 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14012 vclz_u16 (uint16x4_t __a)
14014 return (uint16x4_t)__builtin_aarch64_clzv4hi ((int16x4_t)__a);
14017 __extension__ extern __inline uint32x2_t
14018 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14019 vclz_u32 (uint32x2_t __a)
14021 return (uint32x2_t)__builtin_aarch64_clzv2si ((int32x2_t)__a);
14024 __extension__ extern __inline int8x16_t
14025 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14026 vclzq_s8 (int8x16_t __a)
14028 return __builtin_aarch64_clzv16qi (__a);
14031 __extension__ extern __inline int16x8_t
14032 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14033 vclzq_s16 (int16x8_t __a)
14035 return __builtin_aarch64_clzv8hi (__a);
14038 __extension__ extern __inline int32x4_t
14039 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14040 vclzq_s32 (int32x4_t __a)
14042 return __builtin_aarch64_clzv4si (__a);
14045 __extension__ extern __inline uint8x16_t
14046 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14047 vclzq_u8 (uint8x16_t __a)
14049 return (uint8x16_t)__builtin_aarch64_clzv16qi ((int8x16_t)__a);
14052 __extension__ extern __inline uint16x8_t
14053 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14054 vclzq_u16 (uint16x8_t __a)
14056 return (uint16x8_t)__builtin_aarch64_clzv8hi ((int16x8_t)__a);
14059 __extension__ extern __inline uint32x4_t
14060 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14061 vclzq_u32 (uint32x4_t __a)
14063 return (uint32x4_t)__builtin_aarch64_clzv4si ((int32x4_t)__a);
14066 /* vcnt. */
14068 __extension__ extern __inline poly8x8_t
14069 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14070 vcnt_p8 (poly8x8_t __a)
14072 return (poly8x8_t) __builtin_aarch64_popcountv8qi ((int8x8_t) __a);
14075 __extension__ extern __inline int8x8_t
14076 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14077 vcnt_s8 (int8x8_t __a)
14079 return __builtin_aarch64_popcountv8qi (__a);
14082 __extension__ extern __inline uint8x8_t
14083 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14084 vcnt_u8 (uint8x8_t __a)
14086 return (uint8x8_t) __builtin_aarch64_popcountv8qi ((int8x8_t) __a);
14089 __extension__ extern __inline poly8x16_t
14090 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14091 vcntq_p8 (poly8x16_t __a)
14093 return (poly8x16_t) __builtin_aarch64_popcountv16qi ((int8x16_t) __a);
14096 __extension__ extern __inline int8x16_t
14097 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14098 vcntq_s8 (int8x16_t __a)
14100 return __builtin_aarch64_popcountv16qi (__a);
14103 __extension__ extern __inline uint8x16_t
14104 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14105 vcntq_u8 (uint8x16_t __a)
14107 return (uint8x16_t) __builtin_aarch64_popcountv16qi ((int8x16_t) __a);
14110 /* vcopy_lane. */
14112 __extension__ extern __inline float32x2_t
14113 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14114 vcopy_lane_f32 (float32x2_t __a, const int __lane1,
14115 float32x2_t __b, const int __lane2)
14117 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14118 __a, __lane1);
14121 __extension__ extern __inline float64x1_t
14122 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14123 vcopy_lane_f64 (float64x1_t __a, const int __lane1,
14124 float64x1_t __b, const int __lane2)
14126 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14127 __a, __lane1);
14130 __extension__ extern __inline poly8x8_t
14131 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14132 vcopy_lane_p8 (poly8x8_t __a, const int __lane1,
14133 poly8x8_t __b, const int __lane2)
14135 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14136 __a, __lane1);
14139 __extension__ extern __inline poly16x4_t
14140 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14141 vcopy_lane_p16 (poly16x4_t __a, const int __lane1,
14142 poly16x4_t __b, const int __lane2)
14144 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14145 __a, __lane1);
14148 __extension__ extern __inline poly64x1_t
14149 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14150 vcopy_lane_p64 (poly64x1_t __a, const int __lane1,
14151 poly64x1_t __b, const int __lane2)
14153 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14154 __a, __lane1);
14157 __extension__ extern __inline int8x8_t
14158 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14159 vcopy_lane_s8 (int8x8_t __a, const int __lane1,
14160 int8x8_t __b, const int __lane2)
14162 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14163 __a, __lane1);
14166 __extension__ extern __inline int16x4_t
14167 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14168 vcopy_lane_s16 (int16x4_t __a, const int __lane1,
14169 int16x4_t __b, const int __lane2)
14171 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14172 __a, __lane1);
14175 __extension__ extern __inline int32x2_t
14176 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14177 vcopy_lane_s32 (int32x2_t __a, const int __lane1,
14178 int32x2_t __b, const int __lane2)
14180 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14181 __a, __lane1);
14184 __extension__ extern __inline int64x1_t
14185 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14186 vcopy_lane_s64 (int64x1_t __a, const int __lane1,
14187 int64x1_t __b, const int __lane2)
14189 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14190 __a, __lane1);
14193 __extension__ extern __inline uint8x8_t
14194 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14195 vcopy_lane_u8 (uint8x8_t __a, const int __lane1,
14196 uint8x8_t __b, const int __lane2)
14198 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14199 __a, __lane1);
14202 __extension__ extern __inline uint16x4_t
14203 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14204 vcopy_lane_u16 (uint16x4_t __a, const int __lane1,
14205 uint16x4_t __b, const int __lane2)
14207 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14208 __a, __lane1);
14211 __extension__ extern __inline uint32x2_t
14212 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14213 vcopy_lane_u32 (uint32x2_t __a, const int __lane1,
14214 uint32x2_t __b, const int __lane2)
14216 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14217 __a, __lane1);
14220 __extension__ extern __inline uint64x1_t
14221 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14222 vcopy_lane_u64 (uint64x1_t __a, const int __lane1,
14223 uint64x1_t __b, const int __lane2)
14225 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14226 __a, __lane1);
14229 /* vcopy_laneq. */
14231 __extension__ extern __inline float32x2_t
14232 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14233 vcopy_laneq_f32 (float32x2_t __a, const int __lane1,
14234 float32x4_t __b, const int __lane2)
14236 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14237 __a, __lane1);
14240 __extension__ extern __inline float64x1_t
14241 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14242 vcopy_laneq_f64 (float64x1_t __a, const int __lane1,
14243 float64x2_t __b, const int __lane2)
14245 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14246 __a, __lane1);
14249 __extension__ extern __inline poly8x8_t
14250 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14251 vcopy_laneq_p8 (poly8x8_t __a, const int __lane1,
14252 poly8x16_t __b, const int __lane2)
14254 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14255 __a, __lane1);
14258 __extension__ extern __inline poly16x4_t
14259 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14260 vcopy_laneq_p16 (poly16x4_t __a, const int __lane1,
14261 poly16x8_t __b, const int __lane2)
14263 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14264 __a, __lane1);
14267 __extension__ extern __inline poly64x1_t
14268 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14269 vcopy_laneq_p64 (poly64x1_t __a, const int __lane1,
14270 poly64x2_t __b, const int __lane2)
14272 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14273 __a, __lane1);
14276 __extension__ extern __inline int8x8_t
14277 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14278 vcopy_laneq_s8 (int8x8_t __a, const int __lane1,
14279 int8x16_t __b, const int __lane2)
14281 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14282 __a, __lane1);
14285 __extension__ extern __inline int16x4_t
14286 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14287 vcopy_laneq_s16 (int16x4_t __a, const int __lane1,
14288 int16x8_t __b, const int __lane2)
14290 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14291 __a, __lane1);
14294 __extension__ extern __inline int32x2_t
14295 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14296 vcopy_laneq_s32 (int32x2_t __a, const int __lane1,
14297 int32x4_t __b, const int __lane2)
14299 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14300 __a, __lane1);
14303 __extension__ extern __inline int64x1_t
14304 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14305 vcopy_laneq_s64 (int64x1_t __a, const int __lane1,
14306 int64x2_t __b, const int __lane2)
14308 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14309 __a, __lane1);
14312 __extension__ extern __inline uint8x8_t
14313 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14314 vcopy_laneq_u8 (uint8x8_t __a, const int __lane1,
14315 uint8x16_t __b, const int __lane2)
14317 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14318 __a, __lane1);
14321 __extension__ extern __inline uint16x4_t
14322 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14323 vcopy_laneq_u16 (uint16x4_t __a, const int __lane1,
14324 uint16x8_t __b, const int __lane2)
14326 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14327 __a, __lane1);
14330 __extension__ extern __inline uint32x2_t
14331 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14332 vcopy_laneq_u32 (uint32x2_t __a, const int __lane1,
14333 uint32x4_t __b, const int __lane2)
14335 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14336 __a, __lane1);
14339 __extension__ extern __inline uint64x1_t
14340 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14341 vcopy_laneq_u64 (uint64x1_t __a, const int __lane1,
14342 uint64x2_t __b, const int __lane2)
14344 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14345 __a, __lane1);
14348 /* vcopyq_lane. */
14350 __extension__ extern __inline float32x4_t
14351 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14352 vcopyq_lane_f32 (float32x4_t __a, const int __lane1,
14353 float32x2_t __b, const int __lane2)
14355 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14356 __a, __lane1);
14359 __extension__ extern __inline float64x2_t
14360 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14361 vcopyq_lane_f64 (float64x2_t __a, const int __lane1,
14362 float64x1_t __b, const int __lane2)
14364 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14365 __a, __lane1);
14368 __extension__ extern __inline poly8x16_t
14369 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14370 vcopyq_lane_p8 (poly8x16_t __a, const int __lane1,
14371 poly8x8_t __b, const int __lane2)
14373 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14374 __a, __lane1);
14377 __extension__ extern __inline poly16x8_t
14378 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14379 vcopyq_lane_p16 (poly16x8_t __a, const int __lane1,
14380 poly16x4_t __b, const int __lane2)
14382 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14383 __a, __lane1);
14386 __extension__ extern __inline poly64x2_t
14387 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14388 vcopyq_lane_p64 (poly64x2_t __a, const int __lane1,
14389 poly64x1_t __b, const int __lane2)
14391 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14392 __a, __lane1);
14395 __extension__ extern __inline int8x16_t
14396 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14397 vcopyq_lane_s8 (int8x16_t __a, const int __lane1,
14398 int8x8_t __b, const int __lane2)
14400 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14401 __a, __lane1);
14404 __extension__ extern __inline int16x8_t
14405 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14406 vcopyq_lane_s16 (int16x8_t __a, const int __lane1,
14407 int16x4_t __b, const int __lane2)
14409 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14410 __a, __lane1);
14413 __extension__ extern __inline int32x4_t
14414 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14415 vcopyq_lane_s32 (int32x4_t __a, const int __lane1,
14416 int32x2_t __b, const int __lane2)
14418 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14419 __a, __lane1);
14422 __extension__ extern __inline int64x2_t
14423 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14424 vcopyq_lane_s64 (int64x2_t __a, const int __lane1,
14425 int64x1_t __b, const int __lane2)
14427 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14428 __a, __lane1);
14431 __extension__ extern __inline uint8x16_t
14432 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14433 vcopyq_lane_u8 (uint8x16_t __a, const int __lane1,
14434 uint8x8_t __b, const int __lane2)
14436 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14437 __a, __lane1);
14440 __extension__ extern __inline uint16x8_t
14441 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14442 vcopyq_lane_u16 (uint16x8_t __a, const int __lane1,
14443 uint16x4_t __b, const int __lane2)
14445 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14446 __a, __lane1);
14449 __extension__ extern __inline uint32x4_t
14450 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14451 vcopyq_lane_u32 (uint32x4_t __a, const int __lane1,
14452 uint32x2_t __b, const int __lane2)
14454 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14455 __a, __lane1);
14458 __extension__ extern __inline uint64x2_t
14459 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14460 vcopyq_lane_u64 (uint64x2_t __a, const int __lane1,
14461 uint64x1_t __b, const int __lane2)
14463 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14464 __a, __lane1);
14467 /* vcopyq_laneq. */
14469 __extension__ extern __inline float32x4_t
14470 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14471 vcopyq_laneq_f32 (float32x4_t __a, const int __lane1,
14472 float32x4_t __b, const int __lane2)
14474 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14475 __a, __lane1);
14478 __extension__ extern __inline float64x2_t
14479 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14480 vcopyq_laneq_f64 (float64x2_t __a, const int __lane1,
14481 float64x2_t __b, const int __lane2)
14483 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14484 __a, __lane1);
14487 __extension__ extern __inline poly8x16_t
14488 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14489 vcopyq_laneq_p8 (poly8x16_t __a, const int __lane1,
14490 poly8x16_t __b, const int __lane2)
14492 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14493 __a, __lane1);
14496 __extension__ extern __inline poly16x8_t
14497 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14498 vcopyq_laneq_p16 (poly16x8_t __a, const int __lane1,
14499 poly16x8_t __b, const int __lane2)
14501 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14502 __a, __lane1);
14505 __extension__ extern __inline poly64x2_t
14506 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14507 vcopyq_laneq_p64 (poly64x2_t __a, const int __lane1,
14508 poly64x2_t __b, const int __lane2)
14510 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14511 __a, __lane1);
14514 __extension__ extern __inline int8x16_t
14515 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14516 vcopyq_laneq_s8 (int8x16_t __a, const int __lane1,
14517 int8x16_t __b, const int __lane2)
14519 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14520 __a, __lane1);
14523 __extension__ extern __inline int16x8_t
14524 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14525 vcopyq_laneq_s16 (int16x8_t __a, const int __lane1,
14526 int16x8_t __b, const int __lane2)
14528 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14529 __a, __lane1);
14532 __extension__ extern __inline int32x4_t
14533 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14534 vcopyq_laneq_s32 (int32x4_t __a, const int __lane1,
14535 int32x4_t __b, const int __lane2)
14537 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14538 __a, __lane1);
14541 __extension__ extern __inline int64x2_t
14542 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14543 vcopyq_laneq_s64 (int64x2_t __a, const int __lane1,
14544 int64x2_t __b, const int __lane2)
14546 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14547 __a, __lane1);
14550 __extension__ extern __inline uint8x16_t
14551 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14552 vcopyq_laneq_u8 (uint8x16_t __a, const int __lane1,
14553 uint8x16_t __b, const int __lane2)
14555 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14556 __a, __lane1);
14559 __extension__ extern __inline uint16x8_t
14560 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14561 vcopyq_laneq_u16 (uint16x8_t __a, const int __lane1,
14562 uint16x8_t __b, const int __lane2)
14564 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14565 __a, __lane1);
14568 __extension__ extern __inline uint32x4_t
14569 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14570 vcopyq_laneq_u32 (uint32x4_t __a, const int __lane1,
14571 uint32x4_t __b, const int __lane2)
14573 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14574 __a, __lane1);
14577 __extension__ extern __inline uint64x2_t
14578 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14579 vcopyq_laneq_u64 (uint64x2_t __a, const int __lane1,
14580 uint64x2_t __b, const int __lane2)
14582 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14583 __a, __lane1);
14586 /* vcvt (double -> float). */
14588 __extension__ extern __inline float16x4_t
14589 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14590 vcvt_f16_f32 (float32x4_t __a)
14592 return __builtin_aarch64_float_truncate_lo_v4hf (__a);
14595 __extension__ extern __inline float16x8_t
14596 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14597 vcvt_high_f16_f32 (float16x4_t __a, float32x4_t __b)
14599 return __builtin_aarch64_float_truncate_hi_v8hf (__a, __b);
14602 __extension__ extern __inline float32x2_t
14603 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14604 vcvt_f32_f64 (float64x2_t __a)
14606 return __builtin_aarch64_float_truncate_lo_v2sf (__a);
14609 __extension__ extern __inline float32x4_t
14610 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14611 vcvt_high_f32_f64 (float32x2_t __a, float64x2_t __b)
14613 return __builtin_aarch64_float_truncate_hi_v4sf (__a, __b);
14616 /* vcvt (float -> double). */
14618 __extension__ extern __inline float32x4_t
14619 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14620 vcvt_f32_f16 (float16x4_t __a)
14622 return __builtin_aarch64_float_extend_lo_v4sf (__a);
14625 __extension__ extern __inline float64x2_t
14626 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14627 vcvt_f64_f32 (float32x2_t __a)
14630 return __builtin_aarch64_float_extend_lo_v2df (__a);
14633 __extension__ extern __inline float32x4_t
14634 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14635 vcvt_high_f32_f16 (float16x8_t __a)
14637 return __builtin_aarch64_vec_unpacks_hi_v8hf (__a);
14640 __extension__ extern __inline float64x2_t
14641 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14642 vcvt_high_f64_f32 (float32x4_t __a)
14644 return __builtin_aarch64_vec_unpacks_hi_v4sf (__a);
14647 /* vcvt (<u>fixed-point -> float). */
14649 __extension__ extern __inline float64_t
14650 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14651 vcvtd_n_f64_s64 (int64_t __a, const int __b)
14653 return __builtin_aarch64_scvtfdi (__a, __b);
14656 __extension__ extern __inline float64_t
14657 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14658 vcvtd_n_f64_u64 (uint64_t __a, const int __b)
14660 return __builtin_aarch64_ucvtfdi_sus (__a, __b);
14663 __extension__ extern __inline float32_t
14664 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14665 vcvts_n_f32_s32 (int32_t __a, const int __b)
14667 return __builtin_aarch64_scvtfsi (__a, __b);
14670 __extension__ extern __inline float32_t
14671 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14672 vcvts_n_f32_u32 (uint32_t __a, const int __b)
14674 return __builtin_aarch64_ucvtfsi_sus (__a, __b);
14677 __extension__ extern __inline float32x2_t
14678 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14679 vcvt_n_f32_s32 (int32x2_t __a, const int __b)
14681 return __builtin_aarch64_scvtfv2si (__a, __b);
14684 __extension__ extern __inline float32x2_t
14685 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14686 vcvt_n_f32_u32 (uint32x2_t __a, const int __b)
14688 return __builtin_aarch64_ucvtfv2si_sus (__a, __b);
14691 __extension__ extern __inline float64x1_t
14692 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14693 vcvt_n_f64_s64 (int64x1_t __a, const int __b)
14695 return (float64x1_t)
14696 { __builtin_aarch64_scvtfdi (vget_lane_s64 (__a, 0), __b) };
14699 __extension__ extern __inline float64x1_t
14700 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14701 vcvt_n_f64_u64 (uint64x1_t __a, const int __b)
14703 return (float64x1_t)
14704 { __builtin_aarch64_ucvtfdi_sus (vget_lane_u64 (__a, 0), __b) };
14707 __extension__ extern __inline float32x4_t
14708 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14709 vcvtq_n_f32_s32 (int32x4_t __a, const int __b)
14711 return __builtin_aarch64_scvtfv4si (__a, __b);
14714 __extension__ extern __inline float32x4_t
14715 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14716 vcvtq_n_f32_u32 (uint32x4_t __a, const int __b)
14718 return __builtin_aarch64_ucvtfv4si_sus (__a, __b);
14721 __extension__ extern __inline float64x2_t
14722 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14723 vcvtq_n_f64_s64 (int64x2_t __a, const int __b)
14725 return __builtin_aarch64_scvtfv2di (__a, __b);
14728 __extension__ extern __inline float64x2_t
14729 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14730 vcvtq_n_f64_u64 (uint64x2_t __a, const int __b)
14732 return __builtin_aarch64_ucvtfv2di_sus (__a, __b);
14735 /* vcvt (float -> <u>fixed-point). */
14737 __extension__ extern __inline int64_t
14738 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14739 vcvtd_n_s64_f64 (float64_t __a, const int __b)
14741 return __builtin_aarch64_fcvtzsdf (__a, __b);
14744 __extension__ extern __inline uint64_t
14745 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14746 vcvtd_n_u64_f64 (float64_t __a, const int __b)
14748 return __builtin_aarch64_fcvtzudf_uss (__a, __b);
14751 __extension__ extern __inline int32_t
14752 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14753 vcvts_n_s32_f32 (float32_t __a, const int __b)
14755 return __builtin_aarch64_fcvtzssf (__a, __b);
14758 __extension__ extern __inline uint32_t
14759 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14760 vcvts_n_u32_f32 (float32_t __a, const int __b)
14762 return __builtin_aarch64_fcvtzusf_uss (__a, __b);
14765 __extension__ extern __inline int32x2_t
14766 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14767 vcvt_n_s32_f32 (float32x2_t __a, const int __b)
14769 return __builtin_aarch64_fcvtzsv2sf (__a, __b);
14772 __extension__ extern __inline uint32x2_t
14773 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14774 vcvt_n_u32_f32 (float32x2_t __a, const int __b)
14776 return __builtin_aarch64_fcvtzuv2sf_uss (__a, __b);
14779 __extension__ extern __inline int64x1_t
14780 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14781 vcvt_n_s64_f64 (float64x1_t __a, const int __b)
14783 return (int64x1_t)
14784 { __builtin_aarch64_fcvtzsdf (vget_lane_f64 (__a, 0), __b) };
14787 __extension__ extern __inline uint64x1_t
14788 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14789 vcvt_n_u64_f64 (float64x1_t __a, const int __b)
14791 return (uint64x1_t)
14792 { __builtin_aarch64_fcvtzudf_uss (vget_lane_f64 (__a, 0), __b) };
14795 __extension__ extern __inline int32x4_t
14796 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14797 vcvtq_n_s32_f32 (float32x4_t __a, const int __b)
14799 return __builtin_aarch64_fcvtzsv4sf (__a, __b);
14802 __extension__ extern __inline uint32x4_t
14803 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14804 vcvtq_n_u32_f32 (float32x4_t __a, const int __b)
14806 return __builtin_aarch64_fcvtzuv4sf_uss (__a, __b);
14809 __extension__ extern __inline int64x2_t
14810 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14811 vcvtq_n_s64_f64 (float64x2_t __a, const int __b)
14813 return __builtin_aarch64_fcvtzsv2df (__a, __b);
14816 __extension__ extern __inline uint64x2_t
14817 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14818 vcvtq_n_u64_f64 (float64x2_t __a, const int __b)
14820 return __builtin_aarch64_fcvtzuv2df_uss (__a, __b);
14823 /* vcvt (<u>int -> float) */
14825 __extension__ extern __inline float64_t
14826 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14827 vcvtd_f64_s64 (int64_t __a)
14829 return (float64_t) __a;
14832 __extension__ extern __inline float64_t
14833 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14834 vcvtd_f64_u64 (uint64_t __a)
14836 return (float64_t) __a;
14839 __extension__ extern __inline float32_t
14840 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14841 vcvts_f32_s32 (int32_t __a)
14843 return (float32_t) __a;
14846 __extension__ extern __inline float32_t
14847 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14848 vcvts_f32_u32 (uint32_t __a)
14850 return (float32_t) __a;
14853 __extension__ extern __inline float32x2_t
14854 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14855 vcvt_f32_s32 (int32x2_t __a)
14857 return __builtin_aarch64_floatv2siv2sf (__a);
14860 __extension__ extern __inline float32x2_t
14861 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14862 vcvt_f32_u32 (uint32x2_t __a)
14864 return __builtin_aarch64_floatunsv2siv2sf ((int32x2_t) __a);
14867 __extension__ extern __inline float64x1_t
14868 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14869 vcvt_f64_s64 (int64x1_t __a)
14871 return (float64x1_t) { vget_lane_s64 (__a, 0) };
14874 __extension__ extern __inline float64x1_t
14875 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14876 vcvt_f64_u64 (uint64x1_t __a)
14878 return (float64x1_t) { vget_lane_u64 (__a, 0) };
14881 __extension__ extern __inline float32x4_t
14882 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14883 vcvtq_f32_s32 (int32x4_t __a)
14885 return __builtin_aarch64_floatv4siv4sf (__a);
14888 __extension__ extern __inline float32x4_t
14889 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14890 vcvtq_f32_u32 (uint32x4_t __a)
14892 return __builtin_aarch64_floatunsv4siv4sf ((int32x4_t) __a);
14895 __extension__ extern __inline float64x2_t
14896 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14897 vcvtq_f64_s64 (int64x2_t __a)
14899 return __builtin_aarch64_floatv2div2df (__a);
14902 __extension__ extern __inline float64x2_t
14903 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14904 vcvtq_f64_u64 (uint64x2_t __a)
14906 return __builtin_aarch64_floatunsv2div2df ((int64x2_t) __a);
14909 /* vcvt (float -> <u>int) */
14911 __extension__ extern __inline int64_t
14912 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14913 vcvtd_s64_f64 (float64_t __a)
14915 return (int64_t) __a;
14918 __extension__ extern __inline uint64_t
14919 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14920 vcvtd_u64_f64 (float64_t __a)
14922 return (uint64_t) __a;
14925 __extension__ extern __inline int32_t
14926 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14927 vcvts_s32_f32 (float32_t __a)
14929 return (int32_t) __a;
14932 __extension__ extern __inline uint32_t
14933 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14934 vcvts_u32_f32 (float32_t __a)
14936 return (uint32_t) __a;
14939 __extension__ extern __inline int32x2_t
14940 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14941 vcvt_s32_f32 (float32x2_t __a)
14943 return __builtin_aarch64_lbtruncv2sfv2si (__a);
14946 __extension__ extern __inline uint32x2_t
14947 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14948 vcvt_u32_f32 (float32x2_t __a)
14950 return __builtin_aarch64_lbtruncuv2sfv2si_us (__a);
14953 __extension__ extern __inline int32x4_t
14954 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14955 vcvtq_s32_f32 (float32x4_t __a)
14957 return __builtin_aarch64_lbtruncv4sfv4si (__a);
14960 __extension__ extern __inline uint32x4_t
14961 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14962 vcvtq_u32_f32 (float32x4_t __a)
14964 return __builtin_aarch64_lbtruncuv4sfv4si_us (__a);
14967 __extension__ extern __inline int64x1_t
14968 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14969 vcvt_s64_f64 (float64x1_t __a)
14971 return (int64x1_t) {vcvtd_s64_f64 (__a[0])};
14974 __extension__ extern __inline uint64x1_t
14975 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14976 vcvt_u64_f64 (float64x1_t __a)
14978 return (uint64x1_t) {vcvtd_u64_f64 (__a[0])};
14981 __extension__ extern __inline int64x2_t
14982 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14983 vcvtq_s64_f64 (float64x2_t __a)
14985 return __builtin_aarch64_lbtruncv2dfv2di (__a);
14988 __extension__ extern __inline uint64x2_t
14989 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14990 vcvtq_u64_f64 (float64x2_t __a)
14992 return __builtin_aarch64_lbtruncuv2dfv2di_us (__a);
14995 /* vcvta */
14997 __extension__ extern __inline int64_t
14998 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14999 vcvtad_s64_f64 (float64_t __a)
15001 return __builtin_aarch64_lrounddfdi (__a);
15004 __extension__ extern __inline uint64_t
15005 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15006 vcvtad_u64_f64 (float64_t __a)
15008 return __builtin_aarch64_lroundudfdi_us (__a);
15011 __extension__ extern __inline int32_t
15012 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15013 vcvtas_s32_f32 (float32_t __a)
15015 return __builtin_aarch64_lroundsfsi (__a);
15018 __extension__ extern __inline uint32_t
15019 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15020 vcvtas_u32_f32 (float32_t __a)
15022 return __builtin_aarch64_lroundusfsi_us (__a);
15025 __extension__ extern __inline int32x2_t
15026 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15027 vcvta_s32_f32 (float32x2_t __a)
15029 return __builtin_aarch64_lroundv2sfv2si (__a);
15032 __extension__ extern __inline uint32x2_t
15033 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15034 vcvta_u32_f32 (float32x2_t __a)
15036 return __builtin_aarch64_lrounduv2sfv2si_us (__a);
15039 __extension__ extern __inline int32x4_t
15040 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15041 vcvtaq_s32_f32 (float32x4_t __a)
15043 return __builtin_aarch64_lroundv4sfv4si (__a);
15046 __extension__ extern __inline uint32x4_t
15047 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15048 vcvtaq_u32_f32 (float32x4_t __a)
15050 return __builtin_aarch64_lrounduv4sfv4si_us (__a);
15053 __extension__ extern __inline int64x1_t
15054 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15055 vcvta_s64_f64 (float64x1_t __a)
15057 return (int64x1_t) {vcvtad_s64_f64 (__a[0])};
15060 __extension__ extern __inline uint64x1_t
15061 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15062 vcvta_u64_f64 (float64x1_t __a)
15064 return (uint64x1_t) {vcvtad_u64_f64 (__a[0])};
15067 __extension__ extern __inline int64x2_t
15068 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15069 vcvtaq_s64_f64 (float64x2_t __a)
15071 return __builtin_aarch64_lroundv2dfv2di (__a);
15074 __extension__ extern __inline uint64x2_t
15075 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15076 vcvtaq_u64_f64 (float64x2_t __a)
15078 return __builtin_aarch64_lrounduv2dfv2di_us (__a);
15081 /* vcvtm */
15083 __extension__ extern __inline int64_t
15084 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15085 vcvtmd_s64_f64 (float64_t __a)
15087 return __builtin_llfloor (__a);
15090 __extension__ extern __inline uint64_t
15091 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15092 vcvtmd_u64_f64 (float64_t __a)
15094 return __builtin_aarch64_lfloorudfdi_us (__a);
15097 __extension__ extern __inline int32_t
15098 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15099 vcvtms_s32_f32 (float32_t __a)
15101 return __builtin_ifloorf (__a);
15104 __extension__ extern __inline uint32_t
15105 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15106 vcvtms_u32_f32 (float32_t __a)
15108 return __builtin_aarch64_lfloorusfsi_us (__a);
15111 __extension__ extern __inline int32x2_t
15112 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15113 vcvtm_s32_f32 (float32x2_t __a)
15115 return __builtin_aarch64_lfloorv2sfv2si (__a);
15118 __extension__ extern __inline uint32x2_t
15119 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15120 vcvtm_u32_f32 (float32x2_t __a)
15122 return __builtin_aarch64_lflooruv2sfv2si_us (__a);
15125 __extension__ extern __inline int32x4_t
15126 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15127 vcvtmq_s32_f32 (float32x4_t __a)
15129 return __builtin_aarch64_lfloorv4sfv4si (__a);
15132 __extension__ extern __inline uint32x4_t
15133 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15134 vcvtmq_u32_f32 (float32x4_t __a)
15136 return __builtin_aarch64_lflooruv4sfv4si_us (__a);
15139 __extension__ extern __inline int64x1_t
15140 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15141 vcvtm_s64_f64 (float64x1_t __a)
15143 return (int64x1_t) {vcvtmd_s64_f64 (__a[0])};
15146 __extension__ extern __inline uint64x1_t
15147 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15148 vcvtm_u64_f64 (float64x1_t __a)
15150 return (uint64x1_t) {vcvtmd_u64_f64 (__a[0])};
15153 __extension__ extern __inline int64x2_t
15154 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15155 vcvtmq_s64_f64 (float64x2_t __a)
15157 return __builtin_aarch64_lfloorv2dfv2di (__a);
15160 __extension__ extern __inline uint64x2_t
15161 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15162 vcvtmq_u64_f64 (float64x2_t __a)
15164 return __builtin_aarch64_lflooruv2dfv2di_us (__a);
15167 /* vcvtn */
15169 __extension__ extern __inline int64_t
15170 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15171 vcvtnd_s64_f64 (float64_t __a)
15173 return __builtin_aarch64_lfrintndfdi (__a);
15176 __extension__ extern __inline uint64_t
15177 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15178 vcvtnd_u64_f64 (float64_t __a)
15180 return __builtin_aarch64_lfrintnudfdi_us (__a);
15183 __extension__ extern __inline int32_t
15184 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15185 vcvtns_s32_f32 (float32_t __a)
15187 return __builtin_aarch64_lfrintnsfsi (__a);
15190 __extension__ extern __inline uint32_t
15191 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15192 vcvtns_u32_f32 (float32_t __a)
15194 return __builtin_aarch64_lfrintnusfsi_us (__a);
15197 __extension__ extern __inline int32x2_t
15198 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15199 vcvtn_s32_f32 (float32x2_t __a)
15201 return __builtin_aarch64_lfrintnv2sfv2si (__a);
15204 __extension__ extern __inline uint32x2_t
15205 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15206 vcvtn_u32_f32 (float32x2_t __a)
15208 return __builtin_aarch64_lfrintnuv2sfv2si_us (__a);
15211 __extension__ extern __inline int32x4_t
15212 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15213 vcvtnq_s32_f32 (float32x4_t __a)
15215 return __builtin_aarch64_lfrintnv4sfv4si (__a);
15218 __extension__ extern __inline uint32x4_t
15219 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15220 vcvtnq_u32_f32 (float32x4_t __a)
15222 return __builtin_aarch64_lfrintnuv4sfv4si_us (__a);
15225 __extension__ extern __inline int64x1_t
15226 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15227 vcvtn_s64_f64 (float64x1_t __a)
15229 return (int64x1_t) {vcvtnd_s64_f64 (__a[0])};
15232 __extension__ extern __inline uint64x1_t
15233 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15234 vcvtn_u64_f64 (float64x1_t __a)
15236 return (uint64x1_t) {vcvtnd_u64_f64 (__a[0])};
15239 __extension__ extern __inline int64x2_t
15240 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15241 vcvtnq_s64_f64 (float64x2_t __a)
15243 return __builtin_aarch64_lfrintnv2dfv2di (__a);
15246 __extension__ extern __inline uint64x2_t
15247 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15248 vcvtnq_u64_f64 (float64x2_t __a)
15250 return __builtin_aarch64_lfrintnuv2dfv2di_us (__a);
15253 /* vcvtp */
15255 __extension__ extern __inline int64_t
15256 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15257 vcvtpd_s64_f64 (float64_t __a)
15259 return __builtin_llceil (__a);
15262 __extension__ extern __inline uint64_t
15263 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15264 vcvtpd_u64_f64 (float64_t __a)
15266 return __builtin_aarch64_lceiludfdi_us (__a);
15269 __extension__ extern __inline int32_t
15270 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15271 vcvtps_s32_f32 (float32_t __a)
15273 return __builtin_iceilf (__a);
15276 __extension__ extern __inline uint32_t
15277 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15278 vcvtps_u32_f32 (float32_t __a)
15280 return __builtin_aarch64_lceilusfsi_us (__a);
15283 __extension__ extern __inline int32x2_t
15284 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15285 vcvtp_s32_f32 (float32x2_t __a)
15287 return __builtin_aarch64_lceilv2sfv2si (__a);
15290 __extension__ extern __inline uint32x2_t
15291 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15292 vcvtp_u32_f32 (float32x2_t __a)
15294 return __builtin_aarch64_lceiluv2sfv2si_us (__a);
15297 __extension__ extern __inline int32x4_t
15298 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15299 vcvtpq_s32_f32 (float32x4_t __a)
15301 return __builtin_aarch64_lceilv4sfv4si (__a);
15304 __extension__ extern __inline uint32x4_t
15305 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15306 vcvtpq_u32_f32 (float32x4_t __a)
15308 return __builtin_aarch64_lceiluv4sfv4si_us (__a);
15311 __extension__ extern __inline int64x1_t
15312 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15313 vcvtp_s64_f64 (float64x1_t __a)
15315 return (int64x1_t) {vcvtpd_s64_f64 (__a[0])};
15318 __extension__ extern __inline uint64x1_t
15319 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15320 vcvtp_u64_f64 (float64x1_t __a)
15322 return (uint64x1_t) {vcvtpd_u64_f64 (__a[0])};
15325 __extension__ extern __inline int64x2_t
15326 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15327 vcvtpq_s64_f64 (float64x2_t __a)
15329 return __builtin_aarch64_lceilv2dfv2di (__a);
15332 __extension__ extern __inline uint64x2_t
15333 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15334 vcvtpq_u64_f64 (float64x2_t __a)
15336 return __builtin_aarch64_lceiluv2dfv2di_us (__a);
15339 /* vdup_n */
15341 __extension__ extern __inline float16x4_t
15342 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15343 vdup_n_f16 (float16_t __a)
15345 return (float16x4_t) {__a, __a, __a, __a};
15348 __extension__ extern __inline float32x2_t
15349 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15350 vdup_n_f32 (float32_t __a)
15352 return (float32x2_t) {__a, __a};
15355 __extension__ extern __inline float64x1_t
15356 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15357 vdup_n_f64 (float64_t __a)
15359 return (float64x1_t) {__a};
15362 __extension__ extern __inline poly8x8_t
15363 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15364 vdup_n_p8 (poly8_t __a)
15366 return (poly8x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
15369 __extension__ extern __inline poly16x4_t
15370 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15371 vdup_n_p16 (poly16_t __a)
15373 return (poly16x4_t) {__a, __a, __a, __a};
15376 __extension__ extern __inline poly64x1_t
15377 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15378 vdup_n_p64 (poly64_t __a)
15380 return (poly64x1_t) {__a};
15383 __extension__ extern __inline int8x8_t
15384 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15385 vdup_n_s8 (int8_t __a)
15387 return (int8x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
15390 __extension__ extern __inline int16x4_t
15391 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15392 vdup_n_s16 (int16_t __a)
15394 return (int16x4_t) {__a, __a, __a, __a};
15397 __extension__ extern __inline int32x2_t
15398 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15399 vdup_n_s32 (int32_t __a)
15401 return (int32x2_t) {__a, __a};
15404 __extension__ extern __inline int64x1_t
15405 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15406 vdup_n_s64 (int64_t __a)
15408 return (int64x1_t) {__a};
15411 __extension__ extern __inline uint8x8_t
15412 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15413 vdup_n_u8 (uint8_t __a)
15415 return (uint8x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
15418 __extension__ extern __inline uint16x4_t
15419 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15420 vdup_n_u16 (uint16_t __a)
15422 return (uint16x4_t) {__a, __a, __a, __a};
15425 __extension__ extern __inline uint32x2_t
15426 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15427 vdup_n_u32 (uint32_t __a)
15429 return (uint32x2_t) {__a, __a};
15432 __extension__ extern __inline uint64x1_t
15433 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15434 vdup_n_u64 (uint64_t __a)
15436 return (uint64x1_t) {__a};
15439 /* vdupq_n */
15441 __extension__ extern __inline float16x8_t
15442 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15443 vdupq_n_f16 (float16_t __a)
15445 return (float16x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
15448 __extension__ extern __inline float32x4_t
15449 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15450 vdupq_n_f32 (float32_t __a)
15452 return (float32x4_t) {__a, __a, __a, __a};
15455 __extension__ extern __inline float64x2_t
15456 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15457 vdupq_n_f64 (float64_t __a)
15459 return (float64x2_t) {__a, __a};
15462 __extension__ extern __inline poly8x16_t
15463 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15464 vdupq_n_p8 (uint32_t __a)
15466 return (poly8x16_t) {__a, __a, __a, __a, __a, __a, __a, __a,
15467 __a, __a, __a, __a, __a, __a, __a, __a};
15470 __extension__ extern __inline poly16x8_t
15471 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15472 vdupq_n_p16 (uint32_t __a)
15474 return (poly16x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
15477 __extension__ extern __inline poly64x2_t
15478 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15479 vdupq_n_p64 (uint64_t __a)
15481 return (poly64x2_t) {__a, __a};
15484 __extension__ extern __inline int8x16_t
15485 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15486 vdupq_n_s8 (int32_t __a)
15488 return (int8x16_t) {__a, __a, __a, __a, __a, __a, __a, __a,
15489 __a, __a, __a, __a, __a, __a, __a, __a};
15492 __extension__ extern __inline int16x8_t
15493 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15494 vdupq_n_s16 (int32_t __a)
15496 return (int16x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
15499 __extension__ extern __inline int32x4_t
15500 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15501 vdupq_n_s32 (int32_t __a)
15503 return (int32x4_t) {__a, __a, __a, __a};
15506 __extension__ extern __inline int64x2_t
15507 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15508 vdupq_n_s64 (int64_t __a)
15510 return (int64x2_t) {__a, __a};
15513 __extension__ extern __inline uint8x16_t
15514 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15515 vdupq_n_u8 (uint32_t __a)
15517 return (uint8x16_t) {__a, __a, __a, __a, __a, __a, __a, __a,
15518 __a, __a, __a, __a, __a, __a, __a, __a};
15521 __extension__ extern __inline uint16x8_t
15522 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15523 vdupq_n_u16 (uint32_t __a)
15525 return (uint16x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
15528 __extension__ extern __inline uint32x4_t
15529 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15530 vdupq_n_u32 (uint32_t __a)
15532 return (uint32x4_t) {__a, __a, __a, __a};
15535 __extension__ extern __inline uint64x2_t
15536 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15537 vdupq_n_u64 (uint64_t __a)
15539 return (uint64x2_t) {__a, __a};
15542 /* vdup_lane */
15544 __extension__ extern __inline float16x4_t
15545 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15546 vdup_lane_f16 (float16x4_t __a, const int __b)
15548 return __aarch64_vdup_lane_f16 (__a, __b);
15551 __extension__ extern __inline float32x2_t
15552 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15553 vdup_lane_f32 (float32x2_t __a, const int __b)
15555 return __aarch64_vdup_lane_f32 (__a, __b);
15558 __extension__ extern __inline float64x1_t
15559 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15560 vdup_lane_f64 (float64x1_t __a, const int __b)
15562 return __aarch64_vdup_lane_f64 (__a, __b);
15565 __extension__ extern __inline poly8x8_t
15566 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15567 vdup_lane_p8 (poly8x8_t __a, const int __b)
15569 return __aarch64_vdup_lane_p8 (__a, __b);
15572 __extension__ extern __inline poly16x4_t
15573 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15574 vdup_lane_p16 (poly16x4_t __a, const int __b)
15576 return __aarch64_vdup_lane_p16 (__a, __b);
15579 __extension__ extern __inline poly64x1_t
15580 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15581 vdup_lane_p64 (poly64x1_t __a, const int __b)
15583 return __aarch64_vdup_lane_p64 (__a, __b);
15586 __extension__ extern __inline int8x8_t
15587 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15588 vdup_lane_s8 (int8x8_t __a, const int __b)
15590 return __aarch64_vdup_lane_s8 (__a, __b);
15593 __extension__ extern __inline int16x4_t
15594 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15595 vdup_lane_s16 (int16x4_t __a, const int __b)
15597 return __aarch64_vdup_lane_s16 (__a, __b);
15600 __extension__ extern __inline int32x2_t
15601 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15602 vdup_lane_s32 (int32x2_t __a, const int __b)
15604 return __aarch64_vdup_lane_s32 (__a, __b);
15607 __extension__ extern __inline int64x1_t
15608 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15609 vdup_lane_s64 (int64x1_t __a, const int __b)
15611 return __aarch64_vdup_lane_s64 (__a, __b);
15614 __extension__ extern __inline uint8x8_t
15615 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15616 vdup_lane_u8 (uint8x8_t __a, const int __b)
15618 return __aarch64_vdup_lane_u8 (__a, __b);
15621 __extension__ extern __inline uint16x4_t
15622 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15623 vdup_lane_u16 (uint16x4_t __a, const int __b)
15625 return __aarch64_vdup_lane_u16 (__a, __b);
15628 __extension__ extern __inline uint32x2_t
15629 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15630 vdup_lane_u32 (uint32x2_t __a, const int __b)
15632 return __aarch64_vdup_lane_u32 (__a, __b);
15635 __extension__ extern __inline uint64x1_t
15636 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15637 vdup_lane_u64 (uint64x1_t __a, const int __b)
15639 return __aarch64_vdup_lane_u64 (__a, __b);
15642 /* vdup_laneq */
15644 __extension__ extern __inline float16x4_t
15645 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15646 vdup_laneq_f16 (float16x8_t __a, const int __b)
15648 return __aarch64_vdup_laneq_f16 (__a, __b);
15651 __extension__ extern __inline float32x2_t
15652 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15653 vdup_laneq_f32 (float32x4_t __a, const int __b)
15655 return __aarch64_vdup_laneq_f32 (__a, __b);
15658 __extension__ extern __inline float64x1_t
15659 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15660 vdup_laneq_f64 (float64x2_t __a, const int __b)
15662 return __aarch64_vdup_laneq_f64 (__a, __b);
15665 __extension__ extern __inline poly8x8_t
15666 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15667 vdup_laneq_p8 (poly8x16_t __a, const int __b)
15669 return __aarch64_vdup_laneq_p8 (__a, __b);
15672 __extension__ extern __inline poly16x4_t
15673 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15674 vdup_laneq_p16 (poly16x8_t __a, const int __b)
15676 return __aarch64_vdup_laneq_p16 (__a, __b);
15679 __extension__ extern __inline poly64x1_t
15680 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15681 vdup_laneq_p64 (poly64x2_t __a, const int __b)
15683 return __aarch64_vdup_laneq_p64 (__a, __b);
15686 __extension__ extern __inline int8x8_t
15687 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15688 vdup_laneq_s8 (int8x16_t __a, const int __b)
15690 return __aarch64_vdup_laneq_s8 (__a, __b);
15693 __extension__ extern __inline int16x4_t
15694 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15695 vdup_laneq_s16 (int16x8_t __a, const int __b)
15697 return __aarch64_vdup_laneq_s16 (__a, __b);
15700 __extension__ extern __inline int32x2_t
15701 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15702 vdup_laneq_s32 (int32x4_t __a, const int __b)
15704 return __aarch64_vdup_laneq_s32 (__a, __b);
15707 __extension__ extern __inline int64x1_t
15708 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15709 vdup_laneq_s64 (int64x2_t __a, const int __b)
15711 return __aarch64_vdup_laneq_s64 (__a, __b);
15714 __extension__ extern __inline uint8x8_t
15715 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15716 vdup_laneq_u8 (uint8x16_t __a, const int __b)
15718 return __aarch64_vdup_laneq_u8 (__a, __b);
15721 __extension__ extern __inline uint16x4_t
15722 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15723 vdup_laneq_u16 (uint16x8_t __a, const int __b)
15725 return __aarch64_vdup_laneq_u16 (__a, __b);
15728 __extension__ extern __inline uint32x2_t
15729 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15730 vdup_laneq_u32 (uint32x4_t __a, const int __b)
15732 return __aarch64_vdup_laneq_u32 (__a, __b);
15735 __extension__ extern __inline uint64x1_t
15736 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15737 vdup_laneq_u64 (uint64x2_t __a, const int __b)
15739 return __aarch64_vdup_laneq_u64 (__a, __b);
15742 /* vdupq_lane */
15744 __extension__ extern __inline float16x8_t
15745 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15746 vdupq_lane_f16 (float16x4_t __a, const int __b)
15748 return __aarch64_vdupq_lane_f16 (__a, __b);
15751 __extension__ extern __inline float32x4_t
15752 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15753 vdupq_lane_f32 (float32x2_t __a, const int __b)
15755 return __aarch64_vdupq_lane_f32 (__a, __b);
15758 __extension__ extern __inline float64x2_t
15759 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15760 vdupq_lane_f64 (float64x1_t __a, const int __b)
15762 return __aarch64_vdupq_lane_f64 (__a, __b);
15765 __extension__ extern __inline poly8x16_t
15766 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15767 vdupq_lane_p8 (poly8x8_t __a, const int __b)
15769 return __aarch64_vdupq_lane_p8 (__a, __b);
15772 __extension__ extern __inline poly16x8_t
15773 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15774 vdupq_lane_p16 (poly16x4_t __a, const int __b)
15776 return __aarch64_vdupq_lane_p16 (__a, __b);
15779 __extension__ extern __inline poly64x2_t
15780 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15781 vdupq_lane_p64 (poly64x1_t __a, const int __b)
15783 return __aarch64_vdupq_lane_p64 (__a, __b);
15786 __extension__ extern __inline int8x16_t
15787 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15788 vdupq_lane_s8 (int8x8_t __a, const int __b)
15790 return __aarch64_vdupq_lane_s8 (__a, __b);
15793 __extension__ extern __inline int16x8_t
15794 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15795 vdupq_lane_s16 (int16x4_t __a, const int __b)
15797 return __aarch64_vdupq_lane_s16 (__a, __b);
15800 __extension__ extern __inline int32x4_t
15801 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15802 vdupq_lane_s32 (int32x2_t __a, const int __b)
15804 return __aarch64_vdupq_lane_s32 (__a, __b);
15807 __extension__ extern __inline int64x2_t
15808 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15809 vdupq_lane_s64 (int64x1_t __a, const int __b)
15811 return __aarch64_vdupq_lane_s64 (__a, __b);
15814 __extension__ extern __inline uint8x16_t
15815 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15816 vdupq_lane_u8 (uint8x8_t __a, const int __b)
15818 return __aarch64_vdupq_lane_u8 (__a, __b);
15821 __extension__ extern __inline uint16x8_t
15822 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15823 vdupq_lane_u16 (uint16x4_t __a, const int __b)
15825 return __aarch64_vdupq_lane_u16 (__a, __b);
15828 __extension__ extern __inline uint32x4_t
15829 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15830 vdupq_lane_u32 (uint32x2_t __a, const int __b)
15832 return __aarch64_vdupq_lane_u32 (__a, __b);
15835 __extension__ extern __inline uint64x2_t
15836 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15837 vdupq_lane_u64 (uint64x1_t __a, const int __b)
15839 return __aarch64_vdupq_lane_u64 (__a, __b);
15842 /* vdupq_laneq */
15844 __extension__ extern __inline float16x8_t
15845 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15846 vdupq_laneq_f16 (float16x8_t __a, const int __b)
15848 return __aarch64_vdupq_laneq_f16 (__a, __b);
15851 __extension__ extern __inline float32x4_t
15852 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15853 vdupq_laneq_f32 (float32x4_t __a, const int __b)
15855 return __aarch64_vdupq_laneq_f32 (__a, __b);
15858 __extension__ extern __inline float64x2_t
15859 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15860 vdupq_laneq_f64 (float64x2_t __a, const int __b)
15862 return __aarch64_vdupq_laneq_f64 (__a, __b);
15865 __extension__ extern __inline poly8x16_t
15866 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15867 vdupq_laneq_p8 (poly8x16_t __a, const int __b)
15869 return __aarch64_vdupq_laneq_p8 (__a, __b);
15872 __extension__ extern __inline poly16x8_t
15873 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15874 vdupq_laneq_p16 (poly16x8_t __a, const int __b)
15876 return __aarch64_vdupq_laneq_p16 (__a, __b);
15879 __extension__ extern __inline poly64x2_t
15880 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15881 vdupq_laneq_p64 (poly64x2_t __a, const int __b)
15883 return __aarch64_vdupq_laneq_p64 (__a, __b);
15886 __extension__ extern __inline int8x16_t
15887 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15888 vdupq_laneq_s8 (int8x16_t __a, const int __b)
15890 return __aarch64_vdupq_laneq_s8 (__a, __b);
15893 __extension__ extern __inline int16x8_t
15894 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15895 vdupq_laneq_s16 (int16x8_t __a, const int __b)
15897 return __aarch64_vdupq_laneq_s16 (__a, __b);
15900 __extension__ extern __inline int32x4_t
15901 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15902 vdupq_laneq_s32 (int32x4_t __a, const int __b)
15904 return __aarch64_vdupq_laneq_s32 (__a, __b);
15907 __extension__ extern __inline int64x2_t
15908 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15909 vdupq_laneq_s64 (int64x2_t __a, const int __b)
15911 return __aarch64_vdupq_laneq_s64 (__a, __b);
15914 __extension__ extern __inline uint8x16_t
15915 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15916 vdupq_laneq_u8 (uint8x16_t __a, const int __b)
15918 return __aarch64_vdupq_laneq_u8 (__a, __b);
15921 __extension__ extern __inline uint16x8_t
15922 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15923 vdupq_laneq_u16 (uint16x8_t __a, const int __b)
15925 return __aarch64_vdupq_laneq_u16 (__a, __b);
15928 __extension__ extern __inline uint32x4_t
15929 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15930 vdupq_laneq_u32 (uint32x4_t __a, const int __b)
15932 return __aarch64_vdupq_laneq_u32 (__a, __b);
15935 __extension__ extern __inline uint64x2_t
15936 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15937 vdupq_laneq_u64 (uint64x2_t __a, const int __b)
15939 return __aarch64_vdupq_laneq_u64 (__a, __b);
15942 /* vdupb_lane */
15943 __extension__ extern __inline poly8_t
15944 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15945 vdupb_lane_p8 (poly8x8_t __a, const int __b)
15947 return __aarch64_vget_lane_any (__a, __b);
15950 __extension__ extern __inline int8_t
15951 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15952 vdupb_lane_s8 (int8x8_t __a, const int __b)
15954 return __aarch64_vget_lane_any (__a, __b);
15957 __extension__ extern __inline uint8_t
15958 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15959 vdupb_lane_u8 (uint8x8_t __a, const int __b)
15961 return __aarch64_vget_lane_any (__a, __b);
15964 /* vduph_lane */
15966 __extension__ extern __inline float16_t
15967 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15968 vduph_lane_f16 (float16x4_t __a, const int __b)
15970 return __aarch64_vget_lane_any (__a, __b);
15973 __extension__ extern __inline poly16_t
15974 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15975 vduph_lane_p16 (poly16x4_t __a, const int __b)
15977 return __aarch64_vget_lane_any (__a, __b);
15980 __extension__ extern __inline int16_t
15981 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15982 vduph_lane_s16 (int16x4_t __a, const int __b)
15984 return __aarch64_vget_lane_any (__a, __b);
15987 __extension__ extern __inline uint16_t
15988 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15989 vduph_lane_u16 (uint16x4_t __a, const int __b)
15991 return __aarch64_vget_lane_any (__a, __b);
15994 /* vdups_lane */
15996 __extension__ extern __inline float32_t
15997 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15998 vdups_lane_f32 (float32x2_t __a, const int __b)
16000 return __aarch64_vget_lane_any (__a, __b);
16003 __extension__ extern __inline int32_t
16004 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16005 vdups_lane_s32 (int32x2_t __a, const int __b)
16007 return __aarch64_vget_lane_any (__a, __b);
16010 __extension__ extern __inline uint32_t
16011 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16012 vdups_lane_u32 (uint32x2_t __a, const int __b)
16014 return __aarch64_vget_lane_any (__a, __b);
16017 /* vdupd_lane */
16018 __extension__ extern __inline float64_t
16019 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16020 vdupd_lane_f64 (float64x1_t __a, const int __b)
16022 __AARCH64_LANE_CHECK (__a, __b);
16023 return __a[0];
16026 __extension__ extern __inline int64_t
16027 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16028 vdupd_lane_s64 (int64x1_t __a, const int __b)
16030 __AARCH64_LANE_CHECK (__a, __b);
16031 return __a[0];
16034 __extension__ extern __inline uint64_t
16035 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16036 vdupd_lane_u64 (uint64x1_t __a, const int __b)
16038 __AARCH64_LANE_CHECK (__a, __b);
16039 return __a[0];
16042 /* vdupb_laneq */
16043 __extension__ extern __inline poly8_t
16044 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16045 vdupb_laneq_p8 (poly8x16_t __a, const int __b)
16047 return __aarch64_vget_lane_any (__a, __b);
16050 __extension__ extern __inline int8_t
16051 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16052 vdupb_laneq_s8 (int8x16_t __a, const int __b)
16054 return __aarch64_vget_lane_any (__a, __b);
16057 __extension__ extern __inline uint8_t
16058 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16059 vdupb_laneq_u8 (uint8x16_t __a, const int __b)
16061 return __aarch64_vget_lane_any (__a, __b);
16064 /* vduph_laneq */
16066 __extension__ extern __inline float16_t
16067 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16068 vduph_laneq_f16 (float16x8_t __a, const int __b)
16070 return __aarch64_vget_lane_any (__a, __b);
16073 __extension__ extern __inline poly16_t
16074 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16075 vduph_laneq_p16 (poly16x8_t __a, const int __b)
16077 return __aarch64_vget_lane_any (__a, __b);
16080 __extension__ extern __inline int16_t
16081 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16082 vduph_laneq_s16 (int16x8_t __a, const int __b)
16084 return __aarch64_vget_lane_any (__a, __b);
16087 __extension__ extern __inline uint16_t
16088 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16089 vduph_laneq_u16 (uint16x8_t __a, const int __b)
16091 return __aarch64_vget_lane_any (__a, __b);
16094 /* vdups_laneq */
16096 __extension__ extern __inline float32_t
16097 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16098 vdups_laneq_f32 (float32x4_t __a, const int __b)
16100 return __aarch64_vget_lane_any (__a, __b);
16103 __extension__ extern __inline int32_t
16104 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16105 vdups_laneq_s32 (int32x4_t __a, const int __b)
16107 return __aarch64_vget_lane_any (__a, __b);
16110 __extension__ extern __inline uint32_t
16111 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16112 vdups_laneq_u32 (uint32x4_t __a, const int __b)
16114 return __aarch64_vget_lane_any (__a, __b);
16117 /* vdupd_laneq */
16118 __extension__ extern __inline float64_t
16119 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16120 vdupd_laneq_f64 (float64x2_t __a, const int __b)
16122 return __aarch64_vget_lane_any (__a, __b);
16125 __extension__ extern __inline int64_t
16126 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16127 vdupd_laneq_s64 (int64x2_t __a, const int __b)
16129 return __aarch64_vget_lane_any (__a, __b);
16132 __extension__ extern __inline uint64_t
16133 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16134 vdupd_laneq_u64 (uint64x2_t __a, const int __b)
16136 return __aarch64_vget_lane_any (__a, __b);
16139 /* vext */
16141 __extension__ extern __inline float16x4_t
16142 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16143 vext_f16 (float16x4_t __a, float16x4_t __b, __const int __c)
16145 __AARCH64_LANE_CHECK (__a, __c);
16146 #ifdef __AARCH64EB__
16147 return __builtin_shuffle (__b, __a,
16148 (uint16x4_t) {4 - __c, 5 - __c, 6 - __c, 7 - __c});
16149 #else
16150 return __builtin_shuffle (__a, __b,
16151 (uint16x4_t) {__c, __c + 1, __c + 2, __c + 3});
16152 #endif
16155 __extension__ extern __inline float32x2_t
16156 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16157 vext_f32 (float32x2_t __a, float32x2_t __b, __const int __c)
16159 __AARCH64_LANE_CHECK (__a, __c);
16160 #ifdef __AARCH64EB__
16161 return __builtin_shuffle (__b, __a, (uint32x2_t) {2-__c, 3-__c});
16162 #else
16163 return __builtin_shuffle (__a, __b, (uint32x2_t) {__c, __c+1});
16164 #endif
16167 __extension__ extern __inline float64x1_t
16168 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16169 vext_f64 (float64x1_t __a, float64x1_t __b, __const int __c)
16171 __AARCH64_LANE_CHECK (__a, __c);
16172 /* The only possible index to the assembler instruction returns element 0. */
16173 return __a;
16175 __extension__ extern __inline poly8x8_t
16176 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16177 vext_p8 (poly8x8_t __a, poly8x8_t __b, __const int __c)
16179 __AARCH64_LANE_CHECK (__a, __c);
16180 #ifdef __AARCH64EB__
16181 return __builtin_shuffle (__b, __a, (uint8x8_t)
16182 {8-__c, 9-__c, 10-__c, 11-__c, 12-__c, 13-__c, 14-__c, 15-__c});
16183 #else
16184 return __builtin_shuffle (__a, __b,
16185 (uint8x8_t) {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7});
16186 #endif
16189 __extension__ extern __inline poly16x4_t
16190 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16191 vext_p16 (poly16x4_t __a, poly16x4_t __b, __const int __c)
16193 __AARCH64_LANE_CHECK (__a, __c);
16194 #ifdef __AARCH64EB__
16195 return __builtin_shuffle (__b, __a,
16196 (uint16x4_t) {4-__c, 5-__c, 6-__c, 7-__c});
16197 #else
16198 return __builtin_shuffle (__a, __b, (uint16x4_t) {__c, __c+1, __c+2, __c+3});
16199 #endif
16202 __extension__ extern __inline poly64x1_t
16203 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16204 vext_p64 (poly64x1_t __a, poly64x1_t __b, __const int __c)
16206 __AARCH64_LANE_CHECK (__a, __c);
16207 /* The only possible index to the assembler instruction returns element 0. */
16208 return __a;
16211 __extension__ extern __inline int8x8_t
16212 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16213 vext_s8 (int8x8_t __a, int8x8_t __b, __const int __c)
16215 __AARCH64_LANE_CHECK (__a, __c);
16216 #ifdef __AARCH64EB__
16217 return __builtin_shuffle (__b, __a, (uint8x8_t)
16218 {8-__c, 9-__c, 10-__c, 11-__c, 12-__c, 13-__c, 14-__c, 15-__c});
16219 #else
16220 return __builtin_shuffle (__a, __b,
16221 (uint8x8_t) {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7});
16222 #endif
16225 __extension__ extern __inline int16x4_t
16226 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16227 vext_s16 (int16x4_t __a, int16x4_t __b, __const int __c)
16229 __AARCH64_LANE_CHECK (__a, __c);
16230 #ifdef __AARCH64EB__
16231 return __builtin_shuffle (__b, __a,
16232 (uint16x4_t) {4-__c, 5-__c, 6-__c, 7-__c});
16233 #else
16234 return __builtin_shuffle (__a, __b, (uint16x4_t) {__c, __c+1, __c+2, __c+3});
16235 #endif
16238 __extension__ extern __inline int32x2_t
16239 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16240 vext_s32 (int32x2_t __a, int32x2_t __b, __const int __c)
16242 __AARCH64_LANE_CHECK (__a, __c);
16243 #ifdef __AARCH64EB__
16244 return __builtin_shuffle (__b, __a, (uint32x2_t) {2-__c, 3-__c});
16245 #else
16246 return __builtin_shuffle (__a, __b, (uint32x2_t) {__c, __c+1});
16247 #endif
16250 __extension__ extern __inline int64x1_t
16251 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16252 vext_s64 (int64x1_t __a, int64x1_t __b, __const int __c)
16254 __AARCH64_LANE_CHECK (__a, __c);
16255 /* The only possible index to the assembler instruction returns element 0. */
16256 return __a;
16259 __extension__ extern __inline uint8x8_t
16260 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16261 vext_u8 (uint8x8_t __a, uint8x8_t __b, __const int __c)
16263 __AARCH64_LANE_CHECK (__a, __c);
16264 #ifdef __AARCH64EB__
16265 return __builtin_shuffle (__b, __a, (uint8x8_t)
16266 {8-__c, 9-__c, 10-__c, 11-__c, 12-__c, 13-__c, 14-__c, 15-__c});
16267 #else
16268 return __builtin_shuffle (__a, __b,
16269 (uint8x8_t) {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7});
16270 #endif
16273 __extension__ extern __inline uint16x4_t
16274 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16275 vext_u16 (uint16x4_t __a, uint16x4_t __b, __const int __c)
16277 __AARCH64_LANE_CHECK (__a, __c);
16278 #ifdef __AARCH64EB__
16279 return __builtin_shuffle (__b, __a,
16280 (uint16x4_t) {4-__c, 5-__c, 6-__c, 7-__c});
16281 #else
16282 return __builtin_shuffle (__a, __b, (uint16x4_t) {__c, __c+1, __c+2, __c+3});
16283 #endif
16286 __extension__ extern __inline uint32x2_t
16287 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16288 vext_u32 (uint32x2_t __a, uint32x2_t __b, __const int __c)
16290 __AARCH64_LANE_CHECK (__a, __c);
16291 #ifdef __AARCH64EB__
16292 return __builtin_shuffle (__b, __a, (uint32x2_t) {2-__c, 3-__c});
16293 #else
16294 return __builtin_shuffle (__a, __b, (uint32x2_t) {__c, __c+1});
16295 #endif
16298 __extension__ extern __inline uint64x1_t
16299 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16300 vext_u64 (uint64x1_t __a, uint64x1_t __b, __const int __c)
16302 __AARCH64_LANE_CHECK (__a, __c);
16303 /* The only possible index to the assembler instruction returns element 0. */
16304 return __a;
16307 __extension__ extern __inline float16x8_t
16308 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16309 vextq_f16 (float16x8_t __a, float16x8_t __b, __const int __c)
16311 __AARCH64_LANE_CHECK (__a, __c);
16312 #ifdef __AARCH64EB__
16313 return __builtin_shuffle (__b, __a,
16314 (uint16x8_t) {8 - __c, 9 - __c, 10 - __c, 11 - __c,
16315 12 - __c, 13 - __c, 14 - __c,
16316 15 - __c});
16317 #else
16318 return __builtin_shuffle (__a, __b,
16319 (uint16x8_t) {__c, __c + 1, __c + 2, __c + 3,
16320 __c + 4, __c + 5, __c + 6, __c + 7});
16321 #endif
16324 __extension__ extern __inline float32x4_t
16325 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16326 vextq_f32 (float32x4_t __a, float32x4_t __b, __const int __c)
16328 __AARCH64_LANE_CHECK (__a, __c);
16329 #ifdef __AARCH64EB__
16330 return __builtin_shuffle (__b, __a,
16331 (uint32x4_t) {4-__c, 5-__c, 6-__c, 7-__c});
16332 #else
16333 return __builtin_shuffle (__a, __b, (uint32x4_t) {__c, __c+1, __c+2, __c+3});
16334 #endif
16337 __extension__ extern __inline float64x2_t
16338 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16339 vextq_f64 (float64x2_t __a, float64x2_t __b, __const int __c)
16341 __AARCH64_LANE_CHECK (__a, __c);
16342 #ifdef __AARCH64EB__
16343 return __builtin_shuffle (__b, __a, (uint64x2_t) {2-__c, 3-__c});
16344 #else
16345 return __builtin_shuffle (__a, __b, (uint64x2_t) {__c, __c+1});
16346 #endif
16349 __extension__ extern __inline poly8x16_t
16350 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16351 vextq_p8 (poly8x16_t __a, poly8x16_t __b, __const int __c)
16353 __AARCH64_LANE_CHECK (__a, __c);
16354 #ifdef __AARCH64EB__
16355 return __builtin_shuffle (__b, __a, (uint8x16_t)
16356 {16-__c, 17-__c, 18-__c, 19-__c, 20-__c, 21-__c, 22-__c, 23-__c,
16357 24-__c, 25-__c, 26-__c, 27-__c, 28-__c, 29-__c, 30-__c, 31-__c});
16358 #else
16359 return __builtin_shuffle (__a, __b, (uint8x16_t)
16360 {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7,
16361 __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15});
16362 #endif
16365 __extension__ extern __inline poly16x8_t
16366 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16367 vextq_p16 (poly16x8_t __a, poly16x8_t __b, __const int __c)
16369 __AARCH64_LANE_CHECK (__a, __c);
16370 #ifdef __AARCH64EB__
16371 return __builtin_shuffle (__b, __a, (uint16x8_t)
16372 {8-__c, 9-__c, 10-__c, 11-__c, 12-__c, 13-__c, 14-__c, 15-__c});
16373 #else
16374 return __builtin_shuffle (__a, __b,
16375 (uint16x8_t) {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7});
16376 #endif
16379 __extension__ extern __inline poly64x2_t
16380 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16381 vextq_p64 (poly64x2_t __a, poly64x2_t __b, __const int __c)
16383 __AARCH64_LANE_CHECK (__a, __c);
16384 #ifdef __AARCH64EB__
16385 return __builtin_shuffle (__b, __a, (uint64x2_t) {2-__c, 3-__c});
16386 #else
16387 return __builtin_shuffle (__a, __b, (uint64x2_t) {__c, __c+1});
16388 #endif
16391 __extension__ extern __inline int8x16_t
16392 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16393 vextq_s8 (int8x16_t __a, int8x16_t __b, __const int __c)
16395 __AARCH64_LANE_CHECK (__a, __c);
16396 #ifdef __AARCH64EB__
16397 return __builtin_shuffle (__b, __a, (uint8x16_t)
16398 {16-__c, 17-__c, 18-__c, 19-__c, 20-__c, 21-__c, 22-__c, 23-__c,
16399 24-__c, 25-__c, 26-__c, 27-__c, 28-__c, 29-__c, 30-__c, 31-__c});
16400 #else
16401 return __builtin_shuffle (__a, __b, (uint8x16_t)
16402 {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7,
16403 __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15});
16404 #endif
16407 __extension__ extern __inline int16x8_t
16408 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16409 vextq_s16 (int16x8_t __a, int16x8_t __b, __const int __c)
16411 __AARCH64_LANE_CHECK (__a, __c);
16412 #ifdef __AARCH64EB__
16413 return __builtin_shuffle (__b, __a, (uint16x8_t)
16414 {8-__c, 9-__c, 10-__c, 11-__c, 12-__c, 13-__c, 14-__c, 15-__c});
16415 #else
16416 return __builtin_shuffle (__a, __b,
16417 (uint16x8_t) {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7});
16418 #endif
16421 __extension__ extern __inline int32x4_t
16422 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16423 vextq_s32 (int32x4_t __a, int32x4_t __b, __const int __c)
16425 __AARCH64_LANE_CHECK (__a, __c);
16426 #ifdef __AARCH64EB__
16427 return __builtin_shuffle (__b, __a,
16428 (uint32x4_t) {4-__c, 5-__c, 6-__c, 7-__c});
16429 #else
16430 return __builtin_shuffle (__a, __b, (uint32x4_t) {__c, __c+1, __c+2, __c+3});
16431 #endif
16434 __extension__ extern __inline int64x2_t
16435 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16436 vextq_s64 (int64x2_t __a, int64x2_t __b, __const int __c)
16438 __AARCH64_LANE_CHECK (__a, __c);
16439 #ifdef __AARCH64EB__
16440 return __builtin_shuffle (__b, __a, (uint64x2_t) {2-__c, 3-__c});
16441 #else
16442 return __builtin_shuffle (__a, __b, (uint64x2_t) {__c, __c+1});
16443 #endif
16446 __extension__ extern __inline uint8x16_t
16447 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16448 vextq_u8 (uint8x16_t __a, uint8x16_t __b, __const int __c)
16450 __AARCH64_LANE_CHECK (__a, __c);
16451 #ifdef __AARCH64EB__
16452 return __builtin_shuffle (__b, __a, (uint8x16_t)
16453 {16-__c, 17-__c, 18-__c, 19-__c, 20-__c, 21-__c, 22-__c, 23-__c,
16454 24-__c, 25-__c, 26-__c, 27-__c, 28-__c, 29-__c, 30-__c, 31-__c});
16455 #else
16456 return __builtin_shuffle (__a, __b, (uint8x16_t)
16457 {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7,
16458 __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15});
16459 #endif
16462 __extension__ extern __inline uint16x8_t
16463 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16464 vextq_u16 (uint16x8_t __a, uint16x8_t __b, __const int __c)
16466 __AARCH64_LANE_CHECK (__a, __c);
16467 #ifdef __AARCH64EB__
16468 return __builtin_shuffle (__b, __a, (uint16x8_t)
16469 {8-__c, 9-__c, 10-__c, 11-__c, 12-__c, 13-__c, 14-__c, 15-__c});
16470 #else
16471 return __builtin_shuffle (__a, __b,
16472 (uint16x8_t) {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7});
16473 #endif
16476 __extension__ extern __inline uint32x4_t
16477 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16478 vextq_u32 (uint32x4_t __a, uint32x4_t __b, __const int __c)
16480 __AARCH64_LANE_CHECK (__a, __c);
16481 #ifdef __AARCH64EB__
16482 return __builtin_shuffle (__b, __a,
16483 (uint32x4_t) {4-__c, 5-__c, 6-__c, 7-__c});
16484 #else
16485 return __builtin_shuffle (__a, __b, (uint32x4_t) {__c, __c+1, __c+2, __c+3});
16486 #endif
16489 __extension__ extern __inline uint64x2_t
16490 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16491 vextq_u64 (uint64x2_t __a, uint64x2_t __b, __const int __c)
16493 __AARCH64_LANE_CHECK (__a, __c);
16494 #ifdef __AARCH64EB__
16495 return __builtin_shuffle (__b, __a, (uint64x2_t) {2-__c, 3-__c});
16496 #else
16497 return __builtin_shuffle (__a, __b, (uint64x2_t) {__c, __c+1});
16498 #endif
16501 /* vfma */
16503 __extension__ extern __inline float64x1_t
16504 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16505 vfma_f64 (float64x1_t __a, float64x1_t __b, float64x1_t __c)
16507 return (float64x1_t) {__builtin_fma (__b[0], __c[0], __a[0])};
16510 __extension__ extern __inline float32x2_t
16511 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16512 vfma_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c)
16514 return __builtin_aarch64_fmav2sf (__b, __c, __a);
16517 __extension__ extern __inline float32x4_t
16518 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16519 vfmaq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c)
16521 return __builtin_aarch64_fmav4sf (__b, __c, __a);
16524 __extension__ extern __inline float64x2_t
16525 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16526 vfmaq_f64 (float64x2_t __a, float64x2_t __b, float64x2_t __c)
16528 return __builtin_aarch64_fmav2df (__b, __c, __a);
16531 __extension__ extern __inline float32x2_t
16532 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16533 vfma_n_f32 (float32x2_t __a, float32x2_t __b, float32_t __c)
16535 return __builtin_aarch64_fmav2sf (__b, vdup_n_f32 (__c), __a);
16538 __extension__ extern __inline float64x1_t
16539 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16540 vfma_n_f64 (float64x1_t __a, float64x1_t __b, float64_t __c)
16542 return (float64x1_t) {__b[0] * __c + __a[0]};
16545 __extension__ extern __inline float32x4_t
16546 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16547 vfmaq_n_f32 (float32x4_t __a, float32x4_t __b, float32_t __c)
16549 return __builtin_aarch64_fmav4sf (__b, vdupq_n_f32 (__c), __a);
16552 __extension__ extern __inline float64x2_t
16553 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16554 vfmaq_n_f64 (float64x2_t __a, float64x2_t __b, float64_t __c)
16556 return __builtin_aarch64_fmav2df (__b, vdupq_n_f64 (__c), __a);
16559 /* vfma_lane */
16561 __extension__ extern __inline float32x2_t
16562 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16563 vfma_lane_f32 (float32x2_t __a, float32x2_t __b,
16564 float32x2_t __c, const int __lane)
16566 return __builtin_aarch64_fmav2sf (__b,
16567 __aarch64_vdup_lane_f32 (__c, __lane),
16568 __a);
16571 __extension__ extern __inline float64x1_t
16572 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16573 vfma_lane_f64 (float64x1_t __a, float64x1_t __b,
16574 float64x1_t __c, const int __lane)
16576 return (float64x1_t) {__builtin_fma (__b[0], __c[0], __a[0])};
16579 __extension__ extern __inline float64_t
16580 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16581 vfmad_lane_f64 (float64_t __a, float64_t __b,
16582 float64x1_t __c, const int __lane)
16584 return __builtin_fma (__b, __c[0], __a);
16587 __extension__ extern __inline float32_t
16588 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16589 vfmas_lane_f32 (float32_t __a, float32_t __b,
16590 float32x2_t __c, const int __lane)
16592 return __builtin_fmaf (__b, __aarch64_vget_lane_any (__c, __lane), __a);
16595 /* vfma_laneq */
16597 __extension__ extern __inline float32x2_t
16598 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16599 vfma_laneq_f32 (float32x2_t __a, float32x2_t __b,
16600 float32x4_t __c, const int __lane)
16602 return __builtin_aarch64_fmav2sf (__b,
16603 __aarch64_vdup_laneq_f32 (__c, __lane),
16604 __a);
16607 __extension__ extern __inline float64x1_t
16608 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16609 vfma_laneq_f64 (float64x1_t __a, float64x1_t __b,
16610 float64x2_t __c, const int __lane)
16612 float64_t __c0 = __aarch64_vget_lane_any (__c, __lane);
16613 return (float64x1_t) {__builtin_fma (__b[0], __c0, __a[0])};
16616 __extension__ extern __inline float64_t
16617 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16618 vfmad_laneq_f64 (float64_t __a, float64_t __b,
16619 float64x2_t __c, const int __lane)
16621 return __builtin_fma (__b, __aarch64_vget_lane_any (__c, __lane), __a);
16624 __extension__ extern __inline float32_t
16625 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16626 vfmas_laneq_f32 (float32_t __a, float32_t __b,
16627 float32x4_t __c, const int __lane)
16629 return __builtin_fmaf (__b, __aarch64_vget_lane_any (__c, __lane), __a);
16632 /* vfmaq_lane */
16634 __extension__ extern __inline float32x4_t
16635 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16636 vfmaq_lane_f32 (float32x4_t __a, float32x4_t __b,
16637 float32x2_t __c, const int __lane)
16639 return __builtin_aarch64_fmav4sf (__b,
16640 __aarch64_vdupq_lane_f32 (__c, __lane),
16641 __a);
16644 __extension__ extern __inline float64x2_t
16645 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16646 vfmaq_lane_f64 (float64x2_t __a, float64x2_t __b,
16647 float64x1_t __c, const int __lane)
16649 return __builtin_aarch64_fmav2df (__b, vdupq_n_f64 (__c[0]), __a);
16652 /* vfmaq_laneq */
16654 __extension__ extern __inline float32x4_t
16655 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16656 vfmaq_laneq_f32 (float32x4_t __a, float32x4_t __b,
16657 float32x4_t __c, const int __lane)
16659 return __builtin_aarch64_fmav4sf (__b,
16660 __aarch64_vdupq_laneq_f32 (__c, __lane),
16661 __a);
16664 __extension__ extern __inline float64x2_t
16665 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16666 vfmaq_laneq_f64 (float64x2_t __a, float64x2_t __b,
16667 float64x2_t __c, const int __lane)
16669 return __builtin_aarch64_fmav2df (__b,
16670 __aarch64_vdupq_laneq_f64 (__c, __lane),
16671 __a);
16674 /* vfms */
16676 __extension__ extern __inline float64x1_t
16677 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16678 vfms_f64 (float64x1_t __a, float64x1_t __b, float64x1_t __c)
16680 return (float64x1_t) {__builtin_fma (-__b[0], __c[0], __a[0])};
16683 __extension__ extern __inline float32x2_t
16684 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16685 vfms_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c)
16687 return __builtin_aarch64_fmav2sf (-__b, __c, __a);
16690 __extension__ extern __inline float32x4_t
16691 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16692 vfmsq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c)
16694 return __builtin_aarch64_fmav4sf (-__b, __c, __a);
16697 __extension__ extern __inline float64x2_t
16698 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16699 vfmsq_f64 (float64x2_t __a, float64x2_t __b, float64x2_t __c)
16701 return __builtin_aarch64_fmav2df (-__b, __c, __a);
16704 __extension__ extern __inline float32x2_t
16705 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16706 vfms_n_f32 (float32x2_t __a, float32x2_t __b, float32_t __c)
16708 return __builtin_aarch64_fmav2sf (-__b, vdup_n_f32 (__c), __a);
16711 __extension__ extern __inline float64x1_t
16712 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16713 vfms_n_f64 (float64x1_t __a, float64x1_t __b, float64_t __c)
16715 return (float64x1_t) {-__b[0] * __c + __a[0]};
16718 __extension__ extern __inline float32x4_t
16719 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16720 vfmsq_n_f32 (float32x4_t __a, float32x4_t __b, float32_t __c)
16722 return __builtin_aarch64_fmav4sf (-__b, vdupq_n_f32 (__c), __a);
16725 __extension__ extern __inline float64x2_t
16726 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16727 vfmsq_n_f64 (float64x2_t __a, float64x2_t __b, float64_t __c)
16729 return __builtin_aarch64_fmav2df (-__b, vdupq_n_f64 (__c), __a);
16732 /* vfms_lane */
16734 __extension__ extern __inline float32x2_t
16735 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16736 vfms_lane_f32 (float32x2_t __a, float32x2_t __b,
16737 float32x2_t __c, const int __lane)
16739 return __builtin_aarch64_fmav2sf (-__b,
16740 __aarch64_vdup_lane_f32 (__c, __lane),
16741 __a);
16744 __extension__ extern __inline float64x1_t
16745 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16746 vfms_lane_f64 (float64x1_t __a, float64x1_t __b,
16747 float64x1_t __c, const int __lane)
16749 return (float64x1_t) {__builtin_fma (-__b[0], __c[0], __a[0])};
16752 __extension__ extern __inline float64_t
16753 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16754 vfmsd_lane_f64 (float64_t __a, float64_t __b,
16755 float64x1_t __c, const int __lane)
16757 return __builtin_fma (-__b, __c[0], __a);
16760 __extension__ extern __inline float32_t
16761 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16762 vfmss_lane_f32 (float32_t __a, float32_t __b,
16763 float32x2_t __c, const int __lane)
16765 return __builtin_fmaf (-__b, __aarch64_vget_lane_any (__c, __lane), __a);
16768 /* vfms_laneq */
16770 __extension__ extern __inline float32x2_t
16771 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16772 vfms_laneq_f32 (float32x2_t __a, float32x2_t __b,
16773 float32x4_t __c, const int __lane)
16775 return __builtin_aarch64_fmav2sf (-__b,
16776 __aarch64_vdup_laneq_f32 (__c, __lane),
16777 __a);
16780 __extension__ extern __inline float64x1_t
16781 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16782 vfms_laneq_f64 (float64x1_t __a, float64x1_t __b,
16783 float64x2_t __c, const int __lane)
16785 float64_t __c0 = __aarch64_vget_lane_any (__c, __lane);
16786 return (float64x1_t) {__builtin_fma (-__b[0], __c0, __a[0])};
16789 __extension__ extern __inline float64_t
16790 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16791 vfmsd_laneq_f64 (float64_t __a, float64_t __b,
16792 float64x2_t __c, const int __lane)
16794 return __builtin_fma (-__b, __aarch64_vget_lane_any (__c, __lane), __a);
16797 __extension__ extern __inline float32_t
16798 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16799 vfmss_laneq_f32 (float32_t __a, float32_t __b,
16800 float32x4_t __c, const int __lane)
16802 return __builtin_fmaf (-__b, __aarch64_vget_lane_any (__c, __lane), __a);
16805 /* vfmsq_lane */
16807 __extension__ extern __inline float32x4_t
16808 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16809 vfmsq_lane_f32 (float32x4_t __a, float32x4_t __b,
16810 float32x2_t __c, const int __lane)
16812 return __builtin_aarch64_fmav4sf (-__b,
16813 __aarch64_vdupq_lane_f32 (__c, __lane),
16814 __a);
16817 __extension__ extern __inline float64x2_t
16818 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16819 vfmsq_lane_f64 (float64x2_t __a, float64x2_t __b,
16820 float64x1_t __c, const int __lane)
16822 return __builtin_aarch64_fmav2df (-__b, vdupq_n_f64 (__c[0]), __a);
16825 /* vfmsq_laneq */
16827 __extension__ extern __inline float32x4_t
16828 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16829 vfmsq_laneq_f32 (float32x4_t __a, float32x4_t __b,
16830 float32x4_t __c, const int __lane)
16832 return __builtin_aarch64_fmav4sf (-__b,
16833 __aarch64_vdupq_laneq_f32 (__c, __lane),
16834 __a);
16837 __extension__ extern __inline float64x2_t
16838 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16839 vfmsq_laneq_f64 (float64x2_t __a, float64x2_t __b,
16840 float64x2_t __c, const int __lane)
16842 return __builtin_aarch64_fmav2df (-__b,
16843 __aarch64_vdupq_laneq_f64 (__c, __lane),
16844 __a);
16847 /* vld1 */
16849 __extension__ extern __inline float16x4_t
16850 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16851 vld1_f16 (const float16_t *__a)
16853 return __builtin_aarch64_ld1v4hf (__a);
16856 __extension__ extern __inline float32x2_t
16857 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16858 vld1_f32 (const float32_t *a)
16860 return __builtin_aarch64_ld1v2sf ((const __builtin_aarch64_simd_sf *) a);
16863 __extension__ extern __inline float64x1_t
16864 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16865 vld1_f64 (const float64_t *a)
16867 return (float64x1_t) {*a};
16870 __extension__ extern __inline poly8x8_t
16871 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16872 vld1_p8 (const poly8_t *a)
16874 return (poly8x8_t)
16875 __builtin_aarch64_ld1v8qi ((const __builtin_aarch64_simd_qi *) a);
16878 __extension__ extern __inline poly16x4_t
16879 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16880 vld1_p16 (const poly16_t *a)
16882 return (poly16x4_t)
16883 __builtin_aarch64_ld1v4hi ((const __builtin_aarch64_simd_hi *) a);
16886 __extension__ extern __inline poly64x1_t
16887 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16888 vld1_p64 (const poly64_t *a)
16890 return (poly64x1_t) {*a};
16893 __extension__ extern __inline int8x8_t
16894 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16895 vld1_s8 (const int8_t *a)
16897 return __builtin_aarch64_ld1v8qi ((const __builtin_aarch64_simd_qi *) a);
16900 __extension__ extern __inline int16x4_t
16901 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16902 vld1_s16 (const int16_t *a)
16904 return __builtin_aarch64_ld1v4hi ((const __builtin_aarch64_simd_hi *) a);
16907 __extension__ extern __inline int32x2_t
16908 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16909 vld1_s32 (const int32_t *a)
16911 return __builtin_aarch64_ld1v2si ((const __builtin_aarch64_simd_si *) a);
16914 __extension__ extern __inline int64x1_t
16915 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16916 vld1_s64 (const int64_t *a)
16918 return (int64x1_t) {*a};
16921 __extension__ extern __inline uint8x8_t
16922 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16923 vld1_u8 (const uint8_t *a)
16925 return (uint8x8_t)
16926 __builtin_aarch64_ld1v8qi ((const __builtin_aarch64_simd_qi *) a);
16929 __extension__ extern __inline uint16x4_t
16930 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16931 vld1_u16 (const uint16_t *a)
16933 return (uint16x4_t)
16934 __builtin_aarch64_ld1v4hi ((const __builtin_aarch64_simd_hi *) a);
16937 __extension__ extern __inline uint32x2_t
16938 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16939 vld1_u32 (const uint32_t *a)
16941 return (uint32x2_t)
16942 __builtin_aarch64_ld1v2si ((const __builtin_aarch64_simd_si *) a);
16945 __extension__ extern __inline uint64x1_t
16946 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16947 vld1_u64 (const uint64_t *a)
16949 return (uint64x1_t) {*a};
16952 /* vld1q */
16954 __extension__ extern __inline float16x8_t
16955 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16956 vld1q_f16 (const float16_t *__a)
16958 return __builtin_aarch64_ld1v8hf (__a);
16961 __extension__ extern __inline float32x4_t
16962 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16963 vld1q_f32 (const float32_t *a)
16965 return __builtin_aarch64_ld1v4sf ((const __builtin_aarch64_simd_sf *) a);
16968 __extension__ extern __inline float64x2_t
16969 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16970 vld1q_f64 (const float64_t *a)
16972 return __builtin_aarch64_ld1v2df ((const __builtin_aarch64_simd_df *) a);
16975 __extension__ extern __inline poly8x16_t
16976 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16977 vld1q_p8 (const poly8_t *a)
16979 return (poly8x16_t)
16980 __builtin_aarch64_ld1v16qi ((const __builtin_aarch64_simd_qi *) a);
16983 __extension__ extern __inline poly16x8_t
16984 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16985 vld1q_p16 (const poly16_t *a)
16987 return (poly16x8_t)
16988 __builtin_aarch64_ld1v8hi ((const __builtin_aarch64_simd_hi *) a);
16991 __extension__ extern __inline poly64x2_t
16992 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16993 vld1q_p64 (const poly64_t *a)
16995 return (poly64x2_t)
16996 __builtin_aarch64_ld1v2di ((const __builtin_aarch64_simd_di *) a);
16999 __extension__ extern __inline int8x16_t
17000 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17001 vld1q_s8 (const int8_t *a)
17003 return __builtin_aarch64_ld1v16qi ((const __builtin_aarch64_simd_qi *) a);
17006 __extension__ extern __inline int16x8_t
17007 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17008 vld1q_s16 (const int16_t *a)
17010 return __builtin_aarch64_ld1v8hi ((const __builtin_aarch64_simd_hi *) a);
17013 __extension__ extern __inline int32x4_t
17014 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17015 vld1q_s32 (const int32_t *a)
17017 return __builtin_aarch64_ld1v4si ((const __builtin_aarch64_simd_si *) a);
17020 __extension__ extern __inline int64x2_t
17021 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17022 vld1q_s64 (const int64_t *a)
17024 return __builtin_aarch64_ld1v2di ((const __builtin_aarch64_simd_di *) a);
17027 __extension__ extern __inline uint8x16_t
17028 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17029 vld1q_u8 (const uint8_t *a)
17031 return (uint8x16_t)
17032 __builtin_aarch64_ld1v16qi ((const __builtin_aarch64_simd_qi *) a);
17035 __extension__ extern __inline uint16x8_t
17036 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17037 vld1q_u16 (const uint16_t *a)
17039 return (uint16x8_t)
17040 __builtin_aarch64_ld1v8hi ((const __builtin_aarch64_simd_hi *) a);
17043 __extension__ extern __inline uint32x4_t
17044 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17045 vld1q_u32 (const uint32_t *a)
17047 return (uint32x4_t)
17048 __builtin_aarch64_ld1v4si ((const __builtin_aarch64_simd_si *) a);
17051 __extension__ extern __inline uint64x2_t
17052 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17053 vld1q_u64 (const uint64_t *a)
17055 return (uint64x2_t)
17056 __builtin_aarch64_ld1v2di ((const __builtin_aarch64_simd_di *) a);
17059 /* vld1_dup */
17061 __extension__ extern __inline float16x4_t
17062 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17063 vld1_dup_f16 (const float16_t* __a)
17065 return vdup_n_f16 (*__a);
17068 __extension__ extern __inline float32x2_t
17069 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17070 vld1_dup_f32 (const float32_t* __a)
17072 return vdup_n_f32 (*__a);
17075 __extension__ extern __inline float64x1_t
17076 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17077 vld1_dup_f64 (const float64_t* __a)
17079 return vdup_n_f64 (*__a);
17082 __extension__ extern __inline poly8x8_t
17083 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17084 vld1_dup_p8 (const poly8_t* __a)
17086 return vdup_n_p8 (*__a);
17089 __extension__ extern __inline poly16x4_t
17090 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17091 vld1_dup_p16 (const poly16_t* __a)
17093 return vdup_n_p16 (*__a);
17096 __extension__ extern __inline poly64x1_t
17097 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17098 vld1_dup_p64 (const poly64_t* __a)
17100 return vdup_n_p64 (*__a);
17103 __extension__ extern __inline int8x8_t
17104 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17105 vld1_dup_s8 (const int8_t* __a)
17107 return vdup_n_s8 (*__a);
17110 __extension__ extern __inline int16x4_t
17111 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17112 vld1_dup_s16 (const int16_t* __a)
17114 return vdup_n_s16 (*__a);
17117 __extension__ extern __inline int32x2_t
17118 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17119 vld1_dup_s32 (const int32_t* __a)
17121 return vdup_n_s32 (*__a);
17124 __extension__ extern __inline int64x1_t
17125 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17126 vld1_dup_s64 (const int64_t* __a)
17128 return vdup_n_s64 (*__a);
17131 __extension__ extern __inline uint8x8_t
17132 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17133 vld1_dup_u8 (const uint8_t* __a)
17135 return vdup_n_u8 (*__a);
17138 __extension__ extern __inline uint16x4_t
17139 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17140 vld1_dup_u16 (const uint16_t* __a)
17142 return vdup_n_u16 (*__a);
17145 __extension__ extern __inline uint32x2_t
17146 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17147 vld1_dup_u32 (const uint32_t* __a)
17149 return vdup_n_u32 (*__a);
17152 __extension__ extern __inline uint64x1_t
17153 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17154 vld1_dup_u64 (const uint64_t* __a)
17156 return vdup_n_u64 (*__a);
17159 /* vld1q_dup */
17161 __extension__ extern __inline float16x8_t
17162 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17163 vld1q_dup_f16 (const float16_t* __a)
17165 return vdupq_n_f16 (*__a);
17168 __extension__ extern __inline float32x4_t
17169 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17170 vld1q_dup_f32 (const float32_t* __a)
17172 return vdupq_n_f32 (*__a);
17175 __extension__ extern __inline float64x2_t
17176 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17177 vld1q_dup_f64 (const float64_t* __a)
17179 return vdupq_n_f64 (*__a);
17182 __extension__ extern __inline poly8x16_t
17183 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17184 vld1q_dup_p8 (const poly8_t* __a)
17186 return vdupq_n_p8 (*__a);
17189 __extension__ extern __inline poly16x8_t
17190 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17191 vld1q_dup_p16 (const poly16_t* __a)
17193 return vdupq_n_p16 (*__a);
17196 __extension__ extern __inline poly64x2_t
17197 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17198 vld1q_dup_p64 (const poly64_t* __a)
17200 return vdupq_n_p64 (*__a);
17203 __extension__ extern __inline int8x16_t
17204 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17205 vld1q_dup_s8 (const int8_t* __a)
17207 return vdupq_n_s8 (*__a);
17210 __extension__ extern __inline int16x8_t
17211 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17212 vld1q_dup_s16 (const int16_t* __a)
17214 return vdupq_n_s16 (*__a);
17217 __extension__ extern __inline int32x4_t
17218 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17219 vld1q_dup_s32 (const int32_t* __a)
17221 return vdupq_n_s32 (*__a);
17224 __extension__ extern __inline int64x2_t
17225 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17226 vld1q_dup_s64 (const int64_t* __a)
17228 return vdupq_n_s64 (*__a);
17231 __extension__ extern __inline uint8x16_t
17232 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17233 vld1q_dup_u8 (const uint8_t* __a)
17235 return vdupq_n_u8 (*__a);
17238 __extension__ extern __inline uint16x8_t
17239 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17240 vld1q_dup_u16 (const uint16_t* __a)
17242 return vdupq_n_u16 (*__a);
17245 __extension__ extern __inline uint32x4_t
17246 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17247 vld1q_dup_u32 (const uint32_t* __a)
17249 return vdupq_n_u32 (*__a);
17252 __extension__ extern __inline uint64x2_t
17253 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17254 vld1q_dup_u64 (const uint64_t* __a)
17256 return vdupq_n_u64 (*__a);
17259 /* vld1_lane */
17261 __extension__ extern __inline float16x4_t
17262 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17263 vld1_lane_f16 (const float16_t *__src, float16x4_t __vec, const int __lane)
17265 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17268 __extension__ extern __inline float32x2_t
17269 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17270 vld1_lane_f32 (const float32_t *__src, float32x2_t __vec, const int __lane)
17272 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17275 __extension__ extern __inline float64x1_t
17276 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17277 vld1_lane_f64 (const float64_t *__src, float64x1_t __vec, const int __lane)
17279 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17282 __extension__ extern __inline poly8x8_t
17283 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17284 vld1_lane_p8 (const poly8_t *__src, poly8x8_t __vec, const int __lane)
17286 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17289 __extension__ extern __inline poly16x4_t
17290 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17291 vld1_lane_p16 (const poly16_t *__src, poly16x4_t __vec, const int __lane)
17293 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17296 __extension__ extern __inline poly64x1_t
17297 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17298 vld1_lane_p64 (const poly64_t *__src, poly64x1_t __vec, const int __lane)
17300 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17303 __extension__ extern __inline int8x8_t
17304 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17305 vld1_lane_s8 (const int8_t *__src, int8x8_t __vec, const int __lane)
17307 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17310 __extension__ extern __inline int16x4_t
17311 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17312 vld1_lane_s16 (const int16_t *__src, int16x4_t __vec, const int __lane)
17314 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17317 __extension__ extern __inline int32x2_t
17318 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17319 vld1_lane_s32 (const int32_t *__src, int32x2_t __vec, const int __lane)
17321 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17324 __extension__ extern __inline int64x1_t
17325 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17326 vld1_lane_s64 (const int64_t *__src, int64x1_t __vec, const int __lane)
17328 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17331 __extension__ extern __inline uint8x8_t
17332 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17333 vld1_lane_u8 (const uint8_t *__src, uint8x8_t __vec, const int __lane)
17335 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17338 __extension__ extern __inline uint16x4_t
17339 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17340 vld1_lane_u16 (const uint16_t *__src, uint16x4_t __vec, const int __lane)
17342 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17345 __extension__ extern __inline uint32x2_t
17346 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17347 vld1_lane_u32 (const uint32_t *__src, uint32x2_t __vec, const int __lane)
17349 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17352 __extension__ extern __inline uint64x1_t
17353 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17354 vld1_lane_u64 (const uint64_t *__src, uint64x1_t __vec, const int __lane)
17356 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17359 /* vld1q_lane */
17361 __extension__ extern __inline float16x8_t
17362 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17363 vld1q_lane_f16 (const float16_t *__src, float16x8_t __vec, const int __lane)
17365 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17368 __extension__ extern __inline float32x4_t
17369 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17370 vld1q_lane_f32 (const float32_t *__src, float32x4_t __vec, const int __lane)
17372 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17375 __extension__ extern __inline float64x2_t
17376 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17377 vld1q_lane_f64 (const float64_t *__src, float64x2_t __vec, const int __lane)
17379 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17382 __extension__ extern __inline poly8x16_t
17383 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17384 vld1q_lane_p8 (const poly8_t *__src, poly8x16_t __vec, const int __lane)
17386 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17389 __extension__ extern __inline poly16x8_t
17390 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17391 vld1q_lane_p16 (const poly16_t *__src, poly16x8_t __vec, const int __lane)
17393 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17396 __extension__ extern __inline poly64x2_t
17397 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17398 vld1q_lane_p64 (const poly64_t *__src, poly64x2_t __vec, const int __lane)
17400 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17403 __extension__ extern __inline int8x16_t
17404 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17405 vld1q_lane_s8 (const int8_t *__src, int8x16_t __vec, const int __lane)
17407 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17410 __extension__ extern __inline int16x8_t
17411 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17412 vld1q_lane_s16 (const int16_t *__src, int16x8_t __vec, const int __lane)
17414 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17417 __extension__ extern __inline int32x4_t
17418 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17419 vld1q_lane_s32 (const int32_t *__src, int32x4_t __vec, const int __lane)
17421 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17424 __extension__ extern __inline int64x2_t
17425 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17426 vld1q_lane_s64 (const int64_t *__src, int64x2_t __vec, const int __lane)
17428 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17431 __extension__ extern __inline uint8x16_t
17432 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17433 vld1q_lane_u8 (const uint8_t *__src, uint8x16_t __vec, const int __lane)
17435 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17438 __extension__ extern __inline uint16x8_t
17439 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17440 vld1q_lane_u16 (const uint16_t *__src, uint16x8_t __vec, const int __lane)
17442 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17445 __extension__ extern __inline uint32x4_t
17446 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17447 vld1q_lane_u32 (const uint32_t *__src, uint32x4_t __vec, const int __lane)
17449 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17452 __extension__ extern __inline uint64x2_t
17453 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17454 vld1q_lane_u64 (const uint64_t *__src, uint64x2_t __vec, const int __lane)
17456 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17459 /* vldn */
17461 __extension__ extern __inline int64x1x2_t
17462 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17463 vld2_s64 (const int64_t * __a)
17465 int64x1x2_t ret;
17466 __builtin_aarch64_simd_oi __o;
17467 __o = __builtin_aarch64_ld2di ((const __builtin_aarch64_simd_di *) __a);
17468 ret.val[0] = (int64x1_t) __builtin_aarch64_get_dregoidi (__o, 0);
17469 ret.val[1] = (int64x1_t) __builtin_aarch64_get_dregoidi (__o, 1);
17470 return ret;
17473 __extension__ extern __inline uint64x1x2_t
17474 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17475 vld2_u64 (const uint64_t * __a)
17477 uint64x1x2_t ret;
17478 __builtin_aarch64_simd_oi __o;
17479 __o = __builtin_aarch64_ld2di ((const __builtin_aarch64_simd_di *) __a);
17480 ret.val[0] = (uint64x1_t) __builtin_aarch64_get_dregoidi (__o, 0);
17481 ret.val[1] = (uint64x1_t) __builtin_aarch64_get_dregoidi (__o, 1);
17482 return ret;
17485 __extension__ extern __inline float64x1x2_t
17486 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17487 vld2_f64 (const float64_t * __a)
17489 float64x1x2_t ret;
17490 __builtin_aarch64_simd_oi __o;
17491 __o = __builtin_aarch64_ld2df ((const __builtin_aarch64_simd_df *) __a);
17492 ret.val[0] = (float64x1_t) {__builtin_aarch64_get_dregoidf (__o, 0)};
17493 ret.val[1] = (float64x1_t) {__builtin_aarch64_get_dregoidf (__o, 1)};
17494 return ret;
17497 __extension__ extern __inline int8x8x2_t
17498 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17499 vld2_s8 (const int8_t * __a)
17501 int8x8x2_t ret;
17502 __builtin_aarch64_simd_oi __o;
17503 __o = __builtin_aarch64_ld2v8qi ((const __builtin_aarch64_simd_qi *) __a);
17504 ret.val[0] = (int8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 0);
17505 ret.val[1] = (int8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 1);
17506 return ret;
17509 __extension__ extern __inline poly8x8x2_t
17510 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17511 vld2_p8 (const poly8_t * __a)
17513 poly8x8x2_t ret;
17514 __builtin_aarch64_simd_oi __o;
17515 __o = __builtin_aarch64_ld2v8qi ((const __builtin_aarch64_simd_qi *) __a);
17516 ret.val[0] = (poly8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 0);
17517 ret.val[1] = (poly8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 1);
17518 return ret;
17521 __extension__ extern __inline poly64x1x2_t
17522 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17523 vld2_p64 (const poly64_t * __a)
17525 poly64x1x2_t ret;
17526 __builtin_aarch64_simd_oi __o;
17527 __o = __builtin_aarch64_ld2di ((const __builtin_aarch64_simd_di *) __a);
17528 ret.val[0] = (poly64x1_t) __builtin_aarch64_get_dregoidi_pss (__o, 0);
17529 ret.val[1] = (poly64x1_t) __builtin_aarch64_get_dregoidi_pss (__o, 1);
17530 return ret;
17533 __extension__ extern __inline int16x4x2_t
17534 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17535 vld2_s16 (const int16_t * __a)
17537 int16x4x2_t ret;
17538 __builtin_aarch64_simd_oi __o;
17539 __o = __builtin_aarch64_ld2v4hi ((const __builtin_aarch64_simd_hi *) __a);
17540 ret.val[0] = (int16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 0);
17541 ret.val[1] = (int16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 1);
17542 return ret;
17545 __extension__ extern __inline poly16x4x2_t
17546 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17547 vld2_p16 (const poly16_t * __a)
17549 poly16x4x2_t ret;
17550 __builtin_aarch64_simd_oi __o;
17551 __o = __builtin_aarch64_ld2v4hi ((const __builtin_aarch64_simd_hi *) __a);
17552 ret.val[0] = (poly16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 0);
17553 ret.val[1] = (poly16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 1);
17554 return ret;
17557 __extension__ extern __inline int32x2x2_t
17558 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17559 vld2_s32 (const int32_t * __a)
17561 int32x2x2_t ret;
17562 __builtin_aarch64_simd_oi __o;
17563 __o = __builtin_aarch64_ld2v2si ((const __builtin_aarch64_simd_si *) __a);
17564 ret.val[0] = (int32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 0);
17565 ret.val[1] = (int32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 1);
17566 return ret;
17569 __extension__ extern __inline uint8x8x2_t
17570 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17571 vld2_u8 (const uint8_t * __a)
17573 uint8x8x2_t ret;
17574 __builtin_aarch64_simd_oi __o;
17575 __o = __builtin_aarch64_ld2v8qi ((const __builtin_aarch64_simd_qi *) __a);
17576 ret.val[0] = (uint8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 0);
17577 ret.val[1] = (uint8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 1);
17578 return ret;
17581 __extension__ extern __inline uint16x4x2_t
17582 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17583 vld2_u16 (const uint16_t * __a)
17585 uint16x4x2_t ret;
17586 __builtin_aarch64_simd_oi __o;
17587 __o = __builtin_aarch64_ld2v4hi ((const __builtin_aarch64_simd_hi *) __a);
17588 ret.val[0] = (uint16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 0);
17589 ret.val[1] = (uint16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 1);
17590 return ret;
17593 __extension__ extern __inline uint32x2x2_t
17594 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17595 vld2_u32 (const uint32_t * __a)
17597 uint32x2x2_t ret;
17598 __builtin_aarch64_simd_oi __o;
17599 __o = __builtin_aarch64_ld2v2si ((const __builtin_aarch64_simd_si *) __a);
17600 ret.val[0] = (uint32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 0);
17601 ret.val[1] = (uint32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 1);
17602 return ret;
17605 __extension__ extern __inline float16x4x2_t
17606 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17607 vld2_f16 (const float16_t * __a)
17609 float16x4x2_t ret;
17610 __builtin_aarch64_simd_oi __o;
17611 __o = __builtin_aarch64_ld2v4hf (__a);
17612 ret.val[0] = __builtin_aarch64_get_dregoiv4hf (__o, 0);
17613 ret.val[1] = __builtin_aarch64_get_dregoiv4hf (__o, 1);
17614 return ret;
17617 __extension__ extern __inline float32x2x2_t
17618 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17619 vld2_f32 (const float32_t * __a)
17621 float32x2x2_t ret;
17622 __builtin_aarch64_simd_oi __o;
17623 __o = __builtin_aarch64_ld2v2sf ((const __builtin_aarch64_simd_sf *) __a);
17624 ret.val[0] = (float32x2_t) __builtin_aarch64_get_dregoiv2sf (__o, 0);
17625 ret.val[1] = (float32x2_t) __builtin_aarch64_get_dregoiv2sf (__o, 1);
17626 return ret;
17629 __extension__ extern __inline int8x16x2_t
17630 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17631 vld2q_s8 (const int8_t * __a)
17633 int8x16x2_t ret;
17634 __builtin_aarch64_simd_oi __o;
17635 __o = __builtin_aarch64_ld2v16qi ((const __builtin_aarch64_simd_qi *) __a);
17636 ret.val[0] = (int8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 0);
17637 ret.val[1] = (int8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 1);
17638 return ret;
17641 __extension__ extern __inline poly8x16x2_t
17642 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17643 vld2q_p8 (const poly8_t * __a)
17645 poly8x16x2_t ret;
17646 __builtin_aarch64_simd_oi __o;
17647 __o = __builtin_aarch64_ld2v16qi ((const __builtin_aarch64_simd_qi *) __a);
17648 ret.val[0] = (poly8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 0);
17649 ret.val[1] = (poly8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 1);
17650 return ret;
17653 __extension__ extern __inline int16x8x2_t
17654 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17655 vld2q_s16 (const int16_t * __a)
17657 int16x8x2_t ret;
17658 __builtin_aarch64_simd_oi __o;
17659 __o = __builtin_aarch64_ld2v8hi ((const __builtin_aarch64_simd_hi *) __a);
17660 ret.val[0] = (int16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 0);
17661 ret.val[1] = (int16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 1);
17662 return ret;
17665 __extension__ extern __inline poly16x8x2_t
17666 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17667 vld2q_p16 (const poly16_t * __a)
17669 poly16x8x2_t ret;
17670 __builtin_aarch64_simd_oi __o;
17671 __o = __builtin_aarch64_ld2v8hi ((const __builtin_aarch64_simd_hi *) __a);
17672 ret.val[0] = (poly16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 0);
17673 ret.val[1] = (poly16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 1);
17674 return ret;
17677 __extension__ extern __inline poly64x2x2_t
17678 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17679 vld2q_p64 (const poly64_t * __a)
17681 poly64x2x2_t ret;
17682 __builtin_aarch64_simd_oi __o;
17683 __o = __builtin_aarch64_ld2v2di ((const __builtin_aarch64_simd_di *) __a);
17684 ret.val[0] = (poly64x2_t) __builtin_aarch64_get_qregoiv2di_pss (__o, 0);
17685 ret.val[1] = (poly64x2_t) __builtin_aarch64_get_qregoiv2di_pss (__o, 1);
17686 return ret;
17689 __extension__ extern __inline int32x4x2_t
17690 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17691 vld2q_s32 (const int32_t * __a)
17693 int32x4x2_t ret;
17694 __builtin_aarch64_simd_oi __o;
17695 __o = __builtin_aarch64_ld2v4si ((const __builtin_aarch64_simd_si *) __a);
17696 ret.val[0] = (int32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 0);
17697 ret.val[1] = (int32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 1);
17698 return ret;
17701 __extension__ extern __inline int64x2x2_t
17702 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17703 vld2q_s64 (const int64_t * __a)
17705 int64x2x2_t ret;
17706 __builtin_aarch64_simd_oi __o;
17707 __o = __builtin_aarch64_ld2v2di ((const __builtin_aarch64_simd_di *) __a);
17708 ret.val[0] = (int64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 0);
17709 ret.val[1] = (int64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 1);
17710 return ret;
17713 __extension__ extern __inline uint8x16x2_t
17714 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17715 vld2q_u8 (const uint8_t * __a)
17717 uint8x16x2_t ret;
17718 __builtin_aarch64_simd_oi __o;
17719 __o = __builtin_aarch64_ld2v16qi ((const __builtin_aarch64_simd_qi *) __a);
17720 ret.val[0] = (uint8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 0);
17721 ret.val[1] = (uint8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 1);
17722 return ret;
17725 __extension__ extern __inline uint16x8x2_t
17726 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17727 vld2q_u16 (const uint16_t * __a)
17729 uint16x8x2_t ret;
17730 __builtin_aarch64_simd_oi __o;
17731 __o = __builtin_aarch64_ld2v8hi ((const __builtin_aarch64_simd_hi *) __a);
17732 ret.val[0] = (uint16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 0);
17733 ret.val[1] = (uint16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 1);
17734 return ret;
17737 __extension__ extern __inline uint32x4x2_t
17738 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17739 vld2q_u32 (const uint32_t * __a)
17741 uint32x4x2_t ret;
17742 __builtin_aarch64_simd_oi __o;
17743 __o = __builtin_aarch64_ld2v4si ((const __builtin_aarch64_simd_si *) __a);
17744 ret.val[0] = (uint32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 0);
17745 ret.val[1] = (uint32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 1);
17746 return ret;
17749 __extension__ extern __inline uint64x2x2_t
17750 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17751 vld2q_u64 (const uint64_t * __a)
17753 uint64x2x2_t ret;
17754 __builtin_aarch64_simd_oi __o;
17755 __o = __builtin_aarch64_ld2v2di ((const __builtin_aarch64_simd_di *) __a);
17756 ret.val[0] = (uint64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 0);
17757 ret.val[1] = (uint64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 1);
17758 return ret;
17761 __extension__ extern __inline float16x8x2_t
17762 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17763 vld2q_f16 (const float16_t * __a)
17765 float16x8x2_t ret;
17766 __builtin_aarch64_simd_oi __o;
17767 __o = __builtin_aarch64_ld2v8hf (__a);
17768 ret.val[0] = __builtin_aarch64_get_qregoiv8hf (__o, 0);
17769 ret.val[1] = __builtin_aarch64_get_qregoiv8hf (__o, 1);
17770 return ret;
17773 __extension__ extern __inline float32x4x2_t
17774 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17775 vld2q_f32 (const float32_t * __a)
17777 float32x4x2_t ret;
17778 __builtin_aarch64_simd_oi __o;
17779 __o = __builtin_aarch64_ld2v4sf ((const __builtin_aarch64_simd_sf *) __a);
17780 ret.val[0] = (float32x4_t) __builtin_aarch64_get_qregoiv4sf (__o, 0);
17781 ret.val[1] = (float32x4_t) __builtin_aarch64_get_qregoiv4sf (__o, 1);
17782 return ret;
17785 __extension__ extern __inline float64x2x2_t
17786 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17787 vld2q_f64 (const float64_t * __a)
17789 float64x2x2_t ret;
17790 __builtin_aarch64_simd_oi __o;
17791 __o = __builtin_aarch64_ld2v2df ((const __builtin_aarch64_simd_df *) __a);
17792 ret.val[0] = (float64x2_t) __builtin_aarch64_get_qregoiv2df (__o, 0);
17793 ret.val[1] = (float64x2_t) __builtin_aarch64_get_qregoiv2df (__o, 1);
17794 return ret;
17797 __extension__ extern __inline int64x1x3_t
17798 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17799 vld3_s64 (const int64_t * __a)
17801 int64x1x3_t ret;
17802 __builtin_aarch64_simd_ci __o;
17803 __o = __builtin_aarch64_ld3di ((const __builtin_aarch64_simd_di *) __a);
17804 ret.val[0] = (int64x1_t) __builtin_aarch64_get_dregcidi (__o, 0);
17805 ret.val[1] = (int64x1_t) __builtin_aarch64_get_dregcidi (__o, 1);
17806 ret.val[2] = (int64x1_t) __builtin_aarch64_get_dregcidi (__o, 2);
17807 return ret;
17810 __extension__ extern __inline uint64x1x3_t
17811 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17812 vld3_u64 (const uint64_t * __a)
17814 uint64x1x3_t ret;
17815 __builtin_aarch64_simd_ci __o;
17816 __o = __builtin_aarch64_ld3di ((const __builtin_aarch64_simd_di *) __a);
17817 ret.val[0] = (uint64x1_t) __builtin_aarch64_get_dregcidi (__o, 0);
17818 ret.val[1] = (uint64x1_t) __builtin_aarch64_get_dregcidi (__o, 1);
17819 ret.val[2] = (uint64x1_t) __builtin_aarch64_get_dregcidi (__o, 2);
17820 return ret;
17823 __extension__ extern __inline float64x1x3_t
17824 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17825 vld3_f64 (const float64_t * __a)
17827 float64x1x3_t ret;
17828 __builtin_aarch64_simd_ci __o;
17829 __o = __builtin_aarch64_ld3df ((const __builtin_aarch64_simd_df *) __a);
17830 ret.val[0] = (float64x1_t) {__builtin_aarch64_get_dregcidf (__o, 0)};
17831 ret.val[1] = (float64x1_t) {__builtin_aarch64_get_dregcidf (__o, 1)};
17832 ret.val[2] = (float64x1_t) {__builtin_aarch64_get_dregcidf (__o, 2)};
17833 return ret;
17836 __extension__ extern __inline int8x8x3_t
17837 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17838 vld3_s8 (const int8_t * __a)
17840 int8x8x3_t ret;
17841 __builtin_aarch64_simd_ci __o;
17842 __o = __builtin_aarch64_ld3v8qi ((const __builtin_aarch64_simd_qi *) __a);
17843 ret.val[0] = (int8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 0);
17844 ret.val[1] = (int8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 1);
17845 ret.val[2] = (int8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 2);
17846 return ret;
17849 __extension__ extern __inline poly8x8x3_t
17850 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17851 vld3_p8 (const poly8_t * __a)
17853 poly8x8x3_t ret;
17854 __builtin_aarch64_simd_ci __o;
17855 __o = __builtin_aarch64_ld3v8qi ((const __builtin_aarch64_simd_qi *) __a);
17856 ret.val[0] = (poly8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 0);
17857 ret.val[1] = (poly8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 1);
17858 ret.val[2] = (poly8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 2);
17859 return ret;
17862 __extension__ extern __inline int16x4x3_t
17863 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17864 vld3_s16 (const int16_t * __a)
17866 int16x4x3_t ret;
17867 __builtin_aarch64_simd_ci __o;
17868 __o = __builtin_aarch64_ld3v4hi ((const __builtin_aarch64_simd_hi *) __a);
17869 ret.val[0] = (int16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 0);
17870 ret.val[1] = (int16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 1);
17871 ret.val[2] = (int16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 2);
17872 return ret;
17875 __extension__ extern __inline poly16x4x3_t
17876 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17877 vld3_p16 (const poly16_t * __a)
17879 poly16x4x3_t ret;
17880 __builtin_aarch64_simd_ci __o;
17881 __o = __builtin_aarch64_ld3v4hi ((const __builtin_aarch64_simd_hi *) __a);
17882 ret.val[0] = (poly16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 0);
17883 ret.val[1] = (poly16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 1);
17884 ret.val[2] = (poly16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 2);
17885 return ret;
17888 __extension__ extern __inline int32x2x3_t
17889 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17890 vld3_s32 (const int32_t * __a)
17892 int32x2x3_t ret;
17893 __builtin_aarch64_simd_ci __o;
17894 __o = __builtin_aarch64_ld3v2si ((const __builtin_aarch64_simd_si *) __a);
17895 ret.val[0] = (int32x2_t) __builtin_aarch64_get_dregciv2si (__o, 0);
17896 ret.val[1] = (int32x2_t) __builtin_aarch64_get_dregciv2si (__o, 1);
17897 ret.val[2] = (int32x2_t) __builtin_aarch64_get_dregciv2si (__o, 2);
17898 return ret;
17901 __extension__ extern __inline uint8x8x3_t
17902 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17903 vld3_u8 (const uint8_t * __a)
17905 uint8x8x3_t ret;
17906 __builtin_aarch64_simd_ci __o;
17907 __o = __builtin_aarch64_ld3v8qi ((const __builtin_aarch64_simd_qi *) __a);
17908 ret.val[0] = (uint8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 0);
17909 ret.val[1] = (uint8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 1);
17910 ret.val[2] = (uint8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 2);
17911 return ret;
17914 __extension__ extern __inline uint16x4x3_t
17915 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17916 vld3_u16 (const uint16_t * __a)
17918 uint16x4x3_t ret;
17919 __builtin_aarch64_simd_ci __o;
17920 __o = __builtin_aarch64_ld3v4hi ((const __builtin_aarch64_simd_hi *) __a);
17921 ret.val[0] = (uint16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 0);
17922 ret.val[1] = (uint16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 1);
17923 ret.val[2] = (uint16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 2);
17924 return ret;
17927 __extension__ extern __inline uint32x2x3_t
17928 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17929 vld3_u32 (const uint32_t * __a)
17931 uint32x2x3_t ret;
17932 __builtin_aarch64_simd_ci __o;
17933 __o = __builtin_aarch64_ld3v2si ((const __builtin_aarch64_simd_si *) __a);
17934 ret.val[0] = (uint32x2_t) __builtin_aarch64_get_dregciv2si (__o, 0);
17935 ret.val[1] = (uint32x2_t) __builtin_aarch64_get_dregciv2si (__o, 1);
17936 ret.val[2] = (uint32x2_t) __builtin_aarch64_get_dregciv2si (__o, 2);
17937 return ret;
17940 __extension__ extern __inline float16x4x3_t
17941 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17942 vld3_f16 (const float16_t * __a)
17944 float16x4x3_t ret;
17945 __builtin_aarch64_simd_ci __o;
17946 __o = __builtin_aarch64_ld3v4hf (__a);
17947 ret.val[0] = __builtin_aarch64_get_dregciv4hf (__o, 0);
17948 ret.val[1] = __builtin_aarch64_get_dregciv4hf (__o, 1);
17949 ret.val[2] = __builtin_aarch64_get_dregciv4hf (__o, 2);
17950 return ret;
17953 __extension__ extern __inline float32x2x3_t
17954 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17955 vld3_f32 (const float32_t * __a)
17957 float32x2x3_t ret;
17958 __builtin_aarch64_simd_ci __o;
17959 __o = __builtin_aarch64_ld3v2sf ((const __builtin_aarch64_simd_sf *) __a);
17960 ret.val[0] = (float32x2_t) __builtin_aarch64_get_dregciv2sf (__o, 0);
17961 ret.val[1] = (float32x2_t) __builtin_aarch64_get_dregciv2sf (__o, 1);
17962 ret.val[2] = (float32x2_t) __builtin_aarch64_get_dregciv2sf (__o, 2);
17963 return ret;
17966 __extension__ extern __inline poly64x1x3_t
17967 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17968 vld3_p64 (const poly64_t * __a)
17970 poly64x1x3_t ret;
17971 __builtin_aarch64_simd_ci __o;
17972 __o = __builtin_aarch64_ld3di ((const __builtin_aarch64_simd_di *) __a);
17973 ret.val[0] = (poly64x1_t) __builtin_aarch64_get_dregcidi_pss (__o, 0);
17974 ret.val[1] = (poly64x1_t) __builtin_aarch64_get_dregcidi_pss (__o, 1);
17975 ret.val[2] = (poly64x1_t) __builtin_aarch64_get_dregcidi_pss (__o, 2);
17976 return ret;
17979 __extension__ extern __inline int8x16x3_t
17980 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17981 vld3q_s8 (const int8_t * __a)
17983 int8x16x3_t ret;
17984 __builtin_aarch64_simd_ci __o;
17985 __o = __builtin_aarch64_ld3v16qi ((const __builtin_aarch64_simd_qi *) __a);
17986 ret.val[0] = (int8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 0);
17987 ret.val[1] = (int8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 1);
17988 ret.val[2] = (int8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 2);
17989 return ret;
17992 __extension__ extern __inline poly8x16x3_t
17993 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17994 vld3q_p8 (const poly8_t * __a)
17996 poly8x16x3_t ret;
17997 __builtin_aarch64_simd_ci __o;
17998 __o = __builtin_aarch64_ld3v16qi ((const __builtin_aarch64_simd_qi *) __a);
17999 ret.val[0] = (poly8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 0);
18000 ret.val[1] = (poly8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 1);
18001 ret.val[2] = (poly8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 2);
18002 return ret;
18005 __extension__ extern __inline int16x8x3_t
18006 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18007 vld3q_s16 (const int16_t * __a)
18009 int16x8x3_t ret;
18010 __builtin_aarch64_simd_ci __o;
18011 __o = __builtin_aarch64_ld3v8hi ((const __builtin_aarch64_simd_hi *) __a);
18012 ret.val[0] = (int16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 0);
18013 ret.val[1] = (int16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 1);
18014 ret.val[2] = (int16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 2);
18015 return ret;
18018 __extension__ extern __inline poly16x8x3_t
18019 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18020 vld3q_p16 (const poly16_t * __a)
18022 poly16x8x3_t ret;
18023 __builtin_aarch64_simd_ci __o;
18024 __o = __builtin_aarch64_ld3v8hi ((const __builtin_aarch64_simd_hi *) __a);
18025 ret.val[0] = (poly16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 0);
18026 ret.val[1] = (poly16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 1);
18027 ret.val[2] = (poly16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 2);
18028 return ret;
18031 __extension__ extern __inline int32x4x3_t
18032 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18033 vld3q_s32 (const int32_t * __a)
18035 int32x4x3_t ret;
18036 __builtin_aarch64_simd_ci __o;
18037 __o = __builtin_aarch64_ld3v4si ((const __builtin_aarch64_simd_si *) __a);
18038 ret.val[0] = (int32x4_t) __builtin_aarch64_get_qregciv4si (__o, 0);
18039 ret.val[1] = (int32x4_t) __builtin_aarch64_get_qregciv4si (__o, 1);
18040 ret.val[2] = (int32x4_t) __builtin_aarch64_get_qregciv4si (__o, 2);
18041 return ret;
18044 __extension__ extern __inline int64x2x3_t
18045 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18046 vld3q_s64 (const int64_t * __a)
18048 int64x2x3_t ret;
18049 __builtin_aarch64_simd_ci __o;
18050 __o = __builtin_aarch64_ld3v2di ((const __builtin_aarch64_simd_di *) __a);
18051 ret.val[0] = (int64x2_t) __builtin_aarch64_get_qregciv2di (__o, 0);
18052 ret.val[1] = (int64x2_t) __builtin_aarch64_get_qregciv2di (__o, 1);
18053 ret.val[2] = (int64x2_t) __builtin_aarch64_get_qregciv2di (__o, 2);
18054 return ret;
18057 __extension__ extern __inline uint8x16x3_t
18058 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18059 vld3q_u8 (const uint8_t * __a)
18061 uint8x16x3_t ret;
18062 __builtin_aarch64_simd_ci __o;
18063 __o = __builtin_aarch64_ld3v16qi ((const __builtin_aarch64_simd_qi *) __a);
18064 ret.val[0] = (uint8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 0);
18065 ret.val[1] = (uint8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 1);
18066 ret.val[2] = (uint8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 2);
18067 return ret;
18070 __extension__ extern __inline uint16x8x3_t
18071 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18072 vld3q_u16 (const uint16_t * __a)
18074 uint16x8x3_t ret;
18075 __builtin_aarch64_simd_ci __o;
18076 __o = __builtin_aarch64_ld3v8hi ((const __builtin_aarch64_simd_hi *) __a);
18077 ret.val[0] = (uint16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 0);
18078 ret.val[1] = (uint16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 1);
18079 ret.val[2] = (uint16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 2);
18080 return ret;
18083 __extension__ extern __inline uint32x4x3_t
18084 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18085 vld3q_u32 (const uint32_t * __a)
18087 uint32x4x3_t ret;
18088 __builtin_aarch64_simd_ci __o;
18089 __o = __builtin_aarch64_ld3v4si ((const __builtin_aarch64_simd_si *) __a);
18090 ret.val[0] = (uint32x4_t) __builtin_aarch64_get_qregciv4si (__o, 0);
18091 ret.val[1] = (uint32x4_t) __builtin_aarch64_get_qregciv4si (__o, 1);
18092 ret.val[2] = (uint32x4_t) __builtin_aarch64_get_qregciv4si (__o, 2);
18093 return ret;
18096 __extension__ extern __inline uint64x2x3_t
18097 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18098 vld3q_u64 (const uint64_t * __a)
18100 uint64x2x3_t ret;
18101 __builtin_aarch64_simd_ci __o;
18102 __o = __builtin_aarch64_ld3v2di ((const __builtin_aarch64_simd_di *) __a);
18103 ret.val[0] = (uint64x2_t) __builtin_aarch64_get_qregciv2di (__o, 0);
18104 ret.val[1] = (uint64x2_t) __builtin_aarch64_get_qregciv2di (__o, 1);
18105 ret.val[2] = (uint64x2_t) __builtin_aarch64_get_qregciv2di (__o, 2);
18106 return ret;
18109 __extension__ extern __inline float16x8x3_t
18110 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18111 vld3q_f16 (const float16_t * __a)
18113 float16x8x3_t ret;
18114 __builtin_aarch64_simd_ci __o;
18115 __o = __builtin_aarch64_ld3v8hf (__a);
18116 ret.val[0] = __builtin_aarch64_get_qregciv8hf (__o, 0);
18117 ret.val[1] = __builtin_aarch64_get_qregciv8hf (__o, 1);
18118 ret.val[2] = __builtin_aarch64_get_qregciv8hf (__o, 2);
18119 return ret;
18122 __extension__ extern __inline float32x4x3_t
18123 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18124 vld3q_f32 (const float32_t * __a)
18126 float32x4x3_t ret;
18127 __builtin_aarch64_simd_ci __o;
18128 __o = __builtin_aarch64_ld3v4sf ((const __builtin_aarch64_simd_sf *) __a);
18129 ret.val[0] = (float32x4_t) __builtin_aarch64_get_qregciv4sf (__o, 0);
18130 ret.val[1] = (float32x4_t) __builtin_aarch64_get_qregciv4sf (__o, 1);
18131 ret.val[2] = (float32x4_t) __builtin_aarch64_get_qregciv4sf (__o, 2);
18132 return ret;
18135 __extension__ extern __inline float64x2x3_t
18136 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18137 vld3q_f64 (const float64_t * __a)
18139 float64x2x3_t ret;
18140 __builtin_aarch64_simd_ci __o;
18141 __o = __builtin_aarch64_ld3v2df ((const __builtin_aarch64_simd_df *) __a);
18142 ret.val[0] = (float64x2_t) __builtin_aarch64_get_qregciv2df (__o, 0);
18143 ret.val[1] = (float64x2_t) __builtin_aarch64_get_qregciv2df (__o, 1);
18144 ret.val[2] = (float64x2_t) __builtin_aarch64_get_qregciv2df (__o, 2);
18145 return ret;
18148 __extension__ extern __inline poly64x2x3_t
18149 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18150 vld3q_p64 (const poly64_t * __a)
18152 poly64x2x3_t ret;
18153 __builtin_aarch64_simd_ci __o;
18154 __o = __builtin_aarch64_ld3v2di ((const __builtin_aarch64_simd_di *) __a);
18155 ret.val[0] = (poly64x2_t) __builtin_aarch64_get_qregciv2di_pss (__o, 0);
18156 ret.val[1] = (poly64x2_t) __builtin_aarch64_get_qregciv2di_pss (__o, 1);
18157 ret.val[2] = (poly64x2_t) __builtin_aarch64_get_qregciv2di_pss (__o, 2);
18158 return ret;
18161 __extension__ extern __inline int64x1x4_t
18162 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18163 vld4_s64 (const int64_t * __a)
18165 int64x1x4_t ret;
18166 __builtin_aarch64_simd_xi __o;
18167 __o = __builtin_aarch64_ld4di ((const __builtin_aarch64_simd_di *) __a);
18168 ret.val[0] = (int64x1_t) __builtin_aarch64_get_dregxidi (__o, 0);
18169 ret.val[1] = (int64x1_t) __builtin_aarch64_get_dregxidi (__o, 1);
18170 ret.val[2] = (int64x1_t) __builtin_aarch64_get_dregxidi (__o, 2);
18171 ret.val[3] = (int64x1_t) __builtin_aarch64_get_dregxidi (__o, 3);
18172 return ret;
18175 __extension__ extern __inline uint64x1x4_t
18176 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18177 vld4_u64 (const uint64_t * __a)
18179 uint64x1x4_t ret;
18180 __builtin_aarch64_simd_xi __o;
18181 __o = __builtin_aarch64_ld4di ((const __builtin_aarch64_simd_di *) __a);
18182 ret.val[0] = (uint64x1_t) __builtin_aarch64_get_dregxidi (__o, 0);
18183 ret.val[1] = (uint64x1_t) __builtin_aarch64_get_dregxidi (__o, 1);
18184 ret.val[2] = (uint64x1_t) __builtin_aarch64_get_dregxidi (__o, 2);
18185 ret.val[3] = (uint64x1_t) __builtin_aarch64_get_dregxidi (__o, 3);
18186 return ret;
18189 __extension__ extern __inline float64x1x4_t
18190 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18191 vld4_f64 (const float64_t * __a)
18193 float64x1x4_t ret;
18194 __builtin_aarch64_simd_xi __o;
18195 __o = __builtin_aarch64_ld4df ((const __builtin_aarch64_simd_df *) __a);
18196 ret.val[0] = (float64x1_t) {__builtin_aarch64_get_dregxidf (__o, 0)};
18197 ret.val[1] = (float64x1_t) {__builtin_aarch64_get_dregxidf (__o, 1)};
18198 ret.val[2] = (float64x1_t) {__builtin_aarch64_get_dregxidf (__o, 2)};
18199 ret.val[3] = (float64x1_t) {__builtin_aarch64_get_dregxidf (__o, 3)};
18200 return ret;
18203 __extension__ extern __inline int8x8x4_t
18204 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18205 vld4_s8 (const int8_t * __a)
18207 int8x8x4_t ret;
18208 __builtin_aarch64_simd_xi __o;
18209 __o = __builtin_aarch64_ld4v8qi ((const __builtin_aarch64_simd_qi *) __a);
18210 ret.val[0] = (int8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 0);
18211 ret.val[1] = (int8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 1);
18212 ret.val[2] = (int8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 2);
18213 ret.val[3] = (int8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 3);
18214 return ret;
18217 __extension__ extern __inline poly8x8x4_t
18218 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18219 vld4_p8 (const poly8_t * __a)
18221 poly8x8x4_t ret;
18222 __builtin_aarch64_simd_xi __o;
18223 __o = __builtin_aarch64_ld4v8qi ((const __builtin_aarch64_simd_qi *) __a);
18224 ret.val[0] = (poly8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 0);
18225 ret.val[1] = (poly8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 1);
18226 ret.val[2] = (poly8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 2);
18227 ret.val[3] = (poly8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 3);
18228 return ret;
18231 __extension__ extern __inline int16x4x4_t
18232 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18233 vld4_s16 (const int16_t * __a)
18235 int16x4x4_t ret;
18236 __builtin_aarch64_simd_xi __o;
18237 __o = __builtin_aarch64_ld4v4hi ((const __builtin_aarch64_simd_hi *) __a);
18238 ret.val[0] = (int16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 0);
18239 ret.val[1] = (int16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 1);
18240 ret.val[2] = (int16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 2);
18241 ret.val[3] = (int16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 3);
18242 return ret;
18245 __extension__ extern __inline poly16x4x4_t
18246 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18247 vld4_p16 (const poly16_t * __a)
18249 poly16x4x4_t ret;
18250 __builtin_aarch64_simd_xi __o;
18251 __o = __builtin_aarch64_ld4v4hi ((const __builtin_aarch64_simd_hi *) __a);
18252 ret.val[0] = (poly16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 0);
18253 ret.val[1] = (poly16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 1);
18254 ret.val[2] = (poly16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 2);
18255 ret.val[3] = (poly16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 3);
18256 return ret;
18259 __extension__ extern __inline int32x2x4_t
18260 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18261 vld4_s32 (const int32_t * __a)
18263 int32x2x4_t ret;
18264 __builtin_aarch64_simd_xi __o;
18265 __o = __builtin_aarch64_ld4v2si ((const __builtin_aarch64_simd_si *) __a);
18266 ret.val[0] = (int32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 0);
18267 ret.val[1] = (int32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 1);
18268 ret.val[2] = (int32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 2);
18269 ret.val[3] = (int32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 3);
18270 return ret;
18273 __extension__ extern __inline uint8x8x4_t
18274 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18275 vld4_u8 (const uint8_t * __a)
18277 uint8x8x4_t ret;
18278 __builtin_aarch64_simd_xi __o;
18279 __o = __builtin_aarch64_ld4v8qi ((const __builtin_aarch64_simd_qi *) __a);
18280 ret.val[0] = (uint8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 0);
18281 ret.val[1] = (uint8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 1);
18282 ret.val[2] = (uint8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 2);
18283 ret.val[3] = (uint8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 3);
18284 return ret;
18287 __extension__ extern __inline uint16x4x4_t
18288 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18289 vld4_u16 (const uint16_t * __a)
18291 uint16x4x4_t ret;
18292 __builtin_aarch64_simd_xi __o;
18293 __o = __builtin_aarch64_ld4v4hi ((const __builtin_aarch64_simd_hi *) __a);
18294 ret.val[0] = (uint16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 0);
18295 ret.val[1] = (uint16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 1);
18296 ret.val[2] = (uint16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 2);
18297 ret.val[3] = (uint16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 3);
18298 return ret;
18301 __extension__ extern __inline uint32x2x4_t
18302 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18303 vld4_u32 (const uint32_t * __a)
18305 uint32x2x4_t ret;
18306 __builtin_aarch64_simd_xi __o;
18307 __o = __builtin_aarch64_ld4v2si ((const __builtin_aarch64_simd_si *) __a);
18308 ret.val[0] = (uint32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 0);
18309 ret.val[1] = (uint32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 1);
18310 ret.val[2] = (uint32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 2);
18311 ret.val[3] = (uint32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 3);
18312 return ret;
18315 __extension__ extern __inline float16x4x4_t
18316 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18317 vld4_f16 (const float16_t * __a)
18319 float16x4x4_t ret;
18320 __builtin_aarch64_simd_xi __o;
18321 __o = __builtin_aarch64_ld4v4hf (__a);
18322 ret.val[0] = __builtin_aarch64_get_dregxiv4hf (__o, 0);
18323 ret.val[1] = __builtin_aarch64_get_dregxiv4hf (__o, 1);
18324 ret.val[2] = __builtin_aarch64_get_dregxiv4hf (__o, 2);
18325 ret.val[3] = __builtin_aarch64_get_dregxiv4hf (__o, 3);
18326 return ret;
18329 __extension__ extern __inline float32x2x4_t
18330 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18331 vld4_f32 (const float32_t * __a)
18333 float32x2x4_t ret;
18334 __builtin_aarch64_simd_xi __o;
18335 __o = __builtin_aarch64_ld4v2sf ((const __builtin_aarch64_simd_sf *) __a);
18336 ret.val[0] = (float32x2_t) __builtin_aarch64_get_dregxiv2sf (__o, 0);
18337 ret.val[1] = (float32x2_t) __builtin_aarch64_get_dregxiv2sf (__o, 1);
18338 ret.val[2] = (float32x2_t) __builtin_aarch64_get_dregxiv2sf (__o, 2);
18339 ret.val[3] = (float32x2_t) __builtin_aarch64_get_dregxiv2sf (__o, 3);
18340 return ret;
18343 __extension__ extern __inline poly64x1x4_t
18344 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18345 vld4_p64 (const poly64_t * __a)
18347 poly64x1x4_t ret;
18348 __builtin_aarch64_simd_xi __o;
18349 __o = __builtin_aarch64_ld4di ((const __builtin_aarch64_simd_di *) __a);
18350 ret.val[0] = (poly64x1_t) __builtin_aarch64_get_dregxidi_pss (__o, 0);
18351 ret.val[1] = (poly64x1_t) __builtin_aarch64_get_dregxidi_pss (__o, 1);
18352 ret.val[2] = (poly64x1_t) __builtin_aarch64_get_dregxidi_pss (__o, 2);
18353 ret.val[3] = (poly64x1_t) __builtin_aarch64_get_dregxidi_pss (__o, 3);
18354 return ret;
18357 __extension__ extern __inline int8x16x4_t
18358 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18359 vld4q_s8 (const int8_t * __a)
18361 int8x16x4_t ret;
18362 __builtin_aarch64_simd_xi __o;
18363 __o = __builtin_aarch64_ld4v16qi ((const __builtin_aarch64_simd_qi *) __a);
18364 ret.val[0] = (int8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 0);
18365 ret.val[1] = (int8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 1);
18366 ret.val[2] = (int8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 2);
18367 ret.val[3] = (int8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 3);
18368 return ret;
18371 __extension__ extern __inline poly8x16x4_t
18372 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18373 vld4q_p8 (const poly8_t * __a)
18375 poly8x16x4_t ret;
18376 __builtin_aarch64_simd_xi __o;
18377 __o = __builtin_aarch64_ld4v16qi ((const __builtin_aarch64_simd_qi *) __a);
18378 ret.val[0] = (poly8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 0);
18379 ret.val[1] = (poly8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 1);
18380 ret.val[2] = (poly8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 2);
18381 ret.val[3] = (poly8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 3);
18382 return ret;
18385 __extension__ extern __inline int16x8x4_t
18386 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18387 vld4q_s16 (const int16_t * __a)
18389 int16x8x4_t ret;
18390 __builtin_aarch64_simd_xi __o;
18391 __o = __builtin_aarch64_ld4v8hi ((const __builtin_aarch64_simd_hi *) __a);
18392 ret.val[0] = (int16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 0);
18393 ret.val[1] = (int16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 1);
18394 ret.val[2] = (int16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 2);
18395 ret.val[3] = (int16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 3);
18396 return ret;
18399 __extension__ extern __inline poly16x8x4_t
18400 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18401 vld4q_p16 (const poly16_t * __a)
18403 poly16x8x4_t ret;
18404 __builtin_aarch64_simd_xi __o;
18405 __o = __builtin_aarch64_ld4v8hi ((const __builtin_aarch64_simd_hi *) __a);
18406 ret.val[0] = (poly16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 0);
18407 ret.val[1] = (poly16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 1);
18408 ret.val[2] = (poly16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 2);
18409 ret.val[3] = (poly16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 3);
18410 return ret;
18413 __extension__ extern __inline int32x4x4_t
18414 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18415 vld4q_s32 (const int32_t * __a)
18417 int32x4x4_t ret;
18418 __builtin_aarch64_simd_xi __o;
18419 __o = __builtin_aarch64_ld4v4si ((const __builtin_aarch64_simd_si *) __a);
18420 ret.val[0] = (int32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 0);
18421 ret.val[1] = (int32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 1);
18422 ret.val[2] = (int32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 2);
18423 ret.val[3] = (int32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 3);
18424 return ret;
18427 __extension__ extern __inline int64x2x4_t
18428 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18429 vld4q_s64 (const int64_t * __a)
18431 int64x2x4_t ret;
18432 __builtin_aarch64_simd_xi __o;
18433 __o = __builtin_aarch64_ld4v2di ((const __builtin_aarch64_simd_di *) __a);
18434 ret.val[0] = (int64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 0);
18435 ret.val[1] = (int64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 1);
18436 ret.val[2] = (int64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 2);
18437 ret.val[3] = (int64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 3);
18438 return ret;
18441 __extension__ extern __inline uint8x16x4_t
18442 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18443 vld4q_u8 (const uint8_t * __a)
18445 uint8x16x4_t ret;
18446 __builtin_aarch64_simd_xi __o;
18447 __o = __builtin_aarch64_ld4v16qi ((const __builtin_aarch64_simd_qi *) __a);
18448 ret.val[0] = (uint8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 0);
18449 ret.val[1] = (uint8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 1);
18450 ret.val[2] = (uint8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 2);
18451 ret.val[3] = (uint8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 3);
18452 return ret;
18455 __extension__ extern __inline uint16x8x4_t
18456 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18457 vld4q_u16 (const uint16_t * __a)
18459 uint16x8x4_t ret;
18460 __builtin_aarch64_simd_xi __o;
18461 __o = __builtin_aarch64_ld4v8hi ((const __builtin_aarch64_simd_hi *) __a);
18462 ret.val[0] = (uint16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 0);
18463 ret.val[1] = (uint16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 1);
18464 ret.val[2] = (uint16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 2);
18465 ret.val[3] = (uint16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 3);
18466 return ret;
18469 __extension__ extern __inline uint32x4x4_t
18470 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18471 vld4q_u32 (const uint32_t * __a)
18473 uint32x4x4_t ret;
18474 __builtin_aarch64_simd_xi __o;
18475 __o = __builtin_aarch64_ld4v4si ((const __builtin_aarch64_simd_si *) __a);
18476 ret.val[0] = (uint32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 0);
18477 ret.val[1] = (uint32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 1);
18478 ret.val[2] = (uint32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 2);
18479 ret.val[3] = (uint32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 3);
18480 return ret;
18483 __extension__ extern __inline uint64x2x4_t
18484 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18485 vld4q_u64 (const uint64_t * __a)
18487 uint64x2x4_t ret;
18488 __builtin_aarch64_simd_xi __o;
18489 __o = __builtin_aarch64_ld4v2di ((const __builtin_aarch64_simd_di *) __a);
18490 ret.val[0] = (uint64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 0);
18491 ret.val[1] = (uint64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 1);
18492 ret.val[2] = (uint64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 2);
18493 ret.val[3] = (uint64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 3);
18494 return ret;
18497 __extension__ extern __inline float16x8x4_t
18498 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18499 vld4q_f16 (const float16_t * __a)
18501 float16x8x4_t ret;
18502 __builtin_aarch64_simd_xi __o;
18503 __o = __builtin_aarch64_ld4v8hf (__a);
18504 ret.val[0] = __builtin_aarch64_get_qregxiv8hf (__o, 0);
18505 ret.val[1] = __builtin_aarch64_get_qregxiv8hf (__o, 1);
18506 ret.val[2] = __builtin_aarch64_get_qregxiv8hf (__o, 2);
18507 ret.val[3] = __builtin_aarch64_get_qregxiv8hf (__o, 3);
18508 return ret;
18511 __extension__ extern __inline float32x4x4_t
18512 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18513 vld4q_f32 (const float32_t * __a)
18515 float32x4x4_t ret;
18516 __builtin_aarch64_simd_xi __o;
18517 __o = __builtin_aarch64_ld4v4sf ((const __builtin_aarch64_simd_sf *) __a);
18518 ret.val[0] = (float32x4_t) __builtin_aarch64_get_qregxiv4sf (__o, 0);
18519 ret.val[1] = (float32x4_t) __builtin_aarch64_get_qregxiv4sf (__o, 1);
18520 ret.val[2] = (float32x4_t) __builtin_aarch64_get_qregxiv4sf (__o, 2);
18521 ret.val[3] = (float32x4_t) __builtin_aarch64_get_qregxiv4sf (__o, 3);
18522 return ret;
18525 __extension__ extern __inline float64x2x4_t
18526 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18527 vld4q_f64 (const float64_t * __a)
18529 float64x2x4_t ret;
18530 __builtin_aarch64_simd_xi __o;
18531 __o = __builtin_aarch64_ld4v2df ((const __builtin_aarch64_simd_df *) __a);
18532 ret.val[0] = (float64x2_t) __builtin_aarch64_get_qregxiv2df (__o, 0);
18533 ret.val[1] = (float64x2_t) __builtin_aarch64_get_qregxiv2df (__o, 1);
18534 ret.val[2] = (float64x2_t) __builtin_aarch64_get_qregxiv2df (__o, 2);
18535 ret.val[3] = (float64x2_t) __builtin_aarch64_get_qregxiv2df (__o, 3);
18536 return ret;
18539 __extension__ extern __inline poly64x2x4_t
18540 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18541 vld4q_p64 (const poly64_t * __a)
18543 poly64x2x4_t ret;
18544 __builtin_aarch64_simd_xi __o;
18545 __o = __builtin_aarch64_ld4v2di ((const __builtin_aarch64_simd_di *) __a);
18546 ret.val[0] = (poly64x2_t) __builtin_aarch64_get_qregxiv2di_pss (__o, 0);
18547 ret.val[1] = (poly64x2_t) __builtin_aarch64_get_qregxiv2di_pss (__o, 1);
18548 ret.val[2] = (poly64x2_t) __builtin_aarch64_get_qregxiv2di_pss (__o, 2);
18549 ret.val[3] = (poly64x2_t) __builtin_aarch64_get_qregxiv2di_pss (__o, 3);
18550 return ret;
18553 /* vldn_dup */
18555 __extension__ extern __inline int8x8x2_t
18556 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18557 vld2_dup_s8 (const int8_t * __a)
18559 int8x8x2_t ret;
18560 __builtin_aarch64_simd_oi __o;
18561 __o = __builtin_aarch64_ld2rv8qi ((const __builtin_aarch64_simd_qi *) __a);
18562 ret.val[0] = (int8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 0);
18563 ret.val[1] = (int8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 1);
18564 return ret;
18567 __extension__ extern __inline int16x4x2_t
18568 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18569 vld2_dup_s16 (const int16_t * __a)
18571 int16x4x2_t ret;
18572 __builtin_aarch64_simd_oi __o;
18573 __o = __builtin_aarch64_ld2rv4hi ((const __builtin_aarch64_simd_hi *) __a);
18574 ret.val[0] = (int16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 0);
18575 ret.val[1] = (int16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 1);
18576 return ret;
18579 __extension__ extern __inline int32x2x2_t
18580 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18581 vld2_dup_s32 (const int32_t * __a)
18583 int32x2x2_t ret;
18584 __builtin_aarch64_simd_oi __o;
18585 __o = __builtin_aarch64_ld2rv2si ((const __builtin_aarch64_simd_si *) __a);
18586 ret.val[0] = (int32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 0);
18587 ret.val[1] = (int32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 1);
18588 return ret;
18591 __extension__ extern __inline float16x4x2_t
18592 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18593 vld2_dup_f16 (const float16_t * __a)
18595 float16x4x2_t ret;
18596 __builtin_aarch64_simd_oi __o;
18597 __o = __builtin_aarch64_ld2rv4hf ((const __builtin_aarch64_simd_hf *) __a);
18598 ret.val[0] = __builtin_aarch64_get_dregoiv4hf (__o, 0);
18599 ret.val[1] = (float16x4_t) __builtin_aarch64_get_dregoiv4hf (__o, 1);
18600 return ret;
18603 __extension__ extern __inline float32x2x2_t
18604 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18605 vld2_dup_f32 (const float32_t * __a)
18607 float32x2x2_t ret;
18608 __builtin_aarch64_simd_oi __o;
18609 __o = __builtin_aarch64_ld2rv2sf ((const __builtin_aarch64_simd_sf *) __a);
18610 ret.val[0] = (float32x2_t) __builtin_aarch64_get_dregoiv2sf (__o, 0);
18611 ret.val[1] = (float32x2_t) __builtin_aarch64_get_dregoiv2sf (__o, 1);
18612 return ret;
18615 __extension__ extern __inline float64x1x2_t
18616 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18617 vld2_dup_f64 (const float64_t * __a)
18619 float64x1x2_t ret;
18620 __builtin_aarch64_simd_oi __o;
18621 __o = __builtin_aarch64_ld2rdf ((const __builtin_aarch64_simd_df *) __a);
18622 ret.val[0] = (float64x1_t) {__builtin_aarch64_get_dregoidf (__o, 0)};
18623 ret.val[1] = (float64x1_t) {__builtin_aarch64_get_dregoidf (__o, 1)};
18624 return ret;
18627 __extension__ extern __inline uint8x8x2_t
18628 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18629 vld2_dup_u8 (const uint8_t * __a)
18631 uint8x8x2_t ret;
18632 __builtin_aarch64_simd_oi __o;
18633 __o = __builtin_aarch64_ld2rv8qi ((const __builtin_aarch64_simd_qi *) __a);
18634 ret.val[0] = (uint8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 0);
18635 ret.val[1] = (uint8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 1);
18636 return ret;
18639 __extension__ extern __inline uint16x4x2_t
18640 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18641 vld2_dup_u16 (const uint16_t * __a)
18643 uint16x4x2_t ret;
18644 __builtin_aarch64_simd_oi __o;
18645 __o = __builtin_aarch64_ld2rv4hi ((const __builtin_aarch64_simd_hi *) __a);
18646 ret.val[0] = (uint16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 0);
18647 ret.val[1] = (uint16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 1);
18648 return ret;
18651 __extension__ extern __inline uint32x2x2_t
18652 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18653 vld2_dup_u32 (const uint32_t * __a)
18655 uint32x2x2_t ret;
18656 __builtin_aarch64_simd_oi __o;
18657 __o = __builtin_aarch64_ld2rv2si ((const __builtin_aarch64_simd_si *) __a);
18658 ret.val[0] = (uint32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 0);
18659 ret.val[1] = (uint32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 1);
18660 return ret;
18663 __extension__ extern __inline poly8x8x2_t
18664 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18665 vld2_dup_p8 (const poly8_t * __a)
18667 poly8x8x2_t ret;
18668 __builtin_aarch64_simd_oi __o;
18669 __o = __builtin_aarch64_ld2rv8qi ((const __builtin_aarch64_simd_qi *) __a);
18670 ret.val[0] = (poly8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 0);
18671 ret.val[1] = (poly8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 1);
18672 return ret;
18675 __extension__ extern __inline poly16x4x2_t
18676 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18677 vld2_dup_p16 (const poly16_t * __a)
18679 poly16x4x2_t ret;
18680 __builtin_aarch64_simd_oi __o;
18681 __o = __builtin_aarch64_ld2rv4hi ((const __builtin_aarch64_simd_hi *) __a);
18682 ret.val[0] = (poly16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 0);
18683 ret.val[1] = (poly16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 1);
18684 return ret;
18687 __extension__ extern __inline poly64x1x2_t
18688 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18689 vld2_dup_p64 (const poly64_t * __a)
18691 poly64x1x2_t ret;
18692 __builtin_aarch64_simd_oi __o;
18693 __o = __builtin_aarch64_ld2rv2di ((const __builtin_aarch64_simd_di *) __a);
18694 ret.val[0] = (poly64x1_t) __builtin_aarch64_get_dregoidi_pss (__o, 0);
18695 ret.val[1] = (poly64x1_t) __builtin_aarch64_get_dregoidi_pss (__o, 1);
18696 return ret;
18700 __extension__ extern __inline int64x1x2_t
18701 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18702 vld2_dup_s64 (const int64_t * __a)
18704 int64x1x2_t ret;
18705 __builtin_aarch64_simd_oi __o;
18706 __o = __builtin_aarch64_ld2rdi ((const __builtin_aarch64_simd_di *) __a);
18707 ret.val[0] = (int64x1_t) __builtin_aarch64_get_dregoidi (__o, 0);
18708 ret.val[1] = (int64x1_t) __builtin_aarch64_get_dregoidi (__o, 1);
18709 return ret;
18712 __extension__ extern __inline uint64x1x2_t
18713 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18714 vld2_dup_u64 (const uint64_t * __a)
18716 uint64x1x2_t ret;
18717 __builtin_aarch64_simd_oi __o;
18718 __o = __builtin_aarch64_ld2rdi ((const __builtin_aarch64_simd_di *) __a);
18719 ret.val[0] = (uint64x1_t) __builtin_aarch64_get_dregoidi (__o, 0);
18720 ret.val[1] = (uint64x1_t) __builtin_aarch64_get_dregoidi (__o, 1);
18721 return ret;
18724 __extension__ extern __inline int8x16x2_t
18725 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18726 vld2q_dup_s8 (const int8_t * __a)
18728 int8x16x2_t ret;
18729 __builtin_aarch64_simd_oi __o;
18730 __o = __builtin_aarch64_ld2rv16qi ((const __builtin_aarch64_simd_qi *) __a);
18731 ret.val[0] = (int8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 0);
18732 ret.val[1] = (int8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 1);
18733 return ret;
18736 __extension__ extern __inline poly8x16x2_t
18737 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18738 vld2q_dup_p8 (const poly8_t * __a)
18740 poly8x16x2_t ret;
18741 __builtin_aarch64_simd_oi __o;
18742 __o = __builtin_aarch64_ld2rv16qi ((const __builtin_aarch64_simd_qi *) __a);
18743 ret.val[0] = (poly8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 0);
18744 ret.val[1] = (poly8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 1);
18745 return ret;
18748 __extension__ extern __inline int16x8x2_t
18749 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18750 vld2q_dup_s16 (const int16_t * __a)
18752 int16x8x2_t ret;
18753 __builtin_aarch64_simd_oi __o;
18754 __o = __builtin_aarch64_ld2rv8hi ((const __builtin_aarch64_simd_hi *) __a);
18755 ret.val[0] = (int16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 0);
18756 ret.val[1] = (int16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 1);
18757 return ret;
18760 __extension__ extern __inline poly16x8x2_t
18761 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18762 vld2q_dup_p16 (const poly16_t * __a)
18764 poly16x8x2_t ret;
18765 __builtin_aarch64_simd_oi __o;
18766 __o = __builtin_aarch64_ld2rv8hi ((const __builtin_aarch64_simd_hi *) __a);
18767 ret.val[0] = (poly16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 0);
18768 ret.val[1] = (poly16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 1);
18769 return ret;
18772 __extension__ extern __inline int32x4x2_t
18773 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18774 vld2q_dup_s32 (const int32_t * __a)
18776 int32x4x2_t ret;
18777 __builtin_aarch64_simd_oi __o;
18778 __o = __builtin_aarch64_ld2rv4si ((const __builtin_aarch64_simd_si *) __a);
18779 ret.val[0] = (int32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 0);
18780 ret.val[1] = (int32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 1);
18781 return ret;
18784 __extension__ extern __inline int64x2x2_t
18785 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18786 vld2q_dup_s64 (const int64_t * __a)
18788 int64x2x2_t ret;
18789 __builtin_aarch64_simd_oi __o;
18790 __o = __builtin_aarch64_ld2rv2di ((const __builtin_aarch64_simd_di *) __a);
18791 ret.val[0] = (int64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 0);
18792 ret.val[1] = (int64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 1);
18793 return ret;
18796 __extension__ extern __inline uint8x16x2_t
18797 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18798 vld2q_dup_u8 (const uint8_t * __a)
18800 uint8x16x2_t ret;
18801 __builtin_aarch64_simd_oi __o;
18802 __o = __builtin_aarch64_ld2rv16qi ((const __builtin_aarch64_simd_qi *) __a);
18803 ret.val[0] = (uint8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 0);
18804 ret.val[1] = (uint8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 1);
18805 return ret;
18808 __extension__ extern __inline uint16x8x2_t
18809 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18810 vld2q_dup_u16 (const uint16_t * __a)
18812 uint16x8x2_t ret;
18813 __builtin_aarch64_simd_oi __o;
18814 __o = __builtin_aarch64_ld2rv8hi ((const __builtin_aarch64_simd_hi *) __a);
18815 ret.val[0] = (uint16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 0);
18816 ret.val[1] = (uint16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 1);
18817 return ret;
18820 __extension__ extern __inline uint32x4x2_t
18821 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18822 vld2q_dup_u32 (const uint32_t * __a)
18824 uint32x4x2_t ret;
18825 __builtin_aarch64_simd_oi __o;
18826 __o = __builtin_aarch64_ld2rv4si ((const __builtin_aarch64_simd_si *) __a);
18827 ret.val[0] = (uint32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 0);
18828 ret.val[1] = (uint32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 1);
18829 return ret;
18832 __extension__ extern __inline uint64x2x2_t
18833 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18834 vld2q_dup_u64 (const uint64_t * __a)
18836 uint64x2x2_t ret;
18837 __builtin_aarch64_simd_oi __o;
18838 __o = __builtin_aarch64_ld2rv2di ((const __builtin_aarch64_simd_di *) __a);
18839 ret.val[0] = (uint64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 0);
18840 ret.val[1] = (uint64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 1);
18841 return ret;
18844 __extension__ extern __inline float16x8x2_t
18845 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18846 vld2q_dup_f16 (const float16_t * __a)
18848 float16x8x2_t ret;
18849 __builtin_aarch64_simd_oi __o;
18850 __o = __builtin_aarch64_ld2rv8hf ((const __builtin_aarch64_simd_hf *) __a);
18851 ret.val[0] = (float16x8_t) __builtin_aarch64_get_qregoiv8hf (__o, 0);
18852 ret.val[1] = __builtin_aarch64_get_qregoiv8hf (__o, 1);
18853 return ret;
18856 __extension__ extern __inline float32x4x2_t
18857 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18858 vld2q_dup_f32 (const float32_t * __a)
18860 float32x4x2_t ret;
18861 __builtin_aarch64_simd_oi __o;
18862 __o = __builtin_aarch64_ld2rv4sf ((const __builtin_aarch64_simd_sf *) __a);
18863 ret.val[0] = (float32x4_t) __builtin_aarch64_get_qregoiv4sf (__o, 0);
18864 ret.val[1] = (float32x4_t) __builtin_aarch64_get_qregoiv4sf (__o, 1);
18865 return ret;
18868 __extension__ extern __inline float64x2x2_t
18869 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18870 vld2q_dup_f64 (const float64_t * __a)
18872 float64x2x2_t ret;
18873 __builtin_aarch64_simd_oi __o;
18874 __o = __builtin_aarch64_ld2rv2df ((const __builtin_aarch64_simd_df *) __a);
18875 ret.val[0] = (float64x2_t) __builtin_aarch64_get_qregoiv2df (__o, 0);
18876 ret.val[1] = (float64x2_t) __builtin_aarch64_get_qregoiv2df (__o, 1);
18877 return ret;
18880 __extension__ extern __inline poly64x2x2_t
18881 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18882 vld2q_dup_p64 (const poly64_t * __a)
18884 poly64x2x2_t ret;
18885 __builtin_aarch64_simd_oi __o;
18886 __o = __builtin_aarch64_ld2rv2di ((const __builtin_aarch64_simd_di *) __a);
18887 ret.val[0] = (poly64x2_t) __builtin_aarch64_get_qregoiv2di_pss (__o, 0);
18888 ret.val[1] = (poly64x2_t) __builtin_aarch64_get_qregoiv2di_pss (__o, 1);
18889 return ret;
18892 __extension__ extern __inline int64x1x3_t
18893 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18894 vld3_dup_s64 (const int64_t * __a)
18896 int64x1x3_t ret;
18897 __builtin_aarch64_simd_ci __o;
18898 __o = __builtin_aarch64_ld3rdi ((const __builtin_aarch64_simd_di *) __a);
18899 ret.val[0] = (int64x1_t) __builtin_aarch64_get_dregcidi (__o, 0);
18900 ret.val[1] = (int64x1_t) __builtin_aarch64_get_dregcidi (__o, 1);
18901 ret.val[2] = (int64x1_t) __builtin_aarch64_get_dregcidi (__o, 2);
18902 return ret;
18905 __extension__ extern __inline uint64x1x3_t
18906 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18907 vld3_dup_u64 (const uint64_t * __a)
18909 uint64x1x3_t ret;
18910 __builtin_aarch64_simd_ci __o;
18911 __o = __builtin_aarch64_ld3rdi ((const __builtin_aarch64_simd_di *) __a);
18912 ret.val[0] = (uint64x1_t) __builtin_aarch64_get_dregcidi (__o, 0);
18913 ret.val[1] = (uint64x1_t) __builtin_aarch64_get_dregcidi (__o, 1);
18914 ret.val[2] = (uint64x1_t) __builtin_aarch64_get_dregcidi (__o, 2);
18915 return ret;
18918 __extension__ extern __inline float64x1x3_t
18919 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18920 vld3_dup_f64 (const float64_t * __a)
18922 float64x1x3_t ret;
18923 __builtin_aarch64_simd_ci __o;
18924 __o = __builtin_aarch64_ld3rdf ((const __builtin_aarch64_simd_df *) __a);
18925 ret.val[0] = (float64x1_t) {__builtin_aarch64_get_dregcidf (__o, 0)};
18926 ret.val[1] = (float64x1_t) {__builtin_aarch64_get_dregcidf (__o, 1)};
18927 ret.val[2] = (float64x1_t) {__builtin_aarch64_get_dregcidf (__o, 2)};
18928 return ret;
18931 __extension__ extern __inline int8x8x3_t
18932 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18933 vld3_dup_s8 (const int8_t * __a)
18935 int8x8x3_t ret;
18936 __builtin_aarch64_simd_ci __o;
18937 __o = __builtin_aarch64_ld3rv8qi ((const __builtin_aarch64_simd_qi *) __a);
18938 ret.val[0] = (int8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 0);
18939 ret.val[1] = (int8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 1);
18940 ret.val[2] = (int8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 2);
18941 return ret;
18944 __extension__ extern __inline poly8x8x3_t
18945 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18946 vld3_dup_p8 (const poly8_t * __a)
18948 poly8x8x3_t ret;
18949 __builtin_aarch64_simd_ci __o;
18950 __o = __builtin_aarch64_ld3rv8qi ((const __builtin_aarch64_simd_qi *) __a);
18951 ret.val[0] = (poly8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 0);
18952 ret.val[1] = (poly8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 1);
18953 ret.val[2] = (poly8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 2);
18954 return ret;
18957 __extension__ extern __inline int16x4x3_t
18958 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18959 vld3_dup_s16 (const int16_t * __a)
18961 int16x4x3_t ret;
18962 __builtin_aarch64_simd_ci __o;
18963 __o = __builtin_aarch64_ld3rv4hi ((const __builtin_aarch64_simd_hi *) __a);
18964 ret.val[0] = (int16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 0);
18965 ret.val[1] = (int16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 1);
18966 ret.val[2] = (int16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 2);
18967 return ret;
18970 __extension__ extern __inline poly16x4x3_t
18971 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18972 vld3_dup_p16 (const poly16_t * __a)
18974 poly16x4x3_t ret;
18975 __builtin_aarch64_simd_ci __o;
18976 __o = __builtin_aarch64_ld3rv4hi ((const __builtin_aarch64_simd_hi *) __a);
18977 ret.val[0] = (poly16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 0);
18978 ret.val[1] = (poly16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 1);
18979 ret.val[2] = (poly16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 2);
18980 return ret;
18983 __extension__ extern __inline int32x2x3_t
18984 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18985 vld3_dup_s32 (const int32_t * __a)
18987 int32x2x3_t ret;
18988 __builtin_aarch64_simd_ci __o;
18989 __o = __builtin_aarch64_ld3rv2si ((const __builtin_aarch64_simd_si *) __a);
18990 ret.val[0] = (int32x2_t) __builtin_aarch64_get_dregciv2si (__o, 0);
18991 ret.val[1] = (int32x2_t) __builtin_aarch64_get_dregciv2si (__o, 1);
18992 ret.val[2] = (int32x2_t) __builtin_aarch64_get_dregciv2si (__o, 2);
18993 return ret;
18996 __extension__ extern __inline uint8x8x3_t
18997 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18998 vld3_dup_u8 (const uint8_t * __a)
19000 uint8x8x3_t ret;
19001 __builtin_aarch64_simd_ci __o;
19002 __o = __builtin_aarch64_ld3rv8qi ((const __builtin_aarch64_simd_qi *) __a);
19003 ret.val[0] = (uint8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 0);
19004 ret.val[1] = (uint8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 1);
19005 ret.val[2] = (uint8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 2);
19006 return ret;
19009 __extension__ extern __inline uint16x4x3_t
19010 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19011 vld3_dup_u16 (const uint16_t * __a)
19013 uint16x4x3_t ret;
19014 __builtin_aarch64_simd_ci __o;
19015 __o = __builtin_aarch64_ld3rv4hi ((const __builtin_aarch64_simd_hi *) __a);
19016 ret.val[0] = (uint16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 0);
19017 ret.val[1] = (uint16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 1);
19018 ret.val[2] = (uint16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 2);
19019 return ret;
19022 __extension__ extern __inline uint32x2x3_t
19023 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19024 vld3_dup_u32 (const uint32_t * __a)
19026 uint32x2x3_t ret;
19027 __builtin_aarch64_simd_ci __o;
19028 __o = __builtin_aarch64_ld3rv2si ((const __builtin_aarch64_simd_si *) __a);
19029 ret.val[0] = (uint32x2_t) __builtin_aarch64_get_dregciv2si (__o, 0);
19030 ret.val[1] = (uint32x2_t) __builtin_aarch64_get_dregciv2si (__o, 1);
19031 ret.val[2] = (uint32x2_t) __builtin_aarch64_get_dregciv2si (__o, 2);
19032 return ret;
19035 __extension__ extern __inline float16x4x3_t
19036 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19037 vld3_dup_f16 (const float16_t * __a)
19039 float16x4x3_t ret;
19040 __builtin_aarch64_simd_ci __o;
19041 __o = __builtin_aarch64_ld3rv4hf ((const __builtin_aarch64_simd_hf *) __a);
19042 ret.val[0] = (float16x4_t) __builtin_aarch64_get_dregciv4hf (__o, 0);
19043 ret.val[1] = (float16x4_t) __builtin_aarch64_get_dregciv4hf (__o, 1);
19044 ret.val[2] = (float16x4_t) __builtin_aarch64_get_dregciv4hf (__o, 2);
19045 return ret;
19048 __extension__ extern __inline float32x2x3_t
19049 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19050 vld3_dup_f32 (const float32_t * __a)
19052 float32x2x3_t ret;
19053 __builtin_aarch64_simd_ci __o;
19054 __o = __builtin_aarch64_ld3rv2sf ((const __builtin_aarch64_simd_sf *) __a);
19055 ret.val[0] = (float32x2_t) __builtin_aarch64_get_dregciv2sf (__o, 0);
19056 ret.val[1] = (float32x2_t) __builtin_aarch64_get_dregciv2sf (__o, 1);
19057 ret.val[2] = (float32x2_t) __builtin_aarch64_get_dregciv2sf (__o, 2);
19058 return ret;
19061 __extension__ extern __inline poly64x1x3_t
19062 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19063 vld3_dup_p64 (const poly64_t * __a)
19065 poly64x1x3_t ret;
19066 __builtin_aarch64_simd_ci __o;
19067 __o = __builtin_aarch64_ld3rv2di ((const __builtin_aarch64_simd_di *) __a);
19068 ret.val[0] = (poly64x1_t) __builtin_aarch64_get_dregcidi_pss (__o, 0);
19069 ret.val[1] = (poly64x1_t) __builtin_aarch64_get_dregcidi_pss (__o, 1);
19070 ret.val[2] = (poly64x1_t) __builtin_aarch64_get_dregcidi_pss (__o, 2);
19071 return ret;
19074 __extension__ extern __inline int8x16x3_t
19075 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19076 vld3q_dup_s8 (const int8_t * __a)
19078 int8x16x3_t ret;
19079 __builtin_aarch64_simd_ci __o;
19080 __o = __builtin_aarch64_ld3rv16qi ((const __builtin_aarch64_simd_qi *) __a);
19081 ret.val[0] = (int8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 0);
19082 ret.val[1] = (int8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 1);
19083 ret.val[2] = (int8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 2);
19084 return ret;
19087 __extension__ extern __inline poly8x16x3_t
19088 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19089 vld3q_dup_p8 (const poly8_t * __a)
19091 poly8x16x3_t ret;
19092 __builtin_aarch64_simd_ci __o;
19093 __o = __builtin_aarch64_ld3rv16qi ((const __builtin_aarch64_simd_qi *) __a);
19094 ret.val[0] = (poly8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 0);
19095 ret.val[1] = (poly8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 1);
19096 ret.val[2] = (poly8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 2);
19097 return ret;
19100 __extension__ extern __inline int16x8x3_t
19101 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19102 vld3q_dup_s16 (const int16_t * __a)
19104 int16x8x3_t ret;
19105 __builtin_aarch64_simd_ci __o;
19106 __o = __builtin_aarch64_ld3rv8hi ((const __builtin_aarch64_simd_hi *) __a);
19107 ret.val[0] = (int16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 0);
19108 ret.val[1] = (int16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 1);
19109 ret.val[2] = (int16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 2);
19110 return ret;
19113 __extension__ extern __inline poly16x8x3_t
19114 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19115 vld3q_dup_p16 (const poly16_t * __a)
19117 poly16x8x3_t ret;
19118 __builtin_aarch64_simd_ci __o;
19119 __o = __builtin_aarch64_ld3rv8hi ((const __builtin_aarch64_simd_hi *) __a);
19120 ret.val[0] = (poly16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 0);
19121 ret.val[1] = (poly16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 1);
19122 ret.val[2] = (poly16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 2);
19123 return ret;
19126 __extension__ extern __inline int32x4x3_t
19127 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19128 vld3q_dup_s32 (const int32_t * __a)
19130 int32x4x3_t ret;
19131 __builtin_aarch64_simd_ci __o;
19132 __o = __builtin_aarch64_ld3rv4si ((const __builtin_aarch64_simd_si *) __a);
19133 ret.val[0] = (int32x4_t) __builtin_aarch64_get_qregciv4si (__o, 0);
19134 ret.val[1] = (int32x4_t) __builtin_aarch64_get_qregciv4si (__o, 1);
19135 ret.val[2] = (int32x4_t) __builtin_aarch64_get_qregciv4si (__o, 2);
19136 return ret;
19139 __extension__ extern __inline int64x2x3_t
19140 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19141 vld3q_dup_s64 (const int64_t * __a)
19143 int64x2x3_t ret;
19144 __builtin_aarch64_simd_ci __o;
19145 __o = __builtin_aarch64_ld3rv2di ((const __builtin_aarch64_simd_di *) __a);
19146 ret.val[0] = (int64x2_t) __builtin_aarch64_get_qregciv2di (__o, 0);
19147 ret.val[1] = (int64x2_t) __builtin_aarch64_get_qregciv2di (__o, 1);
19148 ret.val[2] = (int64x2_t) __builtin_aarch64_get_qregciv2di (__o, 2);
19149 return ret;
19152 __extension__ extern __inline uint8x16x3_t
19153 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19154 vld3q_dup_u8 (const uint8_t * __a)
19156 uint8x16x3_t ret;
19157 __builtin_aarch64_simd_ci __o;
19158 __o = __builtin_aarch64_ld3rv16qi ((const __builtin_aarch64_simd_qi *) __a);
19159 ret.val[0] = (uint8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 0);
19160 ret.val[1] = (uint8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 1);
19161 ret.val[2] = (uint8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 2);
19162 return ret;
19165 __extension__ extern __inline uint16x8x3_t
19166 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19167 vld3q_dup_u16 (const uint16_t * __a)
19169 uint16x8x3_t ret;
19170 __builtin_aarch64_simd_ci __o;
19171 __o = __builtin_aarch64_ld3rv8hi ((const __builtin_aarch64_simd_hi *) __a);
19172 ret.val[0] = (uint16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 0);
19173 ret.val[1] = (uint16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 1);
19174 ret.val[2] = (uint16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 2);
19175 return ret;
19178 __extension__ extern __inline uint32x4x3_t
19179 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19180 vld3q_dup_u32 (const uint32_t * __a)
19182 uint32x4x3_t ret;
19183 __builtin_aarch64_simd_ci __o;
19184 __o = __builtin_aarch64_ld3rv4si ((const __builtin_aarch64_simd_si *) __a);
19185 ret.val[0] = (uint32x4_t) __builtin_aarch64_get_qregciv4si (__o, 0);
19186 ret.val[1] = (uint32x4_t) __builtin_aarch64_get_qregciv4si (__o, 1);
19187 ret.val[2] = (uint32x4_t) __builtin_aarch64_get_qregciv4si (__o, 2);
19188 return ret;
19191 __extension__ extern __inline uint64x2x3_t
19192 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19193 vld3q_dup_u64 (const uint64_t * __a)
19195 uint64x2x3_t ret;
19196 __builtin_aarch64_simd_ci __o;
19197 __o = __builtin_aarch64_ld3rv2di ((const __builtin_aarch64_simd_di *) __a);
19198 ret.val[0] = (uint64x2_t) __builtin_aarch64_get_qregciv2di (__o, 0);
19199 ret.val[1] = (uint64x2_t) __builtin_aarch64_get_qregciv2di (__o, 1);
19200 ret.val[2] = (uint64x2_t) __builtin_aarch64_get_qregciv2di (__o, 2);
19201 return ret;
19204 __extension__ extern __inline float16x8x3_t
19205 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19206 vld3q_dup_f16 (const float16_t * __a)
19208 float16x8x3_t ret;
19209 __builtin_aarch64_simd_ci __o;
19210 __o = __builtin_aarch64_ld3rv8hf ((const __builtin_aarch64_simd_hf *) __a);
19211 ret.val[0] = (float16x8_t) __builtin_aarch64_get_qregciv8hf (__o, 0);
19212 ret.val[1] = (float16x8_t) __builtin_aarch64_get_qregciv8hf (__o, 1);
19213 ret.val[2] = (float16x8_t) __builtin_aarch64_get_qregciv8hf (__o, 2);
19214 return ret;
19217 __extension__ extern __inline float32x4x3_t
19218 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19219 vld3q_dup_f32 (const float32_t * __a)
19221 float32x4x3_t ret;
19222 __builtin_aarch64_simd_ci __o;
19223 __o = __builtin_aarch64_ld3rv4sf ((const __builtin_aarch64_simd_sf *) __a);
19224 ret.val[0] = (float32x4_t) __builtin_aarch64_get_qregciv4sf (__o, 0);
19225 ret.val[1] = (float32x4_t) __builtin_aarch64_get_qregciv4sf (__o, 1);
19226 ret.val[2] = (float32x4_t) __builtin_aarch64_get_qregciv4sf (__o, 2);
19227 return ret;
19230 __extension__ extern __inline float64x2x3_t
19231 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19232 vld3q_dup_f64 (const float64_t * __a)
19234 float64x2x3_t ret;
19235 __builtin_aarch64_simd_ci __o;
19236 __o = __builtin_aarch64_ld3rv2df ((const __builtin_aarch64_simd_df *) __a);
19237 ret.val[0] = (float64x2_t) __builtin_aarch64_get_qregciv2df (__o, 0);
19238 ret.val[1] = (float64x2_t) __builtin_aarch64_get_qregciv2df (__o, 1);
19239 ret.val[2] = (float64x2_t) __builtin_aarch64_get_qregciv2df (__o, 2);
19240 return ret;
19243 __extension__ extern __inline poly64x2x3_t
19244 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19245 vld3q_dup_p64 (const poly64_t * __a)
19247 poly64x2x3_t ret;
19248 __builtin_aarch64_simd_ci __o;
19249 __o = __builtin_aarch64_ld3rv2di ((const __builtin_aarch64_simd_di *) __a);
19250 ret.val[0] = (poly64x2_t) __builtin_aarch64_get_qregciv2di_pss (__o, 0);
19251 ret.val[1] = (poly64x2_t) __builtin_aarch64_get_qregciv2di_pss (__o, 1);
19252 ret.val[2] = (poly64x2_t) __builtin_aarch64_get_qregciv2di_pss (__o, 2);
19253 return ret;
19256 __extension__ extern __inline int64x1x4_t
19257 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19258 vld4_dup_s64 (const int64_t * __a)
19260 int64x1x4_t ret;
19261 __builtin_aarch64_simd_xi __o;
19262 __o = __builtin_aarch64_ld4rdi ((const __builtin_aarch64_simd_di *) __a);
19263 ret.val[0] = (int64x1_t) __builtin_aarch64_get_dregxidi (__o, 0);
19264 ret.val[1] = (int64x1_t) __builtin_aarch64_get_dregxidi (__o, 1);
19265 ret.val[2] = (int64x1_t) __builtin_aarch64_get_dregxidi (__o, 2);
19266 ret.val[3] = (int64x1_t) __builtin_aarch64_get_dregxidi (__o, 3);
19267 return ret;
19270 __extension__ extern __inline uint64x1x4_t
19271 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19272 vld4_dup_u64 (const uint64_t * __a)
19274 uint64x1x4_t ret;
19275 __builtin_aarch64_simd_xi __o;
19276 __o = __builtin_aarch64_ld4rdi ((const __builtin_aarch64_simd_di *) __a);
19277 ret.val[0] = (uint64x1_t) __builtin_aarch64_get_dregxidi (__o, 0);
19278 ret.val[1] = (uint64x1_t) __builtin_aarch64_get_dregxidi (__o, 1);
19279 ret.val[2] = (uint64x1_t) __builtin_aarch64_get_dregxidi (__o, 2);
19280 ret.val[3] = (uint64x1_t) __builtin_aarch64_get_dregxidi (__o, 3);
19281 return ret;
19284 __extension__ extern __inline float64x1x4_t
19285 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19286 vld4_dup_f64 (const float64_t * __a)
19288 float64x1x4_t ret;
19289 __builtin_aarch64_simd_xi __o;
19290 __o = __builtin_aarch64_ld4rdf ((const __builtin_aarch64_simd_df *) __a);
19291 ret.val[0] = (float64x1_t) {__builtin_aarch64_get_dregxidf (__o, 0)};
19292 ret.val[1] = (float64x1_t) {__builtin_aarch64_get_dregxidf (__o, 1)};
19293 ret.val[2] = (float64x1_t) {__builtin_aarch64_get_dregxidf (__o, 2)};
19294 ret.val[3] = (float64x1_t) {__builtin_aarch64_get_dregxidf (__o, 3)};
19295 return ret;
19298 __extension__ extern __inline int8x8x4_t
19299 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19300 vld4_dup_s8 (const int8_t * __a)
19302 int8x8x4_t ret;
19303 __builtin_aarch64_simd_xi __o;
19304 __o = __builtin_aarch64_ld4rv8qi ((const __builtin_aarch64_simd_qi *) __a);
19305 ret.val[0] = (int8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 0);
19306 ret.val[1] = (int8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 1);
19307 ret.val[2] = (int8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 2);
19308 ret.val[3] = (int8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 3);
19309 return ret;
19312 __extension__ extern __inline poly8x8x4_t
19313 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19314 vld4_dup_p8 (const poly8_t * __a)
19316 poly8x8x4_t ret;
19317 __builtin_aarch64_simd_xi __o;
19318 __o = __builtin_aarch64_ld4rv8qi ((const __builtin_aarch64_simd_qi *) __a);
19319 ret.val[0] = (poly8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 0);
19320 ret.val[1] = (poly8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 1);
19321 ret.val[2] = (poly8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 2);
19322 ret.val[3] = (poly8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 3);
19323 return ret;
19326 __extension__ extern __inline int16x4x4_t
19327 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19328 vld4_dup_s16 (const int16_t * __a)
19330 int16x4x4_t ret;
19331 __builtin_aarch64_simd_xi __o;
19332 __o = __builtin_aarch64_ld4rv4hi ((const __builtin_aarch64_simd_hi *) __a);
19333 ret.val[0] = (int16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 0);
19334 ret.val[1] = (int16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 1);
19335 ret.val[2] = (int16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 2);
19336 ret.val[3] = (int16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 3);
19337 return ret;
19340 __extension__ extern __inline poly16x4x4_t
19341 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19342 vld4_dup_p16 (const poly16_t * __a)
19344 poly16x4x4_t ret;
19345 __builtin_aarch64_simd_xi __o;
19346 __o = __builtin_aarch64_ld4rv4hi ((const __builtin_aarch64_simd_hi *) __a);
19347 ret.val[0] = (poly16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 0);
19348 ret.val[1] = (poly16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 1);
19349 ret.val[2] = (poly16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 2);
19350 ret.val[3] = (poly16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 3);
19351 return ret;
19354 __extension__ extern __inline int32x2x4_t
19355 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19356 vld4_dup_s32 (const int32_t * __a)
19358 int32x2x4_t ret;
19359 __builtin_aarch64_simd_xi __o;
19360 __o = __builtin_aarch64_ld4rv2si ((const __builtin_aarch64_simd_si *) __a);
19361 ret.val[0] = (int32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 0);
19362 ret.val[1] = (int32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 1);
19363 ret.val[2] = (int32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 2);
19364 ret.val[3] = (int32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 3);
19365 return ret;
19368 __extension__ extern __inline uint8x8x4_t
19369 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19370 vld4_dup_u8 (const uint8_t * __a)
19372 uint8x8x4_t ret;
19373 __builtin_aarch64_simd_xi __o;
19374 __o = __builtin_aarch64_ld4rv8qi ((const __builtin_aarch64_simd_qi *) __a);
19375 ret.val[0] = (uint8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 0);
19376 ret.val[1] = (uint8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 1);
19377 ret.val[2] = (uint8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 2);
19378 ret.val[3] = (uint8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 3);
19379 return ret;
19382 __extension__ extern __inline uint16x4x4_t
19383 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19384 vld4_dup_u16 (const uint16_t * __a)
19386 uint16x4x4_t ret;
19387 __builtin_aarch64_simd_xi __o;
19388 __o = __builtin_aarch64_ld4rv4hi ((const __builtin_aarch64_simd_hi *) __a);
19389 ret.val[0] = (uint16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 0);
19390 ret.val[1] = (uint16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 1);
19391 ret.val[2] = (uint16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 2);
19392 ret.val[3] = (uint16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 3);
19393 return ret;
19396 __extension__ extern __inline uint32x2x4_t
19397 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19398 vld4_dup_u32 (const uint32_t * __a)
19400 uint32x2x4_t ret;
19401 __builtin_aarch64_simd_xi __o;
19402 __o = __builtin_aarch64_ld4rv2si ((const __builtin_aarch64_simd_si *) __a);
19403 ret.val[0] = (uint32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 0);
19404 ret.val[1] = (uint32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 1);
19405 ret.val[2] = (uint32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 2);
19406 ret.val[3] = (uint32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 3);
19407 return ret;
19410 __extension__ extern __inline float16x4x4_t
19411 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19412 vld4_dup_f16 (const float16_t * __a)
19414 float16x4x4_t ret;
19415 __builtin_aarch64_simd_xi __o;
19416 __o = __builtin_aarch64_ld4rv4hf ((const __builtin_aarch64_simd_hf *) __a);
19417 ret.val[0] = (float16x4_t) __builtin_aarch64_get_dregxiv4hf (__o, 0);
19418 ret.val[1] = (float16x4_t) __builtin_aarch64_get_dregxiv4hf (__o, 1);
19419 ret.val[2] = (float16x4_t) __builtin_aarch64_get_dregxiv4hf (__o, 2);
19420 ret.val[3] = (float16x4_t) __builtin_aarch64_get_dregxiv4hf (__o, 3);
19421 return ret;
19424 __extension__ extern __inline float32x2x4_t
19425 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19426 vld4_dup_f32 (const float32_t * __a)
19428 float32x2x4_t ret;
19429 __builtin_aarch64_simd_xi __o;
19430 __o = __builtin_aarch64_ld4rv2sf ((const __builtin_aarch64_simd_sf *) __a);
19431 ret.val[0] = (float32x2_t) __builtin_aarch64_get_dregxiv2sf (__o, 0);
19432 ret.val[1] = (float32x2_t) __builtin_aarch64_get_dregxiv2sf (__o, 1);
19433 ret.val[2] = (float32x2_t) __builtin_aarch64_get_dregxiv2sf (__o, 2);
19434 ret.val[3] = (float32x2_t) __builtin_aarch64_get_dregxiv2sf (__o, 3);
19435 return ret;
19438 __extension__ extern __inline poly64x1x4_t
19439 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19440 vld4_dup_p64 (const poly64_t * __a)
19442 poly64x1x4_t ret;
19443 __builtin_aarch64_simd_xi __o;
19444 __o = __builtin_aarch64_ld4rv2di ((const __builtin_aarch64_simd_di *) __a);
19445 ret.val[0] = (poly64x1_t) __builtin_aarch64_get_dregxidi_pss (__o, 0);
19446 ret.val[1] = (poly64x1_t) __builtin_aarch64_get_dregxidi_pss (__o, 1);
19447 ret.val[2] = (poly64x1_t) __builtin_aarch64_get_dregxidi_pss (__o, 2);
19448 ret.val[3] = (poly64x1_t) __builtin_aarch64_get_dregxidi_pss (__o, 3);
19449 return ret;
19452 __extension__ extern __inline int8x16x4_t
19453 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19454 vld4q_dup_s8 (const int8_t * __a)
19456 int8x16x4_t ret;
19457 __builtin_aarch64_simd_xi __o;
19458 __o = __builtin_aarch64_ld4rv16qi ((const __builtin_aarch64_simd_qi *) __a);
19459 ret.val[0] = (int8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 0);
19460 ret.val[1] = (int8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 1);
19461 ret.val[2] = (int8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 2);
19462 ret.val[3] = (int8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 3);
19463 return ret;
19466 __extension__ extern __inline poly8x16x4_t
19467 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19468 vld4q_dup_p8 (const poly8_t * __a)
19470 poly8x16x4_t ret;
19471 __builtin_aarch64_simd_xi __o;
19472 __o = __builtin_aarch64_ld4rv16qi ((const __builtin_aarch64_simd_qi *) __a);
19473 ret.val[0] = (poly8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 0);
19474 ret.val[1] = (poly8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 1);
19475 ret.val[2] = (poly8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 2);
19476 ret.val[3] = (poly8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 3);
19477 return ret;
19480 __extension__ extern __inline int16x8x4_t
19481 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19482 vld4q_dup_s16 (const int16_t * __a)
19484 int16x8x4_t ret;
19485 __builtin_aarch64_simd_xi __o;
19486 __o = __builtin_aarch64_ld4rv8hi ((const __builtin_aarch64_simd_hi *) __a);
19487 ret.val[0] = (int16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 0);
19488 ret.val[1] = (int16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 1);
19489 ret.val[2] = (int16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 2);
19490 ret.val[3] = (int16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 3);
19491 return ret;
19494 __extension__ extern __inline poly16x8x4_t
19495 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19496 vld4q_dup_p16 (const poly16_t * __a)
19498 poly16x8x4_t ret;
19499 __builtin_aarch64_simd_xi __o;
19500 __o = __builtin_aarch64_ld4rv8hi ((const __builtin_aarch64_simd_hi *) __a);
19501 ret.val[0] = (poly16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 0);
19502 ret.val[1] = (poly16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 1);
19503 ret.val[2] = (poly16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 2);
19504 ret.val[3] = (poly16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 3);
19505 return ret;
19508 __extension__ extern __inline int32x4x4_t
19509 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19510 vld4q_dup_s32 (const int32_t * __a)
19512 int32x4x4_t ret;
19513 __builtin_aarch64_simd_xi __o;
19514 __o = __builtin_aarch64_ld4rv4si ((const __builtin_aarch64_simd_si *) __a);
19515 ret.val[0] = (int32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 0);
19516 ret.val[1] = (int32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 1);
19517 ret.val[2] = (int32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 2);
19518 ret.val[3] = (int32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 3);
19519 return ret;
19522 __extension__ extern __inline int64x2x4_t
19523 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19524 vld4q_dup_s64 (const int64_t * __a)
19526 int64x2x4_t ret;
19527 __builtin_aarch64_simd_xi __o;
19528 __o = __builtin_aarch64_ld4rv2di ((const __builtin_aarch64_simd_di *) __a);
19529 ret.val[0] = (int64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 0);
19530 ret.val[1] = (int64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 1);
19531 ret.val[2] = (int64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 2);
19532 ret.val[3] = (int64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 3);
19533 return ret;
19536 __extension__ extern __inline uint8x16x4_t
19537 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19538 vld4q_dup_u8 (const uint8_t * __a)
19540 uint8x16x4_t ret;
19541 __builtin_aarch64_simd_xi __o;
19542 __o = __builtin_aarch64_ld4rv16qi ((const __builtin_aarch64_simd_qi *) __a);
19543 ret.val[0] = (uint8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 0);
19544 ret.val[1] = (uint8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 1);
19545 ret.val[2] = (uint8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 2);
19546 ret.val[3] = (uint8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 3);
19547 return ret;
19550 __extension__ extern __inline uint16x8x4_t
19551 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19552 vld4q_dup_u16 (const uint16_t * __a)
19554 uint16x8x4_t ret;
19555 __builtin_aarch64_simd_xi __o;
19556 __o = __builtin_aarch64_ld4rv8hi ((const __builtin_aarch64_simd_hi *) __a);
19557 ret.val[0] = (uint16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 0);
19558 ret.val[1] = (uint16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 1);
19559 ret.val[2] = (uint16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 2);
19560 ret.val[3] = (uint16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 3);
19561 return ret;
19564 __extension__ extern __inline uint32x4x4_t
19565 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19566 vld4q_dup_u32 (const uint32_t * __a)
19568 uint32x4x4_t ret;
19569 __builtin_aarch64_simd_xi __o;
19570 __o = __builtin_aarch64_ld4rv4si ((const __builtin_aarch64_simd_si *) __a);
19571 ret.val[0] = (uint32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 0);
19572 ret.val[1] = (uint32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 1);
19573 ret.val[2] = (uint32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 2);
19574 ret.val[3] = (uint32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 3);
19575 return ret;
19578 __extension__ extern __inline uint64x2x4_t
19579 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19580 vld4q_dup_u64 (const uint64_t * __a)
19582 uint64x2x4_t ret;
19583 __builtin_aarch64_simd_xi __o;
19584 __o = __builtin_aarch64_ld4rv2di ((const __builtin_aarch64_simd_di *) __a);
19585 ret.val[0] = (uint64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 0);
19586 ret.val[1] = (uint64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 1);
19587 ret.val[2] = (uint64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 2);
19588 ret.val[3] = (uint64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 3);
19589 return ret;
19592 __extension__ extern __inline float16x8x4_t
19593 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19594 vld4q_dup_f16 (const float16_t * __a)
19596 float16x8x4_t ret;
19597 __builtin_aarch64_simd_xi __o;
19598 __o = __builtin_aarch64_ld4rv8hf ((const __builtin_aarch64_simd_hf *) __a);
19599 ret.val[0] = (float16x8_t) __builtin_aarch64_get_qregxiv8hf (__o, 0);
19600 ret.val[1] = (float16x8_t) __builtin_aarch64_get_qregxiv8hf (__o, 1);
19601 ret.val[2] = (float16x8_t) __builtin_aarch64_get_qregxiv8hf (__o, 2);
19602 ret.val[3] = (float16x8_t) __builtin_aarch64_get_qregxiv8hf (__o, 3);
19603 return ret;
19606 __extension__ extern __inline float32x4x4_t
19607 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19608 vld4q_dup_f32 (const float32_t * __a)
19610 float32x4x4_t ret;
19611 __builtin_aarch64_simd_xi __o;
19612 __o = __builtin_aarch64_ld4rv4sf ((const __builtin_aarch64_simd_sf *) __a);
19613 ret.val[0] = (float32x4_t) __builtin_aarch64_get_qregxiv4sf (__o, 0);
19614 ret.val[1] = (float32x4_t) __builtin_aarch64_get_qregxiv4sf (__o, 1);
19615 ret.val[2] = (float32x4_t) __builtin_aarch64_get_qregxiv4sf (__o, 2);
19616 ret.val[3] = (float32x4_t) __builtin_aarch64_get_qregxiv4sf (__o, 3);
19617 return ret;
19620 __extension__ extern __inline float64x2x4_t
19621 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19622 vld4q_dup_f64 (const float64_t * __a)
19624 float64x2x4_t ret;
19625 __builtin_aarch64_simd_xi __o;
19626 __o = __builtin_aarch64_ld4rv2df ((const __builtin_aarch64_simd_df *) __a);
19627 ret.val[0] = (float64x2_t) __builtin_aarch64_get_qregxiv2df (__o, 0);
19628 ret.val[1] = (float64x2_t) __builtin_aarch64_get_qregxiv2df (__o, 1);
19629 ret.val[2] = (float64x2_t) __builtin_aarch64_get_qregxiv2df (__o, 2);
19630 ret.val[3] = (float64x2_t) __builtin_aarch64_get_qregxiv2df (__o, 3);
19631 return ret;
19634 __extension__ extern __inline poly64x2x4_t
19635 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19636 vld4q_dup_p64 (const poly64_t * __a)
19638 poly64x2x4_t ret;
19639 __builtin_aarch64_simd_xi __o;
19640 __o = __builtin_aarch64_ld4rv2di ((const __builtin_aarch64_simd_di *) __a);
19641 ret.val[0] = (poly64x2_t) __builtin_aarch64_get_qregxiv2di_pss (__o, 0);
19642 ret.val[1] = (poly64x2_t) __builtin_aarch64_get_qregxiv2di_pss (__o, 1);
19643 ret.val[2] = (poly64x2_t) __builtin_aarch64_get_qregxiv2di_pss (__o, 2);
19644 ret.val[3] = (poly64x2_t) __builtin_aarch64_get_qregxiv2di_pss (__o, 3);
19645 return ret;
19648 /* vld2_lane */
19650 #define __LD2_LANE_FUNC(intype, vectype, largetype, ptrtype, mode, \
19651 qmode, ptrmode, funcsuffix, signedtype) \
19652 __extension__ extern __inline intype \
19653 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__)) \
19654 vld2_lane_##funcsuffix (const ptrtype * __ptr, intype __b, const int __c) \
19656 __builtin_aarch64_simd_oi __o; \
19657 largetype __temp; \
19658 __temp.val[0] = \
19659 vcombine_##funcsuffix (__b.val[0], vcreate_##funcsuffix (0)); \
19660 __temp.val[1] = \
19661 vcombine_##funcsuffix (__b.val[1], vcreate_##funcsuffix (0)); \
19662 __o = __builtin_aarch64_set_qregoi##qmode (__o, \
19663 (signedtype) __temp.val[0], \
19664 0); \
19665 __o = __builtin_aarch64_set_qregoi##qmode (__o, \
19666 (signedtype) __temp.val[1], \
19667 1); \
19668 __o = __builtin_aarch64_ld2_lane##mode ( \
19669 (__builtin_aarch64_simd_##ptrmode *) __ptr, __o, __c); \
19670 __b.val[0] = (vectype) __builtin_aarch64_get_dregoidi (__o, 0); \
19671 __b.val[1] = (vectype) __builtin_aarch64_get_dregoidi (__o, 1); \
19672 return __b; \
19675 __LD2_LANE_FUNC (float16x4x2_t, float16x4_t, float16x8x2_t, float16_t, v4hf,
19676 v8hf, hf, f16, float16x8_t)
19677 __LD2_LANE_FUNC (float32x2x2_t, float32x2_t, float32x4x2_t, float32_t, v2sf, v4sf,
19678 sf, f32, float32x4_t)
19679 __LD2_LANE_FUNC (float64x1x2_t, float64x1_t, float64x2x2_t, float64_t, df, v2df,
19680 df, f64, float64x2_t)
19681 __LD2_LANE_FUNC (poly8x8x2_t, poly8x8_t, poly8x16x2_t, poly8_t, v8qi, v16qi, qi, p8,
19682 int8x16_t)
19683 __LD2_LANE_FUNC (poly16x4x2_t, poly16x4_t, poly16x8x2_t, poly16_t, v4hi, v8hi, hi,
19684 p16, int16x8_t)
19685 __LD2_LANE_FUNC (poly64x1x2_t, poly64x1_t, poly64x2x2_t, poly64_t, di,
19686 v2di_ssps, di, p64, poly64x2_t)
19687 __LD2_LANE_FUNC (int8x8x2_t, int8x8_t, int8x16x2_t, int8_t, v8qi, v16qi, qi, s8,
19688 int8x16_t)
19689 __LD2_LANE_FUNC (int16x4x2_t, int16x4_t, int16x8x2_t, int16_t, v4hi, v8hi, hi, s16,
19690 int16x8_t)
19691 __LD2_LANE_FUNC (int32x2x2_t, int32x2_t, int32x4x2_t, int32_t, v2si, v4si, si, s32,
19692 int32x4_t)
19693 __LD2_LANE_FUNC (int64x1x2_t, int64x1_t, int64x2x2_t, int64_t, di, v2di, di, s64,
19694 int64x2_t)
19695 __LD2_LANE_FUNC (uint8x8x2_t, uint8x8_t, uint8x16x2_t, uint8_t, v8qi, v16qi, qi, u8,
19696 int8x16_t)
19697 __LD2_LANE_FUNC (uint16x4x2_t, uint16x4_t, uint16x8x2_t, uint16_t, v4hi, v8hi, hi,
19698 u16, int16x8_t)
19699 __LD2_LANE_FUNC (uint32x2x2_t, uint32x2_t, uint32x4x2_t, uint32_t, v2si, v4si, si,
19700 u32, int32x4_t)
19701 __LD2_LANE_FUNC (uint64x1x2_t, uint64x1_t, uint64x2x2_t, uint64_t, di, v2di, di,
19702 u64, int64x2_t)
19704 #undef __LD2_LANE_FUNC
19706 /* vld2q_lane */
19708 #define __LD2_LANE_FUNC(intype, vtype, ptrtype, mode, ptrmode, funcsuffix) \
19709 __extension__ extern __inline intype \
19710 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__)) \
19711 vld2q_lane_##funcsuffix (const ptrtype * __ptr, intype __b, const int __c) \
19713 __builtin_aarch64_simd_oi __o; \
19714 intype ret; \
19715 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) __b.val[0], 0); \
19716 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) __b.val[1], 1); \
19717 __o = __builtin_aarch64_ld2_lane##mode ( \
19718 (__builtin_aarch64_simd_##ptrmode *) __ptr, __o, __c); \
19719 ret.val[0] = (vtype) __builtin_aarch64_get_qregoiv4si (__o, 0); \
19720 ret.val[1] = (vtype) __builtin_aarch64_get_qregoiv4si (__o, 1); \
19721 return ret; \
19724 __LD2_LANE_FUNC (float16x8x2_t, float16x8_t, float16_t, v8hf, hf, f16)
19725 __LD2_LANE_FUNC (float32x4x2_t, float32x4_t, float32_t, v4sf, sf, f32)
19726 __LD2_LANE_FUNC (float64x2x2_t, float64x2_t, float64_t, v2df, df, f64)
19727 __LD2_LANE_FUNC (poly8x16x2_t, poly8x16_t, poly8_t, v16qi, qi, p8)
19728 __LD2_LANE_FUNC (poly16x8x2_t, poly16x8_t, poly16_t, v8hi, hi, p16)
19729 __LD2_LANE_FUNC (poly64x2x2_t, poly64x2_t, poly64_t, v2di, di, p64)
19730 __LD2_LANE_FUNC (int8x16x2_t, int8x16_t, int8_t, v16qi, qi, s8)
19731 __LD2_LANE_FUNC (int16x8x2_t, int16x8_t, int16_t, v8hi, hi, s16)
19732 __LD2_LANE_FUNC (int32x4x2_t, int32x4_t, int32_t, v4si, si, s32)
19733 __LD2_LANE_FUNC (int64x2x2_t, int64x2_t, int64_t, v2di, di, s64)
19734 __LD2_LANE_FUNC (uint8x16x2_t, uint8x16_t, uint8_t, v16qi, qi, u8)
19735 __LD2_LANE_FUNC (uint16x8x2_t, uint16x8_t, uint16_t, v8hi, hi, u16)
19736 __LD2_LANE_FUNC (uint32x4x2_t, uint32x4_t, uint32_t, v4si, si, u32)
19737 __LD2_LANE_FUNC (uint64x2x2_t, uint64x2_t, uint64_t, v2di, di, u64)
19739 #undef __LD2_LANE_FUNC
19741 /* vld3_lane */
19743 #define __LD3_LANE_FUNC(intype, vectype, largetype, ptrtype, mode, \
19744 qmode, ptrmode, funcsuffix, signedtype) \
19745 __extension__ extern __inline intype \
19746 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__)) \
19747 vld3_lane_##funcsuffix (const ptrtype * __ptr, intype __b, const int __c) \
19749 __builtin_aarch64_simd_ci __o; \
19750 largetype __temp; \
19751 __temp.val[0] = \
19752 vcombine_##funcsuffix (__b.val[0], vcreate_##funcsuffix (0)); \
19753 __temp.val[1] = \
19754 vcombine_##funcsuffix (__b.val[1], vcreate_##funcsuffix (0)); \
19755 __temp.val[2] = \
19756 vcombine_##funcsuffix (__b.val[2], vcreate_##funcsuffix (0)); \
19757 __o = __builtin_aarch64_set_qregci##qmode (__o, \
19758 (signedtype) __temp.val[0], \
19759 0); \
19760 __o = __builtin_aarch64_set_qregci##qmode (__o, \
19761 (signedtype) __temp.val[1], \
19762 1); \
19763 __o = __builtin_aarch64_set_qregci##qmode (__o, \
19764 (signedtype) __temp.val[2], \
19765 2); \
19766 __o = __builtin_aarch64_ld3_lane##mode ( \
19767 (__builtin_aarch64_simd_##ptrmode *) __ptr, __o, __c); \
19768 __b.val[0] = (vectype) __builtin_aarch64_get_dregcidi (__o, 0); \
19769 __b.val[1] = (vectype) __builtin_aarch64_get_dregcidi (__o, 1); \
19770 __b.val[2] = (vectype) __builtin_aarch64_get_dregcidi (__o, 2); \
19771 return __b; \
19774 __LD3_LANE_FUNC (float16x4x3_t, float16x4_t, float16x8x3_t, float16_t, v4hf,
19775 v8hf, hf, f16, float16x8_t)
19776 __LD3_LANE_FUNC (float32x2x3_t, float32x2_t, float32x4x3_t, float32_t, v2sf, v4sf,
19777 sf, f32, float32x4_t)
19778 __LD3_LANE_FUNC (float64x1x3_t, float64x1_t, float64x2x3_t, float64_t, df, v2df,
19779 df, f64, float64x2_t)
19780 __LD3_LANE_FUNC (poly8x8x3_t, poly8x8_t, poly8x16x3_t, poly8_t, v8qi, v16qi, qi, p8,
19781 int8x16_t)
19782 __LD3_LANE_FUNC (poly16x4x3_t, poly16x4_t, poly16x8x3_t, poly16_t, v4hi, v8hi, hi,
19783 p16, int16x8_t)
19784 __LD3_LANE_FUNC (poly64x1x3_t, poly64x1_t, poly64x2x3_t, poly64_t, di,
19785 v2di_ssps, di, p64, poly64x2_t)
19786 __LD3_LANE_FUNC (int8x8x3_t, int8x8_t, int8x16x3_t, int8_t, v8qi, v16qi, qi, s8,
19787 int8x16_t)
19788 __LD3_LANE_FUNC (int16x4x3_t, int16x4_t, int16x8x3_t, int16_t, v4hi, v8hi, hi, s16,
19789 int16x8_t)
19790 __LD3_LANE_FUNC (int32x2x3_t, int32x2_t, int32x4x3_t, int32_t, v2si, v4si, si, s32,
19791 int32x4_t)
19792 __LD3_LANE_FUNC (int64x1x3_t, int64x1_t, int64x2x3_t, int64_t, di, v2di, di, s64,
19793 int64x2_t)
19794 __LD3_LANE_FUNC (uint8x8x3_t, uint8x8_t, uint8x16x3_t, uint8_t, v8qi, v16qi, qi, u8,
19795 int8x16_t)
19796 __LD3_LANE_FUNC (uint16x4x3_t, uint16x4_t, uint16x8x3_t, uint16_t, v4hi, v8hi, hi,
19797 u16, int16x8_t)
19798 __LD3_LANE_FUNC (uint32x2x3_t, uint32x2_t, uint32x4x3_t, uint32_t, v2si, v4si, si,
19799 u32, int32x4_t)
19800 __LD3_LANE_FUNC (uint64x1x3_t, uint64x1_t, uint64x2x3_t, uint64_t, di, v2di, di,
19801 u64, int64x2_t)
19803 #undef __LD3_LANE_FUNC
19805 /* vld3q_lane */
19807 #define __LD3_LANE_FUNC(intype, vtype, ptrtype, mode, ptrmode, funcsuffix) \
19808 __extension__ extern __inline intype \
19809 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__)) \
19810 vld3q_lane_##funcsuffix (const ptrtype * __ptr, intype __b, const int __c) \
19812 __builtin_aarch64_simd_ci __o; \
19813 intype ret; \
19814 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __b.val[0], 0); \
19815 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __b.val[1], 1); \
19816 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __b.val[2], 2); \
19817 __o = __builtin_aarch64_ld3_lane##mode ( \
19818 (__builtin_aarch64_simd_##ptrmode *) __ptr, __o, __c); \
19819 ret.val[0] = (vtype) __builtin_aarch64_get_qregciv4si (__o, 0); \
19820 ret.val[1] = (vtype) __builtin_aarch64_get_qregciv4si (__o, 1); \
19821 ret.val[2] = (vtype) __builtin_aarch64_get_qregciv4si (__o, 2); \
19822 return ret; \
19825 __LD3_LANE_FUNC (float16x8x3_t, float16x8_t, float16_t, v8hf, hf, f16)
19826 __LD3_LANE_FUNC (float32x4x3_t, float32x4_t, float32_t, v4sf, sf, f32)
19827 __LD3_LANE_FUNC (float64x2x3_t, float64x2_t, float64_t, v2df, df, f64)
19828 __LD3_LANE_FUNC (poly8x16x3_t, poly8x16_t, poly8_t, v16qi, qi, p8)
19829 __LD3_LANE_FUNC (poly16x8x3_t, poly16x8_t, poly16_t, v8hi, hi, p16)
19830 __LD3_LANE_FUNC (poly64x2x3_t, poly64x2_t, poly64_t, v2di, di, p64)
19831 __LD3_LANE_FUNC (int8x16x3_t, int8x16_t, int8_t, v16qi, qi, s8)
19832 __LD3_LANE_FUNC (int16x8x3_t, int16x8_t, int16_t, v8hi, hi, s16)
19833 __LD3_LANE_FUNC (int32x4x3_t, int32x4_t, int32_t, v4si, si, s32)
19834 __LD3_LANE_FUNC (int64x2x3_t, int64x2_t, int64_t, v2di, di, s64)
19835 __LD3_LANE_FUNC (uint8x16x3_t, uint8x16_t, uint8_t, v16qi, qi, u8)
19836 __LD3_LANE_FUNC (uint16x8x3_t, uint16x8_t, uint16_t, v8hi, hi, u16)
19837 __LD3_LANE_FUNC (uint32x4x3_t, uint32x4_t, uint32_t, v4si, si, u32)
19838 __LD3_LANE_FUNC (uint64x2x3_t, uint64x2_t, uint64_t, v2di, di, u64)
19840 #undef __LD3_LANE_FUNC
19842 /* vld4_lane */
19844 #define __LD4_LANE_FUNC(intype, vectype, largetype, ptrtype, mode, \
19845 qmode, ptrmode, funcsuffix, signedtype) \
19846 __extension__ extern __inline intype \
19847 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__)) \
19848 vld4_lane_##funcsuffix (const ptrtype * __ptr, intype __b, const int __c) \
19850 __builtin_aarch64_simd_xi __o; \
19851 largetype __temp; \
19852 __temp.val[0] = \
19853 vcombine_##funcsuffix (__b.val[0], vcreate_##funcsuffix (0)); \
19854 __temp.val[1] = \
19855 vcombine_##funcsuffix (__b.val[1], vcreate_##funcsuffix (0)); \
19856 __temp.val[2] = \
19857 vcombine_##funcsuffix (__b.val[2], vcreate_##funcsuffix (0)); \
19858 __temp.val[3] = \
19859 vcombine_##funcsuffix (__b.val[3], vcreate_##funcsuffix (0)); \
19860 __o = __builtin_aarch64_set_qregxi##qmode (__o, \
19861 (signedtype) __temp.val[0], \
19862 0); \
19863 __o = __builtin_aarch64_set_qregxi##qmode (__o, \
19864 (signedtype) __temp.val[1], \
19865 1); \
19866 __o = __builtin_aarch64_set_qregxi##qmode (__o, \
19867 (signedtype) __temp.val[2], \
19868 2); \
19869 __o = __builtin_aarch64_set_qregxi##qmode (__o, \
19870 (signedtype) __temp.val[3], \
19871 3); \
19872 __o = __builtin_aarch64_ld4_lane##mode ( \
19873 (__builtin_aarch64_simd_##ptrmode *) __ptr, __o, __c); \
19874 __b.val[0] = (vectype) __builtin_aarch64_get_dregxidi (__o, 0); \
19875 __b.val[1] = (vectype) __builtin_aarch64_get_dregxidi (__o, 1); \
19876 __b.val[2] = (vectype) __builtin_aarch64_get_dregxidi (__o, 2); \
19877 __b.val[3] = (vectype) __builtin_aarch64_get_dregxidi (__o, 3); \
19878 return __b; \
19881 /* vld4q_lane */
19883 __LD4_LANE_FUNC (float16x4x4_t, float16x4_t, float16x8x4_t, float16_t, v4hf,
19884 v8hf, hf, f16, float16x8_t)
19885 __LD4_LANE_FUNC (float32x2x4_t, float32x2_t, float32x4x4_t, float32_t, v2sf, v4sf,
19886 sf, f32, float32x4_t)
19887 __LD4_LANE_FUNC (float64x1x4_t, float64x1_t, float64x2x4_t, float64_t, df, v2df,
19888 df, f64, float64x2_t)
19889 __LD4_LANE_FUNC (poly8x8x4_t, poly8x8_t, poly8x16x4_t, poly8_t, v8qi, v16qi, qi, p8,
19890 int8x16_t)
19891 __LD4_LANE_FUNC (poly16x4x4_t, poly16x4_t, poly16x8x4_t, poly16_t, v4hi, v8hi, hi,
19892 p16, int16x8_t)
19893 __LD4_LANE_FUNC (poly64x1x4_t, poly64x1_t, poly64x2x4_t, poly64_t, di,
19894 v2di_ssps, di, p64, poly64x2_t)
19895 __LD4_LANE_FUNC (int8x8x4_t, int8x8_t, int8x16x4_t, int8_t, v8qi, v16qi, qi, s8,
19896 int8x16_t)
19897 __LD4_LANE_FUNC (int16x4x4_t, int16x4_t, int16x8x4_t, int16_t, v4hi, v8hi, hi, s16,
19898 int16x8_t)
19899 __LD4_LANE_FUNC (int32x2x4_t, int32x2_t, int32x4x4_t, int32_t, v2si, v4si, si, s32,
19900 int32x4_t)
19901 __LD4_LANE_FUNC (int64x1x4_t, int64x1_t, int64x2x4_t, int64_t, di, v2di, di, s64,
19902 int64x2_t)
19903 __LD4_LANE_FUNC (uint8x8x4_t, uint8x8_t, uint8x16x4_t, uint8_t, v8qi, v16qi, qi, u8,
19904 int8x16_t)
19905 __LD4_LANE_FUNC (uint16x4x4_t, uint16x4_t, uint16x8x4_t, uint16_t, v4hi, v8hi, hi,
19906 u16, int16x8_t)
19907 __LD4_LANE_FUNC (uint32x2x4_t, uint32x2_t, uint32x4x4_t, uint32_t, v2si, v4si, si,
19908 u32, int32x4_t)
19909 __LD4_LANE_FUNC (uint64x1x4_t, uint64x1_t, uint64x2x4_t, uint64_t, di, v2di, di,
19910 u64, int64x2_t)
19912 #undef __LD4_LANE_FUNC
19914 /* vld4q_lane */
19916 #define __LD4_LANE_FUNC(intype, vtype, ptrtype, mode, ptrmode, funcsuffix) \
19917 __extension__ extern __inline intype \
19918 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__)) \
19919 vld4q_lane_##funcsuffix (const ptrtype * __ptr, intype __b, const int __c) \
19921 __builtin_aarch64_simd_xi __o; \
19922 intype ret; \
19923 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __b.val[0], 0); \
19924 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __b.val[1], 1); \
19925 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __b.val[2], 2); \
19926 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __b.val[3], 3); \
19927 __o = __builtin_aarch64_ld4_lane##mode ( \
19928 (__builtin_aarch64_simd_##ptrmode *) __ptr, __o, __c); \
19929 ret.val[0] = (vtype) __builtin_aarch64_get_qregxiv4si (__o, 0); \
19930 ret.val[1] = (vtype) __builtin_aarch64_get_qregxiv4si (__o, 1); \
19931 ret.val[2] = (vtype) __builtin_aarch64_get_qregxiv4si (__o, 2); \
19932 ret.val[3] = (vtype) __builtin_aarch64_get_qregxiv4si (__o, 3); \
19933 return ret; \
19936 __LD4_LANE_FUNC (float16x8x4_t, float16x8_t, float16_t, v8hf, hf, f16)
19937 __LD4_LANE_FUNC (float32x4x4_t, float32x4_t, float32_t, v4sf, sf, f32)
19938 __LD4_LANE_FUNC (float64x2x4_t, float64x2_t, float64_t, v2df, df, f64)
19939 __LD4_LANE_FUNC (poly8x16x4_t, poly8x16_t, poly8_t, v16qi, qi, p8)
19940 __LD4_LANE_FUNC (poly16x8x4_t, poly16x8_t, poly16_t, v8hi, hi, p16)
19941 __LD4_LANE_FUNC (poly64x2x4_t, poly64x2_t, poly64_t, v2di, di, p64)
19942 __LD4_LANE_FUNC (int8x16x4_t, int8x16_t, int8_t, v16qi, qi, s8)
19943 __LD4_LANE_FUNC (int16x8x4_t, int16x8_t, int16_t, v8hi, hi, s16)
19944 __LD4_LANE_FUNC (int32x4x4_t, int32x4_t, int32_t, v4si, si, s32)
19945 __LD4_LANE_FUNC (int64x2x4_t, int64x2_t, int64_t, v2di, di, s64)
19946 __LD4_LANE_FUNC (uint8x16x4_t, uint8x16_t, uint8_t, v16qi, qi, u8)
19947 __LD4_LANE_FUNC (uint16x8x4_t, uint16x8_t, uint16_t, v8hi, hi, u16)
19948 __LD4_LANE_FUNC (uint32x4x4_t, uint32x4_t, uint32_t, v4si, si, u32)
19949 __LD4_LANE_FUNC (uint64x2x4_t, uint64x2_t, uint64_t, v2di, di, u64)
19951 #undef __LD4_LANE_FUNC
19953 /* vmax */
19955 __extension__ extern __inline float32x2_t
19956 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19957 vmax_f32 (float32x2_t __a, float32x2_t __b)
19959 return __builtin_aarch64_smax_nanv2sf (__a, __b);
19962 __extension__ extern __inline float64x1_t
19963 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19964 vmax_f64 (float64x1_t __a, float64x1_t __b)
19966 return (float64x1_t)
19967 { __builtin_aarch64_smax_nandf (vget_lane_f64 (__a, 0),
19968 vget_lane_f64 (__b, 0)) };
19971 __extension__ extern __inline int8x8_t
19972 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19973 vmax_s8 (int8x8_t __a, int8x8_t __b)
19975 return __builtin_aarch64_smaxv8qi (__a, __b);
19978 __extension__ extern __inline int16x4_t
19979 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19980 vmax_s16 (int16x4_t __a, int16x4_t __b)
19982 return __builtin_aarch64_smaxv4hi (__a, __b);
19985 __extension__ extern __inline int32x2_t
19986 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19987 vmax_s32 (int32x2_t __a, int32x2_t __b)
19989 return __builtin_aarch64_smaxv2si (__a, __b);
19992 __extension__ extern __inline uint8x8_t
19993 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19994 vmax_u8 (uint8x8_t __a, uint8x8_t __b)
19996 return (uint8x8_t) __builtin_aarch64_umaxv8qi ((int8x8_t) __a,
19997 (int8x8_t) __b);
20000 __extension__ extern __inline uint16x4_t
20001 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20002 vmax_u16 (uint16x4_t __a, uint16x4_t __b)
20004 return (uint16x4_t) __builtin_aarch64_umaxv4hi ((int16x4_t) __a,
20005 (int16x4_t) __b);
20008 __extension__ extern __inline uint32x2_t
20009 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20010 vmax_u32 (uint32x2_t __a, uint32x2_t __b)
20012 return (uint32x2_t) __builtin_aarch64_umaxv2si ((int32x2_t) __a,
20013 (int32x2_t) __b);
20016 __extension__ extern __inline float32x4_t
20017 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20018 vmaxq_f32 (float32x4_t __a, float32x4_t __b)
20020 return __builtin_aarch64_smax_nanv4sf (__a, __b);
20023 __extension__ extern __inline float64x2_t
20024 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20025 vmaxq_f64 (float64x2_t __a, float64x2_t __b)
20027 return __builtin_aarch64_smax_nanv2df (__a, __b);
20030 __extension__ extern __inline int8x16_t
20031 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20032 vmaxq_s8 (int8x16_t __a, int8x16_t __b)
20034 return __builtin_aarch64_smaxv16qi (__a, __b);
20037 __extension__ extern __inline int16x8_t
20038 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20039 vmaxq_s16 (int16x8_t __a, int16x8_t __b)
20041 return __builtin_aarch64_smaxv8hi (__a, __b);
20044 __extension__ extern __inline int32x4_t
20045 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20046 vmaxq_s32 (int32x4_t __a, int32x4_t __b)
20048 return __builtin_aarch64_smaxv4si (__a, __b);
20051 __extension__ extern __inline uint8x16_t
20052 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20053 vmaxq_u8 (uint8x16_t __a, uint8x16_t __b)
20055 return (uint8x16_t) __builtin_aarch64_umaxv16qi ((int8x16_t) __a,
20056 (int8x16_t) __b);
20059 __extension__ extern __inline uint16x8_t
20060 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20061 vmaxq_u16 (uint16x8_t __a, uint16x8_t __b)
20063 return (uint16x8_t) __builtin_aarch64_umaxv8hi ((int16x8_t) __a,
20064 (int16x8_t) __b);
20067 __extension__ extern __inline uint32x4_t
20068 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20069 vmaxq_u32 (uint32x4_t __a, uint32x4_t __b)
20071 return (uint32x4_t) __builtin_aarch64_umaxv4si ((int32x4_t) __a,
20072 (int32x4_t) __b);
20074 /* vmulx */
20076 __extension__ extern __inline float32x2_t
20077 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20078 vmulx_f32 (float32x2_t __a, float32x2_t __b)
20080 return __builtin_aarch64_fmulxv2sf (__a, __b);
20083 __extension__ extern __inline float32x4_t
20084 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20085 vmulxq_f32 (float32x4_t __a, float32x4_t __b)
20087 return __builtin_aarch64_fmulxv4sf (__a, __b);
20090 __extension__ extern __inline float64x1_t
20091 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20092 vmulx_f64 (float64x1_t __a, float64x1_t __b)
20094 return (float64x1_t) {__builtin_aarch64_fmulxdf (__a[0], __b[0])};
20097 __extension__ extern __inline float64x2_t
20098 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20099 vmulxq_f64 (float64x2_t __a, float64x2_t __b)
20101 return __builtin_aarch64_fmulxv2df (__a, __b);
20104 __extension__ extern __inline float32_t
20105 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20106 vmulxs_f32 (float32_t __a, float32_t __b)
20108 return __builtin_aarch64_fmulxsf (__a, __b);
20111 __extension__ extern __inline float64_t
20112 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20113 vmulxd_f64 (float64_t __a, float64_t __b)
20115 return __builtin_aarch64_fmulxdf (__a, __b);
20118 __extension__ extern __inline float32x2_t
20119 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20120 vmulx_lane_f32 (float32x2_t __a, float32x2_t __v, const int __lane)
20122 return vmulx_f32 (__a, __aarch64_vdup_lane_f32 (__v, __lane));
20125 __extension__ extern __inline float64x1_t
20126 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20127 vmulx_lane_f64 (float64x1_t __a, float64x1_t __v, const int __lane)
20129 return vmulx_f64 (__a, __aarch64_vdup_lane_f64 (__v, __lane));
20132 __extension__ extern __inline float32x4_t
20133 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20134 vmulxq_lane_f32 (float32x4_t __a, float32x2_t __v, const int __lane)
20136 return vmulxq_f32 (__a, __aarch64_vdupq_lane_f32 (__v, __lane));
20139 __extension__ extern __inline float64x2_t
20140 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20141 vmulxq_lane_f64 (float64x2_t __a, float64x1_t __v, const int __lane)
20143 return vmulxq_f64 (__a, __aarch64_vdupq_lane_f64 (__v, __lane));
20146 __extension__ extern __inline float32x2_t
20147 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20148 vmulx_laneq_f32 (float32x2_t __a, float32x4_t __v, const int __lane)
20150 return vmulx_f32 (__a, __aarch64_vdup_laneq_f32 (__v, __lane));
20153 __extension__ extern __inline float64x1_t
20154 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20155 vmulx_laneq_f64 (float64x1_t __a, float64x2_t __v, const int __lane)
20157 return vmulx_f64 (__a, __aarch64_vdup_laneq_f64 (__v, __lane));
20160 __extension__ extern __inline float32x4_t
20161 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20162 vmulxq_laneq_f32 (float32x4_t __a, float32x4_t __v, const int __lane)
20164 return vmulxq_f32 (__a, __aarch64_vdupq_laneq_f32 (__v, __lane));
20167 __extension__ extern __inline float64x2_t
20168 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20169 vmulxq_laneq_f64 (float64x2_t __a, float64x2_t __v, const int __lane)
20171 return vmulxq_f64 (__a, __aarch64_vdupq_laneq_f64 (__v, __lane));
20174 __extension__ extern __inline float32_t
20175 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20176 vmulxs_lane_f32 (float32_t __a, float32x2_t __v, const int __lane)
20178 return vmulxs_f32 (__a, __aarch64_vget_lane_any (__v, __lane));
20181 __extension__ extern __inline float32_t
20182 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20183 vmulxs_laneq_f32 (float32_t __a, float32x4_t __v, const int __lane)
20185 return vmulxs_f32 (__a, __aarch64_vget_lane_any (__v, __lane));
20188 __extension__ extern __inline float64_t
20189 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20190 vmulxd_lane_f64 (float64_t __a, float64x1_t __v, const int __lane)
20192 return vmulxd_f64 (__a, __aarch64_vget_lane_any (__v, __lane));
20195 __extension__ extern __inline float64_t
20196 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20197 vmulxd_laneq_f64 (float64_t __a, float64x2_t __v, const int __lane)
20199 return vmulxd_f64 (__a, __aarch64_vget_lane_any (__v, __lane));
20202 /* vpmax */
20204 __extension__ extern __inline int8x8_t
20205 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20206 vpmax_s8 (int8x8_t a, int8x8_t b)
20208 return __builtin_aarch64_smaxpv8qi (a, b);
20211 __extension__ extern __inline int16x4_t
20212 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20213 vpmax_s16 (int16x4_t a, int16x4_t b)
20215 return __builtin_aarch64_smaxpv4hi (a, b);
20218 __extension__ extern __inline int32x2_t
20219 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20220 vpmax_s32 (int32x2_t a, int32x2_t b)
20222 return __builtin_aarch64_smaxpv2si (a, b);
20225 __extension__ extern __inline uint8x8_t
20226 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20227 vpmax_u8 (uint8x8_t a, uint8x8_t b)
20229 return (uint8x8_t) __builtin_aarch64_umaxpv8qi ((int8x8_t) a,
20230 (int8x8_t) b);
20233 __extension__ extern __inline uint16x4_t
20234 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20235 vpmax_u16 (uint16x4_t a, uint16x4_t b)
20237 return (uint16x4_t) __builtin_aarch64_umaxpv4hi ((int16x4_t) a,
20238 (int16x4_t) b);
20241 __extension__ extern __inline uint32x2_t
20242 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20243 vpmax_u32 (uint32x2_t a, uint32x2_t b)
20245 return (uint32x2_t) __builtin_aarch64_umaxpv2si ((int32x2_t) a,
20246 (int32x2_t) b);
20249 __extension__ extern __inline int8x16_t
20250 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20251 vpmaxq_s8 (int8x16_t a, int8x16_t b)
20253 return __builtin_aarch64_smaxpv16qi (a, b);
20256 __extension__ extern __inline int16x8_t
20257 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20258 vpmaxq_s16 (int16x8_t a, int16x8_t b)
20260 return __builtin_aarch64_smaxpv8hi (a, b);
20263 __extension__ extern __inline int32x4_t
20264 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20265 vpmaxq_s32 (int32x4_t a, int32x4_t b)
20267 return __builtin_aarch64_smaxpv4si (a, b);
20270 __extension__ extern __inline uint8x16_t
20271 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20272 vpmaxq_u8 (uint8x16_t a, uint8x16_t b)
20274 return (uint8x16_t) __builtin_aarch64_umaxpv16qi ((int8x16_t) a,
20275 (int8x16_t) b);
20278 __extension__ extern __inline uint16x8_t
20279 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20280 vpmaxq_u16 (uint16x8_t a, uint16x8_t b)
20282 return (uint16x8_t) __builtin_aarch64_umaxpv8hi ((int16x8_t) a,
20283 (int16x8_t) b);
20286 __extension__ extern __inline uint32x4_t
20287 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20288 vpmaxq_u32 (uint32x4_t a, uint32x4_t b)
20290 return (uint32x4_t) __builtin_aarch64_umaxpv4si ((int32x4_t) a,
20291 (int32x4_t) b);
20294 __extension__ extern __inline float32x2_t
20295 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20296 vpmax_f32 (float32x2_t a, float32x2_t b)
20298 return __builtin_aarch64_smax_nanpv2sf (a, b);
20301 __extension__ extern __inline float32x4_t
20302 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20303 vpmaxq_f32 (float32x4_t a, float32x4_t b)
20305 return __builtin_aarch64_smax_nanpv4sf (a, b);
20308 __extension__ extern __inline float64x2_t
20309 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20310 vpmaxq_f64 (float64x2_t a, float64x2_t b)
20312 return __builtin_aarch64_smax_nanpv2df (a, b);
20315 __extension__ extern __inline float64_t
20316 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20317 vpmaxqd_f64 (float64x2_t a)
20319 return __builtin_aarch64_reduc_smax_nan_scal_v2df (a);
20322 __extension__ extern __inline float32_t
20323 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20324 vpmaxs_f32 (float32x2_t a)
20326 return __builtin_aarch64_reduc_smax_nan_scal_v2sf (a);
20329 /* vpmaxnm */
20331 __extension__ extern __inline float32x2_t
20332 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20333 vpmaxnm_f32 (float32x2_t a, float32x2_t b)
20335 return __builtin_aarch64_smaxpv2sf (a, b);
20338 __extension__ extern __inline float32x4_t
20339 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20340 vpmaxnmq_f32 (float32x4_t a, float32x4_t b)
20342 return __builtin_aarch64_smaxpv4sf (a, b);
20345 __extension__ extern __inline float64x2_t
20346 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20347 vpmaxnmq_f64 (float64x2_t a, float64x2_t b)
20349 return __builtin_aarch64_smaxpv2df (a, b);
20352 __extension__ extern __inline float64_t
20353 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20354 vpmaxnmqd_f64 (float64x2_t a)
20356 return __builtin_aarch64_reduc_smax_scal_v2df (a);
20359 __extension__ extern __inline float32_t
20360 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20361 vpmaxnms_f32 (float32x2_t a)
20363 return __builtin_aarch64_reduc_smax_scal_v2sf (a);
20366 /* vpmin */
20368 __extension__ extern __inline int8x8_t
20369 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20370 vpmin_s8 (int8x8_t a, int8x8_t b)
20372 return __builtin_aarch64_sminpv8qi (a, b);
20375 __extension__ extern __inline int16x4_t
20376 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20377 vpmin_s16 (int16x4_t a, int16x4_t b)
20379 return __builtin_aarch64_sminpv4hi (a, b);
20382 __extension__ extern __inline int32x2_t
20383 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20384 vpmin_s32 (int32x2_t a, int32x2_t b)
20386 return __builtin_aarch64_sminpv2si (a, b);
20389 __extension__ extern __inline uint8x8_t
20390 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20391 vpmin_u8 (uint8x8_t a, uint8x8_t b)
20393 return (uint8x8_t) __builtin_aarch64_uminpv8qi ((int8x8_t) a,
20394 (int8x8_t) b);
20397 __extension__ extern __inline uint16x4_t
20398 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20399 vpmin_u16 (uint16x4_t a, uint16x4_t b)
20401 return (uint16x4_t) __builtin_aarch64_uminpv4hi ((int16x4_t) a,
20402 (int16x4_t) b);
20405 __extension__ extern __inline uint32x2_t
20406 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20407 vpmin_u32 (uint32x2_t a, uint32x2_t b)
20409 return (uint32x2_t) __builtin_aarch64_uminpv2si ((int32x2_t) a,
20410 (int32x2_t) b);
20413 __extension__ extern __inline int8x16_t
20414 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20415 vpminq_s8 (int8x16_t a, int8x16_t b)
20417 return __builtin_aarch64_sminpv16qi (a, b);
20420 __extension__ extern __inline int16x8_t
20421 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20422 vpminq_s16 (int16x8_t a, int16x8_t b)
20424 return __builtin_aarch64_sminpv8hi (a, b);
20427 __extension__ extern __inline int32x4_t
20428 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20429 vpminq_s32 (int32x4_t a, int32x4_t b)
20431 return __builtin_aarch64_sminpv4si (a, b);
20434 __extension__ extern __inline uint8x16_t
20435 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20436 vpminq_u8 (uint8x16_t a, uint8x16_t b)
20438 return (uint8x16_t) __builtin_aarch64_uminpv16qi ((int8x16_t) a,
20439 (int8x16_t) b);
20442 __extension__ extern __inline uint16x8_t
20443 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20444 vpminq_u16 (uint16x8_t a, uint16x8_t b)
20446 return (uint16x8_t) __builtin_aarch64_uminpv8hi ((int16x8_t) a,
20447 (int16x8_t) b);
20450 __extension__ extern __inline uint32x4_t
20451 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20452 vpminq_u32 (uint32x4_t a, uint32x4_t b)
20454 return (uint32x4_t) __builtin_aarch64_uminpv4si ((int32x4_t) a,
20455 (int32x4_t) b);
20458 __extension__ extern __inline float32x2_t
20459 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20460 vpmin_f32 (float32x2_t a, float32x2_t b)
20462 return __builtin_aarch64_smin_nanpv2sf (a, b);
20465 __extension__ extern __inline float32x4_t
20466 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20467 vpminq_f32 (float32x4_t a, float32x4_t b)
20469 return __builtin_aarch64_smin_nanpv4sf (a, b);
20472 __extension__ extern __inline float64x2_t
20473 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20474 vpminq_f64 (float64x2_t a, float64x2_t b)
20476 return __builtin_aarch64_smin_nanpv2df (a, b);
20479 __extension__ extern __inline float64_t
20480 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20481 vpminqd_f64 (float64x2_t a)
20483 return __builtin_aarch64_reduc_smin_nan_scal_v2df (a);
20486 __extension__ extern __inline float32_t
20487 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20488 vpmins_f32 (float32x2_t a)
20490 return __builtin_aarch64_reduc_smin_nan_scal_v2sf (a);
20493 /* vpminnm */
20495 __extension__ extern __inline float32x2_t
20496 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20497 vpminnm_f32 (float32x2_t a, float32x2_t b)
20499 return __builtin_aarch64_sminpv2sf (a, b);
20502 __extension__ extern __inline float32x4_t
20503 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20504 vpminnmq_f32 (float32x4_t a, float32x4_t b)
20506 return __builtin_aarch64_sminpv4sf (a, b);
20509 __extension__ extern __inline float64x2_t
20510 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20511 vpminnmq_f64 (float64x2_t a, float64x2_t b)
20513 return __builtin_aarch64_sminpv2df (a, b);
20516 __extension__ extern __inline float64_t
20517 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20518 vpminnmqd_f64 (float64x2_t a)
20520 return __builtin_aarch64_reduc_smin_scal_v2df (a);
20523 __extension__ extern __inline float32_t
20524 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20525 vpminnms_f32 (float32x2_t a)
20527 return __builtin_aarch64_reduc_smin_scal_v2sf (a);
20530 /* vmaxnm */
20532 __extension__ extern __inline float32x2_t
20533 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20534 vmaxnm_f32 (float32x2_t __a, float32x2_t __b)
20536 return __builtin_aarch64_fmaxv2sf (__a, __b);
20539 __extension__ extern __inline float64x1_t
20540 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20541 vmaxnm_f64 (float64x1_t __a, float64x1_t __b)
20543 return (float64x1_t)
20544 { __builtin_aarch64_fmaxdf (vget_lane_f64 (__a, 0),
20545 vget_lane_f64 (__b, 0)) };
20548 __extension__ extern __inline float32x4_t
20549 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20550 vmaxnmq_f32 (float32x4_t __a, float32x4_t __b)
20552 return __builtin_aarch64_fmaxv4sf (__a, __b);
20555 __extension__ extern __inline float64x2_t
20556 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20557 vmaxnmq_f64 (float64x2_t __a, float64x2_t __b)
20559 return __builtin_aarch64_fmaxv2df (__a, __b);
20562 /* vmaxv */
20564 __extension__ extern __inline float32_t
20565 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20566 vmaxv_f32 (float32x2_t __a)
20568 return __builtin_aarch64_reduc_smax_nan_scal_v2sf (__a);
20571 __extension__ extern __inline int8_t
20572 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20573 vmaxv_s8 (int8x8_t __a)
20575 return __builtin_aarch64_reduc_smax_scal_v8qi (__a);
20578 __extension__ extern __inline int16_t
20579 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20580 vmaxv_s16 (int16x4_t __a)
20582 return __builtin_aarch64_reduc_smax_scal_v4hi (__a);
20585 __extension__ extern __inline int32_t
20586 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20587 vmaxv_s32 (int32x2_t __a)
20589 return __builtin_aarch64_reduc_smax_scal_v2si (__a);
20592 __extension__ extern __inline uint8_t
20593 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20594 vmaxv_u8 (uint8x8_t __a)
20596 return __builtin_aarch64_reduc_umax_scal_v8qi_uu (__a);
20599 __extension__ extern __inline uint16_t
20600 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20601 vmaxv_u16 (uint16x4_t __a)
20603 return __builtin_aarch64_reduc_umax_scal_v4hi_uu (__a);
20606 __extension__ extern __inline uint32_t
20607 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20608 vmaxv_u32 (uint32x2_t __a)
20610 return __builtin_aarch64_reduc_umax_scal_v2si_uu (__a);
20613 __extension__ extern __inline float32_t
20614 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20615 vmaxvq_f32 (float32x4_t __a)
20617 return __builtin_aarch64_reduc_smax_nan_scal_v4sf (__a);
20620 __extension__ extern __inline float64_t
20621 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20622 vmaxvq_f64 (float64x2_t __a)
20624 return __builtin_aarch64_reduc_smax_nan_scal_v2df (__a);
20627 __extension__ extern __inline int8_t
20628 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20629 vmaxvq_s8 (int8x16_t __a)
20631 return __builtin_aarch64_reduc_smax_scal_v16qi (__a);
20634 __extension__ extern __inline int16_t
20635 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20636 vmaxvq_s16 (int16x8_t __a)
20638 return __builtin_aarch64_reduc_smax_scal_v8hi (__a);
20641 __extension__ extern __inline int32_t
20642 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20643 vmaxvq_s32 (int32x4_t __a)
20645 return __builtin_aarch64_reduc_smax_scal_v4si (__a);
20648 __extension__ extern __inline uint8_t
20649 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20650 vmaxvq_u8 (uint8x16_t __a)
20652 return __builtin_aarch64_reduc_umax_scal_v16qi_uu (__a);
20655 __extension__ extern __inline uint16_t
20656 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20657 vmaxvq_u16 (uint16x8_t __a)
20659 return __builtin_aarch64_reduc_umax_scal_v8hi_uu (__a);
20662 __extension__ extern __inline uint32_t
20663 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20664 vmaxvq_u32 (uint32x4_t __a)
20666 return __builtin_aarch64_reduc_umax_scal_v4si_uu (__a);
20669 /* vmaxnmv */
20671 __extension__ extern __inline float32_t
20672 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20673 vmaxnmv_f32 (float32x2_t __a)
20675 return __builtin_aarch64_reduc_smax_scal_v2sf (__a);
20678 __extension__ extern __inline float32_t
20679 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20680 vmaxnmvq_f32 (float32x4_t __a)
20682 return __builtin_aarch64_reduc_smax_scal_v4sf (__a);
20685 __extension__ extern __inline float64_t
20686 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20687 vmaxnmvq_f64 (float64x2_t __a)
20689 return __builtin_aarch64_reduc_smax_scal_v2df (__a);
20692 /* vmin */
20694 __extension__ extern __inline float32x2_t
20695 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20696 vmin_f32 (float32x2_t __a, float32x2_t __b)
20698 return __builtin_aarch64_smin_nanv2sf (__a, __b);
20701 __extension__ extern __inline float64x1_t
20702 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20703 vmin_f64 (float64x1_t __a, float64x1_t __b)
20705 return (float64x1_t)
20706 { __builtin_aarch64_smin_nandf (vget_lane_f64 (__a, 0),
20707 vget_lane_f64 (__b, 0)) };
20710 __extension__ extern __inline int8x8_t
20711 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20712 vmin_s8 (int8x8_t __a, int8x8_t __b)
20714 return __builtin_aarch64_sminv8qi (__a, __b);
20717 __extension__ extern __inline int16x4_t
20718 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20719 vmin_s16 (int16x4_t __a, int16x4_t __b)
20721 return __builtin_aarch64_sminv4hi (__a, __b);
20724 __extension__ extern __inline int32x2_t
20725 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20726 vmin_s32 (int32x2_t __a, int32x2_t __b)
20728 return __builtin_aarch64_sminv2si (__a, __b);
20731 __extension__ extern __inline uint8x8_t
20732 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20733 vmin_u8 (uint8x8_t __a, uint8x8_t __b)
20735 return (uint8x8_t) __builtin_aarch64_uminv8qi ((int8x8_t) __a,
20736 (int8x8_t) __b);
20739 __extension__ extern __inline uint16x4_t
20740 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20741 vmin_u16 (uint16x4_t __a, uint16x4_t __b)
20743 return (uint16x4_t) __builtin_aarch64_uminv4hi ((int16x4_t) __a,
20744 (int16x4_t) __b);
20747 __extension__ extern __inline uint32x2_t
20748 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20749 vmin_u32 (uint32x2_t __a, uint32x2_t __b)
20751 return (uint32x2_t) __builtin_aarch64_uminv2si ((int32x2_t) __a,
20752 (int32x2_t) __b);
20755 __extension__ extern __inline float32x4_t
20756 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20757 vminq_f32 (float32x4_t __a, float32x4_t __b)
20759 return __builtin_aarch64_smin_nanv4sf (__a, __b);
20762 __extension__ extern __inline float64x2_t
20763 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20764 vminq_f64 (float64x2_t __a, float64x2_t __b)
20766 return __builtin_aarch64_smin_nanv2df (__a, __b);
20769 __extension__ extern __inline int8x16_t
20770 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20771 vminq_s8 (int8x16_t __a, int8x16_t __b)
20773 return __builtin_aarch64_sminv16qi (__a, __b);
20776 __extension__ extern __inline int16x8_t
20777 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20778 vminq_s16 (int16x8_t __a, int16x8_t __b)
20780 return __builtin_aarch64_sminv8hi (__a, __b);
20783 __extension__ extern __inline int32x4_t
20784 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20785 vminq_s32 (int32x4_t __a, int32x4_t __b)
20787 return __builtin_aarch64_sminv4si (__a, __b);
20790 __extension__ extern __inline uint8x16_t
20791 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20792 vminq_u8 (uint8x16_t __a, uint8x16_t __b)
20794 return (uint8x16_t) __builtin_aarch64_uminv16qi ((int8x16_t) __a,
20795 (int8x16_t) __b);
20798 __extension__ extern __inline uint16x8_t
20799 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20800 vminq_u16 (uint16x8_t __a, uint16x8_t __b)
20802 return (uint16x8_t) __builtin_aarch64_uminv8hi ((int16x8_t) __a,
20803 (int16x8_t) __b);
20806 __extension__ extern __inline uint32x4_t
20807 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20808 vminq_u32 (uint32x4_t __a, uint32x4_t __b)
20810 return (uint32x4_t) __builtin_aarch64_uminv4si ((int32x4_t) __a,
20811 (int32x4_t) __b);
20814 /* vminnm */
20816 __extension__ extern __inline float32x2_t
20817 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20818 vminnm_f32 (float32x2_t __a, float32x2_t __b)
20820 return __builtin_aarch64_fminv2sf (__a, __b);
20823 __extension__ extern __inline float64x1_t
20824 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20825 vminnm_f64 (float64x1_t __a, float64x1_t __b)
20827 return (float64x1_t)
20828 { __builtin_aarch64_fmindf (vget_lane_f64 (__a, 0),
20829 vget_lane_f64 (__b, 0)) };
20832 __extension__ extern __inline float32x4_t
20833 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20834 vminnmq_f32 (float32x4_t __a, float32x4_t __b)
20836 return __builtin_aarch64_fminv4sf (__a, __b);
20839 __extension__ extern __inline float64x2_t
20840 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20841 vminnmq_f64 (float64x2_t __a, float64x2_t __b)
20843 return __builtin_aarch64_fminv2df (__a, __b);
20846 /* vminv */
20848 __extension__ extern __inline float32_t
20849 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20850 vminv_f32 (float32x2_t __a)
20852 return __builtin_aarch64_reduc_smin_nan_scal_v2sf (__a);
20855 __extension__ extern __inline int8_t
20856 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20857 vminv_s8 (int8x8_t __a)
20859 return __builtin_aarch64_reduc_smin_scal_v8qi (__a);
20862 __extension__ extern __inline int16_t
20863 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20864 vminv_s16 (int16x4_t __a)
20866 return __builtin_aarch64_reduc_smin_scal_v4hi (__a);
20869 __extension__ extern __inline int32_t
20870 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20871 vminv_s32 (int32x2_t __a)
20873 return __builtin_aarch64_reduc_smin_scal_v2si (__a);
20876 __extension__ extern __inline uint8_t
20877 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20878 vminv_u8 (uint8x8_t __a)
20880 return __builtin_aarch64_reduc_umin_scal_v8qi_uu (__a);
20883 __extension__ extern __inline uint16_t
20884 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20885 vminv_u16 (uint16x4_t __a)
20887 return __builtin_aarch64_reduc_umin_scal_v4hi_uu (__a);
20890 __extension__ extern __inline uint32_t
20891 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20892 vminv_u32 (uint32x2_t __a)
20894 return __builtin_aarch64_reduc_umin_scal_v2si_uu (__a);
20897 __extension__ extern __inline float32_t
20898 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20899 vminvq_f32 (float32x4_t __a)
20901 return __builtin_aarch64_reduc_smin_nan_scal_v4sf (__a);
20904 __extension__ extern __inline float64_t
20905 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20906 vminvq_f64 (float64x2_t __a)
20908 return __builtin_aarch64_reduc_smin_nan_scal_v2df (__a);
20911 __extension__ extern __inline int8_t
20912 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20913 vminvq_s8 (int8x16_t __a)
20915 return __builtin_aarch64_reduc_smin_scal_v16qi (__a);
20918 __extension__ extern __inline int16_t
20919 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20920 vminvq_s16 (int16x8_t __a)
20922 return __builtin_aarch64_reduc_smin_scal_v8hi (__a);
20925 __extension__ extern __inline int32_t
20926 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20927 vminvq_s32 (int32x4_t __a)
20929 return __builtin_aarch64_reduc_smin_scal_v4si (__a);
20932 __extension__ extern __inline uint8_t
20933 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20934 vminvq_u8 (uint8x16_t __a)
20936 return __builtin_aarch64_reduc_umin_scal_v16qi_uu (__a);
20939 __extension__ extern __inline uint16_t
20940 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20941 vminvq_u16 (uint16x8_t __a)
20943 return __builtin_aarch64_reduc_umin_scal_v8hi_uu (__a);
20946 __extension__ extern __inline uint32_t
20947 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20948 vminvq_u32 (uint32x4_t __a)
20950 return __builtin_aarch64_reduc_umin_scal_v4si_uu (__a);
20953 /* vminnmv */
20955 __extension__ extern __inline float32_t
20956 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20957 vminnmv_f32 (float32x2_t __a)
20959 return __builtin_aarch64_reduc_smin_scal_v2sf (__a);
20962 __extension__ extern __inline float32_t
20963 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20964 vminnmvq_f32 (float32x4_t __a)
20966 return __builtin_aarch64_reduc_smin_scal_v4sf (__a);
20969 __extension__ extern __inline float64_t
20970 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20971 vminnmvq_f64 (float64x2_t __a)
20973 return __builtin_aarch64_reduc_smin_scal_v2df (__a);
20976 /* vmla */
20978 __extension__ extern __inline float32x2_t
20979 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20980 vmla_f32 (float32x2_t a, float32x2_t b, float32x2_t c)
20982 return a + b * c;
20985 __extension__ extern __inline float64x1_t
20986 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20987 vmla_f64 (float64x1_t __a, float64x1_t __b, float64x1_t __c)
20989 return __a + __b * __c;
20992 __extension__ extern __inline float32x4_t
20993 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20994 vmlaq_f32 (float32x4_t a, float32x4_t b, float32x4_t c)
20996 return a + b * c;
20999 __extension__ extern __inline float64x2_t
21000 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21001 vmlaq_f64 (float64x2_t a, float64x2_t b, float64x2_t c)
21003 return a + b * c;
21006 /* vmla_lane */
21008 __extension__ extern __inline float32x2_t
21009 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21010 vmla_lane_f32 (float32x2_t __a, float32x2_t __b,
21011 float32x2_t __c, const int __lane)
21013 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21016 __extension__ extern __inline int16x4_t
21017 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21018 vmla_lane_s16 (int16x4_t __a, int16x4_t __b,
21019 int16x4_t __c, const int __lane)
21021 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21024 __extension__ extern __inline int32x2_t
21025 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21026 vmla_lane_s32 (int32x2_t __a, int32x2_t __b,
21027 int32x2_t __c, const int __lane)
21029 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21032 __extension__ extern __inline uint16x4_t
21033 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21034 vmla_lane_u16 (uint16x4_t __a, uint16x4_t __b,
21035 uint16x4_t __c, const int __lane)
21037 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21040 __extension__ extern __inline uint32x2_t
21041 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21042 vmla_lane_u32 (uint32x2_t __a, uint32x2_t __b,
21043 uint32x2_t __c, const int __lane)
21045 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21048 /* vmla_laneq */
21050 __extension__ extern __inline float32x2_t
21051 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21052 vmla_laneq_f32 (float32x2_t __a, float32x2_t __b,
21053 float32x4_t __c, const int __lane)
21055 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21058 __extension__ extern __inline int16x4_t
21059 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21060 vmla_laneq_s16 (int16x4_t __a, int16x4_t __b,
21061 int16x8_t __c, const int __lane)
21063 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21066 __extension__ extern __inline int32x2_t
21067 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21068 vmla_laneq_s32 (int32x2_t __a, int32x2_t __b,
21069 int32x4_t __c, const int __lane)
21071 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21074 __extension__ extern __inline uint16x4_t
21075 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21076 vmla_laneq_u16 (uint16x4_t __a, uint16x4_t __b,
21077 uint16x8_t __c, const int __lane)
21079 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21082 __extension__ extern __inline uint32x2_t
21083 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21084 vmla_laneq_u32 (uint32x2_t __a, uint32x2_t __b,
21085 uint32x4_t __c, const int __lane)
21087 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21090 /* vmlaq_lane */
21092 __extension__ extern __inline float32x4_t
21093 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21094 vmlaq_lane_f32 (float32x4_t __a, float32x4_t __b,
21095 float32x2_t __c, const int __lane)
21097 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21100 __extension__ extern __inline int16x8_t
21101 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21102 vmlaq_lane_s16 (int16x8_t __a, int16x8_t __b,
21103 int16x4_t __c, const int __lane)
21105 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21108 __extension__ extern __inline int32x4_t
21109 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21110 vmlaq_lane_s32 (int32x4_t __a, int32x4_t __b,
21111 int32x2_t __c, const int __lane)
21113 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21116 __extension__ extern __inline uint16x8_t
21117 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21118 vmlaq_lane_u16 (uint16x8_t __a, uint16x8_t __b,
21119 uint16x4_t __c, const int __lane)
21121 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21124 __extension__ extern __inline uint32x4_t
21125 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21126 vmlaq_lane_u32 (uint32x4_t __a, uint32x4_t __b,
21127 uint32x2_t __c, const int __lane)
21129 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21132 /* vmlaq_laneq */
21134 __extension__ extern __inline float32x4_t
21135 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21136 vmlaq_laneq_f32 (float32x4_t __a, float32x4_t __b,
21137 float32x4_t __c, const int __lane)
21139 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21142 __extension__ extern __inline int16x8_t
21143 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21144 vmlaq_laneq_s16 (int16x8_t __a, int16x8_t __b,
21145 int16x8_t __c, const int __lane)
21147 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21150 __extension__ extern __inline int32x4_t
21151 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21152 vmlaq_laneq_s32 (int32x4_t __a, int32x4_t __b,
21153 int32x4_t __c, const int __lane)
21155 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21158 __extension__ extern __inline uint16x8_t
21159 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21160 vmlaq_laneq_u16 (uint16x8_t __a, uint16x8_t __b,
21161 uint16x8_t __c, const int __lane)
21163 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21166 __extension__ extern __inline uint32x4_t
21167 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21168 vmlaq_laneq_u32 (uint32x4_t __a, uint32x4_t __b,
21169 uint32x4_t __c, const int __lane)
21171 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21174 /* vmls */
21176 __extension__ extern __inline float32x2_t
21177 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21178 vmls_f32 (float32x2_t a, float32x2_t b, float32x2_t c)
21180 return a - b * c;
21183 __extension__ extern __inline float64x1_t
21184 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21185 vmls_f64 (float64x1_t __a, float64x1_t __b, float64x1_t __c)
21187 return __a - __b * __c;
21190 __extension__ extern __inline float32x4_t
21191 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21192 vmlsq_f32 (float32x4_t a, float32x4_t b, float32x4_t c)
21194 return a - b * c;
21197 __extension__ extern __inline float64x2_t
21198 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21199 vmlsq_f64 (float64x2_t a, float64x2_t b, float64x2_t c)
21201 return a - b * c;
21204 /* vmls_lane */
21206 __extension__ extern __inline float32x2_t
21207 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21208 vmls_lane_f32 (float32x2_t __a, float32x2_t __b,
21209 float32x2_t __c, const int __lane)
21211 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21214 __extension__ extern __inline int16x4_t
21215 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21216 vmls_lane_s16 (int16x4_t __a, int16x4_t __b,
21217 int16x4_t __c, const int __lane)
21219 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21222 __extension__ extern __inline int32x2_t
21223 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21224 vmls_lane_s32 (int32x2_t __a, int32x2_t __b,
21225 int32x2_t __c, const int __lane)
21227 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21230 __extension__ extern __inline uint16x4_t
21231 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21232 vmls_lane_u16 (uint16x4_t __a, uint16x4_t __b,
21233 uint16x4_t __c, const int __lane)
21235 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21238 __extension__ extern __inline uint32x2_t
21239 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21240 vmls_lane_u32 (uint32x2_t __a, uint32x2_t __b,
21241 uint32x2_t __c, const int __lane)
21243 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21246 /* vmls_laneq */
21248 __extension__ extern __inline float32x2_t
21249 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21250 vmls_laneq_f32 (float32x2_t __a, float32x2_t __b,
21251 float32x4_t __c, const int __lane)
21253 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21256 __extension__ extern __inline int16x4_t
21257 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21258 vmls_laneq_s16 (int16x4_t __a, int16x4_t __b,
21259 int16x8_t __c, const int __lane)
21261 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21264 __extension__ extern __inline int32x2_t
21265 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21266 vmls_laneq_s32 (int32x2_t __a, int32x2_t __b,
21267 int32x4_t __c, const int __lane)
21269 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21272 __extension__ extern __inline uint16x4_t
21273 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21274 vmls_laneq_u16 (uint16x4_t __a, uint16x4_t __b,
21275 uint16x8_t __c, const int __lane)
21277 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21280 __extension__ extern __inline uint32x2_t
21281 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21282 vmls_laneq_u32 (uint32x2_t __a, uint32x2_t __b,
21283 uint32x4_t __c, const int __lane)
21285 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21288 /* vmlsq_lane */
21290 __extension__ extern __inline float32x4_t
21291 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21292 vmlsq_lane_f32 (float32x4_t __a, float32x4_t __b,
21293 float32x2_t __c, const int __lane)
21295 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21298 __extension__ extern __inline int16x8_t
21299 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21300 vmlsq_lane_s16 (int16x8_t __a, int16x8_t __b,
21301 int16x4_t __c, const int __lane)
21303 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21306 __extension__ extern __inline int32x4_t
21307 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21308 vmlsq_lane_s32 (int32x4_t __a, int32x4_t __b,
21309 int32x2_t __c, const int __lane)
21311 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21314 __extension__ extern __inline uint16x8_t
21315 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21316 vmlsq_lane_u16 (uint16x8_t __a, uint16x8_t __b,
21317 uint16x4_t __c, const int __lane)
21319 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21322 __extension__ extern __inline uint32x4_t
21323 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21324 vmlsq_lane_u32 (uint32x4_t __a, uint32x4_t __b,
21325 uint32x2_t __c, const int __lane)
21327 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21330 /* vmlsq_laneq */
21332 __extension__ extern __inline float32x4_t
21333 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21334 vmlsq_laneq_f32 (float32x4_t __a, float32x4_t __b,
21335 float32x4_t __c, const int __lane)
21337 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21340 __extension__ extern __inline int16x8_t
21341 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21342 vmlsq_laneq_s16 (int16x8_t __a, int16x8_t __b,
21343 int16x8_t __c, const int __lane)
21345 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21348 __extension__ extern __inline int32x4_t
21349 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21350 vmlsq_laneq_s32 (int32x4_t __a, int32x4_t __b,
21351 int32x4_t __c, const int __lane)
21353 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21355 __extension__ extern __inline uint16x8_t
21356 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21357 vmlsq_laneq_u16 (uint16x8_t __a, uint16x8_t __b,
21358 uint16x8_t __c, const int __lane)
21360 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21363 __extension__ extern __inline uint32x4_t
21364 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21365 vmlsq_laneq_u32 (uint32x4_t __a, uint32x4_t __b,
21366 uint32x4_t __c, const int __lane)
21368 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21371 /* vmov_n_ */
21373 __extension__ extern __inline float16x4_t
21374 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21375 vmov_n_f16 (float16_t __a)
21377 return vdup_n_f16 (__a);
21380 __extension__ extern __inline float32x2_t
21381 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21382 vmov_n_f32 (float32_t __a)
21384 return vdup_n_f32 (__a);
21387 __extension__ extern __inline float64x1_t
21388 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21389 vmov_n_f64 (float64_t __a)
21391 return (float64x1_t) {__a};
21394 __extension__ extern __inline poly8x8_t
21395 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21396 vmov_n_p8 (poly8_t __a)
21398 return vdup_n_p8 (__a);
21401 __extension__ extern __inline poly16x4_t
21402 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21403 vmov_n_p16 (poly16_t __a)
21405 return vdup_n_p16 (__a);
21408 __extension__ extern __inline poly64x1_t
21409 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21410 vmov_n_p64 (poly64_t __a)
21412 return vdup_n_p64 (__a);
21415 __extension__ extern __inline int8x8_t
21416 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21417 vmov_n_s8 (int8_t __a)
21419 return vdup_n_s8 (__a);
21422 __extension__ extern __inline int16x4_t
21423 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21424 vmov_n_s16 (int16_t __a)
21426 return vdup_n_s16 (__a);
21429 __extension__ extern __inline int32x2_t
21430 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21431 vmov_n_s32 (int32_t __a)
21433 return vdup_n_s32 (__a);
21436 __extension__ extern __inline int64x1_t
21437 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21438 vmov_n_s64 (int64_t __a)
21440 return (int64x1_t) {__a};
21443 __extension__ extern __inline uint8x8_t
21444 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21445 vmov_n_u8 (uint8_t __a)
21447 return vdup_n_u8 (__a);
21450 __extension__ extern __inline uint16x4_t
21451 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21452 vmov_n_u16 (uint16_t __a)
21454 return vdup_n_u16 (__a);
21457 __extension__ extern __inline uint32x2_t
21458 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21459 vmov_n_u32 (uint32_t __a)
21461 return vdup_n_u32 (__a);
21464 __extension__ extern __inline uint64x1_t
21465 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21466 vmov_n_u64 (uint64_t __a)
21468 return (uint64x1_t) {__a};
21471 __extension__ extern __inline float16x8_t
21472 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21473 vmovq_n_f16 (float16_t __a)
21475 return vdupq_n_f16 (__a);
21478 __extension__ extern __inline float32x4_t
21479 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21480 vmovq_n_f32 (float32_t __a)
21482 return vdupq_n_f32 (__a);
21485 __extension__ extern __inline float64x2_t
21486 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21487 vmovq_n_f64 (float64_t __a)
21489 return vdupq_n_f64 (__a);
21492 __extension__ extern __inline poly8x16_t
21493 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21494 vmovq_n_p8 (poly8_t __a)
21496 return vdupq_n_p8 (__a);
21499 __extension__ extern __inline poly16x8_t
21500 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21501 vmovq_n_p16 (poly16_t __a)
21503 return vdupq_n_p16 (__a);
21506 __extension__ extern __inline poly64x2_t
21507 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21508 vmovq_n_p64 (poly64_t __a)
21510 return vdupq_n_p64 (__a);
21513 __extension__ extern __inline int8x16_t
21514 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21515 vmovq_n_s8 (int8_t __a)
21517 return vdupq_n_s8 (__a);
21520 __extension__ extern __inline int16x8_t
21521 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21522 vmovq_n_s16 (int16_t __a)
21524 return vdupq_n_s16 (__a);
21527 __extension__ extern __inline int32x4_t
21528 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21529 vmovq_n_s32 (int32_t __a)
21531 return vdupq_n_s32 (__a);
21534 __extension__ extern __inline int64x2_t
21535 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21536 vmovq_n_s64 (int64_t __a)
21538 return vdupq_n_s64 (__a);
21541 __extension__ extern __inline uint8x16_t
21542 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21543 vmovq_n_u8 (uint8_t __a)
21545 return vdupq_n_u8 (__a);
21548 __extension__ extern __inline uint16x8_t
21549 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21550 vmovq_n_u16 (uint16_t __a)
21552 return vdupq_n_u16 (__a);
21555 __extension__ extern __inline uint32x4_t
21556 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21557 vmovq_n_u32 (uint32_t __a)
21559 return vdupq_n_u32 (__a);
21562 __extension__ extern __inline uint64x2_t
21563 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21564 vmovq_n_u64 (uint64_t __a)
21566 return vdupq_n_u64 (__a);
21569 /* vmul_lane */
21571 __extension__ extern __inline float32x2_t
21572 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21573 vmul_lane_f32 (float32x2_t __a, float32x2_t __b, const int __lane)
21575 return __a * __aarch64_vget_lane_any (__b, __lane);
21578 __extension__ extern __inline float64x1_t
21579 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21580 vmul_lane_f64 (float64x1_t __a, float64x1_t __b, const int __lane)
21582 return __a * __b;
21585 __extension__ extern __inline int16x4_t
21586 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21587 vmul_lane_s16 (int16x4_t __a, int16x4_t __b, const int __lane)
21589 return __a * __aarch64_vget_lane_any (__b, __lane);
21592 __extension__ extern __inline int32x2_t
21593 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21594 vmul_lane_s32 (int32x2_t __a, int32x2_t __b, const int __lane)
21596 return __a * __aarch64_vget_lane_any (__b, __lane);
21599 __extension__ extern __inline uint16x4_t
21600 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21601 vmul_lane_u16 (uint16x4_t __a, uint16x4_t __b, const int __lane)
21603 return __a * __aarch64_vget_lane_any (__b, __lane);
21606 __extension__ extern __inline uint32x2_t
21607 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21608 vmul_lane_u32 (uint32x2_t __a, uint32x2_t __b, const int __lane)
21610 return __a * __aarch64_vget_lane_any (__b, __lane);
21613 /* vmuld_lane */
21615 __extension__ extern __inline float64_t
21616 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21617 vmuld_lane_f64 (float64_t __a, float64x1_t __b, const int __lane)
21619 return __a * __aarch64_vget_lane_any (__b, __lane);
21622 __extension__ extern __inline float64_t
21623 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21624 vmuld_laneq_f64 (float64_t __a, float64x2_t __b, const int __lane)
21626 return __a * __aarch64_vget_lane_any (__b, __lane);
21629 /* vmuls_lane */
21631 __extension__ extern __inline float32_t
21632 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21633 vmuls_lane_f32 (float32_t __a, float32x2_t __b, const int __lane)
21635 return __a * __aarch64_vget_lane_any (__b, __lane);
21638 __extension__ extern __inline float32_t
21639 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21640 vmuls_laneq_f32 (float32_t __a, float32x4_t __b, const int __lane)
21642 return __a * __aarch64_vget_lane_any (__b, __lane);
21645 /* vmul_laneq */
21647 __extension__ extern __inline float32x2_t
21648 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21649 vmul_laneq_f32 (float32x2_t __a, float32x4_t __b, const int __lane)
21651 return __a * __aarch64_vget_lane_any (__b, __lane);
21654 __extension__ extern __inline float64x1_t
21655 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21656 vmul_laneq_f64 (float64x1_t __a, float64x2_t __b, const int __lane)
21658 return __a * __aarch64_vget_lane_any (__b, __lane);
21661 __extension__ extern __inline int16x4_t
21662 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21663 vmul_laneq_s16 (int16x4_t __a, int16x8_t __b, const int __lane)
21665 return __a * __aarch64_vget_lane_any (__b, __lane);
21668 __extension__ extern __inline int32x2_t
21669 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21670 vmul_laneq_s32 (int32x2_t __a, int32x4_t __b, const int __lane)
21672 return __a * __aarch64_vget_lane_any (__b, __lane);
21675 __extension__ extern __inline uint16x4_t
21676 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21677 vmul_laneq_u16 (uint16x4_t __a, uint16x8_t __b, const int __lane)
21679 return __a * __aarch64_vget_lane_any (__b, __lane);
21682 __extension__ extern __inline uint32x2_t
21683 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21684 vmul_laneq_u32 (uint32x2_t __a, uint32x4_t __b, const int __lane)
21686 return __a * __aarch64_vget_lane_any (__b, __lane);
21689 /* vmul_n */
21691 __extension__ extern __inline float64x1_t
21692 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21693 vmul_n_f64 (float64x1_t __a, float64_t __b)
21695 return (float64x1_t) { vget_lane_f64 (__a, 0) * __b };
21698 /* vmulq_lane */
21700 __extension__ extern __inline float32x4_t
21701 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21702 vmulq_lane_f32 (float32x4_t __a, float32x2_t __b, const int __lane)
21704 return __a * __aarch64_vget_lane_any (__b, __lane);
21707 __extension__ extern __inline float64x2_t
21708 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21709 vmulq_lane_f64 (float64x2_t __a, float64x1_t __b, const int __lane)
21711 __AARCH64_LANE_CHECK (__a, __lane);
21712 return __a * __b[0];
21715 __extension__ extern __inline int16x8_t
21716 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21717 vmulq_lane_s16 (int16x8_t __a, int16x4_t __b, const int __lane)
21719 return __a * __aarch64_vget_lane_any (__b, __lane);
21722 __extension__ extern __inline int32x4_t
21723 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21724 vmulq_lane_s32 (int32x4_t __a, int32x2_t __b, const int __lane)
21726 return __a * __aarch64_vget_lane_any (__b, __lane);
21729 __extension__ extern __inline uint16x8_t
21730 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21731 vmulq_lane_u16 (uint16x8_t __a, uint16x4_t __b, const int __lane)
21733 return __a * __aarch64_vget_lane_any (__b, __lane);
21736 __extension__ extern __inline uint32x4_t
21737 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21738 vmulq_lane_u32 (uint32x4_t __a, uint32x2_t __b, const int __lane)
21740 return __a * __aarch64_vget_lane_any (__b, __lane);
21743 /* vmulq_laneq */
21745 __extension__ extern __inline float32x4_t
21746 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21747 vmulq_laneq_f32 (float32x4_t __a, float32x4_t __b, const int __lane)
21749 return __a * __aarch64_vget_lane_any (__b, __lane);
21752 __extension__ extern __inline float64x2_t
21753 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21754 vmulq_laneq_f64 (float64x2_t __a, float64x2_t __b, const int __lane)
21756 return __a * __aarch64_vget_lane_any (__b, __lane);
21759 __extension__ extern __inline int16x8_t
21760 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21761 vmulq_laneq_s16 (int16x8_t __a, int16x8_t __b, const int __lane)
21763 return __a * __aarch64_vget_lane_any (__b, __lane);
21766 __extension__ extern __inline int32x4_t
21767 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21768 vmulq_laneq_s32 (int32x4_t __a, int32x4_t __b, const int __lane)
21770 return __a * __aarch64_vget_lane_any (__b, __lane);
21773 __extension__ extern __inline uint16x8_t
21774 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21775 vmulq_laneq_u16 (uint16x8_t __a, uint16x8_t __b, const int __lane)
21777 return __a * __aarch64_vget_lane_any (__b, __lane);
21780 __extension__ extern __inline uint32x4_t
21781 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21782 vmulq_laneq_u32 (uint32x4_t __a, uint32x4_t __b, const int __lane)
21784 return __a * __aarch64_vget_lane_any (__b, __lane);
21787 /* vmul_n. */
21789 __extension__ extern __inline float32x2_t
21790 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21791 vmul_n_f32 (float32x2_t __a, float32_t __b)
21793 return __a * __b;
21796 __extension__ extern __inline float32x4_t
21797 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21798 vmulq_n_f32 (float32x4_t __a, float32_t __b)
21800 return __a * __b;
21803 __extension__ extern __inline float64x2_t
21804 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21805 vmulq_n_f64 (float64x2_t __a, float64_t __b)
21807 return __a * __b;
21810 __extension__ extern __inline int16x4_t
21811 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21812 vmul_n_s16 (int16x4_t __a, int16_t __b)
21814 return __a * __b;
21817 __extension__ extern __inline int16x8_t
21818 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21819 vmulq_n_s16 (int16x8_t __a, int16_t __b)
21821 return __a * __b;
21824 __extension__ extern __inline int32x2_t
21825 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21826 vmul_n_s32 (int32x2_t __a, int32_t __b)
21828 return __a * __b;
21831 __extension__ extern __inline int32x4_t
21832 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21833 vmulq_n_s32 (int32x4_t __a, int32_t __b)
21835 return __a * __b;
21838 __extension__ extern __inline uint16x4_t
21839 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21840 vmul_n_u16 (uint16x4_t __a, uint16_t __b)
21842 return __a * __b;
21845 __extension__ extern __inline uint16x8_t
21846 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21847 vmulq_n_u16 (uint16x8_t __a, uint16_t __b)
21849 return __a * __b;
21852 __extension__ extern __inline uint32x2_t
21853 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21854 vmul_n_u32 (uint32x2_t __a, uint32_t __b)
21856 return __a * __b;
21859 __extension__ extern __inline uint32x4_t
21860 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21861 vmulq_n_u32 (uint32x4_t __a, uint32_t __b)
21863 return __a * __b;
21866 /* vmvn */
21868 __extension__ extern __inline poly8x8_t
21869 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21870 vmvn_p8 (poly8x8_t __a)
21872 return (poly8x8_t) ~((int8x8_t) __a);
21875 __extension__ extern __inline int8x8_t
21876 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21877 vmvn_s8 (int8x8_t __a)
21879 return ~__a;
21882 __extension__ extern __inline int16x4_t
21883 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21884 vmvn_s16 (int16x4_t __a)
21886 return ~__a;
21889 __extension__ extern __inline int32x2_t
21890 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21891 vmvn_s32 (int32x2_t __a)
21893 return ~__a;
21896 __extension__ extern __inline uint8x8_t
21897 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21898 vmvn_u8 (uint8x8_t __a)
21900 return ~__a;
21903 __extension__ extern __inline uint16x4_t
21904 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21905 vmvn_u16 (uint16x4_t __a)
21907 return ~__a;
21910 __extension__ extern __inline uint32x2_t
21911 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21912 vmvn_u32 (uint32x2_t __a)
21914 return ~__a;
21917 __extension__ extern __inline poly8x16_t
21918 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21919 vmvnq_p8 (poly8x16_t __a)
21921 return (poly8x16_t) ~((int8x16_t) __a);
21924 __extension__ extern __inline int8x16_t
21925 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21926 vmvnq_s8 (int8x16_t __a)
21928 return ~__a;
21931 __extension__ extern __inline int16x8_t
21932 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21933 vmvnq_s16 (int16x8_t __a)
21935 return ~__a;
21938 __extension__ extern __inline int32x4_t
21939 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21940 vmvnq_s32 (int32x4_t __a)
21942 return ~__a;
21945 __extension__ extern __inline uint8x16_t
21946 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21947 vmvnq_u8 (uint8x16_t __a)
21949 return ~__a;
21952 __extension__ extern __inline uint16x8_t
21953 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21954 vmvnq_u16 (uint16x8_t __a)
21956 return ~__a;
21959 __extension__ extern __inline uint32x4_t
21960 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21961 vmvnq_u32 (uint32x4_t __a)
21963 return ~__a;
21966 /* vneg */
21968 __extension__ extern __inline float32x2_t
21969 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21970 vneg_f32 (float32x2_t __a)
21972 return -__a;
21975 __extension__ extern __inline float64x1_t
21976 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21977 vneg_f64 (float64x1_t __a)
21979 return -__a;
21982 __extension__ extern __inline int8x8_t
21983 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21984 vneg_s8 (int8x8_t __a)
21986 return -__a;
21989 __extension__ extern __inline int16x4_t
21990 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21991 vneg_s16 (int16x4_t __a)
21993 return -__a;
21996 __extension__ extern __inline int32x2_t
21997 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21998 vneg_s32 (int32x2_t __a)
22000 return -__a;
22003 __extension__ extern __inline int64x1_t
22004 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22005 vneg_s64 (int64x1_t __a)
22007 return -__a;
22010 __extension__ extern __inline float32x4_t
22011 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22012 vnegq_f32 (float32x4_t __a)
22014 return -__a;
22017 __extension__ extern __inline float64x2_t
22018 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22019 vnegq_f64 (float64x2_t __a)
22021 return -__a;
22024 __extension__ extern __inline int8x16_t
22025 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22026 vnegq_s8 (int8x16_t __a)
22028 return -__a;
22031 __extension__ extern __inline int16x8_t
22032 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22033 vnegq_s16 (int16x8_t __a)
22035 return -__a;
22038 __extension__ extern __inline int32x4_t
22039 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22040 vnegq_s32 (int32x4_t __a)
22042 return -__a;
22045 __extension__ extern __inline int64x2_t
22046 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22047 vnegq_s64 (int64x2_t __a)
22049 return -__a;
22052 /* vpadd */
22054 __extension__ extern __inline float32x2_t
22055 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22056 vpadd_f32 (float32x2_t __a, float32x2_t __b)
22058 return __builtin_aarch64_faddpv2sf (__a, __b);
22061 __extension__ extern __inline float32x4_t
22062 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22063 vpaddq_f32 (float32x4_t __a, float32x4_t __b)
22065 return __builtin_aarch64_faddpv4sf (__a, __b);
22068 __extension__ extern __inline float64x2_t
22069 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22070 vpaddq_f64 (float64x2_t __a, float64x2_t __b)
22072 return __builtin_aarch64_faddpv2df (__a, __b);
22075 __extension__ extern __inline int8x8_t
22076 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22077 vpadd_s8 (int8x8_t __a, int8x8_t __b)
22079 return __builtin_aarch64_addpv8qi (__a, __b);
22082 __extension__ extern __inline int16x4_t
22083 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22084 vpadd_s16 (int16x4_t __a, int16x4_t __b)
22086 return __builtin_aarch64_addpv4hi (__a, __b);
22089 __extension__ extern __inline int32x2_t
22090 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22091 vpadd_s32 (int32x2_t __a, int32x2_t __b)
22093 return __builtin_aarch64_addpv2si (__a, __b);
22096 __extension__ extern __inline uint8x8_t
22097 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22098 vpadd_u8 (uint8x8_t __a, uint8x8_t __b)
22100 return (uint8x8_t) __builtin_aarch64_addpv8qi ((int8x8_t) __a,
22101 (int8x8_t) __b);
22104 __extension__ extern __inline uint16x4_t
22105 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22106 vpadd_u16 (uint16x4_t __a, uint16x4_t __b)
22108 return (uint16x4_t) __builtin_aarch64_addpv4hi ((int16x4_t) __a,
22109 (int16x4_t) __b);
22112 __extension__ extern __inline uint32x2_t
22113 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22114 vpadd_u32 (uint32x2_t __a, uint32x2_t __b)
22116 return (uint32x2_t) __builtin_aarch64_addpv2si ((int32x2_t) __a,
22117 (int32x2_t) __b);
22120 __extension__ extern __inline float32_t
22121 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22122 vpadds_f32 (float32x2_t __a)
22124 return __builtin_aarch64_reduc_plus_scal_v2sf (__a);
22127 __extension__ extern __inline float64_t
22128 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22129 vpaddd_f64 (float64x2_t __a)
22131 return __builtin_aarch64_reduc_plus_scal_v2df (__a);
22134 __extension__ extern __inline int64_t
22135 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22136 vpaddd_s64 (int64x2_t __a)
22138 return __builtin_aarch64_addpdi (__a);
22141 __extension__ extern __inline uint64_t
22142 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22143 vpaddd_u64 (uint64x2_t __a)
22145 return __builtin_aarch64_addpdi ((int64x2_t) __a);
22148 /* vqabs */
22150 __extension__ extern __inline int64x2_t
22151 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22152 vqabsq_s64 (int64x2_t __a)
22154 return (int64x2_t) __builtin_aarch64_sqabsv2di (__a);
22157 __extension__ extern __inline int8_t
22158 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22159 vqabsb_s8 (int8_t __a)
22161 return (int8_t) __builtin_aarch64_sqabsqi (__a);
22164 __extension__ extern __inline int16_t
22165 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22166 vqabsh_s16 (int16_t __a)
22168 return (int16_t) __builtin_aarch64_sqabshi (__a);
22171 __extension__ extern __inline int32_t
22172 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22173 vqabss_s32 (int32_t __a)
22175 return (int32_t) __builtin_aarch64_sqabssi (__a);
22178 __extension__ extern __inline int64_t
22179 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22180 vqabsd_s64 (int64_t __a)
22182 return __builtin_aarch64_sqabsdi (__a);
22185 /* vqadd */
22187 __extension__ extern __inline int8_t
22188 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22189 vqaddb_s8 (int8_t __a, int8_t __b)
22191 return (int8_t) __builtin_aarch64_sqaddqi (__a, __b);
22194 __extension__ extern __inline int16_t
22195 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22196 vqaddh_s16 (int16_t __a, int16_t __b)
22198 return (int16_t) __builtin_aarch64_sqaddhi (__a, __b);
22201 __extension__ extern __inline int32_t
22202 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22203 vqadds_s32 (int32_t __a, int32_t __b)
22205 return (int32_t) __builtin_aarch64_sqaddsi (__a, __b);
22208 __extension__ extern __inline int64_t
22209 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22210 vqaddd_s64 (int64_t __a, int64_t __b)
22212 return __builtin_aarch64_sqadddi (__a, __b);
22215 __extension__ extern __inline uint8_t
22216 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22217 vqaddb_u8 (uint8_t __a, uint8_t __b)
22219 return (uint8_t) __builtin_aarch64_uqaddqi_uuu (__a, __b);
22222 __extension__ extern __inline uint16_t
22223 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22224 vqaddh_u16 (uint16_t __a, uint16_t __b)
22226 return (uint16_t) __builtin_aarch64_uqaddhi_uuu (__a, __b);
22229 __extension__ extern __inline uint32_t
22230 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22231 vqadds_u32 (uint32_t __a, uint32_t __b)
22233 return (uint32_t) __builtin_aarch64_uqaddsi_uuu (__a, __b);
22236 __extension__ extern __inline uint64_t
22237 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22238 vqaddd_u64 (uint64_t __a, uint64_t __b)
22240 return __builtin_aarch64_uqadddi_uuu (__a, __b);
22243 /* vqdmlal */
22245 __extension__ extern __inline int32x4_t
22246 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22247 vqdmlal_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
22249 return __builtin_aarch64_sqdmlalv4hi (__a, __b, __c);
22252 __extension__ extern __inline int32x4_t
22253 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22254 vqdmlal_high_s16 (int32x4_t __a, int16x8_t __b, int16x8_t __c)
22256 return __builtin_aarch64_sqdmlal2v8hi (__a, __b, __c);
22259 __extension__ extern __inline int32x4_t
22260 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22261 vqdmlal_high_lane_s16 (int32x4_t __a, int16x8_t __b, int16x4_t __c,
22262 int const __d)
22264 return __builtin_aarch64_sqdmlal2_lanev8hi (__a, __b, __c, __d);
22267 __extension__ extern __inline int32x4_t
22268 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22269 vqdmlal_high_laneq_s16 (int32x4_t __a, int16x8_t __b, int16x8_t __c,
22270 int const __d)
22272 return __builtin_aarch64_sqdmlal2_laneqv8hi (__a, __b, __c, __d);
22275 __extension__ extern __inline int32x4_t
22276 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22277 vqdmlal_high_n_s16 (int32x4_t __a, int16x8_t __b, int16_t __c)
22279 return __builtin_aarch64_sqdmlal2_nv8hi (__a, __b, __c);
22282 __extension__ extern __inline int32x4_t
22283 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22284 vqdmlal_lane_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c, int const __d)
22286 return __builtin_aarch64_sqdmlal_lanev4hi (__a, __b, __c, __d);
22289 __extension__ extern __inline int32x4_t
22290 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22291 vqdmlal_laneq_s16 (int32x4_t __a, int16x4_t __b, int16x8_t __c, int const __d)
22293 return __builtin_aarch64_sqdmlal_laneqv4hi (__a, __b, __c, __d);
22296 __extension__ extern __inline int32x4_t
22297 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22298 vqdmlal_n_s16 (int32x4_t __a, int16x4_t __b, int16_t __c)
22300 return __builtin_aarch64_sqdmlal_nv4hi (__a, __b, __c);
22303 __extension__ extern __inline int64x2_t
22304 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22305 vqdmlal_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
22307 return __builtin_aarch64_sqdmlalv2si (__a, __b, __c);
22310 __extension__ extern __inline int64x2_t
22311 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22312 vqdmlal_high_s32 (int64x2_t __a, int32x4_t __b, int32x4_t __c)
22314 return __builtin_aarch64_sqdmlal2v4si (__a, __b, __c);
22317 __extension__ extern __inline int64x2_t
22318 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22319 vqdmlal_high_lane_s32 (int64x2_t __a, int32x4_t __b, int32x2_t __c,
22320 int const __d)
22322 return __builtin_aarch64_sqdmlal2_lanev4si (__a, __b, __c, __d);
22325 __extension__ extern __inline int64x2_t
22326 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22327 vqdmlal_high_laneq_s32 (int64x2_t __a, int32x4_t __b, int32x4_t __c,
22328 int const __d)
22330 return __builtin_aarch64_sqdmlal2_laneqv4si (__a, __b, __c, __d);
22333 __extension__ extern __inline int64x2_t
22334 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22335 vqdmlal_high_n_s32 (int64x2_t __a, int32x4_t __b, int32_t __c)
22337 return __builtin_aarch64_sqdmlal2_nv4si (__a, __b, __c);
22340 __extension__ extern __inline int64x2_t
22341 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22342 vqdmlal_lane_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c, int const __d)
22344 return __builtin_aarch64_sqdmlal_lanev2si (__a, __b, __c, __d);
22347 __extension__ extern __inline int64x2_t
22348 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22349 vqdmlal_laneq_s32 (int64x2_t __a, int32x2_t __b, int32x4_t __c, int const __d)
22351 return __builtin_aarch64_sqdmlal_laneqv2si (__a, __b, __c, __d);
22354 __extension__ extern __inline int64x2_t
22355 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22356 vqdmlal_n_s32 (int64x2_t __a, int32x2_t __b, int32_t __c)
22358 return __builtin_aarch64_sqdmlal_nv2si (__a, __b, __c);
22361 __extension__ extern __inline int32_t
22362 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22363 vqdmlalh_s16 (int32_t __a, int16_t __b, int16_t __c)
22365 return __builtin_aarch64_sqdmlalhi (__a, __b, __c);
22368 __extension__ extern __inline int32_t
22369 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22370 vqdmlalh_lane_s16 (int32_t __a, int16_t __b, int16x4_t __c, const int __d)
22372 return __builtin_aarch64_sqdmlal_lanehi (__a, __b, __c, __d);
22375 __extension__ extern __inline int32_t
22376 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22377 vqdmlalh_laneq_s16 (int32_t __a, int16_t __b, int16x8_t __c, const int __d)
22379 return __builtin_aarch64_sqdmlal_laneqhi (__a, __b, __c, __d);
22382 __extension__ extern __inline int64_t
22383 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22384 vqdmlals_s32 (int64_t __a, int32_t __b, int32_t __c)
22386 return __builtin_aarch64_sqdmlalsi (__a, __b, __c);
22389 __extension__ extern __inline int64_t
22390 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22391 vqdmlals_lane_s32 (int64_t __a, int32_t __b, int32x2_t __c, const int __d)
22393 return __builtin_aarch64_sqdmlal_lanesi (__a, __b, __c, __d);
22396 __extension__ extern __inline int64_t
22397 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22398 vqdmlals_laneq_s32 (int64_t __a, int32_t __b, int32x4_t __c, const int __d)
22400 return __builtin_aarch64_sqdmlal_laneqsi (__a, __b, __c, __d);
22403 /* vqdmlsl */
22405 __extension__ extern __inline int32x4_t
22406 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22407 vqdmlsl_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
22409 return __builtin_aarch64_sqdmlslv4hi (__a, __b, __c);
22412 __extension__ extern __inline int32x4_t
22413 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22414 vqdmlsl_high_s16 (int32x4_t __a, int16x8_t __b, int16x8_t __c)
22416 return __builtin_aarch64_sqdmlsl2v8hi (__a, __b, __c);
22419 __extension__ extern __inline int32x4_t
22420 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22421 vqdmlsl_high_lane_s16 (int32x4_t __a, int16x8_t __b, int16x4_t __c,
22422 int const __d)
22424 return __builtin_aarch64_sqdmlsl2_lanev8hi (__a, __b, __c, __d);
22427 __extension__ extern __inline int32x4_t
22428 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22429 vqdmlsl_high_laneq_s16 (int32x4_t __a, int16x8_t __b, int16x8_t __c,
22430 int const __d)
22432 return __builtin_aarch64_sqdmlsl2_laneqv8hi (__a, __b, __c, __d);
22435 __extension__ extern __inline int32x4_t
22436 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22437 vqdmlsl_high_n_s16 (int32x4_t __a, int16x8_t __b, int16_t __c)
22439 return __builtin_aarch64_sqdmlsl2_nv8hi (__a, __b, __c);
22442 __extension__ extern __inline int32x4_t
22443 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22444 vqdmlsl_lane_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c, int const __d)
22446 return __builtin_aarch64_sqdmlsl_lanev4hi (__a, __b, __c, __d);
22449 __extension__ extern __inline int32x4_t
22450 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22451 vqdmlsl_laneq_s16 (int32x4_t __a, int16x4_t __b, int16x8_t __c, int const __d)
22453 return __builtin_aarch64_sqdmlsl_laneqv4hi (__a, __b, __c, __d);
22456 __extension__ extern __inline int32x4_t
22457 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22458 vqdmlsl_n_s16 (int32x4_t __a, int16x4_t __b, int16_t __c)
22460 return __builtin_aarch64_sqdmlsl_nv4hi (__a, __b, __c);
22463 __extension__ extern __inline int64x2_t
22464 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22465 vqdmlsl_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
22467 return __builtin_aarch64_sqdmlslv2si (__a, __b, __c);
22470 __extension__ extern __inline int64x2_t
22471 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22472 vqdmlsl_high_s32 (int64x2_t __a, int32x4_t __b, int32x4_t __c)
22474 return __builtin_aarch64_sqdmlsl2v4si (__a, __b, __c);
22477 __extension__ extern __inline int64x2_t
22478 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22479 vqdmlsl_high_lane_s32 (int64x2_t __a, int32x4_t __b, int32x2_t __c,
22480 int const __d)
22482 return __builtin_aarch64_sqdmlsl2_lanev4si (__a, __b, __c, __d);
22485 __extension__ extern __inline int64x2_t
22486 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22487 vqdmlsl_high_laneq_s32 (int64x2_t __a, int32x4_t __b, int32x4_t __c,
22488 int const __d)
22490 return __builtin_aarch64_sqdmlsl2_laneqv4si (__a, __b, __c, __d);
22493 __extension__ extern __inline int64x2_t
22494 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22495 vqdmlsl_high_n_s32 (int64x2_t __a, int32x4_t __b, int32_t __c)
22497 return __builtin_aarch64_sqdmlsl2_nv4si (__a, __b, __c);
22500 __extension__ extern __inline int64x2_t
22501 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22502 vqdmlsl_lane_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c, int const __d)
22504 return __builtin_aarch64_sqdmlsl_lanev2si (__a, __b, __c, __d);
22507 __extension__ extern __inline int64x2_t
22508 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22509 vqdmlsl_laneq_s32 (int64x2_t __a, int32x2_t __b, int32x4_t __c, int const __d)
22511 return __builtin_aarch64_sqdmlsl_laneqv2si (__a, __b, __c, __d);
22514 __extension__ extern __inline int64x2_t
22515 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22516 vqdmlsl_n_s32 (int64x2_t __a, int32x2_t __b, int32_t __c)
22518 return __builtin_aarch64_sqdmlsl_nv2si (__a, __b, __c);
22521 __extension__ extern __inline int32_t
22522 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22523 vqdmlslh_s16 (int32_t __a, int16_t __b, int16_t __c)
22525 return __builtin_aarch64_sqdmlslhi (__a, __b, __c);
22528 __extension__ extern __inline int32_t
22529 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22530 vqdmlslh_lane_s16 (int32_t __a, int16_t __b, int16x4_t __c, const int __d)
22532 return __builtin_aarch64_sqdmlsl_lanehi (__a, __b, __c, __d);
22535 __extension__ extern __inline int32_t
22536 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22537 vqdmlslh_laneq_s16 (int32_t __a, int16_t __b, int16x8_t __c, const int __d)
22539 return __builtin_aarch64_sqdmlsl_laneqhi (__a, __b, __c, __d);
22542 __extension__ extern __inline int64_t
22543 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22544 vqdmlsls_s32 (int64_t __a, int32_t __b, int32_t __c)
22546 return __builtin_aarch64_sqdmlslsi (__a, __b, __c);
22549 __extension__ extern __inline int64_t
22550 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22551 vqdmlsls_lane_s32 (int64_t __a, int32_t __b, int32x2_t __c, const int __d)
22553 return __builtin_aarch64_sqdmlsl_lanesi (__a, __b, __c, __d);
22556 __extension__ extern __inline int64_t
22557 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22558 vqdmlsls_laneq_s32 (int64_t __a, int32_t __b, int32x4_t __c, const int __d)
22560 return __builtin_aarch64_sqdmlsl_laneqsi (__a, __b, __c, __d);
22563 /* vqdmulh */
22565 __extension__ extern __inline int16x4_t
22566 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22567 vqdmulh_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c)
22569 return __builtin_aarch64_sqdmulh_lanev4hi (__a, __b, __c);
22572 __extension__ extern __inline int32x2_t
22573 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22574 vqdmulh_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c)
22576 return __builtin_aarch64_sqdmulh_lanev2si (__a, __b, __c);
22579 __extension__ extern __inline int16x8_t
22580 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22581 vqdmulhq_lane_s16 (int16x8_t __a, int16x4_t __b, const int __c)
22583 return __builtin_aarch64_sqdmulh_lanev8hi (__a, __b, __c);
22586 __extension__ extern __inline int32x4_t
22587 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22588 vqdmulhq_lane_s32 (int32x4_t __a, int32x2_t __b, const int __c)
22590 return __builtin_aarch64_sqdmulh_lanev4si (__a, __b, __c);
22593 __extension__ extern __inline int16_t
22594 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22595 vqdmulhh_s16 (int16_t __a, int16_t __b)
22597 return (int16_t) __builtin_aarch64_sqdmulhhi (__a, __b);
22600 __extension__ extern __inline int16_t
22601 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22602 vqdmulhh_lane_s16 (int16_t __a, int16x4_t __b, const int __c)
22604 return __builtin_aarch64_sqdmulh_lanehi (__a, __b, __c);
22607 __extension__ extern __inline int16_t
22608 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22609 vqdmulhh_laneq_s16 (int16_t __a, int16x8_t __b, const int __c)
22611 return __builtin_aarch64_sqdmulh_laneqhi (__a, __b, __c);
22614 __extension__ extern __inline int32_t
22615 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22616 vqdmulhs_s32 (int32_t __a, int32_t __b)
22618 return (int32_t) __builtin_aarch64_sqdmulhsi (__a, __b);
22621 __extension__ extern __inline int32_t
22622 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22623 vqdmulhs_lane_s32 (int32_t __a, int32x2_t __b, const int __c)
22625 return __builtin_aarch64_sqdmulh_lanesi (__a, __b, __c);
22628 __extension__ extern __inline int32_t
22629 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22630 vqdmulhs_laneq_s32 (int32_t __a, int32x4_t __b, const int __c)
22632 return __builtin_aarch64_sqdmulh_laneqsi (__a, __b, __c);
22635 /* vqdmull */
22637 __extension__ extern __inline int32x4_t
22638 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22639 vqdmull_s16 (int16x4_t __a, int16x4_t __b)
22641 return __builtin_aarch64_sqdmullv4hi (__a, __b);
22644 __extension__ extern __inline int32x4_t
22645 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22646 vqdmull_high_s16 (int16x8_t __a, int16x8_t __b)
22648 return __builtin_aarch64_sqdmull2v8hi (__a, __b);
22651 __extension__ extern __inline int32x4_t
22652 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22653 vqdmull_high_lane_s16 (int16x8_t __a, int16x4_t __b, int const __c)
22655 return __builtin_aarch64_sqdmull2_lanev8hi (__a, __b,__c);
22658 __extension__ extern __inline int32x4_t
22659 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22660 vqdmull_high_laneq_s16 (int16x8_t __a, int16x8_t __b, int const __c)
22662 return __builtin_aarch64_sqdmull2_laneqv8hi (__a, __b,__c);
22665 __extension__ extern __inline int32x4_t
22666 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22667 vqdmull_high_n_s16 (int16x8_t __a, int16_t __b)
22669 return __builtin_aarch64_sqdmull2_nv8hi (__a, __b);
22672 __extension__ extern __inline int32x4_t
22673 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22674 vqdmull_lane_s16 (int16x4_t __a, int16x4_t __b, int const __c)
22676 return __builtin_aarch64_sqdmull_lanev4hi (__a, __b, __c);
22679 __extension__ extern __inline int32x4_t
22680 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22681 vqdmull_laneq_s16 (int16x4_t __a, int16x8_t __b, int const __c)
22683 return __builtin_aarch64_sqdmull_laneqv4hi (__a, __b, __c);
22686 __extension__ extern __inline int32x4_t
22687 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22688 vqdmull_n_s16 (int16x4_t __a, int16_t __b)
22690 return __builtin_aarch64_sqdmull_nv4hi (__a, __b);
22693 __extension__ extern __inline int64x2_t
22694 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22695 vqdmull_s32 (int32x2_t __a, int32x2_t __b)
22697 return __builtin_aarch64_sqdmullv2si (__a, __b);
22700 __extension__ extern __inline int64x2_t
22701 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22702 vqdmull_high_s32 (int32x4_t __a, int32x4_t __b)
22704 return __builtin_aarch64_sqdmull2v4si (__a, __b);
22707 __extension__ extern __inline int64x2_t
22708 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22709 vqdmull_high_lane_s32 (int32x4_t __a, int32x2_t __b, int const __c)
22711 return __builtin_aarch64_sqdmull2_lanev4si (__a, __b, __c);
22714 __extension__ extern __inline int64x2_t
22715 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22716 vqdmull_high_laneq_s32 (int32x4_t __a, int32x4_t __b, int const __c)
22718 return __builtin_aarch64_sqdmull2_laneqv4si (__a, __b, __c);
22721 __extension__ extern __inline int64x2_t
22722 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22723 vqdmull_high_n_s32 (int32x4_t __a, int32_t __b)
22725 return __builtin_aarch64_sqdmull2_nv4si (__a, __b);
22728 __extension__ extern __inline int64x2_t
22729 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22730 vqdmull_lane_s32 (int32x2_t __a, int32x2_t __b, int const __c)
22732 return __builtin_aarch64_sqdmull_lanev2si (__a, __b, __c);
22735 __extension__ extern __inline int64x2_t
22736 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22737 vqdmull_laneq_s32 (int32x2_t __a, int32x4_t __b, int const __c)
22739 return __builtin_aarch64_sqdmull_laneqv2si (__a, __b, __c);
22742 __extension__ extern __inline int64x2_t
22743 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22744 vqdmull_n_s32 (int32x2_t __a, int32_t __b)
22746 return __builtin_aarch64_sqdmull_nv2si (__a, __b);
22749 __extension__ extern __inline int32_t
22750 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22751 vqdmullh_s16 (int16_t __a, int16_t __b)
22753 return (int32_t) __builtin_aarch64_sqdmullhi (__a, __b);
22756 __extension__ extern __inline int32_t
22757 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22758 vqdmullh_lane_s16 (int16_t __a, int16x4_t __b, const int __c)
22760 return __builtin_aarch64_sqdmull_lanehi (__a, __b, __c);
22763 __extension__ extern __inline int32_t
22764 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22765 vqdmullh_laneq_s16 (int16_t __a, int16x8_t __b, const int __c)
22767 return __builtin_aarch64_sqdmull_laneqhi (__a, __b, __c);
22770 __extension__ extern __inline int64_t
22771 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22772 vqdmulls_s32 (int32_t __a, int32_t __b)
22774 return __builtin_aarch64_sqdmullsi (__a, __b);
22777 __extension__ extern __inline int64_t
22778 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22779 vqdmulls_lane_s32 (int32_t __a, int32x2_t __b, const int __c)
22781 return __builtin_aarch64_sqdmull_lanesi (__a, __b, __c);
22784 __extension__ extern __inline int64_t
22785 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22786 vqdmulls_laneq_s32 (int32_t __a, int32x4_t __b, const int __c)
22788 return __builtin_aarch64_sqdmull_laneqsi (__a, __b, __c);
22791 /* vqmovn */
22793 __extension__ extern __inline int8x8_t
22794 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22795 vqmovn_s16 (int16x8_t __a)
22797 return (int8x8_t) __builtin_aarch64_sqmovnv8hi (__a);
22800 __extension__ extern __inline int16x4_t
22801 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22802 vqmovn_s32 (int32x4_t __a)
22804 return (int16x4_t) __builtin_aarch64_sqmovnv4si (__a);
22807 __extension__ extern __inline int32x2_t
22808 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22809 vqmovn_s64 (int64x2_t __a)
22811 return (int32x2_t) __builtin_aarch64_sqmovnv2di (__a);
22814 __extension__ extern __inline uint8x8_t
22815 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22816 vqmovn_u16 (uint16x8_t __a)
22818 return (uint8x8_t) __builtin_aarch64_uqmovnv8hi ((int16x8_t) __a);
22821 __extension__ extern __inline uint16x4_t
22822 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22823 vqmovn_u32 (uint32x4_t __a)
22825 return (uint16x4_t) __builtin_aarch64_uqmovnv4si ((int32x4_t) __a);
22828 __extension__ extern __inline uint32x2_t
22829 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22830 vqmovn_u64 (uint64x2_t __a)
22832 return (uint32x2_t) __builtin_aarch64_uqmovnv2di ((int64x2_t) __a);
22835 __extension__ extern __inline int8_t
22836 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22837 vqmovnh_s16 (int16_t __a)
22839 return (int8_t) __builtin_aarch64_sqmovnhi (__a);
22842 __extension__ extern __inline int16_t
22843 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22844 vqmovns_s32 (int32_t __a)
22846 return (int16_t) __builtin_aarch64_sqmovnsi (__a);
22849 __extension__ extern __inline int32_t
22850 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22851 vqmovnd_s64 (int64_t __a)
22853 return (int32_t) __builtin_aarch64_sqmovndi (__a);
22856 __extension__ extern __inline uint8_t
22857 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22858 vqmovnh_u16 (uint16_t __a)
22860 return (uint8_t) __builtin_aarch64_uqmovnhi (__a);
22863 __extension__ extern __inline uint16_t
22864 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22865 vqmovns_u32 (uint32_t __a)
22867 return (uint16_t) __builtin_aarch64_uqmovnsi (__a);
22870 __extension__ extern __inline uint32_t
22871 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22872 vqmovnd_u64 (uint64_t __a)
22874 return (uint32_t) __builtin_aarch64_uqmovndi (__a);
22877 /* vqmovun */
22879 __extension__ extern __inline uint8x8_t
22880 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22881 vqmovun_s16 (int16x8_t __a)
22883 return (uint8x8_t) __builtin_aarch64_sqmovunv8hi (__a);
22886 __extension__ extern __inline uint16x4_t
22887 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22888 vqmovun_s32 (int32x4_t __a)
22890 return (uint16x4_t) __builtin_aarch64_sqmovunv4si (__a);
22893 __extension__ extern __inline uint32x2_t
22894 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22895 vqmovun_s64 (int64x2_t __a)
22897 return (uint32x2_t) __builtin_aarch64_sqmovunv2di (__a);
22900 __extension__ extern __inline int8_t
22901 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22902 vqmovunh_s16 (int16_t __a)
22904 return (int8_t) __builtin_aarch64_sqmovunhi (__a);
22907 __extension__ extern __inline int16_t
22908 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22909 vqmovuns_s32 (int32_t __a)
22911 return (int16_t) __builtin_aarch64_sqmovunsi (__a);
22914 __extension__ extern __inline int32_t
22915 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22916 vqmovund_s64 (int64_t __a)
22918 return (int32_t) __builtin_aarch64_sqmovundi (__a);
22921 /* vqneg */
22923 __extension__ extern __inline int64x2_t
22924 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22925 vqnegq_s64 (int64x2_t __a)
22927 return (int64x2_t) __builtin_aarch64_sqnegv2di (__a);
22930 __extension__ extern __inline int8_t
22931 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22932 vqnegb_s8 (int8_t __a)
22934 return (int8_t) __builtin_aarch64_sqnegqi (__a);
22937 __extension__ extern __inline int16_t
22938 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22939 vqnegh_s16 (int16_t __a)
22941 return (int16_t) __builtin_aarch64_sqneghi (__a);
22944 __extension__ extern __inline int32_t
22945 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22946 vqnegs_s32 (int32_t __a)
22948 return (int32_t) __builtin_aarch64_sqnegsi (__a);
22951 __extension__ extern __inline int64_t
22952 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22953 vqnegd_s64 (int64_t __a)
22955 return __builtin_aarch64_sqnegdi (__a);
22958 /* vqrdmulh */
22960 __extension__ extern __inline int16x4_t
22961 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22962 vqrdmulh_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c)
22964 return __builtin_aarch64_sqrdmulh_lanev4hi (__a, __b, __c);
22967 __extension__ extern __inline int32x2_t
22968 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22969 vqrdmulh_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c)
22971 return __builtin_aarch64_sqrdmulh_lanev2si (__a, __b, __c);
22974 __extension__ extern __inline int16x8_t
22975 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22976 vqrdmulhq_lane_s16 (int16x8_t __a, int16x4_t __b, const int __c)
22978 return __builtin_aarch64_sqrdmulh_lanev8hi (__a, __b, __c);
22981 __extension__ extern __inline int32x4_t
22982 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22983 vqrdmulhq_lane_s32 (int32x4_t __a, int32x2_t __b, const int __c)
22985 return __builtin_aarch64_sqrdmulh_lanev4si (__a, __b, __c);
22988 __extension__ extern __inline int16_t
22989 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22990 vqrdmulhh_s16 (int16_t __a, int16_t __b)
22992 return (int16_t) __builtin_aarch64_sqrdmulhhi (__a, __b);
22995 __extension__ extern __inline int16_t
22996 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22997 vqrdmulhh_lane_s16 (int16_t __a, int16x4_t __b, const int __c)
22999 return __builtin_aarch64_sqrdmulh_lanehi (__a, __b, __c);
23002 __extension__ extern __inline int16_t
23003 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23004 vqrdmulhh_laneq_s16 (int16_t __a, int16x8_t __b, const int __c)
23006 return __builtin_aarch64_sqrdmulh_laneqhi (__a, __b, __c);
23009 __extension__ extern __inline int32_t
23010 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23011 vqrdmulhs_s32 (int32_t __a, int32_t __b)
23013 return (int32_t) __builtin_aarch64_sqrdmulhsi (__a, __b);
23016 __extension__ extern __inline int32_t
23017 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23018 vqrdmulhs_lane_s32 (int32_t __a, int32x2_t __b, const int __c)
23020 return __builtin_aarch64_sqrdmulh_lanesi (__a, __b, __c);
23023 __extension__ extern __inline int32_t
23024 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23025 vqrdmulhs_laneq_s32 (int32_t __a, int32x4_t __b, const int __c)
23027 return __builtin_aarch64_sqrdmulh_laneqsi (__a, __b, __c);
23030 /* vqrshl */
23032 __extension__ extern __inline int8x8_t
23033 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23034 vqrshl_s8 (int8x8_t __a, int8x8_t __b)
23036 return __builtin_aarch64_sqrshlv8qi (__a, __b);
23039 __extension__ extern __inline int16x4_t
23040 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23041 vqrshl_s16 (int16x4_t __a, int16x4_t __b)
23043 return __builtin_aarch64_sqrshlv4hi (__a, __b);
23046 __extension__ extern __inline int32x2_t
23047 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23048 vqrshl_s32 (int32x2_t __a, int32x2_t __b)
23050 return __builtin_aarch64_sqrshlv2si (__a, __b);
23053 __extension__ extern __inline int64x1_t
23054 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23055 vqrshl_s64 (int64x1_t __a, int64x1_t __b)
23057 return (int64x1_t) {__builtin_aarch64_sqrshldi (__a[0], __b[0])};
23060 __extension__ extern __inline uint8x8_t
23061 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23062 vqrshl_u8 (uint8x8_t __a, int8x8_t __b)
23064 return __builtin_aarch64_uqrshlv8qi_uus ( __a, __b);
23067 __extension__ extern __inline uint16x4_t
23068 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23069 vqrshl_u16 (uint16x4_t __a, int16x4_t __b)
23071 return __builtin_aarch64_uqrshlv4hi_uus ( __a, __b);
23074 __extension__ extern __inline uint32x2_t
23075 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23076 vqrshl_u32 (uint32x2_t __a, int32x2_t __b)
23078 return __builtin_aarch64_uqrshlv2si_uus ( __a, __b);
23081 __extension__ extern __inline uint64x1_t
23082 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23083 vqrshl_u64 (uint64x1_t __a, int64x1_t __b)
23085 return (uint64x1_t) {__builtin_aarch64_uqrshldi_uus (__a[0], __b[0])};
23088 __extension__ extern __inline int8x16_t
23089 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23090 vqrshlq_s8 (int8x16_t __a, int8x16_t __b)
23092 return __builtin_aarch64_sqrshlv16qi (__a, __b);
23095 __extension__ extern __inline int16x8_t
23096 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23097 vqrshlq_s16 (int16x8_t __a, int16x8_t __b)
23099 return __builtin_aarch64_sqrshlv8hi (__a, __b);
23102 __extension__ extern __inline int32x4_t
23103 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23104 vqrshlq_s32 (int32x4_t __a, int32x4_t __b)
23106 return __builtin_aarch64_sqrshlv4si (__a, __b);
23109 __extension__ extern __inline int64x2_t
23110 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23111 vqrshlq_s64 (int64x2_t __a, int64x2_t __b)
23113 return __builtin_aarch64_sqrshlv2di (__a, __b);
23116 __extension__ extern __inline uint8x16_t
23117 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23118 vqrshlq_u8 (uint8x16_t __a, int8x16_t __b)
23120 return __builtin_aarch64_uqrshlv16qi_uus ( __a, __b);
23123 __extension__ extern __inline uint16x8_t
23124 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23125 vqrshlq_u16 (uint16x8_t __a, int16x8_t __b)
23127 return __builtin_aarch64_uqrshlv8hi_uus ( __a, __b);
23130 __extension__ extern __inline uint32x4_t
23131 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23132 vqrshlq_u32 (uint32x4_t __a, int32x4_t __b)
23134 return __builtin_aarch64_uqrshlv4si_uus ( __a, __b);
23137 __extension__ extern __inline uint64x2_t
23138 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23139 vqrshlq_u64 (uint64x2_t __a, int64x2_t __b)
23141 return __builtin_aarch64_uqrshlv2di_uus ( __a, __b);
23144 __extension__ extern __inline int8_t
23145 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23146 vqrshlb_s8 (int8_t __a, int8_t __b)
23148 return __builtin_aarch64_sqrshlqi (__a, __b);
23151 __extension__ extern __inline int16_t
23152 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23153 vqrshlh_s16 (int16_t __a, int16_t __b)
23155 return __builtin_aarch64_sqrshlhi (__a, __b);
23158 __extension__ extern __inline int32_t
23159 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23160 vqrshls_s32 (int32_t __a, int32_t __b)
23162 return __builtin_aarch64_sqrshlsi (__a, __b);
23165 __extension__ extern __inline int64_t
23166 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23167 vqrshld_s64 (int64_t __a, int64_t __b)
23169 return __builtin_aarch64_sqrshldi (__a, __b);
23172 __extension__ extern __inline uint8_t
23173 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23174 vqrshlb_u8 (uint8_t __a, uint8_t __b)
23176 return __builtin_aarch64_uqrshlqi_uus (__a, __b);
23179 __extension__ extern __inline uint16_t
23180 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23181 vqrshlh_u16 (uint16_t __a, uint16_t __b)
23183 return __builtin_aarch64_uqrshlhi_uus (__a, __b);
23186 __extension__ extern __inline uint32_t
23187 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23188 vqrshls_u32 (uint32_t __a, uint32_t __b)
23190 return __builtin_aarch64_uqrshlsi_uus (__a, __b);
23193 __extension__ extern __inline uint64_t
23194 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23195 vqrshld_u64 (uint64_t __a, uint64_t __b)
23197 return __builtin_aarch64_uqrshldi_uus (__a, __b);
23200 /* vqrshrn */
23202 __extension__ extern __inline int8x8_t
23203 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23204 vqrshrn_n_s16 (int16x8_t __a, const int __b)
23206 return (int8x8_t) __builtin_aarch64_sqrshrn_nv8hi (__a, __b);
23209 __extension__ extern __inline int16x4_t
23210 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23211 vqrshrn_n_s32 (int32x4_t __a, const int __b)
23213 return (int16x4_t) __builtin_aarch64_sqrshrn_nv4si (__a, __b);
23216 __extension__ extern __inline int32x2_t
23217 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23218 vqrshrn_n_s64 (int64x2_t __a, const int __b)
23220 return (int32x2_t) __builtin_aarch64_sqrshrn_nv2di (__a, __b);
23223 __extension__ extern __inline uint8x8_t
23224 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23225 vqrshrn_n_u16 (uint16x8_t __a, const int __b)
23227 return __builtin_aarch64_uqrshrn_nv8hi_uus ( __a, __b);
23230 __extension__ extern __inline uint16x4_t
23231 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23232 vqrshrn_n_u32 (uint32x4_t __a, const int __b)
23234 return __builtin_aarch64_uqrshrn_nv4si_uus ( __a, __b);
23237 __extension__ extern __inline uint32x2_t
23238 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23239 vqrshrn_n_u64 (uint64x2_t __a, const int __b)
23241 return __builtin_aarch64_uqrshrn_nv2di_uus ( __a, __b);
23244 __extension__ extern __inline int8_t
23245 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23246 vqrshrnh_n_s16 (int16_t __a, const int __b)
23248 return (int8_t) __builtin_aarch64_sqrshrn_nhi (__a, __b);
23251 __extension__ extern __inline int16_t
23252 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23253 vqrshrns_n_s32 (int32_t __a, const int __b)
23255 return (int16_t) __builtin_aarch64_sqrshrn_nsi (__a, __b);
23258 __extension__ extern __inline int32_t
23259 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23260 vqrshrnd_n_s64 (int64_t __a, const int __b)
23262 return (int32_t) __builtin_aarch64_sqrshrn_ndi (__a, __b);
23265 __extension__ extern __inline uint8_t
23266 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23267 vqrshrnh_n_u16 (uint16_t __a, const int __b)
23269 return __builtin_aarch64_uqrshrn_nhi_uus (__a, __b);
23272 __extension__ extern __inline uint16_t
23273 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23274 vqrshrns_n_u32 (uint32_t __a, const int __b)
23276 return __builtin_aarch64_uqrshrn_nsi_uus (__a, __b);
23279 __extension__ extern __inline uint32_t
23280 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23281 vqrshrnd_n_u64 (uint64_t __a, const int __b)
23283 return __builtin_aarch64_uqrshrn_ndi_uus (__a, __b);
23286 /* vqrshrun */
23288 __extension__ extern __inline uint8x8_t
23289 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23290 vqrshrun_n_s16 (int16x8_t __a, const int __b)
23292 return (uint8x8_t) __builtin_aarch64_sqrshrun_nv8hi (__a, __b);
23295 __extension__ extern __inline uint16x4_t
23296 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23297 vqrshrun_n_s32 (int32x4_t __a, const int __b)
23299 return (uint16x4_t) __builtin_aarch64_sqrshrun_nv4si (__a, __b);
23302 __extension__ extern __inline uint32x2_t
23303 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23304 vqrshrun_n_s64 (int64x2_t __a, const int __b)
23306 return (uint32x2_t) __builtin_aarch64_sqrshrun_nv2di (__a, __b);
23309 __extension__ extern __inline int8_t
23310 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23311 vqrshrunh_n_s16 (int16_t __a, const int __b)
23313 return (int8_t) __builtin_aarch64_sqrshrun_nhi (__a, __b);
23316 __extension__ extern __inline int16_t
23317 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23318 vqrshruns_n_s32 (int32_t __a, const int __b)
23320 return (int16_t) __builtin_aarch64_sqrshrun_nsi (__a, __b);
23323 __extension__ extern __inline int32_t
23324 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23325 vqrshrund_n_s64 (int64_t __a, const int __b)
23327 return (int32_t) __builtin_aarch64_sqrshrun_ndi (__a, __b);
23330 /* vqshl */
23332 __extension__ extern __inline int8x8_t
23333 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23334 vqshl_s8 (int8x8_t __a, int8x8_t __b)
23336 return __builtin_aarch64_sqshlv8qi (__a, __b);
23339 __extension__ extern __inline int16x4_t
23340 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23341 vqshl_s16 (int16x4_t __a, int16x4_t __b)
23343 return __builtin_aarch64_sqshlv4hi (__a, __b);
23346 __extension__ extern __inline int32x2_t
23347 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23348 vqshl_s32 (int32x2_t __a, int32x2_t __b)
23350 return __builtin_aarch64_sqshlv2si (__a, __b);
23353 __extension__ extern __inline int64x1_t
23354 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23355 vqshl_s64 (int64x1_t __a, int64x1_t __b)
23357 return (int64x1_t) {__builtin_aarch64_sqshldi (__a[0], __b[0])};
23360 __extension__ extern __inline uint8x8_t
23361 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23362 vqshl_u8 (uint8x8_t __a, int8x8_t __b)
23364 return __builtin_aarch64_uqshlv8qi_uus ( __a, __b);
23367 __extension__ extern __inline uint16x4_t
23368 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23369 vqshl_u16 (uint16x4_t __a, int16x4_t __b)
23371 return __builtin_aarch64_uqshlv4hi_uus ( __a, __b);
23374 __extension__ extern __inline uint32x2_t
23375 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23376 vqshl_u32 (uint32x2_t __a, int32x2_t __b)
23378 return __builtin_aarch64_uqshlv2si_uus ( __a, __b);
23381 __extension__ extern __inline uint64x1_t
23382 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23383 vqshl_u64 (uint64x1_t __a, int64x1_t __b)
23385 return (uint64x1_t) {__builtin_aarch64_uqshldi_uus (__a[0], __b[0])};
23388 __extension__ extern __inline int8x16_t
23389 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23390 vqshlq_s8 (int8x16_t __a, int8x16_t __b)
23392 return __builtin_aarch64_sqshlv16qi (__a, __b);
23395 __extension__ extern __inline int16x8_t
23396 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23397 vqshlq_s16 (int16x8_t __a, int16x8_t __b)
23399 return __builtin_aarch64_sqshlv8hi (__a, __b);
23402 __extension__ extern __inline int32x4_t
23403 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23404 vqshlq_s32 (int32x4_t __a, int32x4_t __b)
23406 return __builtin_aarch64_sqshlv4si (__a, __b);
23409 __extension__ extern __inline int64x2_t
23410 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23411 vqshlq_s64 (int64x2_t __a, int64x2_t __b)
23413 return __builtin_aarch64_sqshlv2di (__a, __b);
23416 __extension__ extern __inline uint8x16_t
23417 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23418 vqshlq_u8 (uint8x16_t __a, int8x16_t __b)
23420 return __builtin_aarch64_uqshlv16qi_uus ( __a, __b);
23423 __extension__ extern __inline uint16x8_t
23424 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23425 vqshlq_u16 (uint16x8_t __a, int16x8_t __b)
23427 return __builtin_aarch64_uqshlv8hi_uus ( __a, __b);
23430 __extension__ extern __inline uint32x4_t
23431 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23432 vqshlq_u32 (uint32x4_t __a, int32x4_t __b)
23434 return __builtin_aarch64_uqshlv4si_uus ( __a, __b);
23437 __extension__ extern __inline uint64x2_t
23438 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23439 vqshlq_u64 (uint64x2_t __a, int64x2_t __b)
23441 return __builtin_aarch64_uqshlv2di_uus ( __a, __b);
23444 __extension__ extern __inline int8_t
23445 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23446 vqshlb_s8 (int8_t __a, int8_t __b)
23448 return __builtin_aarch64_sqshlqi (__a, __b);
23451 __extension__ extern __inline int16_t
23452 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23453 vqshlh_s16 (int16_t __a, int16_t __b)
23455 return __builtin_aarch64_sqshlhi (__a, __b);
23458 __extension__ extern __inline int32_t
23459 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23460 vqshls_s32 (int32_t __a, int32_t __b)
23462 return __builtin_aarch64_sqshlsi (__a, __b);
23465 __extension__ extern __inline int64_t
23466 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23467 vqshld_s64 (int64_t __a, int64_t __b)
23469 return __builtin_aarch64_sqshldi (__a, __b);
23472 __extension__ extern __inline uint8_t
23473 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23474 vqshlb_u8 (uint8_t __a, uint8_t __b)
23476 return __builtin_aarch64_uqshlqi_uus (__a, __b);
23479 __extension__ extern __inline uint16_t
23480 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23481 vqshlh_u16 (uint16_t __a, uint16_t __b)
23483 return __builtin_aarch64_uqshlhi_uus (__a, __b);
23486 __extension__ extern __inline uint32_t
23487 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23488 vqshls_u32 (uint32_t __a, uint32_t __b)
23490 return __builtin_aarch64_uqshlsi_uus (__a, __b);
23493 __extension__ extern __inline uint64_t
23494 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23495 vqshld_u64 (uint64_t __a, uint64_t __b)
23497 return __builtin_aarch64_uqshldi_uus (__a, __b);
23500 __extension__ extern __inline int8x8_t
23501 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23502 vqshl_n_s8 (int8x8_t __a, const int __b)
23504 return (int8x8_t) __builtin_aarch64_sqshl_nv8qi (__a, __b);
23507 __extension__ extern __inline int16x4_t
23508 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23509 vqshl_n_s16 (int16x4_t __a, const int __b)
23511 return (int16x4_t) __builtin_aarch64_sqshl_nv4hi (__a, __b);
23514 __extension__ extern __inline int32x2_t
23515 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23516 vqshl_n_s32 (int32x2_t __a, const int __b)
23518 return (int32x2_t) __builtin_aarch64_sqshl_nv2si (__a, __b);
23521 __extension__ extern __inline int64x1_t
23522 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23523 vqshl_n_s64 (int64x1_t __a, const int __b)
23525 return (int64x1_t) {__builtin_aarch64_sqshl_ndi (__a[0], __b)};
23528 __extension__ extern __inline uint8x8_t
23529 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23530 vqshl_n_u8 (uint8x8_t __a, const int __b)
23532 return __builtin_aarch64_uqshl_nv8qi_uus (__a, __b);
23535 __extension__ extern __inline uint16x4_t
23536 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23537 vqshl_n_u16 (uint16x4_t __a, const int __b)
23539 return __builtin_aarch64_uqshl_nv4hi_uus (__a, __b);
23542 __extension__ extern __inline uint32x2_t
23543 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23544 vqshl_n_u32 (uint32x2_t __a, const int __b)
23546 return __builtin_aarch64_uqshl_nv2si_uus (__a, __b);
23549 __extension__ extern __inline uint64x1_t
23550 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23551 vqshl_n_u64 (uint64x1_t __a, const int __b)
23553 return (uint64x1_t) {__builtin_aarch64_uqshl_ndi_uus (__a[0], __b)};
23556 __extension__ extern __inline int8x16_t
23557 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23558 vqshlq_n_s8 (int8x16_t __a, const int __b)
23560 return (int8x16_t) __builtin_aarch64_sqshl_nv16qi (__a, __b);
23563 __extension__ extern __inline int16x8_t
23564 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23565 vqshlq_n_s16 (int16x8_t __a, const int __b)
23567 return (int16x8_t) __builtin_aarch64_sqshl_nv8hi (__a, __b);
23570 __extension__ extern __inline int32x4_t
23571 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23572 vqshlq_n_s32 (int32x4_t __a, const int __b)
23574 return (int32x4_t) __builtin_aarch64_sqshl_nv4si (__a, __b);
23577 __extension__ extern __inline int64x2_t
23578 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23579 vqshlq_n_s64 (int64x2_t __a, const int __b)
23581 return (int64x2_t) __builtin_aarch64_sqshl_nv2di (__a, __b);
23584 __extension__ extern __inline uint8x16_t
23585 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23586 vqshlq_n_u8 (uint8x16_t __a, const int __b)
23588 return __builtin_aarch64_uqshl_nv16qi_uus (__a, __b);
23591 __extension__ extern __inline uint16x8_t
23592 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23593 vqshlq_n_u16 (uint16x8_t __a, const int __b)
23595 return __builtin_aarch64_uqshl_nv8hi_uus (__a, __b);
23598 __extension__ extern __inline uint32x4_t
23599 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23600 vqshlq_n_u32 (uint32x4_t __a, const int __b)
23602 return __builtin_aarch64_uqshl_nv4si_uus (__a, __b);
23605 __extension__ extern __inline uint64x2_t
23606 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23607 vqshlq_n_u64 (uint64x2_t __a, const int __b)
23609 return __builtin_aarch64_uqshl_nv2di_uus (__a, __b);
23612 __extension__ extern __inline int8_t
23613 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23614 vqshlb_n_s8 (int8_t __a, const int __b)
23616 return (int8_t) __builtin_aarch64_sqshl_nqi (__a, __b);
23619 __extension__ extern __inline int16_t
23620 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23621 vqshlh_n_s16 (int16_t __a, const int __b)
23623 return (int16_t) __builtin_aarch64_sqshl_nhi (__a, __b);
23626 __extension__ extern __inline int32_t
23627 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23628 vqshls_n_s32 (int32_t __a, const int __b)
23630 return (int32_t) __builtin_aarch64_sqshl_nsi (__a, __b);
23633 __extension__ extern __inline int64_t
23634 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23635 vqshld_n_s64 (int64_t __a, const int __b)
23637 return __builtin_aarch64_sqshl_ndi (__a, __b);
23640 __extension__ extern __inline uint8_t
23641 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23642 vqshlb_n_u8 (uint8_t __a, const int __b)
23644 return __builtin_aarch64_uqshl_nqi_uus (__a, __b);
23647 __extension__ extern __inline uint16_t
23648 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23649 vqshlh_n_u16 (uint16_t __a, const int __b)
23651 return __builtin_aarch64_uqshl_nhi_uus (__a, __b);
23654 __extension__ extern __inline uint32_t
23655 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23656 vqshls_n_u32 (uint32_t __a, const int __b)
23658 return __builtin_aarch64_uqshl_nsi_uus (__a, __b);
23661 __extension__ extern __inline uint64_t
23662 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23663 vqshld_n_u64 (uint64_t __a, const int __b)
23665 return __builtin_aarch64_uqshl_ndi_uus (__a, __b);
23668 /* vqshlu */
23670 __extension__ extern __inline uint8x8_t
23671 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23672 vqshlu_n_s8 (int8x8_t __a, const int __b)
23674 return __builtin_aarch64_sqshlu_nv8qi_uss (__a, __b);
23677 __extension__ extern __inline uint16x4_t
23678 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23679 vqshlu_n_s16 (int16x4_t __a, const int __b)
23681 return __builtin_aarch64_sqshlu_nv4hi_uss (__a, __b);
23684 __extension__ extern __inline uint32x2_t
23685 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23686 vqshlu_n_s32 (int32x2_t __a, const int __b)
23688 return __builtin_aarch64_sqshlu_nv2si_uss (__a, __b);
23691 __extension__ extern __inline uint64x1_t
23692 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23693 vqshlu_n_s64 (int64x1_t __a, const int __b)
23695 return (uint64x1_t) {__builtin_aarch64_sqshlu_ndi_uss (__a[0], __b)};
23698 __extension__ extern __inline uint8x16_t
23699 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23700 vqshluq_n_s8 (int8x16_t __a, const int __b)
23702 return __builtin_aarch64_sqshlu_nv16qi_uss (__a, __b);
23705 __extension__ extern __inline uint16x8_t
23706 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23707 vqshluq_n_s16 (int16x8_t __a, const int __b)
23709 return __builtin_aarch64_sqshlu_nv8hi_uss (__a, __b);
23712 __extension__ extern __inline uint32x4_t
23713 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23714 vqshluq_n_s32 (int32x4_t __a, const int __b)
23716 return __builtin_aarch64_sqshlu_nv4si_uss (__a, __b);
23719 __extension__ extern __inline uint64x2_t
23720 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23721 vqshluq_n_s64 (int64x2_t __a, const int __b)
23723 return __builtin_aarch64_sqshlu_nv2di_uss (__a, __b);
23726 __extension__ extern __inline int8_t
23727 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23728 vqshlub_n_s8 (int8_t __a, const int __b)
23730 return (int8_t) __builtin_aarch64_sqshlu_nqi_uss (__a, __b);
23733 __extension__ extern __inline int16_t
23734 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23735 vqshluh_n_s16 (int16_t __a, const int __b)
23737 return (int16_t) __builtin_aarch64_sqshlu_nhi_uss (__a, __b);
23740 __extension__ extern __inline int32_t
23741 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23742 vqshlus_n_s32 (int32_t __a, const int __b)
23744 return (int32_t) __builtin_aarch64_sqshlu_nsi_uss (__a, __b);
23747 __extension__ extern __inline uint64_t
23748 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23749 vqshlud_n_s64 (int64_t __a, const int __b)
23751 return __builtin_aarch64_sqshlu_ndi_uss (__a, __b);
23754 /* vqshrn */
23756 __extension__ extern __inline int8x8_t
23757 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23758 vqshrn_n_s16 (int16x8_t __a, const int __b)
23760 return (int8x8_t) __builtin_aarch64_sqshrn_nv8hi (__a, __b);
23763 __extension__ extern __inline int16x4_t
23764 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23765 vqshrn_n_s32 (int32x4_t __a, const int __b)
23767 return (int16x4_t) __builtin_aarch64_sqshrn_nv4si (__a, __b);
23770 __extension__ extern __inline int32x2_t
23771 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23772 vqshrn_n_s64 (int64x2_t __a, const int __b)
23774 return (int32x2_t) __builtin_aarch64_sqshrn_nv2di (__a, __b);
23777 __extension__ extern __inline uint8x8_t
23778 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23779 vqshrn_n_u16 (uint16x8_t __a, const int __b)
23781 return __builtin_aarch64_uqshrn_nv8hi_uus ( __a, __b);
23784 __extension__ extern __inline uint16x4_t
23785 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23786 vqshrn_n_u32 (uint32x4_t __a, const int __b)
23788 return __builtin_aarch64_uqshrn_nv4si_uus ( __a, __b);
23791 __extension__ extern __inline uint32x2_t
23792 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23793 vqshrn_n_u64 (uint64x2_t __a, const int __b)
23795 return __builtin_aarch64_uqshrn_nv2di_uus ( __a, __b);
23798 __extension__ extern __inline int8_t
23799 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23800 vqshrnh_n_s16 (int16_t __a, const int __b)
23802 return (int8_t) __builtin_aarch64_sqshrn_nhi (__a, __b);
23805 __extension__ extern __inline int16_t
23806 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23807 vqshrns_n_s32 (int32_t __a, const int __b)
23809 return (int16_t) __builtin_aarch64_sqshrn_nsi (__a, __b);
23812 __extension__ extern __inline int32_t
23813 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23814 vqshrnd_n_s64 (int64_t __a, const int __b)
23816 return (int32_t) __builtin_aarch64_sqshrn_ndi (__a, __b);
23819 __extension__ extern __inline uint8_t
23820 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23821 vqshrnh_n_u16 (uint16_t __a, const int __b)
23823 return __builtin_aarch64_uqshrn_nhi_uus (__a, __b);
23826 __extension__ extern __inline uint16_t
23827 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23828 vqshrns_n_u32 (uint32_t __a, const int __b)
23830 return __builtin_aarch64_uqshrn_nsi_uus (__a, __b);
23833 __extension__ extern __inline uint32_t
23834 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23835 vqshrnd_n_u64 (uint64_t __a, const int __b)
23837 return __builtin_aarch64_uqshrn_ndi_uus (__a, __b);
23840 /* vqshrun */
23842 __extension__ extern __inline uint8x8_t
23843 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23844 vqshrun_n_s16 (int16x8_t __a, const int __b)
23846 return (uint8x8_t) __builtin_aarch64_sqshrun_nv8hi (__a, __b);
23849 __extension__ extern __inline uint16x4_t
23850 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23851 vqshrun_n_s32 (int32x4_t __a, const int __b)
23853 return (uint16x4_t) __builtin_aarch64_sqshrun_nv4si (__a, __b);
23856 __extension__ extern __inline uint32x2_t
23857 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23858 vqshrun_n_s64 (int64x2_t __a, const int __b)
23860 return (uint32x2_t) __builtin_aarch64_sqshrun_nv2di (__a, __b);
23863 __extension__ extern __inline int8_t
23864 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23865 vqshrunh_n_s16 (int16_t __a, const int __b)
23867 return (int8_t) __builtin_aarch64_sqshrun_nhi (__a, __b);
23870 __extension__ extern __inline int16_t
23871 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23872 vqshruns_n_s32 (int32_t __a, const int __b)
23874 return (int16_t) __builtin_aarch64_sqshrun_nsi (__a, __b);
23877 __extension__ extern __inline int32_t
23878 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23879 vqshrund_n_s64 (int64_t __a, const int __b)
23881 return (int32_t) __builtin_aarch64_sqshrun_ndi (__a, __b);
23884 /* vqsub */
23886 __extension__ extern __inline int8_t
23887 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23888 vqsubb_s8 (int8_t __a, int8_t __b)
23890 return (int8_t) __builtin_aarch64_sqsubqi (__a, __b);
23893 __extension__ extern __inline int16_t
23894 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23895 vqsubh_s16 (int16_t __a, int16_t __b)
23897 return (int16_t) __builtin_aarch64_sqsubhi (__a, __b);
23900 __extension__ extern __inline int32_t
23901 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23902 vqsubs_s32 (int32_t __a, int32_t __b)
23904 return (int32_t) __builtin_aarch64_sqsubsi (__a, __b);
23907 __extension__ extern __inline int64_t
23908 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23909 vqsubd_s64 (int64_t __a, int64_t __b)
23911 return __builtin_aarch64_sqsubdi (__a, __b);
23914 __extension__ extern __inline uint8_t
23915 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23916 vqsubb_u8 (uint8_t __a, uint8_t __b)
23918 return (uint8_t) __builtin_aarch64_uqsubqi_uuu (__a, __b);
23921 __extension__ extern __inline uint16_t
23922 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23923 vqsubh_u16 (uint16_t __a, uint16_t __b)
23925 return (uint16_t) __builtin_aarch64_uqsubhi_uuu (__a, __b);
23928 __extension__ extern __inline uint32_t
23929 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23930 vqsubs_u32 (uint32_t __a, uint32_t __b)
23932 return (uint32_t) __builtin_aarch64_uqsubsi_uuu (__a, __b);
23935 __extension__ extern __inline uint64_t
23936 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23937 vqsubd_u64 (uint64_t __a, uint64_t __b)
23939 return __builtin_aarch64_uqsubdi_uuu (__a, __b);
23942 /* vqtbl2 */
23944 __extension__ extern __inline int8x8_t
23945 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23946 vqtbl2_s8 (int8x16x2_t tab, uint8x8_t idx)
23948 __builtin_aarch64_simd_oi __o;
23949 __o = __builtin_aarch64_set_qregoiv16qi (__o, tab.val[0], 0);
23950 __o = __builtin_aarch64_set_qregoiv16qi (__o, tab.val[1], 1);
23951 return __builtin_aarch64_tbl3v8qi (__o, (int8x8_t)idx);
23954 __extension__ extern __inline uint8x8_t
23955 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23956 vqtbl2_u8 (uint8x16x2_t tab, uint8x8_t idx)
23958 __builtin_aarch64_simd_oi __o;
23959 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[0], 0);
23960 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[1], 1);
23961 return (uint8x8_t)__builtin_aarch64_tbl3v8qi (__o, (int8x8_t)idx);
23964 __extension__ extern __inline poly8x8_t
23965 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23966 vqtbl2_p8 (poly8x16x2_t tab, uint8x8_t idx)
23968 __builtin_aarch64_simd_oi __o;
23969 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[0], 0);
23970 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[1], 1);
23971 return (poly8x8_t)__builtin_aarch64_tbl3v8qi (__o, (int8x8_t)idx);
23974 __extension__ extern __inline int8x16_t
23975 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23976 vqtbl2q_s8 (int8x16x2_t tab, uint8x16_t idx)
23978 __builtin_aarch64_simd_oi __o;
23979 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[0], 0);
23980 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[1], 1);
23981 return __builtin_aarch64_tbl3v16qi (__o, (int8x16_t)idx);
23984 __extension__ extern __inline uint8x16_t
23985 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23986 vqtbl2q_u8 (uint8x16x2_t tab, uint8x16_t idx)
23988 __builtin_aarch64_simd_oi __o;
23989 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[0], 0);
23990 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[1], 1);
23991 return (uint8x16_t)__builtin_aarch64_tbl3v16qi (__o, (int8x16_t)idx);
23994 __extension__ extern __inline poly8x16_t
23995 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23996 vqtbl2q_p8 (poly8x16x2_t tab, uint8x16_t idx)
23998 __builtin_aarch64_simd_oi __o;
23999 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[0], 0);
24000 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[1], 1);
24001 return (poly8x16_t)__builtin_aarch64_tbl3v16qi (__o, (int8x16_t)idx);
24004 /* vqtbl3 */
24006 __extension__ extern __inline int8x8_t
24007 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24008 vqtbl3_s8 (int8x16x3_t tab, uint8x8_t idx)
24010 __builtin_aarch64_simd_ci __o;
24011 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[0], 0);
24012 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[1], 1);
24013 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[2], 2);
24014 return __builtin_aarch64_qtbl3v8qi (__o, (int8x8_t)idx);
24017 __extension__ extern __inline uint8x8_t
24018 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24019 vqtbl3_u8 (uint8x16x3_t tab, uint8x8_t idx)
24021 __builtin_aarch64_simd_ci __o;
24022 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[0], 0);
24023 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[1], 1);
24024 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[2], 2);
24025 return (uint8x8_t)__builtin_aarch64_qtbl3v8qi (__o, (int8x8_t)idx);
24028 __extension__ extern __inline poly8x8_t
24029 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24030 vqtbl3_p8 (poly8x16x3_t tab, uint8x8_t idx)
24032 __builtin_aarch64_simd_ci __o;
24033 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[0], 0);
24034 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[1], 1);
24035 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[2], 2);
24036 return (poly8x8_t)__builtin_aarch64_qtbl3v8qi (__o, (int8x8_t)idx);
24039 __extension__ extern __inline int8x16_t
24040 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24041 vqtbl3q_s8 (int8x16x3_t tab, uint8x16_t idx)
24043 __builtin_aarch64_simd_ci __o;
24044 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[0], 0);
24045 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[1], 1);
24046 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[2], 2);
24047 return __builtin_aarch64_qtbl3v16qi (__o, (int8x16_t)idx);
24050 __extension__ extern __inline uint8x16_t
24051 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24052 vqtbl3q_u8 (uint8x16x3_t tab, uint8x16_t idx)
24054 __builtin_aarch64_simd_ci __o;
24055 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[0], 0);
24056 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[1], 1);
24057 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[2], 2);
24058 return (uint8x16_t)__builtin_aarch64_qtbl3v16qi (__o, (int8x16_t)idx);
24061 __extension__ extern __inline poly8x16_t
24062 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24063 vqtbl3q_p8 (poly8x16x3_t tab, uint8x16_t idx)
24065 __builtin_aarch64_simd_ci __o;
24066 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[0], 0);
24067 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[1], 1);
24068 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[2], 2);
24069 return (poly8x16_t)__builtin_aarch64_qtbl3v16qi (__o, (int8x16_t)idx);
24072 /* vqtbl4 */
24074 __extension__ extern __inline int8x8_t
24075 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24076 vqtbl4_s8 (int8x16x4_t tab, uint8x8_t idx)
24078 __builtin_aarch64_simd_xi __o;
24079 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[0], 0);
24080 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[1], 1);
24081 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[2], 2);
24082 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[3], 3);
24083 return __builtin_aarch64_qtbl4v8qi (__o, (int8x8_t)idx);
24086 __extension__ extern __inline uint8x8_t
24087 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24088 vqtbl4_u8 (uint8x16x4_t tab, uint8x8_t idx)
24090 __builtin_aarch64_simd_xi __o;
24091 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[0], 0);
24092 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[1], 1);
24093 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[2], 2);
24094 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[3], 3);
24095 return (uint8x8_t)__builtin_aarch64_qtbl4v8qi (__o, (int8x8_t)idx);
24098 __extension__ extern __inline poly8x8_t
24099 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24100 vqtbl4_p8 (poly8x16x4_t tab, uint8x8_t idx)
24102 __builtin_aarch64_simd_xi __o;
24103 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[0], 0);
24104 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[1], 1);
24105 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[2], 2);
24106 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[3], 3);
24107 return (poly8x8_t)__builtin_aarch64_qtbl4v8qi (__o, (int8x8_t)idx);
24110 __extension__ extern __inline int8x16_t
24111 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24112 vqtbl4q_s8 (int8x16x4_t tab, uint8x16_t idx)
24114 __builtin_aarch64_simd_xi __o;
24115 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[0], 0);
24116 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[1], 1);
24117 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[2], 2);
24118 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[3], 3);
24119 return __builtin_aarch64_qtbl4v16qi (__o, (int8x16_t)idx);
24122 __extension__ extern __inline uint8x16_t
24123 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24124 vqtbl4q_u8 (uint8x16x4_t tab, uint8x16_t idx)
24126 __builtin_aarch64_simd_xi __o;
24127 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[0], 0);
24128 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[1], 1);
24129 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[2], 2);
24130 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[3], 3);
24131 return (uint8x16_t)__builtin_aarch64_qtbl4v16qi (__o, (int8x16_t)idx);
24134 __extension__ extern __inline poly8x16_t
24135 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24136 vqtbl4q_p8 (poly8x16x4_t tab, uint8x16_t idx)
24138 __builtin_aarch64_simd_xi __o;
24139 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[0], 0);
24140 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[1], 1);
24141 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[2], 2);
24142 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[3], 3);
24143 return (poly8x16_t)__builtin_aarch64_qtbl4v16qi (__o, (int8x16_t)idx);
24147 /* vqtbx2 */
24148 __extension__ extern __inline int8x8_t
24149 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24150 vqtbx2_s8 (int8x8_t r, int8x16x2_t tab, uint8x8_t idx)
24152 __builtin_aarch64_simd_oi __o;
24153 __o = __builtin_aarch64_set_qregoiv16qi (__o, tab.val[0], 0);
24154 __o = __builtin_aarch64_set_qregoiv16qi (__o, tab.val[1], 1);
24155 return __builtin_aarch64_tbx4v8qi (r, __o, (int8x8_t)idx);
24158 __extension__ extern __inline uint8x8_t
24159 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24160 vqtbx2_u8 (uint8x8_t r, uint8x16x2_t tab, uint8x8_t idx)
24162 __builtin_aarch64_simd_oi __o;
24163 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[0], 0);
24164 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[1], 1);
24165 return (uint8x8_t)__builtin_aarch64_tbx4v8qi ((int8x8_t)r, __o,
24166 (int8x8_t)idx);
24169 __extension__ extern __inline poly8x8_t
24170 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24171 vqtbx2_p8 (poly8x8_t r, poly8x16x2_t tab, uint8x8_t idx)
24173 __builtin_aarch64_simd_oi __o;
24174 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[0], 0);
24175 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[1], 1);
24176 return (poly8x8_t)__builtin_aarch64_tbx4v8qi ((int8x8_t)r, __o,
24177 (int8x8_t)idx);
24180 __extension__ extern __inline int8x16_t
24181 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24182 vqtbx2q_s8 (int8x16_t r, int8x16x2_t tab, uint8x16_t idx)
24184 __builtin_aarch64_simd_oi __o;
24185 __o = __builtin_aarch64_set_qregoiv16qi (__o, tab.val[0], 0);
24186 __o = __builtin_aarch64_set_qregoiv16qi (__o, tab.val[1], 1);
24187 return __builtin_aarch64_tbx4v16qi (r, __o, (int8x16_t)idx);
24190 __extension__ extern __inline uint8x16_t
24191 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24192 vqtbx2q_u8 (uint8x16_t r, uint8x16x2_t tab, uint8x16_t idx)
24194 __builtin_aarch64_simd_oi __o;
24195 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[0], 0);
24196 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[1], 1);
24197 return (uint8x16_t)__builtin_aarch64_tbx4v16qi ((int8x16_t)r, __o,
24198 (int8x16_t)idx);
24201 __extension__ extern __inline poly8x16_t
24202 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24203 vqtbx2q_p8 (poly8x16_t r, poly8x16x2_t tab, uint8x16_t idx)
24205 __builtin_aarch64_simd_oi __o;
24206 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[0], 0);
24207 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[1], 1);
24208 return (poly8x16_t)__builtin_aarch64_tbx4v16qi ((int8x16_t)r, __o,
24209 (int8x16_t)idx);
24212 /* vqtbx3 */
24213 __extension__ extern __inline int8x8_t
24214 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24215 vqtbx3_s8 (int8x8_t r, int8x16x3_t tab, uint8x8_t idx)
24217 __builtin_aarch64_simd_ci __o;
24218 __o = __builtin_aarch64_set_qregciv16qi (__o, tab.val[0], 0);
24219 __o = __builtin_aarch64_set_qregciv16qi (__o, tab.val[1], 1);
24220 __o = __builtin_aarch64_set_qregciv16qi (__o, tab.val[2], 2);
24221 return __builtin_aarch64_qtbx3v8qi (r, __o, (int8x8_t)idx);
24224 __extension__ extern __inline uint8x8_t
24225 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24226 vqtbx3_u8 (uint8x8_t r, uint8x16x3_t tab, uint8x8_t idx)
24228 __builtin_aarch64_simd_ci __o;
24229 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[0], 0);
24230 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[1], 1);
24231 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[2], 2);
24232 return (uint8x8_t)__builtin_aarch64_qtbx3v8qi ((int8x8_t)r, __o,
24233 (int8x8_t)idx);
24236 __extension__ extern __inline poly8x8_t
24237 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24238 vqtbx3_p8 (poly8x8_t r, poly8x16x3_t tab, uint8x8_t idx)
24240 __builtin_aarch64_simd_ci __o;
24241 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[0], 0);
24242 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[1], 1);
24243 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[2], 2);
24244 return (poly8x8_t)__builtin_aarch64_qtbx3v8qi ((int8x8_t)r, __o,
24245 (int8x8_t)idx);
24248 __extension__ extern __inline int8x16_t
24249 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24250 vqtbx3q_s8 (int8x16_t r, int8x16x3_t tab, uint8x16_t idx)
24252 __builtin_aarch64_simd_ci __o;
24253 __o = __builtin_aarch64_set_qregciv16qi (__o, tab.val[0], 0);
24254 __o = __builtin_aarch64_set_qregciv16qi (__o, tab.val[1], 1);
24255 __o = __builtin_aarch64_set_qregciv16qi (__o, tab.val[2], 2);
24256 return __builtin_aarch64_qtbx3v16qi (r, __o, (int8x16_t)idx);
24259 __extension__ extern __inline uint8x16_t
24260 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24261 vqtbx3q_u8 (uint8x16_t r, uint8x16x3_t tab, uint8x16_t idx)
24263 __builtin_aarch64_simd_ci __o;
24264 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[0], 0);
24265 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[1], 1);
24266 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[2], 2);
24267 return (uint8x16_t)__builtin_aarch64_qtbx3v16qi ((int8x16_t)r, __o,
24268 (int8x16_t)idx);
24271 __extension__ extern __inline poly8x16_t
24272 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24273 vqtbx3q_p8 (poly8x16_t r, poly8x16x3_t tab, uint8x16_t idx)
24275 __builtin_aarch64_simd_ci __o;
24276 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[0], 0);
24277 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[1], 1);
24278 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[2], 2);
24279 return (poly8x16_t)__builtin_aarch64_qtbx3v16qi ((int8x16_t)r, __o,
24280 (int8x16_t)idx);
24283 /* vqtbx4 */
24285 __extension__ extern __inline int8x8_t
24286 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24287 vqtbx4_s8 (int8x8_t r, int8x16x4_t tab, uint8x8_t idx)
24289 __builtin_aarch64_simd_xi __o;
24290 __o = __builtin_aarch64_set_qregxiv16qi (__o, tab.val[0], 0);
24291 __o = __builtin_aarch64_set_qregxiv16qi (__o, tab.val[1], 1);
24292 __o = __builtin_aarch64_set_qregxiv16qi (__o, tab.val[2], 2);
24293 __o = __builtin_aarch64_set_qregxiv16qi (__o, tab.val[3], 3);
24294 return __builtin_aarch64_qtbx4v8qi (r, __o, (int8x8_t)idx);
24297 __extension__ extern __inline uint8x8_t
24298 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24299 vqtbx4_u8 (uint8x8_t r, uint8x16x4_t tab, uint8x8_t idx)
24301 __builtin_aarch64_simd_xi __o;
24302 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[0], 0);
24303 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[1], 1);
24304 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[2], 2);
24305 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[3], 3);
24306 return (uint8x8_t)__builtin_aarch64_qtbx4v8qi ((int8x8_t)r, __o,
24307 (int8x8_t)idx);
24310 __extension__ extern __inline poly8x8_t
24311 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24312 vqtbx4_p8 (poly8x8_t r, poly8x16x4_t tab, uint8x8_t idx)
24314 __builtin_aarch64_simd_xi __o;
24315 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[0], 0);
24316 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[1], 1);
24317 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[2], 2);
24318 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[3], 3);
24319 return (poly8x8_t)__builtin_aarch64_qtbx4v8qi ((int8x8_t)r, __o,
24320 (int8x8_t)idx);
24323 __extension__ extern __inline int8x16_t
24324 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24325 vqtbx4q_s8 (int8x16_t r, int8x16x4_t tab, uint8x16_t idx)
24327 __builtin_aarch64_simd_xi __o;
24328 __o = __builtin_aarch64_set_qregxiv16qi (__o, tab.val[0], 0);
24329 __o = __builtin_aarch64_set_qregxiv16qi (__o, tab.val[1], 1);
24330 __o = __builtin_aarch64_set_qregxiv16qi (__o, tab.val[2], 2);
24331 __o = __builtin_aarch64_set_qregxiv16qi (__o, tab.val[3], 3);
24332 return __builtin_aarch64_qtbx4v16qi (r, __o, (int8x16_t)idx);
24335 __extension__ extern __inline uint8x16_t
24336 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24337 vqtbx4q_u8 (uint8x16_t r, uint8x16x4_t tab, uint8x16_t idx)
24339 __builtin_aarch64_simd_xi __o;
24340 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[0], 0);
24341 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[1], 1);
24342 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[2], 2);
24343 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[3], 3);
24344 return (uint8x16_t)__builtin_aarch64_qtbx4v16qi ((int8x16_t)r, __o,
24345 (int8x16_t)idx);
24348 __extension__ extern __inline poly8x16_t
24349 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24350 vqtbx4q_p8 (poly8x16_t r, poly8x16x4_t tab, uint8x16_t idx)
24352 __builtin_aarch64_simd_xi __o;
24353 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[0], 0);
24354 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[1], 1);
24355 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[2], 2);
24356 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[3], 3);
24357 return (poly8x16_t)__builtin_aarch64_qtbx4v16qi ((int8x16_t)r, __o,
24358 (int8x16_t)idx);
24361 /* vrbit */
24363 __extension__ extern __inline poly8x8_t
24364 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24365 vrbit_p8 (poly8x8_t __a)
24367 return (poly8x8_t) __builtin_aarch64_rbitv8qi ((int8x8_t) __a);
24370 __extension__ extern __inline int8x8_t
24371 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24372 vrbit_s8 (int8x8_t __a)
24374 return __builtin_aarch64_rbitv8qi (__a);
24377 __extension__ extern __inline uint8x8_t
24378 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24379 vrbit_u8 (uint8x8_t __a)
24381 return (uint8x8_t) __builtin_aarch64_rbitv8qi ((int8x8_t) __a);
24384 __extension__ extern __inline poly8x16_t
24385 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24386 vrbitq_p8 (poly8x16_t __a)
24388 return (poly8x16_t) __builtin_aarch64_rbitv16qi ((int8x16_t)__a);
24391 __extension__ extern __inline int8x16_t
24392 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24393 vrbitq_s8 (int8x16_t __a)
24395 return __builtin_aarch64_rbitv16qi (__a);
24398 __extension__ extern __inline uint8x16_t
24399 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24400 vrbitq_u8 (uint8x16_t __a)
24402 return (uint8x16_t) __builtin_aarch64_rbitv16qi ((int8x16_t) __a);
24405 /* vrecpe */
24407 __extension__ extern __inline uint32x2_t
24408 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24409 vrecpe_u32 (uint32x2_t __a)
24411 return (uint32x2_t) __builtin_aarch64_urecpev2si ((int32x2_t) __a);
24414 __extension__ extern __inline uint32x4_t
24415 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24416 vrecpeq_u32 (uint32x4_t __a)
24418 return (uint32x4_t) __builtin_aarch64_urecpev4si ((int32x4_t) __a);
24421 __extension__ extern __inline float32_t
24422 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24423 vrecpes_f32 (float32_t __a)
24425 return __builtin_aarch64_frecpesf (__a);
24428 __extension__ extern __inline float64_t
24429 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24430 vrecped_f64 (float64_t __a)
24432 return __builtin_aarch64_frecpedf (__a);
24435 __extension__ extern __inline float32x2_t
24436 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24437 vrecpe_f32 (float32x2_t __a)
24439 return __builtin_aarch64_frecpev2sf (__a);
24442 __extension__ extern __inline float64x1_t
24443 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24444 vrecpe_f64 (float64x1_t __a)
24446 return (float64x1_t) { vrecped_f64 (vget_lane_f64 (__a, 0)) };
24449 __extension__ extern __inline float32x4_t
24450 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24451 vrecpeq_f32 (float32x4_t __a)
24453 return __builtin_aarch64_frecpev4sf (__a);
24456 __extension__ extern __inline float64x2_t
24457 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24458 vrecpeq_f64 (float64x2_t __a)
24460 return __builtin_aarch64_frecpev2df (__a);
24463 /* vrecps */
24465 __extension__ extern __inline float32_t
24466 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24467 vrecpss_f32 (float32_t __a, float32_t __b)
24469 return __builtin_aarch64_frecpssf (__a, __b);
24472 __extension__ extern __inline float64_t
24473 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24474 vrecpsd_f64 (float64_t __a, float64_t __b)
24476 return __builtin_aarch64_frecpsdf (__a, __b);
24479 __extension__ extern __inline float32x2_t
24480 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24481 vrecps_f32 (float32x2_t __a, float32x2_t __b)
24483 return __builtin_aarch64_frecpsv2sf (__a, __b);
24486 __extension__ extern __inline float64x1_t
24487 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24488 vrecps_f64 (float64x1_t __a, float64x1_t __b)
24490 return (float64x1_t) { vrecpsd_f64 (vget_lane_f64 (__a, 0),
24491 vget_lane_f64 (__b, 0)) };
24494 __extension__ extern __inline float32x4_t
24495 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24496 vrecpsq_f32 (float32x4_t __a, float32x4_t __b)
24498 return __builtin_aarch64_frecpsv4sf (__a, __b);
24501 __extension__ extern __inline float64x2_t
24502 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24503 vrecpsq_f64 (float64x2_t __a, float64x2_t __b)
24505 return __builtin_aarch64_frecpsv2df (__a, __b);
24508 /* vrecpx */
24510 __extension__ extern __inline float32_t
24511 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24512 vrecpxs_f32 (float32_t __a)
24514 return __builtin_aarch64_frecpxsf (__a);
24517 __extension__ extern __inline float64_t
24518 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24519 vrecpxd_f64 (float64_t __a)
24521 return __builtin_aarch64_frecpxdf (__a);
24525 /* vrev */
24527 __extension__ extern __inline poly8x8_t
24528 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24529 vrev16_p8 (poly8x8_t a)
24531 return __builtin_shuffle (a, (uint8x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
24534 __extension__ extern __inline int8x8_t
24535 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24536 vrev16_s8 (int8x8_t a)
24538 return __builtin_shuffle (a, (uint8x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
24541 __extension__ extern __inline uint8x8_t
24542 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24543 vrev16_u8 (uint8x8_t a)
24545 return __builtin_shuffle (a, (uint8x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
24548 __extension__ extern __inline poly8x16_t
24549 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24550 vrev16q_p8 (poly8x16_t a)
24552 return __builtin_shuffle (a,
24553 (uint8x16_t) { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 });
24556 __extension__ extern __inline int8x16_t
24557 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24558 vrev16q_s8 (int8x16_t a)
24560 return __builtin_shuffle (a,
24561 (uint8x16_t) { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 });
24564 __extension__ extern __inline uint8x16_t
24565 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24566 vrev16q_u8 (uint8x16_t a)
24568 return __builtin_shuffle (a,
24569 (uint8x16_t) { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 });
24572 __extension__ extern __inline poly8x8_t
24573 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24574 vrev32_p8 (poly8x8_t a)
24576 return __builtin_shuffle (a, (uint8x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
24579 __extension__ extern __inline poly16x4_t
24580 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24581 vrev32_p16 (poly16x4_t a)
24583 return __builtin_shuffle (a, (uint16x4_t) { 1, 0, 3, 2 });
24586 __extension__ extern __inline int8x8_t
24587 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24588 vrev32_s8 (int8x8_t a)
24590 return __builtin_shuffle (a, (uint8x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
24593 __extension__ extern __inline int16x4_t
24594 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24595 vrev32_s16 (int16x4_t a)
24597 return __builtin_shuffle (a, (uint16x4_t) { 1, 0, 3, 2 });
24600 __extension__ extern __inline uint8x8_t
24601 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24602 vrev32_u8 (uint8x8_t a)
24604 return __builtin_shuffle (a, (uint8x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
24607 __extension__ extern __inline uint16x4_t
24608 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24609 vrev32_u16 (uint16x4_t a)
24611 return __builtin_shuffle (a, (uint16x4_t) { 1, 0, 3, 2 });
24614 __extension__ extern __inline poly8x16_t
24615 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24616 vrev32q_p8 (poly8x16_t a)
24618 return __builtin_shuffle (a,
24619 (uint8x16_t) { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 });
24622 __extension__ extern __inline poly16x8_t
24623 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24624 vrev32q_p16 (poly16x8_t a)
24626 return __builtin_shuffle (a, (uint16x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
24629 __extension__ extern __inline int8x16_t
24630 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24631 vrev32q_s8 (int8x16_t a)
24633 return __builtin_shuffle (a,
24634 (uint8x16_t) { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 });
24637 __extension__ extern __inline int16x8_t
24638 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24639 vrev32q_s16 (int16x8_t a)
24641 return __builtin_shuffle (a, (uint16x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
24644 __extension__ extern __inline uint8x16_t
24645 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24646 vrev32q_u8 (uint8x16_t a)
24648 return __builtin_shuffle (a,
24649 (uint8x16_t) { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 });
24652 __extension__ extern __inline uint16x8_t
24653 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24654 vrev32q_u16 (uint16x8_t a)
24656 return __builtin_shuffle (a, (uint16x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
24659 __extension__ extern __inline float16x4_t
24660 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24661 vrev64_f16 (float16x4_t __a)
24663 return __builtin_shuffle (__a, (uint16x4_t) { 3, 2, 1, 0 });
24666 __extension__ extern __inline float32x2_t
24667 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24668 vrev64_f32 (float32x2_t a)
24670 return __builtin_shuffle (a, (uint32x2_t) { 1, 0 });
24673 __extension__ extern __inline poly8x8_t
24674 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24675 vrev64_p8 (poly8x8_t a)
24677 return __builtin_shuffle (a, (uint8x8_t) { 7, 6, 5, 4, 3, 2, 1, 0 });
24680 __extension__ extern __inline poly16x4_t
24681 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24682 vrev64_p16 (poly16x4_t a)
24684 return __builtin_shuffle (a, (uint16x4_t) { 3, 2, 1, 0 });
24687 __extension__ extern __inline int8x8_t
24688 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24689 vrev64_s8 (int8x8_t a)
24691 return __builtin_shuffle (a, (uint8x8_t) { 7, 6, 5, 4, 3, 2, 1, 0 });
24694 __extension__ extern __inline int16x4_t
24695 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24696 vrev64_s16 (int16x4_t a)
24698 return __builtin_shuffle (a, (uint16x4_t) { 3, 2, 1, 0 });
24701 __extension__ extern __inline int32x2_t
24702 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24703 vrev64_s32 (int32x2_t a)
24705 return __builtin_shuffle (a, (uint32x2_t) { 1, 0 });
24708 __extension__ extern __inline uint8x8_t
24709 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24710 vrev64_u8 (uint8x8_t a)
24712 return __builtin_shuffle (a, (uint8x8_t) { 7, 6, 5, 4, 3, 2, 1, 0 });
24715 __extension__ extern __inline uint16x4_t
24716 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24717 vrev64_u16 (uint16x4_t a)
24719 return __builtin_shuffle (a, (uint16x4_t) { 3, 2, 1, 0 });
24722 __extension__ extern __inline uint32x2_t
24723 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24724 vrev64_u32 (uint32x2_t a)
24726 return __builtin_shuffle (a, (uint32x2_t) { 1, 0 });
24729 __extension__ extern __inline float16x8_t
24730 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24731 vrev64q_f16 (float16x8_t __a)
24733 return __builtin_shuffle (__a, (uint16x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
24736 __extension__ extern __inline float32x4_t
24737 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24738 vrev64q_f32 (float32x4_t a)
24740 return __builtin_shuffle (a, (uint32x4_t) { 1, 0, 3, 2 });
24743 __extension__ extern __inline poly8x16_t
24744 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24745 vrev64q_p8 (poly8x16_t a)
24747 return __builtin_shuffle (a,
24748 (uint8x16_t) { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 });
24751 __extension__ extern __inline poly16x8_t
24752 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24753 vrev64q_p16 (poly16x8_t a)
24755 return __builtin_shuffle (a, (uint16x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
24758 __extension__ extern __inline int8x16_t
24759 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24760 vrev64q_s8 (int8x16_t a)
24762 return __builtin_shuffle (a,
24763 (uint8x16_t) { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 });
24766 __extension__ extern __inline int16x8_t
24767 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24768 vrev64q_s16 (int16x8_t a)
24770 return __builtin_shuffle (a, (uint16x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
24773 __extension__ extern __inline int32x4_t
24774 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24775 vrev64q_s32 (int32x4_t a)
24777 return __builtin_shuffle (a, (uint32x4_t) { 1, 0, 3, 2 });
24780 __extension__ extern __inline uint8x16_t
24781 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24782 vrev64q_u8 (uint8x16_t a)
24784 return __builtin_shuffle (a,
24785 (uint8x16_t) { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 });
24788 __extension__ extern __inline uint16x8_t
24789 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24790 vrev64q_u16 (uint16x8_t a)
24792 return __builtin_shuffle (a, (uint16x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
24795 __extension__ extern __inline uint32x4_t
24796 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24797 vrev64q_u32 (uint32x4_t a)
24799 return __builtin_shuffle (a, (uint32x4_t) { 1, 0, 3, 2 });
24802 /* vrnd */
24804 __extension__ extern __inline float32x2_t
24805 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24806 vrnd_f32 (float32x2_t __a)
24808 return __builtin_aarch64_btruncv2sf (__a);
24811 __extension__ extern __inline float64x1_t
24812 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24813 vrnd_f64 (float64x1_t __a)
24815 return vset_lane_f64 (__builtin_trunc (vget_lane_f64 (__a, 0)), __a, 0);
24818 __extension__ extern __inline float32x4_t
24819 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24820 vrndq_f32 (float32x4_t __a)
24822 return __builtin_aarch64_btruncv4sf (__a);
24825 __extension__ extern __inline float64x2_t
24826 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24827 vrndq_f64 (float64x2_t __a)
24829 return __builtin_aarch64_btruncv2df (__a);
24832 /* vrnda */
24834 __extension__ extern __inline float32x2_t
24835 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24836 vrnda_f32 (float32x2_t __a)
24838 return __builtin_aarch64_roundv2sf (__a);
24841 __extension__ extern __inline float64x1_t
24842 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24843 vrnda_f64 (float64x1_t __a)
24845 return vset_lane_f64 (__builtin_round (vget_lane_f64 (__a, 0)), __a, 0);
24848 __extension__ extern __inline float32x4_t
24849 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24850 vrndaq_f32 (float32x4_t __a)
24852 return __builtin_aarch64_roundv4sf (__a);
24855 __extension__ extern __inline float64x2_t
24856 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24857 vrndaq_f64 (float64x2_t __a)
24859 return __builtin_aarch64_roundv2df (__a);
24862 /* vrndi */
24864 __extension__ extern __inline float32x2_t
24865 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24866 vrndi_f32 (float32x2_t __a)
24868 return __builtin_aarch64_nearbyintv2sf (__a);
24871 __extension__ extern __inline float64x1_t
24872 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24873 vrndi_f64 (float64x1_t __a)
24875 return vset_lane_f64 (__builtin_nearbyint (vget_lane_f64 (__a, 0)), __a, 0);
24878 __extension__ extern __inline float32x4_t
24879 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24880 vrndiq_f32 (float32x4_t __a)
24882 return __builtin_aarch64_nearbyintv4sf (__a);
24885 __extension__ extern __inline float64x2_t
24886 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24887 vrndiq_f64 (float64x2_t __a)
24889 return __builtin_aarch64_nearbyintv2df (__a);
24892 /* vrndm */
24894 __extension__ extern __inline float32x2_t
24895 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24896 vrndm_f32 (float32x2_t __a)
24898 return __builtin_aarch64_floorv2sf (__a);
24901 __extension__ extern __inline float64x1_t
24902 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24903 vrndm_f64 (float64x1_t __a)
24905 return vset_lane_f64 (__builtin_floor (vget_lane_f64 (__a, 0)), __a, 0);
24908 __extension__ extern __inline float32x4_t
24909 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24910 vrndmq_f32 (float32x4_t __a)
24912 return __builtin_aarch64_floorv4sf (__a);
24915 __extension__ extern __inline float64x2_t
24916 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24917 vrndmq_f64 (float64x2_t __a)
24919 return __builtin_aarch64_floorv2df (__a);
24922 /* vrndn */
24924 __extension__ extern __inline float32x2_t
24925 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24926 vrndn_f32 (float32x2_t __a)
24928 return __builtin_aarch64_frintnv2sf (__a);
24931 __extension__ extern __inline float64x1_t
24932 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24933 vrndn_f64 (float64x1_t __a)
24935 return (float64x1_t) {__builtin_aarch64_frintndf (__a[0])};
24938 __extension__ extern __inline float32x4_t
24939 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24940 vrndnq_f32 (float32x4_t __a)
24942 return __builtin_aarch64_frintnv4sf (__a);
24945 __extension__ extern __inline float64x2_t
24946 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24947 vrndnq_f64 (float64x2_t __a)
24949 return __builtin_aarch64_frintnv2df (__a);
24952 /* vrndp */
24954 __extension__ extern __inline float32x2_t
24955 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24956 vrndp_f32 (float32x2_t __a)
24958 return __builtin_aarch64_ceilv2sf (__a);
24961 __extension__ extern __inline float64x1_t
24962 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24963 vrndp_f64 (float64x1_t __a)
24965 return vset_lane_f64 (__builtin_ceil (vget_lane_f64 (__a, 0)), __a, 0);
24968 __extension__ extern __inline float32x4_t
24969 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24970 vrndpq_f32 (float32x4_t __a)
24972 return __builtin_aarch64_ceilv4sf (__a);
24975 __extension__ extern __inline float64x2_t
24976 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24977 vrndpq_f64 (float64x2_t __a)
24979 return __builtin_aarch64_ceilv2df (__a);
24982 /* vrndx */
24984 __extension__ extern __inline float32x2_t
24985 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24986 vrndx_f32 (float32x2_t __a)
24988 return __builtin_aarch64_rintv2sf (__a);
24991 __extension__ extern __inline float64x1_t
24992 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24993 vrndx_f64 (float64x1_t __a)
24995 return vset_lane_f64 (__builtin_rint (vget_lane_f64 (__a, 0)), __a, 0);
24998 __extension__ extern __inline float32x4_t
24999 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25000 vrndxq_f32 (float32x4_t __a)
25002 return __builtin_aarch64_rintv4sf (__a);
25005 __extension__ extern __inline float64x2_t
25006 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25007 vrndxq_f64 (float64x2_t __a)
25009 return __builtin_aarch64_rintv2df (__a);
25012 /* vrshl */
25014 __extension__ extern __inline int8x8_t
25015 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25016 vrshl_s8 (int8x8_t __a, int8x8_t __b)
25018 return (int8x8_t) __builtin_aarch64_srshlv8qi (__a, __b);
25021 __extension__ extern __inline int16x4_t
25022 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25023 vrshl_s16 (int16x4_t __a, int16x4_t __b)
25025 return (int16x4_t) __builtin_aarch64_srshlv4hi (__a, __b);
25028 __extension__ extern __inline int32x2_t
25029 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25030 vrshl_s32 (int32x2_t __a, int32x2_t __b)
25032 return (int32x2_t) __builtin_aarch64_srshlv2si (__a, __b);
25035 __extension__ extern __inline int64x1_t
25036 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25037 vrshl_s64 (int64x1_t __a, int64x1_t __b)
25039 return (int64x1_t) {__builtin_aarch64_srshldi (__a[0], __b[0])};
25042 __extension__ extern __inline uint8x8_t
25043 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25044 vrshl_u8 (uint8x8_t __a, int8x8_t __b)
25046 return __builtin_aarch64_urshlv8qi_uus (__a, __b);
25049 __extension__ extern __inline uint16x4_t
25050 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25051 vrshl_u16 (uint16x4_t __a, int16x4_t __b)
25053 return __builtin_aarch64_urshlv4hi_uus (__a, __b);
25056 __extension__ extern __inline uint32x2_t
25057 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25058 vrshl_u32 (uint32x2_t __a, int32x2_t __b)
25060 return __builtin_aarch64_urshlv2si_uus (__a, __b);
25063 __extension__ extern __inline uint64x1_t
25064 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25065 vrshl_u64 (uint64x1_t __a, int64x1_t __b)
25067 return (uint64x1_t) {__builtin_aarch64_urshldi_uus (__a[0], __b[0])};
25070 __extension__ extern __inline int8x16_t
25071 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25072 vrshlq_s8 (int8x16_t __a, int8x16_t __b)
25074 return (int8x16_t) __builtin_aarch64_srshlv16qi (__a, __b);
25077 __extension__ extern __inline int16x8_t
25078 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25079 vrshlq_s16 (int16x8_t __a, int16x8_t __b)
25081 return (int16x8_t) __builtin_aarch64_srshlv8hi (__a, __b);
25084 __extension__ extern __inline int32x4_t
25085 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25086 vrshlq_s32 (int32x4_t __a, int32x4_t __b)
25088 return (int32x4_t) __builtin_aarch64_srshlv4si (__a, __b);
25091 __extension__ extern __inline int64x2_t
25092 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25093 vrshlq_s64 (int64x2_t __a, int64x2_t __b)
25095 return (int64x2_t) __builtin_aarch64_srshlv2di (__a, __b);
25098 __extension__ extern __inline uint8x16_t
25099 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25100 vrshlq_u8 (uint8x16_t __a, int8x16_t __b)
25102 return __builtin_aarch64_urshlv16qi_uus (__a, __b);
25105 __extension__ extern __inline uint16x8_t
25106 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25107 vrshlq_u16 (uint16x8_t __a, int16x8_t __b)
25109 return __builtin_aarch64_urshlv8hi_uus (__a, __b);
25112 __extension__ extern __inline uint32x4_t
25113 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25114 vrshlq_u32 (uint32x4_t __a, int32x4_t __b)
25116 return __builtin_aarch64_urshlv4si_uus (__a, __b);
25119 __extension__ extern __inline uint64x2_t
25120 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25121 vrshlq_u64 (uint64x2_t __a, int64x2_t __b)
25123 return __builtin_aarch64_urshlv2di_uus (__a, __b);
25126 __extension__ extern __inline int64_t
25127 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25128 vrshld_s64 (int64_t __a, int64_t __b)
25130 return __builtin_aarch64_srshldi (__a, __b);
25133 __extension__ extern __inline uint64_t
25134 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25135 vrshld_u64 (uint64_t __a, int64_t __b)
25137 return __builtin_aarch64_urshldi_uus (__a, __b);
25140 /* vrshr */
25142 __extension__ extern __inline int8x8_t
25143 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25144 vrshr_n_s8 (int8x8_t __a, const int __b)
25146 return (int8x8_t) __builtin_aarch64_srshr_nv8qi (__a, __b);
25149 __extension__ extern __inline int16x4_t
25150 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25151 vrshr_n_s16 (int16x4_t __a, const int __b)
25153 return (int16x4_t) __builtin_aarch64_srshr_nv4hi (__a, __b);
25156 __extension__ extern __inline int32x2_t
25157 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25158 vrshr_n_s32 (int32x2_t __a, const int __b)
25160 return (int32x2_t) __builtin_aarch64_srshr_nv2si (__a, __b);
25163 __extension__ extern __inline int64x1_t
25164 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25165 vrshr_n_s64 (int64x1_t __a, const int __b)
25167 return (int64x1_t) {__builtin_aarch64_srshr_ndi (__a[0], __b)};
25170 __extension__ extern __inline uint8x8_t
25171 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25172 vrshr_n_u8 (uint8x8_t __a, const int __b)
25174 return __builtin_aarch64_urshr_nv8qi_uus (__a, __b);
25177 __extension__ extern __inline uint16x4_t
25178 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25179 vrshr_n_u16 (uint16x4_t __a, const int __b)
25181 return __builtin_aarch64_urshr_nv4hi_uus (__a, __b);
25184 __extension__ extern __inline uint32x2_t
25185 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25186 vrshr_n_u32 (uint32x2_t __a, const int __b)
25188 return __builtin_aarch64_urshr_nv2si_uus (__a, __b);
25191 __extension__ extern __inline uint64x1_t
25192 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25193 vrshr_n_u64 (uint64x1_t __a, const int __b)
25195 return (uint64x1_t) {__builtin_aarch64_urshr_ndi_uus (__a[0], __b)};
25198 __extension__ extern __inline int8x16_t
25199 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25200 vrshrq_n_s8 (int8x16_t __a, const int __b)
25202 return (int8x16_t) __builtin_aarch64_srshr_nv16qi (__a, __b);
25205 __extension__ extern __inline int16x8_t
25206 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25207 vrshrq_n_s16 (int16x8_t __a, const int __b)
25209 return (int16x8_t) __builtin_aarch64_srshr_nv8hi (__a, __b);
25212 __extension__ extern __inline int32x4_t
25213 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25214 vrshrq_n_s32 (int32x4_t __a, const int __b)
25216 return (int32x4_t) __builtin_aarch64_srshr_nv4si (__a, __b);
25219 __extension__ extern __inline int64x2_t
25220 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25221 vrshrq_n_s64 (int64x2_t __a, const int __b)
25223 return (int64x2_t) __builtin_aarch64_srshr_nv2di (__a, __b);
25226 __extension__ extern __inline uint8x16_t
25227 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25228 vrshrq_n_u8 (uint8x16_t __a, const int __b)
25230 return __builtin_aarch64_urshr_nv16qi_uus (__a, __b);
25233 __extension__ extern __inline uint16x8_t
25234 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25235 vrshrq_n_u16 (uint16x8_t __a, const int __b)
25237 return __builtin_aarch64_urshr_nv8hi_uus (__a, __b);
25240 __extension__ extern __inline uint32x4_t
25241 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25242 vrshrq_n_u32 (uint32x4_t __a, const int __b)
25244 return __builtin_aarch64_urshr_nv4si_uus (__a, __b);
25247 __extension__ extern __inline uint64x2_t
25248 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25249 vrshrq_n_u64 (uint64x2_t __a, const int __b)
25251 return __builtin_aarch64_urshr_nv2di_uus (__a, __b);
25254 __extension__ extern __inline int64_t
25255 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25256 vrshrd_n_s64 (int64_t __a, const int __b)
25258 return __builtin_aarch64_srshr_ndi (__a, __b);
25261 __extension__ extern __inline uint64_t
25262 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25263 vrshrd_n_u64 (uint64_t __a, const int __b)
25265 return __builtin_aarch64_urshr_ndi_uus (__a, __b);
25268 /* vrsqrte. */
25270 __extension__ extern __inline float32_t
25271 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25272 vrsqrtes_f32 (float32_t __a)
25274 return __builtin_aarch64_rsqrtesf (__a);
25277 __extension__ extern __inline float64_t
25278 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25279 vrsqrted_f64 (float64_t __a)
25281 return __builtin_aarch64_rsqrtedf (__a);
25284 __extension__ extern __inline float32x2_t
25285 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25286 vrsqrte_f32 (float32x2_t __a)
25288 return __builtin_aarch64_rsqrtev2sf (__a);
25291 __extension__ extern __inline float64x1_t
25292 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25293 vrsqrte_f64 (float64x1_t __a)
25295 return (float64x1_t) {vrsqrted_f64 (vget_lane_f64 (__a, 0))};
25298 __extension__ extern __inline float32x4_t
25299 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25300 vrsqrteq_f32 (float32x4_t __a)
25302 return __builtin_aarch64_rsqrtev4sf (__a);
25305 __extension__ extern __inline float64x2_t
25306 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25307 vrsqrteq_f64 (float64x2_t __a)
25309 return __builtin_aarch64_rsqrtev2df (__a);
25312 /* vrsqrts. */
25314 __extension__ extern __inline float32_t
25315 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25316 vrsqrtss_f32 (float32_t __a, float32_t __b)
25318 return __builtin_aarch64_rsqrtssf (__a, __b);
25321 __extension__ extern __inline float64_t
25322 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25323 vrsqrtsd_f64 (float64_t __a, float64_t __b)
25325 return __builtin_aarch64_rsqrtsdf (__a, __b);
25328 __extension__ extern __inline float32x2_t
25329 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25330 vrsqrts_f32 (float32x2_t __a, float32x2_t __b)
25332 return __builtin_aarch64_rsqrtsv2sf (__a, __b);
25335 __extension__ extern __inline float64x1_t
25336 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25337 vrsqrts_f64 (float64x1_t __a, float64x1_t __b)
25339 return (float64x1_t) {vrsqrtsd_f64 (vget_lane_f64 (__a, 0),
25340 vget_lane_f64 (__b, 0))};
25343 __extension__ extern __inline float32x4_t
25344 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25345 vrsqrtsq_f32 (float32x4_t __a, float32x4_t __b)
25347 return __builtin_aarch64_rsqrtsv4sf (__a, __b);
25350 __extension__ extern __inline float64x2_t
25351 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25352 vrsqrtsq_f64 (float64x2_t __a, float64x2_t __b)
25354 return __builtin_aarch64_rsqrtsv2df (__a, __b);
25357 /* vrsra */
25359 __extension__ extern __inline int8x8_t
25360 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25361 vrsra_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
25363 return (int8x8_t) __builtin_aarch64_srsra_nv8qi (__a, __b, __c);
25366 __extension__ extern __inline int16x4_t
25367 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25368 vrsra_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
25370 return (int16x4_t) __builtin_aarch64_srsra_nv4hi (__a, __b, __c);
25373 __extension__ extern __inline int32x2_t
25374 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25375 vrsra_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
25377 return (int32x2_t) __builtin_aarch64_srsra_nv2si (__a, __b, __c);
25380 __extension__ extern __inline int64x1_t
25381 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25382 vrsra_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
25384 return (int64x1_t) {__builtin_aarch64_srsra_ndi (__a[0], __b[0], __c)};
25387 __extension__ extern __inline uint8x8_t
25388 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25389 vrsra_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
25391 return __builtin_aarch64_ursra_nv8qi_uuus (__a, __b, __c);
25394 __extension__ extern __inline uint16x4_t
25395 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25396 vrsra_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
25398 return __builtin_aarch64_ursra_nv4hi_uuus (__a, __b, __c);
25401 __extension__ extern __inline uint32x2_t
25402 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25403 vrsra_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
25405 return __builtin_aarch64_ursra_nv2si_uuus (__a, __b, __c);
25408 __extension__ extern __inline uint64x1_t
25409 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25410 vrsra_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
25412 return (uint64x1_t) {__builtin_aarch64_ursra_ndi_uuus (__a[0], __b[0], __c)};
25415 __extension__ extern __inline int8x16_t
25416 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25417 vrsraq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
25419 return (int8x16_t) __builtin_aarch64_srsra_nv16qi (__a, __b, __c);
25422 __extension__ extern __inline int16x8_t
25423 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25424 vrsraq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
25426 return (int16x8_t) __builtin_aarch64_srsra_nv8hi (__a, __b, __c);
25429 __extension__ extern __inline int32x4_t
25430 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25431 vrsraq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
25433 return (int32x4_t) __builtin_aarch64_srsra_nv4si (__a, __b, __c);
25436 __extension__ extern __inline int64x2_t
25437 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25438 vrsraq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
25440 return (int64x2_t) __builtin_aarch64_srsra_nv2di (__a, __b, __c);
25443 __extension__ extern __inline uint8x16_t
25444 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25445 vrsraq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
25447 return __builtin_aarch64_ursra_nv16qi_uuus (__a, __b, __c);
25450 __extension__ extern __inline uint16x8_t
25451 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25452 vrsraq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
25454 return __builtin_aarch64_ursra_nv8hi_uuus (__a, __b, __c);
25457 __extension__ extern __inline uint32x4_t
25458 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25459 vrsraq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
25461 return __builtin_aarch64_ursra_nv4si_uuus (__a, __b, __c);
25464 __extension__ extern __inline uint64x2_t
25465 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25466 vrsraq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
25468 return __builtin_aarch64_ursra_nv2di_uuus (__a, __b, __c);
25471 __extension__ extern __inline int64_t
25472 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25473 vrsrad_n_s64 (int64_t __a, int64_t __b, const int __c)
25475 return __builtin_aarch64_srsra_ndi (__a, __b, __c);
25478 __extension__ extern __inline uint64_t
25479 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25480 vrsrad_n_u64 (uint64_t __a, uint64_t __b, const int __c)
25482 return __builtin_aarch64_ursra_ndi_uuus (__a, __b, __c);
25485 #pragma GCC push_options
25486 #pragma GCC target ("+nothing+crypto")
25488 /* vsha1 */
25490 __extension__ extern __inline uint32x4_t
25491 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25492 vsha1cq_u32 (uint32x4_t hash_abcd, uint32_t hash_e, uint32x4_t wk)
25494 return __builtin_aarch64_crypto_sha1cv4si_uuuu (hash_abcd, hash_e, wk);
25497 __extension__ extern __inline uint32x4_t
25498 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25499 vsha1mq_u32 (uint32x4_t hash_abcd, uint32_t hash_e, uint32x4_t wk)
25501 return __builtin_aarch64_crypto_sha1mv4si_uuuu (hash_abcd, hash_e, wk);
25504 __extension__ extern __inline uint32x4_t
25505 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25506 vsha1pq_u32 (uint32x4_t hash_abcd, uint32_t hash_e, uint32x4_t wk)
25508 return __builtin_aarch64_crypto_sha1pv4si_uuuu (hash_abcd, hash_e, wk);
25511 __extension__ extern __inline uint32_t
25512 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25513 vsha1h_u32 (uint32_t hash_e)
25515 return __builtin_aarch64_crypto_sha1hsi_uu (hash_e);
25518 __extension__ extern __inline uint32x4_t
25519 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25520 vsha1su0q_u32 (uint32x4_t w0_3, uint32x4_t w4_7, uint32x4_t w8_11)
25522 return __builtin_aarch64_crypto_sha1su0v4si_uuuu (w0_3, w4_7, w8_11);
25525 __extension__ extern __inline uint32x4_t
25526 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25527 vsha1su1q_u32 (uint32x4_t tw0_3, uint32x4_t w12_15)
25529 return __builtin_aarch64_crypto_sha1su1v4si_uuu (tw0_3, w12_15);
25532 __extension__ extern __inline uint32x4_t
25533 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25534 vsha256hq_u32 (uint32x4_t hash_abcd, uint32x4_t hash_efgh, uint32x4_t wk)
25536 return __builtin_aarch64_crypto_sha256hv4si_uuuu (hash_abcd, hash_efgh, wk);
25539 __extension__ extern __inline uint32x4_t
25540 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25541 vsha256h2q_u32 (uint32x4_t hash_efgh, uint32x4_t hash_abcd, uint32x4_t wk)
25543 return __builtin_aarch64_crypto_sha256h2v4si_uuuu (hash_efgh, hash_abcd, wk);
25546 __extension__ extern __inline uint32x4_t
25547 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25548 vsha256su0q_u32 (uint32x4_t w0_3, uint32x4_t w4_7)
25550 return __builtin_aarch64_crypto_sha256su0v4si_uuu (w0_3, w4_7);
25553 __extension__ extern __inline uint32x4_t
25554 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25555 vsha256su1q_u32 (uint32x4_t tw0_3, uint32x4_t w8_11, uint32x4_t w12_15)
25557 return __builtin_aarch64_crypto_sha256su1v4si_uuuu (tw0_3, w8_11, w12_15);
25560 __extension__ extern __inline poly128_t
25561 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25562 vmull_p64 (poly64_t a, poly64_t b)
25564 return
25565 __builtin_aarch64_crypto_pmulldi_ppp (a, b);
25568 __extension__ extern __inline poly128_t
25569 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25570 vmull_high_p64 (poly64x2_t a, poly64x2_t b)
25572 return __builtin_aarch64_crypto_pmullv2di_ppp (a, b);
25575 #pragma GCC pop_options
25577 /* vshl */
25579 __extension__ extern __inline int8x8_t
25580 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25581 vshl_n_s8 (int8x8_t __a, const int __b)
25583 return (int8x8_t) __builtin_aarch64_ashlv8qi (__a, __b);
25586 __extension__ extern __inline int16x4_t
25587 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25588 vshl_n_s16 (int16x4_t __a, const int __b)
25590 return (int16x4_t) __builtin_aarch64_ashlv4hi (__a, __b);
25593 __extension__ extern __inline int32x2_t
25594 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25595 vshl_n_s32 (int32x2_t __a, const int __b)
25597 return (int32x2_t) __builtin_aarch64_ashlv2si (__a, __b);
25600 __extension__ extern __inline int64x1_t
25601 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25602 vshl_n_s64 (int64x1_t __a, const int __b)
25604 return (int64x1_t) {__builtin_aarch64_ashldi (__a[0], __b)};
25607 __extension__ extern __inline uint8x8_t
25608 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25609 vshl_n_u8 (uint8x8_t __a, const int __b)
25611 return (uint8x8_t) __builtin_aarch64_ashlv8qi ((int8x8_t) __a, __b);
25614 __extension__ extern __inline uint16x4_t
25615 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25616 vshl_n_u16 (uint16x4_t __a, const int __b)
25618 return (uint16x4_t) __builtin_aarch64_ashlv4hi ((int16x4_t) __a, __b);
25621 __extension__ extern __inline uint32x2_t
25622 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25623 vshl_n_u32 (uint32x2_t __a, const int __b)
25625 return (uint32x2_t) __builtin_aarch64_ashlv2si ((int32x2_t) __a, __b);
25628 __extension__ extern __inline uint64x1_t
25629 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25630 vshl_n_u64 (uint64x1_t __a, const int __b)
25632 return (uint64x1_t) {__builtin_aarch64_ashldi ((int64_t) __a[0], __b)};
25635 __extension__ extern __inline int8x16_t
25636 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25637 vshlq_n_s8 (int8x16_t __a, const int __b)
25639 return (int8x16_t) __builtin_aarch64_ashlv16qi (__a, __b);
25642 __extension__ extern __inline int16x8_t
25643 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25644 vshlq_n_s16 (int16x8_t __a, const int __b)
25646 return (int16x8_t) __builtin_aarch64_ashlv8hi (__a, __b);
25649 __extension__ extern __inline int32x4_t
25650 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25651 vshlq_n_s32 (int32x4_t __a, const int __b)
25653 return (int32x4_t) __builtin_aarch64_ashlv4si (__a, __b);
25656 __extension__ extern __inline int64x2_t
25657 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25658 vshlq_n_s64 (int64x2_t __a, const int __b)
25660 return (int64x2_t) __builtin_aarch64_ashlv2di (__a, __b);
25663 __extension__ extern __inline uint8x16_t
25664 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25665 vshlq_n_u8 (uint8x16_t __a, const int __b)
25667 return (uint8x16_t) __builtin_aarch64_ashlv16qi ((int8x16_t) __a, __b);
25670 __extension__ extern __inline uint16x8_t
25671 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25672 vshlq_n_u16 (uint16x8_t __a, const int __b)
25674 return (uint16x8_t) __builtin_aarch64_ashlv8hi ((int16x8_t) __a, __b);
25677 __extension__ extern __inline uint32x4_t
25678 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25679 vshlq_n_u32 (uint32x4_t __a, const int __b)
25681 return (uint32x4_t) __builtin_aarch64_ashlv4si ((int32x4_t) __a, __b);
25684 __extension__ extern __inline uint64x2_t
25685 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25686 vshlq_n_u64 (uint64x2_t __a, const int __b)
25688 return (uint64x2_t) __builtin_aarch64_ashlv2di ((int64x2_t) __a, __b);
25691 __extension__ extern __inline int64_t
25692 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25693 vshld_n_s64 (int64_t __a, const int __b)
25695 return __builtin_aarch64_ashldi (__a, __b);
25698 __extension__ extern __inline uint64_t
25699 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25700 vshld_n_u64 (uint64_t __a, const int __b)
25702 return (uint64_t) __builtin_aarch64_ashldi (__a, __b);
25705 __extension__ extern __inline int8x8_t
25706 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25707 vshl_s8 (int8x8_t __a, int8x8_t __b)
25709 return __builtin_aarch64_sshlv8qi (__a, __b);
25712 __extension__ extern __inline int16x4_t
25713 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25714 vshl_s16 (int16x4_t __a, int16x4_t __b)
25716 return __builtin_aarch64_sshlv4hi (__a, __b);
25719 __extension__ extern __inline int32x2_t
25720 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25721 vshl_s32 (int32x2_t __a, int32x2_t __b)
25723 return __builtin_aarch64_sshlv2si (__a, __b);
25726 __extension__ extern __inline int64x1_t
25727 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25728 vshl_s64 (int64x1_t __a, int64x1_t __b)
25730 return (int64x1_t) {__builtin_aarch64_sshldi (__a[0], __b[0])};
25733 __extension__ extern __inline uint8x8_t
25734 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25735 vshl_u8 (uint8x8_t __a, int8x8_t __b)
25737 return __builtin_aarch64_ushlv8qi_uus (__a, __b);
25740 __extension__ extern __inline uint16x4_t
25741 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25742 vshl_u16 (uint16x4_t __a, int16x4_t __b)
25744 return __builtin_aarch64_ushlv4hi_uus (__a, __b);
25747 __extension__ extern __inline uint32x2_t
25748 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25749 vshl_u32 (uint32x2_t __a, int32x2_t __b)
25751 return __builtin_aarch64_ushlv2si_uus (__a, __b);
25754 __extension__ extern __inline uint64x1_t
25755 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25756 vshl_u64 (uint64x1_t __a, int64x1_t __b)
25758 return (uint64x1_t) {__builtin_aarch64_ushldi_uus (__a[0], __b[0])};
25761 __extension__ extern __inline int8x16_t
25762 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25763 vshlq_s8 (int8x16_t __a, int8x16_t __b)
25765 return __builtin_aarch64_sshlv16qi (__a, __b);
25768 __extension__ extern __inline int16x8_t
25769 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25770 vshlq_s16 (int16x8_t __a, int16x8_t __b)
25772 return __builtin_aarch64_sshlv8hi (__a, __b);
25775 __extension__ extern __inline int32x4_t
25776 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25777 vshlq_s32 (int32x4_t __a, int32x4_t __b)
25779 return __builtin_aarch64_sshlv4si (__a, __b);
25782 __extension__ extern __inline int64x2_t
25783 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25784 vshlq_s64 (int64x2_t __a, int64x2_t __b)
25786 return __builtin_aarch64_sshlv2di (__a, __b);
25789 __extension__ extern __inline uint8x16_t
25790 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25791 vshlq_u8 (uint8x16_t __a, int8x16_t __b)
25793 return __builtin_aarch64_ushlv16qi_uus (__a, __b);
25796 __extension__ extern __inline uint16x8_t
25797 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25798 vshlq_u16 (uint16x8_t __a, int16x8_t __b)
25800 return __builtin_aarch64_ushlv8hi_uus (__a, __b);
25803 __extension__ extern __inline uint32x4_t
25804 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25805 vshlq_u32 (uint32x4_t __a, int32x4_t __b)
25807 return __builtin_aarch64_ushlv4si_uus (__a, __b);
25810 __extension__ extern __inline uint64x2_t
25811 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25812 vshlq_u64 (uint64x2_t __a, int64x2_t __b)
25814 return __builtin_aarch64_ushlv2di_uus (__a, __b);
25817 __extension__ extern __inline int64_t
25818 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25819 vshld_s64 (int64_t __a, int64_t __b)
25821 return __builtin_aarch64_sshldi (__a, __b);
25824 __extension__ extern __inline uint64_t
25825 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25826 vshld_u64 (uint64_t __a, uint64_t __b)
25828 return __builtin_aarch64_ushldi_uus (__a, __b);
25831 __extension__ extern __inline int16x8_t
25832 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25833 vshll_high_n_s8 (int8x16_t __a, const int __b)
25835 return __builtin_aarch64_sshll2_nv16qi (__a, __b);
25838 __extension__ extern __inline int32x4_t
25839 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25840 vshll_high_n_s16 (int16x8_t __a, const int __b)
25842 return __builtin_aarch64_sshll2_nv8hi (__a, __b);
25845 __extension__ extern __inline int64x2_t
25846 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25847 vshll_high_n_s32 (int32x4_t __a, const int __b)
25849 return __builtin_aarch64_sshll2_nv4si (__a, __b);
25852 __extension__ extern __inline uint16x8_t
25853 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25854 vshll_high_n_u8 (uint8x16_t __a, const int __b)
25856 return (uint16x8_t) __builtin_aarch64_ushll2_nv16qi ((int8x16_t) __a, __b);
25859 __extension__ extern __inline uint32x4_t
25860 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25861 vshll_high_n_u16 (uint16x8_t __a, const int __b)
25863 return (uint32x4_t) __builtin_aarch64_ushll2_nv8hi ((int16x8_t) __a, __b);
25866 __extension__ extern __inline uint64x2_t
25867 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25868 vshll_high_n_u32 (uint32x4_t __a, const int __b)
25870 return (uint64x2_t) __builtin_aarch64_ushll2_nv4si ((int32x4_t) __a, __b);
25873 __extension__ extern __inline int16x8_t
25874 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25875 vshll_n_s8 (int8x8_t __a, const int __b)
25877 return __builtin_aarch64_sshll_nv8qi (__a, __b);
25880 __extension__ extern __inline int32x4_t
25881 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25882 vshll_n_s16 (int16x4_t __a, const int __b)
25884 return __builtin_aarch64_sshll_nv4hi (__a, __b);
25887 __extension__ extern __inline int64x2_t
25888 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25889 vshll_n_s32 (int32x2_t __a, const int __b)
25891 return __builtin_aarch64_sshll_nv2si (__a, __b);
25894 __extension__ extern __inline uint16x8_t
25895 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25896 vshll_n_u8 (uint8x8_t __a, const int __b)
25898 return __builtin_aarch64_ushll_nv8qi_uus (__a, __b);
25901 __extension__ extern __inline uint32x4_t
25902 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25903 vshll_n_u16 (uint16x4_t __a, const int __b)
25905 return __builtin_aarch64_ushll_nv4hi_uus (__a, __b);
25908 __extension__ extern __inline uint64x2_t
25909 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25910 vshll_n_u32 (uint32x2_t __a, const int __b)
25912 return __builtin_aarch64_ushll_nv2si_uus (__a, __b);
25915 /* vshr */
25917 __extension__ extern __inline int8x8_t
25918 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25919 vshr_n_s8 (int8x8_t __a, const int __b)
25921 return (int8x8_t) __builtin_aarch64_ashrv8qi (__a, __b);
25924 __extension__ extern __inline int16x4_t
25925 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25926 vshr_n_s16 (int16x4_t __a, const int __b)
25928 return (int16x4_t) __builtin_aarch64_ashrv4hi (__a, __b);
25931 __extension__ extern __inline int32x2_t
25932 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25933 vshr_n_s32 (int32x2_t __a, const int __b)
25935 return (int32x2_t) __builtin_aarch64_ashrv2si (__a, __b);
25938 __extension__ extern __inline int64x1_t
25939 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25940 vshr_n_s64 (int64x1_t __a, const int __b)
25942 return (int64x1_t) {__builtin_aarch64_ashr_simddi (__a[0], __b)};
25945 __extension__ extern __inline uint8x8_t
25946 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25947 vshr_n_u8 (uint8x8_t __a, const int __b)
25949 return (uint8x8_t) __builtin_aarch64_lshrv8qi ((int8x8_t) __a, __b);
25952 __extension__ extern __inline uint16x4_t
25953 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25954 vshr_n_u16 (uint16x4_t __a, const int __b)
25956 return (uint16x4_t) __builtin_aarch64_lshrv4hi ((int16x4_t) __a, __b);
25959 __extension__ extern __inline uint32x2_t
25960 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25961 vshr_n_u32 (uint32x2_t __a, const int __b)
25963 return (uint32x2_t) __builtin_aarch64_lshrv2si ((int32x2_t) __a, __b);
25966 __extension__ extern __inline uint64x1_t
25967 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25968 vshr_n_u64 (uint64x1_t __a, const int __b)
25970 return (uint64x1_t) {__builtin_aarch64_lshr_simddi_uus ( __a[0], __b)};
25973 __extension__ extern __inline int8x16_t
25974 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25975 vshrq_n_s8 (int8x16_t __a, const int __b)
25977 return (int8x16_t) __builtin_aarch64_ashrv16qi (__a, __b);
25980 __extension__ extern __inline int16x8_t
25981 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25982 vshrq_n_s16 (int16x8_t __a, const int __b)
25984 return (int16x8_t) __builtin_aarch64_ashrv8hi (__a, __b);
25987 __extension__ extern __inline int32x4_t
25988 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25989 vshrq_n_s32 (int32x4_t __a, const int __b)
25991 return (int32x4_t) __builtin_aarch64_ashrv4si (__a, __b);
25994 __extension__ extern __inline int64x2_t
25995 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25996 vshrq_n_s64 (int64x2_t __a, const int __b)
25998 return (int64x2_t) __builtin_aarch64_ashrv2di (__a, __b);
26001 __extension__ extern __inline uint8x16_t
26002 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26003 vshrq_n_u8 (uint8x16_t __a, const int __b)
26005 return (uint8x16_t) __builtin_aarch64_lshrv16qi ((int8x16_t) __a, __b);
26008 __extension__ extern __inline uint16x8_t
26009 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26010 vshrq_n_u16 (uint16x8_t __a, const int __b)
26012 return (uint16x8_t) __builtin_aarch64_lshrv8hi ((int16x8_t) __a, __b);
26015 __extension__ extern __inline uint32x4_t
26016 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26017 vshrq_n_u32 (uint32x4_t __a, const int __b)
26019 return (uint32x4_t) __builtin_aarch64_lshrv4si ((int32x4_t) __a, __b);
26022 __extension__ extern __inline uint64x2_t
26023 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26024 vshrq_n_u64 (uint64x2_t __a, const int __b)
26026 return (uint64x2_t) __builtin_aarch64_lshrv2di ((int64x2_t) __a, __b);
26029 __extension__ extern __inline int64_t
26030 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26031 vshrd_n_s64 (int64_t __a, const int __b)
26033 return __builtin_aarch64_ashr_simddi (__a, __b);
26036 __extension__ extern __inline uint64_t
26037 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26038 vshrd_n_u64 (uint64_t __a, const int __b)
26040 return __builtin_aarch64_lshr_simddi_uus (__a, __b);
26043 /* vsli */
26045 __extension__ extern __inline int8x8_t
26046 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26047 vsli_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
26049 return (int8x8_t) __builtin_aarch64_ssli_nv8qi (__a, __b, __c);
26052 __extension__ extern __inline int16x4_t
26053 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26054 vsli_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
26056 return (int16x4_t) __builtin_aarch64_ssli_nv4hi (__a, __b, __c);
26059 __extension__ extern __inline int32x2_t
26060 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26061 vsli_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
26063 return (int32x2_t) __builtin_aarch64_ssli_nv2si (__a, __b, __c);
26066 __extension__ extern __inline int64x1_t
26067 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26068 vsli_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
26070 return (int64x1_t) {__builtin_aarch64_ssli_ndi (__a[0], __b[0], __c)};
26073 __extension__ extern __inline uint8x8_t
26074 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26075 vsli_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
26077 return __builtin_aarch64_usli_nv8qi_uuus (__a, __b, __c);
26080 __extension__ extern __inline uint16x4_t
26081 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26082 vsli_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
26084 return __builtin_aarch64_usli_nv4hi_uuus (__a, __b, __c);
26087 __extension__ extern __inline uint32x2_t
26088 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26089 vsli_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
26091 return __builtin_aarch64_usli_nv2si_uuus (__a, __b, __c);
26094 __extension__ extern __inline uint64x1_t
26095 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26096 vsli_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
26098 return (uint64x1_t) {__builtin_aarch64_usli_ndi_uuus (__a[0], __b[0], __c)};
26101 __extension__ extern __inline poly64x1_t
26102 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26103 vsli_n_p64 (poly64x1_t __a, poly64x1_t __b, const int __c)
26105 return (poly64x1_t) {__builtin_aarch64_ssli_ndi_ppps (__a[0], __b[0], __c)};
26108 __extension__ extern __inline int8x16_t
26109 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26110 vsliq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
26112 return (int8x16_t) __builtin_aarch64_ssli_nv16qi (__a, __b, __c);
26115 __extension__ extern __inline int16x8_t
26116 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26117 vsliq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
26119 return (int16x8_t) __builtin_aarch64_ssli_nv8hi (__a, __b, __c);
26122 __extension__ extern __inline int32x4_t
26123 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26124 vsliq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
26126 return (int32x4_t) __builtin_aarch64_ssli_nv4si (__a, __b, __c);
26129 __extension__ extern __inline int64x2_t
26130 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26131 vsliq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
26133 return (int64x2_t) __builtin_aarch64_ssli_nv2di (__a, __b, __c);
26136 __extension__ extern __inline uint8x16_t
26137 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26138 vsliq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
26140 return __builtin_aarch64_usli_nv16qi_uuus (__a, __b, __c);
26143 __extension__ extern __inline uint16x8_t
26144 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26145 vsliq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
26147 return __builtin_aarch64_usli_nv8hi_uuus (__a, __b, __c);
26150 __extension__ extern __inline uint32x4_t
26151 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26152 vsliq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
26154 return __builtin_aarch64_usli_nv4si_uuus (__a, __b, __c);
26157 __extension__ extern __inline uint64x2_t
26158 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26159 vsliq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
26161 return __builtin_aarch64_usli_nv2di_uuus (__a, __b, __c);
26164 __extension__ extern __inline poly64x2_t
26165 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26166 vsliq_n_p64 (poly64x2_t __a, poly64x2_t __b, const int __c)
26168 return __builtin_aarch64_ssli_nv2di_ppps (__a, __b, __c);
26171 __extension__ extern __inline int64_t
26172 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26173 vslid_n_s64 (int64_t __a, int64_t __b, const int __c)
26175 return __builtin_aarch64_ssli_ndi (__a, __b, __c);
26178 __extension__ extern __inline uint64_t
26179 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26180 vslid_n_u64 (uint64_t __a, uint64_t __b, const int __c)
26182 return __builtin_aarch64_usli_ndi_uuus (__a, __b, __c);
26185 /* vsqadd */
26187 __extension__ extern __inline uint8x8_t
26188 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26189 vsqadd_u8 (uint8x8_t __a, int8x8_t __b)
26191 return __builtin_aarch64_usqaddv8qi_uus (__a, __b);
26194 __extension__ extern __inline uint16x4_t
26195 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26196 vsqadd_u16 (uint16x4_t __a, int16x4_t __b)
26198 return __builtin_aarch64_usqaddv4hi_uus (__a, __b);
26201 __extension__ extern __inline uint32x2_t
26202 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26203 vsqadd_u32 (uint32x2_t __a, int32x2_t __b)
26205 return __builtin_aarch64_usqaddv2si_uus (__a, __b);
26208 __extension__ extern __inline uint64x1_t
26209 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26210 vsqadd_u64 (uint64x1_t __a, int64x1_t __b)
26212 return (uint64x1_t) {__builtin_aarch64_usqadddi_uus (__a[0], __b[0])};
26215 __extension__ extern __inline uint8x16_t
26216 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26217 vsqaddq_u8 (uint8x16_t __a, int8x16_t __b)
26219 return __builtin_aarch64_usqaddv16qi_uus (__a, __b);
26222 __extension__ extern __inline uint16x8_t
26223 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26224 vsqaddq_u16 (uint16x8_t __a, int16x8_t __b)
26226 return __builtin_aarch64_usqaddv8hi_uus (__a, __b);
26229 __extension__ extern __inline uint32x4_t
26230 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26231 vsqaddq_u32 (uint32x4_t __a, int32x4_t __b)
26233 return __builtin_aarch64_usqaddv4si_uus (__a, __b);
26236 __extension__ extern __inline uint64x2_t
26237 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26238 vsqaddq_u64 (uint64x2_t __a, int64x2_t __b)
26240 return __builtin_aarch64_usqaddv2di_uus (__a, __b);
26243 __extension__ extern __inline uint8_t
26244 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26245 vsqaddb_u8 (uint8_t __a, int8_t __b)
26247 return __builtin_aarch64_usqaddqi_uus (__a, __b);
26250 __extension__ extern __inline uint16_t
26251 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26252 vsqaddh_u16 (uint16_t __a, int16_t __b)
26254 return __builtin_aarch64_usqaddhi_uus (__a, __b);
26257 __extension__ extern __inline uint32_t
26258 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26259 vsqadds_u32 (uint32_t __a, int32_t __b)
26261 return __builtin_aarch64_usqaddsi_uus (__a, __b);
26264 __extension__ extern __inline uint64_t
26265 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26266 vsqaddd_u64 (uint64_t __a, int64_t __b)
26268 return __builtin_aarch64_usqadddi_uus (__a, __b);
26271 /* vsqrt */
26272 __extension__ extern __inline float32x2_t
26273 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26274 vsqrt_f32 (float32x2_t a)
26276 return __builtin_aarch64_sqrtv2sf (a);
26279 __extension__ extern __inline float32x4_t
26280 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26281 vsqrtq_f32 (float32x4_t a)
26283 return __builtin_aarch64_sqrtv4sf (a);
26286 __extension__ extern __inline float64x1_t
26287 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26288 vsqrt_f64 (float64x1_t a)
26290 return (float64x1_t) { __builtin_aarch64_sqrtdf (a[0]) };
26293 __extension__ extern __inline float64x2_t
26294 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26295 vsqrtq_f64 (float64x2_t a)
26297 return __builtin_aarch64_sqrtv2df (a);
26300 /* vsra */
26302 __extension__ extern __inline int8x8_t
26303 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26304 vsra_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
26306 return (int8x8_t) __builtin_aarch64_ssra_nv8qi (__a, __b, __c);
26309 __extension__ extern __inline int16x4_t
26310 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26311 vsra_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
26313 return (int16x4_t) __builtin_aarch64_ssra_nv4hi (__a, __b, __c);
26316 __extension__ extern __inline int32x2_t
26317 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26318 vsra_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
26320 return (int32x2_t) __builtin_aarch64_ssra_nv2si (__a, __b, __c);
26323 __extension__ extern __inline int64x1_t
26324 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26325 vsra_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
26327 return (int64x1_t) {__builtin_aarch64_ssra_ndi (__a[0], __b[0], __c)};
26330 __extension__ extern __inline uint8x8_t
26331 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26332 vsra_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
26334 return __builtin_aarch64_usra_nv8qi_uuus (__a, __b, __c);
26337 __extension__ extern __inline uint16x4_t
26338 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26339 vsra_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
26341 return __builtin_aarch64_usra_nv4hi_uuus (__a, __b, __c);
26344 __extension__ extern __inline uint32x2_t
26345 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26346 vsra_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
26348 return __builtin_aarch64_usra_nv2si_uuus (__a, __b, __c);
26351 __extension__ extern __inline uint64x1_t
26352 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26353 vsra_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
26355 return (uint64x1_t) {__builtin_aarch64_usra_ndi_uuus (__a[0], __b[0], __c)};
26358 __extension__ extern __inline int8x16_t
26359 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26360 vsraq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
26362 return (int8x16_t) __builtin_aarch64_ssra_nv16qi (__a, __b, __c);
26365 __extension__ extern __inline int16x8_t
26366 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26367 vsraq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
26369 return (int16x8_t) __builtin_aarch64_ssra_nv8hi (__a, __b, __c);
26372 __extension__ extern __inline int32x4_t
26373 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26374 vsraq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
26376 return (int32x4_t) __builtin_aarch64_ssra_nv4si (__a, __b, __c);
26379 __extension__ extern __inline int64x2_t
26380 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26381 vsraq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
26383 return (int64x2_t) __builtin_aarch64_ssra_nv2di (__a, __b, __c);
26386 __extension__ extern __inline uint8x16_t
26387 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26388 vsraq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
26390 return __builtin_aarch64_usra_nv16qi_uuus (__a, __b, __c);
26393 __extension__ extern __inline uint16x8_t
26394 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26395 vsraq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
26397 return __builtin_aarch64_usra_nv8hi_uuus (__a, __b, __c);
26400 __extension__ extern __inline uint32x4_t
26401 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26402 vsraq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
26404 return __builtin_aarch64_usra_nv4si_uuus (__a, __b, __c);
26407 __extension__ extern __inline uint64x2_t
26408 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26409 vsraq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
26411 return __builtin_aarch64_usra_nv2di_uuus (__a, __b, __c);
26414 __extension__ extern __inline int64_t
26415 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26416 vsrad_n_s64 (int64_t __a, int64_t __b, const int __c)
26418 return __builtin_aarch64_ssra_ndi (__a, __b, __c);
26421 __extension__ extern __inline uint64_t
26422 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26423 vsrad_n_u64 (uint64_t __a, uint64_t __b, const int __c)
26425 return __builtin_aarch64_usra_ndi_uuus (__a, __b, __c);
26428 /* vsri */
26430 __extension__ extern __inline int8x8_t
26431 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26432 vsri_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
26434 return (int8x8_t) __builtin_aarch64_ssri_nv8qi (__a, __b, __c);
26437 __extension__ extern __inline int16x4_t
26438 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26439 vsri_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
26441 return (int16x4_t) __builtin_aarch64_ssri_nv4hi (__a, __b, __c);
26444 __extension__ extern __inline int32x2_t
26445 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26446 vsri_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
26448 return (int32x2_t) __builtin_aarch64_ssri_nv2si (__a, __b, __c);
26451 __extension__ extern __inline int64x1_t
26452 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26453 vsri_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
26455 return (int64x1_t) {__builtin_aarch64_ssri_ndi (__a[0], __b[0], __c)};
26458 __extension__ extern __inline uint8x8_t
26459 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26460 vsri_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
26462 return __builtin_aarch64_usri_nv8qi_uuus (__a, __b, __c);
26465 __extension__ extern __inline uint16x4_t
26466 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26467 vsri_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
26469 return __builtin_aarch64_usri_nv4hi_uuus (__a, __b, __c);
26472 __extension__ extern __inline uint32x2_t
26473 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26474 vsri_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
26476 return __builtin_aarch64_usri_nv2si_uuus (__a, __b, __c);
26479 __extension__ extern __inline uint64x1_t
26480 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26481 vsri_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
26483 return (uint64x1_t) {__builtin_aarch64_usri_ndi_uuus (__a[0], __b[0], __c)};
26486 __extension__ extern __inline int8x16_t
26487 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26488 vsriq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
26490 return (int8x16_t) __builtin_aarch64_ssri_nv16qi (__a, __b, __c);
26493 __extension__ extern __inline int16x8_t
26494 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26495 vsriq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
26497 return (int16x8_t) __builtin_aarch64_ssri_nv8hi (__a, __b, __c);
26500 __extension__ extern __inline int32x4_t
26501 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26502 vsriq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
26504 return (int32x4_t) __builtin_aarch64_ssri_nv4si (__a, __b, __c);
26507 __extension__ extern __inline int64x2_t
26508 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26509 vsriq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
26511 return (int64x2_t) __builtin_aarch64_ssri_nv2di (__a, __b, __c);
26514 __extension__ extern __inline uint8x16_t
26515 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26516 vsriq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
26518 return __builtin_aarch64_usri_nv16qi_uuus (__a, __b, __c);
26521 __extension__ extern __inline uint16x8_t
26522 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26523 vsriq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
26525 return __builtin_aarch64_usri_nv8hi_uuus (__a, __b, __c);
26528 __extension__ extern __inline uint32x4_t
26529 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26530 vsriq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
26532 return __builtin_aarch64_usri_nv4si_uuus (__a, __b, __c);
26535 __extension__ extern __inline uint64x2_t
26536 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26537 vsriq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
26539 return __builtin_aarch64_usri_nv2di_uuus (__a, __b, __c);
26542 __extension__ extern __inline int64_t
26543 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26544 vsrid_n_s64 (int64_t __a, int64_t __b, const int __c)
26546 return __builtin_aarch64_ssri_ndi (__a, __b, __c);
26549 __extension__ extern __inline uint64_t
26550 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26551 vsrid_n_u64 (uint64_t __a, uint64_t __b, const int __c)
26553 return __builtin_aarch64_usri_ndi_uuus (__a, __b, __c);
26556 /* vst1 */
26558 __extension__ extern __inline void
26559 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26560 vst1_f16 (float16_t *__a, float16x4_t __b)
26562 __builtin_aarch64_st1v4hf (__a, __b);
26565 __extension__ extern __inline void
26566 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26567 vst1_f32 (float32_t *a, float32x2_t b)
26569 __builtin_aarch64_st1v2sf ((__builtin_aarch64_simd_sf *) a, b);
26572 __extension__ extern __inline void
26573 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26574 vst1_f64 (float64_t *a, float64x1_t b)
26576 *a = b[0];
26579 __extension__ extern __inline void
26580 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26581 vst1_p8 (poly8_t *a, poly8x8_t b)
26583 __builtin_aarch64_st1v8qi ((__builtin_aarch64_simd_qi *) a,
26584 (int8x8_t) b);
26587 __extension__ extern __inline void
26588 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26589 vst1_p16 (poly16_t *a, poly16x4_t b)
26591 __builtin_aarch64_st1v4hi ((__builtin_aarch64_simd_hi *) a,
26592 (int16x4_t) b);
26595 __extension__ extern __inline void
26596 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26597 vst1_p64 (poly64_t *a, poly64x1_t b)
26599 *a = b[0];
26602 __extension__ extern __inline void
26603 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26604 vst1_s8 (int8_t *a, int8x8_t b)
26606 __builtin_aarch64_st1v8qi ((__builtin_aarch64_simd_qi *) a, b);
26609 __extension__ extern __inline void
26610 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26611 vst1_s16 (int16_t *a, int16x4_t b)
26613 __builtin_aarch64_st1v4hi ((__builtin_aarch64_simd_hi *) a, b);
26616 __extension__ extern __inline void
26617 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26618 vst1_s32 (int32_t *a, int32x2_t b)
26620 __builtin_aarch64_st1v2si ((__builtin_aarch64_simd_si *) a, b);
26623 __extension__ extern __inline void
26624 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26625 vst1_s64 (int64_t *a, int64x1_t b)
26627 *a = b[0];
26630 __extension__ extern __inline void
26631 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26632 vst1_u8 (uint8_t *a, uint8x8_t b)
26634 __builtin_aarch64_st1v8qi ((__builtin_aarch64_simd_qi *) a,
26635 (int8x8_t) b);
26638 __extension__ extern __inline void
26639 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26640 vst1_u16 (uint16_t *a, uint16x4_t b)
26642 __builtin_aarch64_st1v4hi ((__builtin_aarch64_simd_hi *) a,
26643 (int16x4_t) b);
26646 __extension__ extern __inline void
26647 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26648 vst1_u32 (uint32_t *a, uint32x2_t b)
26650 __builtin_aarch64_st1v2si ((__builtin_aarch64_simd_si *) a,
26651 (int32x2_t) b);
26654 __extension__ extern __inline void
26655 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26656 vst1_u64 (uint64_t *a, uint64x1_t b)
26658 *a = b[0];
26661 /* vst1q */
26663 __extension__ extern __inline void
26664 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26665 vst1q_f16 (float16_t *__a, float16x8_t __b)
26667 __builtin_aarch64_st1v8hf (__a, __b);
26670 __extension__ extern __inline void
26671 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26672 vst1q_f32 (float32_t *a, float32x4_t b)
26674 __builtin_aarch64_st1v4sf ((__builtin_aarch64_simd_sf *) a, b);
26677 __extension__ extern __inline void
26678 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26679 vst1q_f64 (float64_t *a, float64x2_t b)
26681 __builtin_aarch64_st1v2df ((__builtin_aarch64_simd_df *) a, b);
26684 __extension__ extern __inline void
26685 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26686 vst1q_p8 (poly8_t *a, poly8x16_t b)
26688 __builtin_aarch64_st1v16qi ((__builtin_aarch64_simd_qi *) a,
26689 (int8x16_t) b);
26692 __extension__ extern __inline void
26693 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26694 vst1q_p16 (poly16_t *a, poly16x8_t b)
26696 __builtin_aarch64_st1v8hi ((__builtin_aarch64_simd_hi *) a,
26697 (int16x8_t) b);
26700 __extension__ extern __inline void
26701 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26702 vst1q_p64 (poly64_t *a, poly64x2_t b)
26704 __builtin_aarch64_st1v2di_sp ((__builtin_aarch64_simd_di *) a,
26705 (poly64x2_t) b);
26708 __extension__ extern __inline void
26709 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26710 vst1q_s8 (int8_t *a, int8x16_t b)
26712 __builtin_aarch64_st1v16qi ((__builtin_aarch64_simd_qi *) a, b);
26715 __extension__ extern __inline void
26716 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26717 vst1q_s16 (int16_t *a, int16x8_t b)
26719 __builtin_aarch64_st1v8hi ((__builtin_aarch64_simd_hi *) a, b);
26722 __extension__ extern __inline void
26723 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26724 vst1q_s32 (int32_t *a, int32x4_t b)
26726 __builtin_aarch64_st1v4si ((__builtin_aarch64_simd_si *) a, b);
26729 __extension__ extern __inline void
26730 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26731 vst1q_s64 (int64_t *a, int64x2_t b)
26733 __builtin_aarch64_st1v2di ((__builtin_aarch64_simd_di *) a, b);
26736 __extension__ extern __inline void
26737 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26738 vst1q_u8 (uint8_t *a, uint8x16_t b)
26740 __builtin_aarch64_st1v16qi ((__builtin_aarch64_simd_qi *) a,
26741 (int8x16_t) b);
26744 __extension__ extern __inline void
26745 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26746 vst1q_u16 (uint16_t *a, uint16x8_t b)
26748 __builtin_aarch64_st1v8hi ((__builtin_aarch64_simd_hi *) a,
26749 (int16x8_t) b);
26752 __extension__ extern __inline void
26753 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26754 vst1q_u32 (uint32_t *a, uint32x4_t b)
26756 __builtin_aarch64_st1v4si ((__builtin_aarch64_simd_si *) a,
26757 (int32x4_t) b);
26760 __extension__ extern __inline void
26761 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26762 vst1q_u64 (uint64_t *a, uint64x2_t b)
26764 __builtin_aarch64_st1v2di ((__builtin_aarch64_simd_di *) a,
26765 (int64x2_t) b);
26768 /* vst1_lane */
26770 __extension__ extern __inline void
26771 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26772 vst1_lane_f16 (float16_t *__a, float16x4_t __b, const int __lane)
26774 *__a = __aarch64_vget_lane_any (__b, __lane);
26777 __extension__ extern __inline void
26778 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26779 vst1_lane_f32 (float32_t *__a, float32x2_t __b, const int __lane)
26781 *__a = __aarch64_vget_lane_any (__b, __lane);
26784 __extension__ extern __inline void
26785 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26786 vst1_lane_f64 (float64_t *__a, float64x1_t __b, const int __lane)
26788 *__a = __aarch64_vget_lane_any (__b, __lane);
26791 __extension__ extern __inline void
26792 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26793 vst1_lane_p8 (poly8_t *__a, poly8x8_t __b, const int __lane)
26795 *__a = __aarch64_vget_lane_any (__b, __lane);
26798 __extension__ extern __inline void
26799 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26800 vst1_lane_p16 (poly16_t *__a, poly16x4_t __b, const int __lane)
26802 *__a = __aarch64_vget_lane_any (__b, __lane);
26805 __extension__ extern __inline void
26806 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26807 vst1_lane_p64 (poly64_t *__a, poly64x1_t __b, const int __lane)
26809 *__a = __aarch64_vget_lane_any (__b, __lane);
26812 __extension__ extern __inline void
26813 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26814 vst1_lane_s8 (int8_t *__a, int8x8_t __b, const int __lane)
26816 *__a = __aarch64_vget_lane_any (__b, __lane);
26819 __extension__ extern __inline void
26820 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26821 vst1_lane_s16 (int16_t *__a, int16x4_t __b, const int __lane)
26823 *__a = __aarch64_vget_lane_any (__b, __lane);
26826 __extension__ extern __inline void
26827 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26828 vst1_lane_s32 (int32_t *__a, int32x2_t __b, const int __lane)
26830 *__a = __aarch64_vget_lane_any (__b, __lane);
26833 __extension__ extern __inline void
26834 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26835 vst1_lane_s64 (int64_t *__a, int64x1_t __b, const int __lane)
26837 *__a = __aarch64_vget_lane_any (__b, __lane);
26840 __extension__ extern __inline void
26841 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26842 vst1_lane_u8 (uint8_t *__a, uint8x8_t __b, const int __lane)
26844 *__a = __aarch64_vget_lane_any (__b, __lane);
26847 __extension__ extern __inline void
26848 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26849 vst1_lane_u16 (uint16_t *__a, uint16x4_t __b, const int __lane)
26851 *__a = __aarch64_vget_lane_any (__b, __lane);
26854 __extension__ extern __inline void
26855 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26856 vst1_lane_u32 (uint32_t *__a, uint32x2_t __b, const int __lane)
26858 *__a = __aarch64_vget_lane_any (__b, __lane);
26861 __extension__ extern __inline void
26862 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26863 vst1_lane_u64 (uint64_t *__a, uint64x1_t __b, const int __lane)
26865 *__a = __aarch64_vget_lane_any (__b, __lane);
26868 /* vst1q_lane */
26870 __extension__ extern __inline void
26871 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26872 vst1q_lane_f16 (float16_t *__a, float16x8_t __b, const int __lane)
26874 *__a = __aarch64_vget_lane_any (__b, __lane);
26877 __extension__ extern __inline void
26878 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26879 vst1q_lane_f32 (float32_t *__a, float32x4_t __b, const int __lane)
26881 *__a = __aarch64_vget_lane_any (__b, __lane);
26884 __extension__ extern __inline void
26885 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26886 vst1q_lane_f64 (float64_t *__a, float64x2_t __b, const int __lane)
26888 *__a = __aarch64_vget_lane_any (__b, __lane);
26891 __extension__ extern __inline void
26892 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26893 vst1q_lane_p8 (poly8_t *__a, poly8x16_t __b, const int __lane)
26895 *__a = __aarch64_vget_lane_any (__b, __lane);
26898 __extension__ extern __inline void
26899 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26900 vst1q_lane_p16 (poly16_t *__a, poly16x8_t __b, const int __lane)
26902 *__a = __aarch64_vget_lane_any (__b, __lane);
26905 __extension__ extern __inline void
26906 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26907 vst1q_lane_p64 (poly64_t *__a, poly64x2_t __b, const int __lane)
26909 *__a = __aarch64_vget_lane_any (__b, __lane);
26912 __extension__ extern __inline void
26913 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26914 vst1q_lane_s8 (int8_t *__a, int8x16_t __b, const int __lane)
26916 *__a = __aarch64_vget_lane_any (__b, __lane);
26919 __extension__ extern __inline void
26920 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26921 vst1q_lane_s16 (int16_t *__a, int16x8_t __b, const int __lane)
26923 *__a = __aarch64_vget_lane_any (__b, __lane);
26926 __extension__ extern __inline void
26927 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26928 vst1q_lane_s32 (int32_t *__a, int32x4_t __b, const int __lane)
26930 *__a = __aarch64_vget_lane_any (__b, __lane);
26933 __extension__ extern __inline void
26934 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26935 vst1q_lane_s64 (int64_t *__a, int64x2_t __b, const int __lane)
26937 *__a = __aarch64_vget_lane_any (__b, __lane);
26940 __extension__ extern __inline void
26941 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26942 vst1q_lane_u8 (uint8_t *__a, uint8x16_t __b, const int __lane)
26944 *__a = __aarch64_vget_lane_any (__b, __lane);
26947 __extension__ extern __inline void
26948 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26949 vst1q_lane_u16 (uint16_t *__a, uint16x8_t __b, const int __lane)
26951 *__a = __aarch64_vget_lane_any (__b, __lane);
26954 __extension__ extern __inline void
26955 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26956 vst1q_lane_u32 (uint32_t *__a, uint32x4_t __b, const int __lane)
26958 *__a = __aarch64_vget_lane_any (__b, __lane);
26961 __extension__ extern __inline void
26962 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26963 vst1q_lane_u64 (uint64_t *__a, uint64x2_t __b, const int __lane)
26965 *__a = __aarch64_vget_lane_any (__b, __lane);
26968 /* vstn */
26970 __extension__ extern __inline void
26971 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26972 vst2_s64 (int64_t * __a, int64x1x2_t val)
26974 __builtin_aarch64_simd_oi __o;
26975 int64x2x2_t temp;
26976 temp.val[0] = vcombine_s64 (val.val[0], vcreate_s64 (__AARCH64_INT64_C (0)));
26977 temp.val[1] = vcombine_s64 (val.val[1], vcreate_s64 (__AARCH64_INT64_C (0)));
26978 __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) temp.val[0], 0);
26979 __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) temp.val[1], 1);
26980 __builtin_aarch64_st2di ((__builtin_aarch64_simd_di *) __a, __o);
26983 __extension__ extern __inline void
26984 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26985 vst2_u64 (uint64_t * __a, uint64x1x2_t val)
26987 __builtin_aarch64_simd_oi __o;
26988 uint64x2x2_t temp;
26989 temp.val[0] = vcombine_u64 (val.val[0], vcreate_u64 (__AARCH64_UINT64_C (0)));
26990 temp.val[1] = vcombine_u64 (val.val[1], vcreate_u64 (__AARCH64_UINT64_C (0)));
26991 __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) temp.val[0], 0);
26992 __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) temp.val[1], 1);
26993 __builtin_aarch64_st2di ((__builtin_aarch64_simd_di *) __a, __o);
26996 __extension__ extern __inline void
26997 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26998 vst2_f64 (float64_t * __a, float64x1x2_t val)
27000 __builtin_aarch64_simd_oi __o;
27001 float64x2x2_t temp;
27002 temp.val[0] = vcombine_f64 (val.val[0], vcreate_f64 (__AARCH64_UINT64_C (0)));
27003 temp.val[1] = vcombine_f64 (val.val[1], vcreate_f64 (__AARCH64_UINT64_C (0)));
27004 __o = __builtin_aarch64_set_qregoiv2df (__o, (float64x2_t) temp.val[0], 0);
27005 __o = __builtin_aarch64_set_qregoiv2df (__o, (float64x2_t) temp.val[1], 1);
27006 __builtin_aarch64_st2df ((__builtin_aarch64_simd_df *) __a, __o);
27009 __extension__ extern __inline void
27010 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27011 vst2_s8 (int8_t * __a, int8x8x2_t val)
27013 __builtin_aarch64_simd_oi __o;
27014 int8x16x2_t temp;
27015 temp.val[0] = vcombine_s8 (val.val[0], vcreate_s8 (__AARCH64_INT64_C (0)));
27016 temp.val[1] = vcombine_s8 (val.val[1], vcreate_s8 (__AARCH64_INT64_C (0)));
27017 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) temp.val[0], 0);
27018 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) temp.val[1], 1);
27019 __builtin_aarch64_st2v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
27022 __extension__ extern __inline void
27023 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27024 vst2_p8 (poly8_t * __a, poly8x8x2_t val)
27026 __builtin_aarch64_simd_oi __o;
27027 poly8x16x2_t temp;
27028 temp.val[0] = vcombine_p8 (val.val[0], vcreate_p8 (__AARCH64_UINT64_C (0)));
27029 temp.val[1] = vcombine_p8 (val.val[1], vcreate_p8 (__AARCH64_UINT64_C (0)));
27030 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) temp.val[0], 0);
27031 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) temp.val[1], 1);
27032 __builtin_aarch64_st2v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
27035 __extension__ extern __inline void
27036 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27037 vst2_s16 (int16_t * __a, int16x4x2_t val)
27039 __builtin_aarch64_simd_oi __o;
27040 int16x8x2_t temp;
27041 temp.val[0] = vcombine_s16 (val.val[0], vcreate_s16 (__AARCH64_INT64_C (0)));
27042 temp.val[1] = vcombine_s16 (val.val[1], vcreate_s16 (__AARCH64_INT64_C (0)));
27043 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) temp.val[0], 0);
27044 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) temp.val[1], 1);
27045 __builtin_aarch64_st2v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
27048 __extension__ extern __inline void
27049 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27050 vst2_p16 (poly16_t * __a, poly16x4x2_t val)
27052 __builtin_aarch64_simd_oi __o;
27053 poly16x8x2_t temp;
27054 temp.val[0] = vcombine_p16 (val.val[0], vcreate_p16 (__AARCH64_UINT64_C (0)));
27055 temp.val[1] = vcombine_p16 (val.val[1], vcreate_p16 (__AARCH64_UINT64_C (0)));
27056 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) temp.val[0], 0);
27057 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) temp.val[1], 1);
27058 __builtin_aarch64_st2v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
27061 __extension__ extern __inline void
27062 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27063 vst2_s32 (int32_t * __a, int32x2x2_t val)
27065 __builtin_aarch64_simd_oi __o;
27066 int32x4x2_t temp;
27067 temp.val[0] = vcombine_s32 (val.val[0], vcreate_s32 (__AARCH64_INT64_C (0)));
27068 temp.val[1] = vcombine_s32 (val.val[1], vcreate_s32 (__AARCH64_INT64_C (0)));
27069 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) temp.val[0], 0);
27070 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) temp.val[1], 1);
27071 __builtin_aarch64_st2v2si ((__builtin_aarch64_simd_si *) __a, __o);
27074 __extension__ extern __inline void
27075 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27076 vst2_u8 (uint8_t * __a, uint8x8x2_t val)
27078 __builtin_aarch64_simd_oi __o;
27079 uint8x16x2_t temp;
27080 temp.val[0] = vcombine_u8 (val.val[0], vcreate_u8 (__AARCH64_UINT64_C (0)));
27081 temp.val[1] = vcombine_u8 (val.val[1], vcreate_u8 (__AARCH64_UINT64_C (0)));
27082 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) temp.val[0], 0);
27083 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) temp.val[1], 1);
27084 __builtin_aarch64_st2v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
27087 __extension__ extern __inline void
27088 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27089 vst2_u16 (uint16_t * __a, uint16x4x2_t val)
27091 __builtin_aarch64_simd_oi __o;
27092 uint16x8x2_t temp;
27093 temp.val[0] = vcombine_u16 (val.val[0], vcreate_u16 (__AARCH64_UINT64_C (0)));
27094 temp.val[1] = vcombine_u16 (val.val[1], vcreate_u16 (__AARCH64_UINT64_C (0)));
27095 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) temp.val[0], 0);
27096 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) temp.val[1], 1);
27097 __builtin_aarch64_st2v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
27100 __extension__ extern __inline void
27101 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27102 vst2_u32 (uint32_t * __a, uint32x2x2_t val)
27104 __builtin_aarch64_simd_oi __o;
27105 uint32x4x2_t temp;
27106 temp.val[0] = vcombine_u32 (val.val[0], vcreate_u32 (__AARCH64_UINT64_C (0)));
27107 temp.val[1] = vcombine_u32 (val.val[1], vcreate_u32 (__AARCH64_UINT64_C (0)));
27108 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) temp.val[0], 0);
27109 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) temp.val[1], 1);
27110 __builtin_aarch64_st2v2si ((__builtin_aarch64_simd_si *) __a, __o);
27113 __extension__ extern __inline void
27114 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27115 vst2_f16 (float16_t * __a, float16x4x2_t val)
27117 __builtin_aarch64_simd_oi __o;
27118 float16x8x2_t temp;
27119 temp.val[0] = vcombine_f16 (val.val[0], vcreate_f16 (__AARCH64_UINT64_C (0)));
27120 temp.val[1] = vcombine_f16 (val.val[1], vcreate_f16 (__AARCH64_UINT64_C (0)));
27121 __o = __builtin_aarch64_set_qregoiv8hf (__o, temp.val[0], 0);
27122 __o = __builtin_aarch64_set_qregoiv8hf (__o, temp.val[1], 1);
27123 __builtin_aarch64_st2v4hf (__a, __o);
27126 __extension__ extern __inline void
27127 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27128 vst2_f32 (float32_t * __a, float32x2x2_t val)
27130 __builtin_aarch64_simd_oi __o;
27131 float32x4x2_t temp;
27132 temp.val[0] = vcombine_f32 (val.val[0], vcreate_f32 (__AARCH64_UINT64_C (0)));
27133 temp.val[1] = vcombine_f32 (val.val[1], vcreate_f32 (__AARCH64_UINT64_C (0)));
27134 __o = __builtin_aarch64_set_qregoiv4sf (__o, (float32x4_t) temp.val[0], 0);
27135 __o = __builtin_aarch64_set_qregoiv4sf (__o, (float32x4_t) temp.val[1], 1);
27136 __builtin_aarch64_st2v2sf ((__builtin_aarch64_simd_sf *) __a, __o);
27139 __extension__ extern __inline void
27140 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27141 vst2_p64 (poly64_t * __a, poly64x1x2_t val)
27143 __builtin_aarch64_simd_oi __o;
27144 poly64x2x2_t temp;
27145 temp.val[0] = vcombine_p64 (val.val[0], vcreate_p64 (__AARCH64_UINT64_C (0)));
27146 temp.val[1] = vcombine_p64 (val.val[1], vcreate_p64 (__AARCH64_UINT64_C (0)));
27147 __o = __builtin_aarch64_set_qregoiv2di_ssps (__o,
27148 (poly64x2_t) temp.val[0], 0);
27149 __o = __builtin_aarch64_set_qregoiv2di_ssps (__o,
27150 (poly64x2_t) temp.val[1], 1);
27151 __builtin_aarch64_st2di ((__builtin_aarch64_simd_di *) __a, __o);
27154 __extension__ extern __inline void
27155 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27156 vst2q_s8 (int8_t * __a, int8x16x2_t val)
27158 __builtin_aarch64_simd_oi __o;
27159 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) val.val[0], 0);
27160 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) val.val[1], 1);
27161 __builtin_aarch64_st2v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
27164 __extension__ extern __inline void
27165 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27166 vst2q_p8 (poly8_t * __a, poly8x16x2_t val)
27168 __builtin_aarch64_simd_oi __o;
27169 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) val.val[0], 0);
27170 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) val.val[1], 1);
27171 __builtin_aarch64_st2v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
27174 __extension__ extern __inline void
27175 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27176 vst2q_s16 (int16_t * __a, int16x8x2_t val)
27178 __builtin_aarch64_simd_oi __o;
27179 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) val.val[0], 0);
27180 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) val.val[1], 1);
27181 __builtin_aarch64_st2v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
27184 __extension__ extern __inline void
27185 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27186 vst2q_p16 (poly16_t * __a, poly16x8x2_t val)
27188 __builtin_aarch64_simd_oi __o;
27189 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) val.val[0], 0);
27190 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) val.val[1], 1);
27191 __builtin_aarch64_st2v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
27194 __extension__ extern __inline void
27195 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27196 vst2q_s32 (int32_t * __a, int32x4x2_t val)
27198 __builtin_aarch64_simd_oi __o;
27199 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) val.val[0], 0);
27200 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) val.val[1], 1);
27201 __builtin_aarch64_st2v4si ((__builtin_aarch64_simd_si *) __a, __o);
27204 __extension__ extern __inline void
27205 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27206 vst2q_s64 (int64_t * __a, int64x2x2_t val)
27208 __builtin_aarch64_simd_oi __o;
27209 __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) val.val[0], 0);
27210 __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) val.val[1], 1);
27211 __builtin_aarch64_st2v2di ((__builtin_aarch64_simd_di *) __a, __o);
27214 __extension__ extern __inline void
27215 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27216 vst2q_u8 (uint8_t * __a, uint8x16x2_t val)
27218 __builtin_aarch64_simd_oi __o;
27219 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) val.val[0], 0);
27220 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) val.val[1], 1);
27221 __builtin_aarch64_st2v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
27224 __extension__ extern __inline void
27225 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27226 vst2q_u16 (uint16_t * __a, uint16x8x2_t val)
27228 __builtin_aarch64_simd_oi __o;
27229 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) val.val[0], 0);
27230 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) val.val[1], 1);
27231 __builtin_aarch64_st2v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
27234 __extension__ extern __inline void
27235 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27236 vst2q_u32 (uint32_t * __a, uint32x4x2_t val)
27238 __builtin_aarch64_simd_oi __o;
27239 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) val.val[0], 0);
27240 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) val.val[1], 1);
27241 __builtin_aarch64_st2v4si ((__builtin_aarch64_simd_si *) __a, __o);
27244 __extension__ extern __inline void
27245 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27246 vst2q_u64 (uint64_t * __a, uint64x2x2_t val)
27248 __builtin_aarch64_simd_oi __o;
27249 __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) val.val[0], 0);
27250 __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) val.val[1], 1);
27251 __builtin_aarch64_st2v2di ((__builtin_aarch64_simd_di *) __a, __o);
27254 __extension__ extern __inline void
27255 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27256 vst2q_f16 (float16_t * __a, float16x8x2_t val)
27258 __builtin_aarch64_simd_oi __o;
27259 __o = __builtin_aarch64_set_qregoiv8hf (__o, val.val[0], 0);
27260 __o = __builtin_aarch64_set_qregoiv8hf (__o, val.val[1], 1);
27261 __builtin_aarch64_st2v8hf (__a, __o);
27264 __extension__ extern __inline void
27265 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27266 vst2q_f32 (float32_t * __a, float32x4x2_t val)
27268 __builtin_aarch64_simd_oi __o;
27269 __o = __builtin_aarch64_set_qregoiv4sf (__o, (float32x4_t) val.val[0], 0);
27270 __o = __builtin_aarch64_set_qregoiv4sf (__o, (float32x4_t) val.val[1], 1);
27271 __builtin_aarch64_st2v4sf ((__builtin_aarch64_simd_sf *) __a, __o);
27274 __extension__ extern __inline void
27275 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27276 vst2q_f64 (float64_t * __a, float64x2x2_t val)
27278 __builtin_aarch64_simd_oi __o;
27279 __o = __builtin_aarch64_set_qregoiv2df (__o, (float64x2_t) val.val[0], 0);
27280 __o = __builtin_aarch64_set_qregoiv2df (__o, (float64x2_t) val.val[1], 1);
27281 __builtin_aarch64_st2v2df ((__builtin_aarch64_simd_df *) __a, __o);
27284 __extension__ extern __inline void
27285 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27286 vst2q_p64 (poly64_t * __a, poly64x2x2_t val)
27288 __builtin_aarch64_simd_oi __o;
27289 __o = __builtin_aarch64_set_qregoiv2di_ssps (__o,
27290 (poly64x2_t) val.val[0], 0);
27291 __o = __builtin_aarch64_set_qregoiv2di_ssps (__o,
27292 (poly64x2_t) val.val[1], 1);
27293 __builtin_aarch64_st2v2di ((__builtin_aarch64_simd_di *) __a, __o);
27296 __extension__ extern __inline void
27297 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27298 vst3_s64 (int64_t * __a, int64x1x3_t val)
27300 __builtin_aarch64_simd_ci __o;
27301 int64x2x3_t temp;
27302 temp.val[0] = vcombine_s64 (val.val[0], vcreate_s64 (__AARCH64_INT64_C (0)));
27303 temp.val[1] = vcombine_s64 (val.val[1], vcreate_s64 (__AARCH64_INT64_C (0)));
27304 temp.val[2] = vcombine_s64 (val.val[2], vcreate_s64 (__AARCH64_INT64_C (0)));
27305 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) temp.val[0], 0);
27306 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) temp.val[1], 1);
27307 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) temp.val[2], 2);
27308 __builtin_aarch64_st3di ((__builtin_aarch64_simd_di *) __a, __o);
27311 __extension__ extern __inline void
27312 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27313 vst3_u64 (uint64_t * __a, uint64x1x3_t val)
27315 __builtin_aarch64_simd_ci __o;
27316 uint64x2x3_t temp;
27317 temp.val[0] = vcombine_u64 (val.val[0], vcreate_u64 (__AARCH64_UINT64_C (0)));
27318 temp.val[1] = vcombine_u64 (val.val[1], vcreate_u64 (__AARCH64_UINT64_C (0)));
27319 temp.val[2] = vcombine_u64 (val.val[2], vcreate_u64 (__AARCH64_UINT64_C (0)));
27320 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) temp.val[0], 0);
27321 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) temp.val[1], 1);
27322 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) temp.val[2], 2);
27323 __builtin_aarch64_st3di ((__builtin_aarch64_simd_di *) __a, __o);
27326 __extension__ extern __inline void
27327 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27328 vst3_f64 (float64_t * __a, float64x1x3_t val)
27330 __builtin_aarch64_simd_ci __o;
27331 float64x2x3_t temp;
27332 temp.val[0] = vcombine_f64 (val.val[0], vcreate_f64 (__AARCH64_UINT64_C (0)));
27333 temp.val[1] = vcombine_f64 (val.val[1], vcreate_f64 (__AARCH64_UINT64_C (0)));
27334 temp.val[2] = vcombine_f64 (val.val[2], vcreate_f64 (__AARCH64_UINT64_C (0)));
27335 __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) temp.val[0], 0);
27336 __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) temp.val[1], 1);
27337 __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) temp.val[2], 2);
27338 __builtin_aarch64_st3df ((__builtin_aarch64_simd_df *) __a, __o);
27341 __extension__ extern __inline void
27342 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27343 vst3_s8 (int8_t * __a, int8x8x3_t val)
27345 __builtin_aarch64_simd_ci __o;
27346 int8x16x3_t temp;
27347 temp.val[0] = vcombine_s8 (val.val[0], vcreate_s8 (__AARCH64_INT64_C (0)));
27348 temp.val[1] = vcombine_s8 (val.val[1], vcreate_s8 (__AARCH64_INT64_C (0)));
27349 temp.val[2] = vcombine_s8 (val.val[2], vcreate_s8 (__AARCH64_INT64_C (0)));
27350 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[0], 0);
27351 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[1], 1);
27352 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[2], 2);
27353 __builtin_aarch64_st3v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
27356 __extension__ extern __inline void
27357 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27358 vst3_p8 (poly8_t * __a, poly8x8x3_t val)
27360 __builtin_aarch64_simd_ci __o;
27361 poly8x16x3_t temp;
27362 temp.val[0] = vcombine_p8 (val.val[0], vcreate_p8 (__AARCH64_UINT64_C (0)));
27363 temp.val[1] = vcombine_p8 (val.val[1], vcreate_p8 (__AARCH64_UINT64_C (0)));
27364 temp.val[2] = vcombine_p8 (val.val[2], vcreate_p8 (__AARCH64_UINT64_C (0)));
27365 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[0], 0);
27366 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[1], 1);
27367 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[2], 2);
27368 __builtin_aarch64_st3v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
27371 __extension__ extern __inline void
27372 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27373 vst3_s16 (int16_t * __a, int16x4x3_t val)
27375 __builtin_aarch64_simd_ci __o;
27376 int16x8x3_t temp;
27377 temp.val[0] = vcombine_s16 (val.val[0], vcreate_s16 (__AARCH64_INT64_C (0)));
27378 temp.val[1] = vcombine_s16 (val.val[1], vcreate_s16 (__AARCH64_INT64_C (0)));
27379 temp.val[2] = vcombine_s16 (val.val[2], vcreate_s16 (__AARCH64_INT64_C (0)));
27380 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[0], 0);
27381 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[1], 1);
27382 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[2], 2);
27383 __builtin_aarch64_st3v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
27386 __extension__ extern __inline void
27387 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27388 vst3_p16 (poly16_t * __a, poly16x4x3_t val)
27390 __builtin_aarch64_simd_ci __o;
27391 poly16x8x3_t temp;
27392 temp.val[0] = vcombine_p16 (val.val[0], vcreate_p16 (__AARCH64_UINT64_C (0)));
27393 temp.val[1] = vcombine_p16 (val.val[1], vcreate_p16 (__AARCH64_UINT64_C (0)));
27394 temp.val[2] = vcombine_p16 (val.val[2], vcreate_p16 (__AARCH64_UINT64_C (0)));
27395 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[0], 0);
27396 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[1], 1);
27397 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[2], 2);
27398 __builtin_aarch64_st3v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
27401 __extension__ extern __inline void
27402 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27403 vst3_s32 (int32_t * __a, int32x2x3_t val)
27405 __builtin_aarch64_simd_ci __o;
27406 int32x4x3_t temp;
27407 temp.val[0] = vcombine_s32 (val.val[0], vcreate_s32 (__AARCH64_INT64_C (0)));
27408 temp.val[1] = vcombine_s32 (val.val[1], vcreate_s32 (__AARCH64_INT64_C (0)));
27409 temp.val[2] = vcombine_s32 (val.val[2], vcreate_s32 (__AARCH64_INT64_C (0)));
27410 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) temp.val[0], 0);
27411 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) temp.val[1], 1);
27412 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) temp.val[2], 2);
27413 __builtin_aarch64_st3v2si ((__builtin_aarch64_simd_si *) __a, __o);
27416 __extension__ extern __inline void
27417 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27418 vst3_u8 (uint8_t * __a, uint8x8x3_t val)
27420 __builtin_aarch64_simd_ci __o;
27421 uint8x16x3_t temp;
27422 temp.val[0] = vcombine_u8 (val.val[0], vcreate_u8 (__AARCH64_UINT64_C (0)));
27423 temp.val[1] = vcombine_u8 (val.val[1], vcreate_u8 (__AARCH64_UINT64_C (0)));
27424 temp.val[2] = vcombine_u8 (val.val[2], vcreate_u8 (__AARCH64_UINT64_C (0)));
27425 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[0], 0);
27426 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[1], 1);
27427 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[2], 2);
27428 __builtin_aarch64_st3v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
27431 __extension__ extern __inline void
27432 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27433 vst3_u16 (uint16_t * __a, uint16x4x3_t val)
27435 __builtin_aarch64_simd_ci __o;
27436 uint16x8x3_t temp;
27437 temp.val[0] = vcombine_u16 (val.val[0], vcreate_u16 (__AARCH64_UINT64_C (0)));
27438 temp.val[1] = vcombine_u16 (val.val[1], vcreate_u16 (__AARCH64_UINT64_C (0)));
27439 temp.val[2] = vcombine_u16 (val.val[2], vcreate_u16 (__AARCH64_UINT64_C (0)));
27440 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[0], 0);
27441 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[1], 1);
27442 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[2], 2);
27443 __builtin_aarch64_st3v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
27446 __extension__ extern __inline void
27447 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27448 vst3_u32 (uint32_t * __a, uint32x2x3_t val)
27450 __builtin_aarch64_simd_ci __o;
27451 uint32x4x3_t temp;
27452 temp.val[0] = vcombine_u32 (val.val[0], vcreate_u32 (__AARCH64_UINT64_C (0)));
27453 temp.val[1] = vcombine_u32 (val.val[1], vcreate_u32 (__AARCH64_UINT64_C (0)));
27454 temp.val[2] = vcombine_u32 (val.val[2], vcreate_u32 (__AARCH64_UINT64_C (0)));
27455 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) temp.val[0], 0);
27456 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) temp.val[1], 1);
27457 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) temp.val[2], 2);
27458 __builtin_aarch64_st3v2si ((__builtin_aarch64_simd_si *) __a, __o);
27461 __extension__ extern __inline void
27462 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27463 vst3_f16 (float16_t * __a, float16x4x3_t val)
27465 __builtin_aarch64_simd_ci __o;
27466 float16x8x3_t temp;
27467 temp.val[0] = vcombine_f16 (val.val[0], vcreate_f16 (__AARCH64_UINT64_C (0)));
27468 temp.val[1] = vcombine_f16 (val.val[1], vcreate_f16 (__AARCH64_UINT64_C (0)));
27469 temp.val[2] = vcombine_f16 (val.val[2], vcreate_f16 (__AARCH64_UINT64_C (0)));
27470 __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) temp.val[0], 0);
27471 __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) temp.val[1], 1);
27472 __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) temp.val[2], 2);
27473 __builtin_aarch64_st3v4hf ((__builtin_aarch64_simd_hf *) __a, __o);
27476 __extension__ extern __inline void
27477 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27478 vst3_f32 (float32_t * __a, float32x2x3_t val)
27480 __builtin_aarch64_simd_ci __o;
27481 float32x4x3_t temp;
27482 temp.val[0] = vcombine_f32 (val.val[0], vcreate_f32 (__AARCH64_UINT64_C (0)));
27483 temp.val[1] = vcombine_f32 (val.val[1], vcreate_f32 (__AARCH64_UINT64_C (0)));
27484 temp.val[2] = vcombine_f32 (val.val[2], vcreate_f32 (__AARCH64_UINT64_C (0)));
27485 __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) temp.val[0], 0);
27486 __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) temp.val[1], 1);
27487 __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) temp.val[2], 2);
27488 __builtin_aarch64_st3v2sf ((__builtin_aarch64_simd_sf *) __a, __o);
27491 __extension__ extern __inline void
27492 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27493 vst3_p64 (poly64_t * __a, poly64x1x3_t val)
27495 __builtin_aarch64_simd_ci __o;
27496 poly64x2x3_t temp;
27497 temp.val[0] = vcombine_p64 (val.val[0], vcreate_p64 (__AARCH64_UINT64_C (0)));
27498 temp.val[1] = vcombine_p64 (val.val[1], vcreate_p64 (__AARCH64_UINT64_C (0)));
27499 temp.val[2] = vcombine_p64 (val.val[2], vcreate_p64 (__AARCH64_UINT64_C (0)));
27500 __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
27501 (poly64x2_t) temp.val[0], 0);
27502 __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
27503 (poly64x2_t) temp.val[1], 1);
27504 __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
27505 (poly64x2_t) temp.val[2], 2);
27506 __builtin_aarch64_st3di ((__builtin_aarch64_simd_di *) __a, __o);
27509 __extension__ extern __inline void
27510 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27511 vst3q_s8 (int8_t * __a, int8x16x3_t val)
27513 __builtin_aarch64_simd_ci __o;
27514 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[0], 0);
27515 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[1], 1);
27516 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[2], 2);
27517 __builtin_aarch64_st3v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
27520 __extension__ extern __inline void
27521 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27522 vst3q_p8 (poly8_t * __a, poly8x16x3_t val)
27524 __builtin_aarch64_simd_ci __o;
27525 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[0], 0);
27526 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[1], 1);
27527 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[2], 2);
27528 __builtin_aarch64_st3v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
27531 __extension__ extern __inline void
27532 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27533 vst3q_s16 (int16_t * __a, int16x8x3_t val)
27535 __builtin_aarch64_simd_ci __o;
27536 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[0], 0);
27537 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[1], 1);
27538 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[2], 2);
27539 __builtin_aarch64_st3v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
27542 __extension__ extern __inline void
27543 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27544 vst3q_p16 (poly16_t * __a, poly16x8x3_t val)
27546 __builtin_aarch64_simd_ci __o;
27547 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[0], 0);
27548 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[1], 1);
27549 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[2], 2);
27550 __builtin_aarch64_st3v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
27553 __extension__ extern __inline void
27554 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27555 vst3q_s32 (int32_t * __a, int32x4x3_t val)
27557 __builtin_aarch64_simd_ci __o;
27558 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) val.val[0], 0);
27559 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) val.val[1], 1);
27560 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) val.val[2], 2);
27561 __builtin_aarch64_st3v4si ((__builtin_aarch64_simd_si *) __a, __o);
27564 __extension__ extern __inline void
27565 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27566 vst3q_s64 (int64_t * __a, int64x2x3_t val)
27568 __builtin_aarch64_simd_ci __o;
27569 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) val.val[0], 0);
27570 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) val.val[1], 1);
27571 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) val.val[2], 2);
27572 __builtin_aarch64_st3v2di ((__builtin_aarch64_simd_di *) __a, __o);
27575 __extension__ extern __inline void
27576 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27577 vst3q_u8 (uint8_t * __a, uint8x16x3_t val)
27579 __builtin_aarch64_simd_ci __o;
27580 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[0], 0);
27581 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[1], 1);
27582 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[2], 2);
27583 __builtin_aarch64_st3v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
27586 __extension__ extern __inline void
27587 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27588 vst3q_u16 (uint16_t * __a, uint16x8x3_t val)
27590 __builtin_aarch64_simd_ci __o;
27591 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[0], 0);
27592 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[1], 1);
27593 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[2], 2);
27594 __builtin_aarch64_st3v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
27597 __extension__ extern __inline void
27598 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27599 vst3q_u32 (uint32_t * __a, uint32x4x3_t val)
27601 __builtin_aarch64_simd_ci __o;
27602 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) val.val[0], 0);
27603 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) val.val[1], 1);
27604 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) val.val[2], 2);
27605 __builtin_aarch64_st3v4si ((__builtin_aarch64_simd_si *) __a, __o);
27608 __extension__ extern __inline void
27609 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27610 vst3q_u64 (uint64_t * __a, uint64x2x3_t val)
27612 __builtin_aarch64_simd_ci __o;
27613 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) val.val[0], 0);
27614 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) val.val[1], 1);
27615 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) val.val[2], 2);
27616 __builtin_aarch64_st3v2di ((__builtin_aarch64_simd_di *) __a, __o);
27619 __extension__ extern __inline void
27620 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27621 vst3q_f16 (float16_t * __a, float16x8x3_t val)
27623 __builtin_aarch64_simd_ci __o;
27624 __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) val.val[0], 0);
27625 __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) val.val[1], 1);
27626 __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) val.val[2], 2);
27627 __builtin_aarch64_st3v8hf ((__builtin_aarch64_simd_hf *) __a, __o);
27630 __extension__ extern __inline void
27631 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27632 vst3q_f32 (float32_t * __a, float32x4x3_t val)
27634 __builtin_aarch64_simd_ci __o;
27635 __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) val.val[0], 0);
27636 __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) val.val[1], 1);
27637 __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) val.val[2], 2);
27638 __builtin_aarch64_st3v4sf ((__builtin_aarch64_simd_sf *) __a, __o);
27641 __extension__ extern __inline void
27642 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27643 vst3q_f64 (float64_t * __a, float64x2x3_t val)
27645 __builtin_aarch64_simd_ci __o;
27646 __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) val.val[0], 0);
27647 __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) val.val[1], 1);
27648 __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) val.val[2], 2);
27649 __builtin_aarch64_st3v2df ((__builtin_aarch64_simd_df *) __a, __o);
27652 __extension__ extern __inline void
27653 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27654 vst3q_p64 (poly64_t * __a, poly64x2x3_t val)
27656 __builtin_aarch64_simd_ci __o;
27657 __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
27658 (poly64x2_t) val.val[0], 0);
27659 __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
27660 (poly64x2_t) val.val[1], 1);
27661 __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
27662 (poly64x2_t) val.val[2], 2);
27663 __builtin_aarch64_st3v2di ((__builtin_aarch64_simd_di *) __a, __o);
27666 __extension__ extern __inline void
27667 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27668 vst4_s64 (int64_t * __a, int64x1x4_t val)
27670 __builtin_aarch64_simd_xi __o;
27671 int64x2x4_t temp;
27672 temp.val[0] = vcombine_s64 (val.val[0], vcreate_s64 (__AARCH64_INT64_C (0)));
27673 temp.val[1] = vcombine_s64 (val.val[1], vcreate_s64 (__AARCH64_INT64_C (0)));
27674 temp.val[2] = vcombine_s64 (val.val[2], vcreate_s64 (__AARCH64_INT64_C (0)));
27675 temp.val[3] = vcombine_s64 (val.val[3], vcreate_s64 (__AARCH64_INT64_C (0)));
27676 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) temp.val[0], 0);
27677 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) temp.val[1], 1);
27678 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) temp.val[2], 2);
27679 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) temp.val[3], 3);
27680 __builtin_aarch64_st4di ((__builtin_aarch64_simd_di *) __a, __o);
27683 __extension__ extern __inline void
27684 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27685 vst4_u64 (uint64_t * __a, uint64x1x4_t val)
27687 __builtin_aarch64_simd_xi __o;
27688 uint64x2x4_t temp;
27689 temp.val[0] = vcombine_u64 (val.val[0], vcreate_u64 (__AARCH64_UINT64_C (0)));
27690 temp.val[1] = vcombine_u64 (val.val[1], vcreate_u64 (__AARCH64_UINT64_C (0)));
27691 temp.val[2] = vcombine_u64 (val.val[2], vcreate_u64 (__AARCH64_UINT64_C (0)));
27692 temp.val[3] = vcombine_u64 (val.val[3], vcreate_u64 (__AARCH64_UINT64_C (0)));
27693 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) temp.val[0], 0);
27694 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) temp.val[1], 1);
27695 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) temp.val[2], 2);
27696 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) temp.val[3], 3);
27697 __builtin_aarch64_st4di ((__builtin_aarch64_simd_di *) __a, __o);
27700 __extension__ extern __inline void
27701 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27702 vst4_f64 (float64_t * __a, float64x1x4_t val)
27704 __builtin_aarch64_simd_xi __o;
27705 float64x2x4_t temp;
27706 temp.val[0] = vcombine_f64 (val.val[0], vcreate_f64 (__AARCH64_UINT64_C (0)));
27707 temp.val[1] = vcombine_f64 (val.val[1], vcreate_f64 (__AARCH64_UINT64_C (0)));
27708 temp.val[2] = vcombine_f64 (val.val[2], vcreate_f64 (__AARCH64_UINT64_C (0)));
27709 temp.val[3] = vcombine_f64 (val.val[3], vcreate_f64 (__AARCH64_UINT64_C (0)));
27710 __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) temp.val[0], 0);
27711 __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) temp.val[1], 1);
27712 __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) temp.val[2], 2);
27713 __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) temp.val[3], 3);
27714 __builtin_aarch64_st4df ((__builtin_aarch64_simd_df *) __a, __o);
27717 __extension__ extern __inline void
27718 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27719 vst4_s8 (int8_t * __a, int8x8x4_t val)
27721 __builtin_aarch64_simd_xi __o;
27722 int8x16x4_t temp;
27723 temp.val[0] = vcombine_s8 (val.val[0], vcreate_s8 (__AARCH64_INT64_C (0)));
27724 temp.val[1] = vcombine_s8 (val.val[1], vcreate_s8 (__AARCH64_INT64_C (0)));
27725 temp.val[2] = vcombine_s8 (val.val[2], vcreate_s8 (__AARCH64_INT64_C (0)));
27726 temp.val[3] = vcombine_s8 (val.val[3], vcreate_s8 (__AARCH64_INT64_C (0)));
27727 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) temp.val[0], 0);
27728 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) temp.val[1], 1);
27729 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) temp.val[2], 2);
27730 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) temp.val[3], 3);
27731 __builtin_aarch64_st4v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
27734 __extension__ extern __inline void
27735 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27736 vst4_p8 (poly8_t * __a, poly8x8x4_t val)
27738 __builtin_aarch64_simd_xi __o;
27739 poly8x16x4_t temp;
27740 temp.val[0] = vcombine_p8 (val.val[0], vcreate_p8 (__AARCH64_UINT64_C (0)));
27741 temp.val[1] = vcombine_p8 (val.val[1], vcreate_p8 (__AARCH64_UINT64_C (0)));
27742 temp.val[2] = vcombine_p8 (val.val[2], vcreate_p8 (__AARCH64_UINT64_C (0)));
27743 temp.val[3] = vcombine_p8 (val.val[3], vcreate_p8 (__AARCH64_UINT64_C (0)));
27744 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) temp.val[0], 0);
27745 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) temp.val[1], 1);
27746 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) temp.val[2], 2);
27747 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) temp.val[3], 3);
27748 __builtin_aarch64_st4v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
27751 __extension__ extern __inline void
27752 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27753 vst4_s16 (int16_t * __a, int16x4x4_t val)
27755 __builtin_aarch64_simd_xi __o;
27756 int16x8x4_t temp;
27757 temp.val[0] = vcombine_s16 (val.val[0], vcreate_s16 (__AARCH64_INT64_C (0)));
27758 temp.val[1] = vcombine_s16 (val.val[1], vcreate_s16 (__AARCH64_INT64_C (0)));
27759 temp.val[2] = vcombine_s16 (val.val[2], vcreate_s16 (__AARCH64_INT64_C (0)));
27760 temp.val[3] = vcombine_s16 (val.val[3], vcreate_s16 (__AARCH64_INT64_C (0)));
27761 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) temp.val[0], 0);
27762 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) temp.val[1], 1);
27763 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) temp.val[2], 2);
27764 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) temp.val[3], 3);
27765 __builtin_aarch64_st4v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
27768 __extension__ extern __inline void
27769 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27770 vst4_p16 (poly16_t * __a, poly16x4x4_t val)
27772 __builtin_aarch64_simd_xi __o;
27773 poly16x8x4_t temp;
27774 temp.val[0] = vcombine_p16 (val.val[0], vcreate_p16 (__AARCH64_UINT64_C (0)));
27775 temp.val[1] = vcombine_p16 (val.val[1], vcreate_p16 (__AARCH64_UINT64_C (0)));
27776 temp.val[2] = vcombine_p16 (val.val[2], vcreate_p16 (__AARCH64_UINT64_C (0)));
27777 temp.val[3] = vcombine_p16 (val.val[3], vcreate_p16 (__AARCH64_UINT64_C (0)));
27778 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) temp.val[0], 0);
27779 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) temp.val[1], 1);
27780 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) temp.val[2], 2);
27781 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) temp.val[3], 3);
27782 __builtin_aarch64_st4v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
27785 __extension__ extern __inline void
27786 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27787 vst4_s32 (int32_t * __a, int32x2x4_t val)
27789 __builtin_aarch64_simd_xi __o;
27790 int32x4x4_t temp;
27791 temp.val[0] = vcombine_s32 (val.val[0], vcreate_s32 (__AARCH64_INT64_C (0)));
27792 temp.val[1] = vcombine_s32 (val.val[1], vcreate_s32 (__AARCH64_INT64_C (0)));
27793 temp.val[2] = vcombine_s32 (val.val[2], vcreate_s32 (__AARCH64_INT64_C (0)));
27794 temp.val[3] = vcombine_s32 (val.val[3], vcreate_s32 (__AARCH64_INT64_C (0)));
27795 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) temp.val[0], 0);
27796 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) temp.val[1], 1);
27797 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) temp.val[2], 2);
27798 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) temp.val[3], 3);
27799 __builtin_aarch64_st4v2si ((__builtin_aarch64_simd_si *) __a, __o);
27802 __extension__ extern __inline void
27803 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27804 vst4_u8 (uint8_t * __a, uint8x8x4_t val)
27806 __builtin_aarch64_simd_xi __o;
27807 uint8x16x4_t temp;
27808 temp.val[0] = vcombine_u8 (val.val[0], vcreate_u8 (__AARCH64_UINT64_C (0)));
27809 temp.val[1] = vcombine_u8 (val.val[1], vcreate_u8 (__AARCH64_UINT64_C (0)));
27810 temp.val[2] = vcombine_u8 (val.val[2], vcreate_u8 (__AARCH64_UINT64_C (0)));
27811 temp.val[3] = vcombine_u8 (val.val[3], vcreate_u8 (__AARCH64_UINT64_C (0)));
27812 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) temp.val[0], 0);
27813 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) temp.val[1], 1);
27814 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) temp.val[2], 2);
27815 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) temp.val[3], 3);
27816 __builtin_aarch64_st4v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
27819 __extension__ extern __inline void
27820 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27821 vst4_u16 (uint16_t * __a, uint16x4x4_t val)
27823 __builtin_aarch64_simd_xi __o;
27824 uint16x8x4_t temp;
27825 temp.val[0] = vcombine_u16 (val.val[0], vcreate_u16 (__AARCH64_UINT64_C (0)));
27826 temp.val[1] = vcombine_u16 (val.val[1], vcreate_u16 (__AARCH64_UINT64_C (0)));
27827 temp.val[2] = vcombine_u16 (val.val[2], vcreate_u16 (__AARCH64_UINT64_C (0)));
27828 temp.val[3] = vcombine_u16 (val.val[3], vcreate_u16 (__AARCH64_UINT64_C (0)));
27829 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) temp.val[0], 0);
27830 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) temp.val[1], 1);
27831 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) temp.val[2], 2);
27832 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) temp.val[3], 3);
27833 __builtin_aarch64_st4v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
27836 __extension__ extern __inline void
27837 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27838 vst4_u32 (uint32_t * __a, uint32x2x4_t val)
27840 __builtin_aarch64_simd_xi __o;
27841 uint32x4x4_t temp;
27842 temp.val[0] = vcombine_u32 (val.val[0], vcreate_u32 (__AARCH64_UINT64_C (0)));
27843 temp.val[1] = vcombine_u32 (val.val[1], vcreate_u32 (__AARCH64_UINT64_C (0)));
27844 temp.val[2] = vcombine_u32 (val.val[2], vcreate_u32 (__AARCH64_UINT64_C (0)));
27845 temp.val[3] = vcombine_u32 (val.val[3], vcreate_u32 (__AARCH64_UINT64_C (0)));
27846 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) temp.val[0], 0);
27847 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) temp.val[1], 1);
27848 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) temp.val[2], 2);
27849 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) temp.val[3], 3);
27850 __builtin_aarch64_st4v2si ((__builtin_aarch64_simd_si *) __a, __o);
27853 __extension__ extern __inline void
27854 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27855 vst4_f16 (float16_t * __a, float16x4x4_t val)
27857 __builtin_aarch64_simd_xi __o;
27858 float16x8x4_t temp;
27859 temp.val[0] = vcombine_f16 (val.val[0], vcreate_f16 (__AARCH64_UINT64_C (0)));
27860 temp.val[1] = vcombine_f16 (val.val[1], vcreate_f16 (__AARCH64_UINT64_C (0)));
27861 temp.val[2] = vcombine_f16 (val.val[2], vcreate_f16 (__AARCH64_UINT64_C (0)));
27862 temp.val[3] = vcombine_f16 (val.val[3], vcreate_f16 (__AARCH64_UINT64_C (0)));
27863 __o = __builtin_aarch64_set_qregxiv8hf (__o, (float16x8_t) temp.val[0], 0);
27864 __o = __builtin_aarch64_set_qregxiv8hf (__o, (float16x8_t) temp.val[1], 1);
27865 __o = __builtin_aarch64_set_qregxiv8hf (__o, (float16x8_t) temp.val[2], 2);
27866 __o = __builtin_aarch64_set_qregxiv8hf (__o, (float16x8_t) temp.val[3], 3);
27867 __builtin_aarch64_st4v4hf ((__builtin_aarch64_simd_hf *) __a, __o);
27870 __extension__ extern __inline void
27871 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27872 vst4_f32 (float32_t * __a, float32x2x4_t val)
27874 __builtin_aarch64_simd_xi __o;
27875 float32x4x4_t temp;
27876 temp.val[0] = vcombine_f32 (val.val[0], vcreate_f32 (__AARCH64_UINT64_C (0)));
27877 temp.val[1] = vcombine_f32 (val.val[1], vcreate_f32 (__AARCH64_UINT64_C (0)));
27878 temp.val[2] = vcombine_f32 (val.val[2], vcreate_f32 (__AARCH64_UINT64_C (0)));
27879 temp.val[3] = vcombine_f32 (val.val[3], vcreate_f32 (__AARCH64_UINT64_C (0)));
27880 __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) temp.val[0], 0);
27881 __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) temp.val[1], 1);
27882 __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) temp.val[2], 2);
27883 __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) temp.val[3], 3);
27884 __builtin_aarch64_st4v2sf ((__builtin_aarch64_simd_sf *) __a, __o);
27887 __extension__ extern __inline void
27888 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27889 vst4_p64 (poly64_t * __a, poly64x1x4_t val)
27891 __builtin_aarch64_simd_xi __o;
27892 poly64x2x4_t temp;
27893 temp.val[0] = vcombine_p64 (val.val[0], vcreate_p64 (__AARCH64_UINT64_C (0)));
27894 temp.val[1] = vcombine_p64 (val.val[1], vcreate_p64 (__AARCH64_UINT64_C (0)));
27895 temp.val[2] = vcombine_p64 (val.val[2], vcreate_p64 (__AARCH64_UINT64_C (0)));
27896 temp.val[3] = vcombine_p64 (val.val[3], vcreate_p64 (__AARCH64_UINT64_C (0)));
27897 __o = __builtin_aarch64_set_qregxiv2di_ssps (__o,
27898 (poly64x2_t) temp.val[0], 0);
27899 __o = __builtin_aarch64_set_qregxiv2di_ssps (__o,
27900 (poly64x2_t) temp.val[1], 1);
27901 __o = __builtin_aarch64_set_qregxiv2di_ssps (__o,
27902 (poly64x2_t) temp.val[2], 2);
27903 __o = __builtin_aarch64_set_qregxiv2di_ssps (__o,
27904 (poly64x2_t) temp.val[3], 3);
27905 __builtin_aarch64_st4di ((__builtin_aarch64_simd_di *) __a, __o);
27908 __extension__ extern __inline void
27909 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27910 vst4q_s8 (int8_t * __a, int8x16x4_t val)
27912 __builtin_aarch64_simd_xi __o;
27913 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[0], 0);
27914 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[1], 1);
27915 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[2], 2);
27916 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[3], 3);
27917 __builtin_aarch64_st4v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
27920 __extension__ extern __inline void
27921 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27922 vst4q_p8 (poly8_t * __a, poly8x16x4_t val)
27924 __builtin_aarch64_simd_xi __o;
27925 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[0], 0);
27926 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[1], 1);
27927 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[2], 2);
27928 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[3], 3);
27929 __builtin_aarch64_st4v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
27932 __extension__ extern __inline void
27933 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27934 vst4q_s16 (int16_t * __a, int16x8x4_t val)
27936 __builtin_aarch64_simd_xi __o;
27937 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[0], 0);
27938 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[1], 1);
27939 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[2], 2);
27940 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[3], 3);
27941 __builtin_aarch64_st4v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
27944 __extension__ extern __inline void
27945 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27946 vst4q_p16 (poly16_t * __a, poly16x8x4_t val)
27948 __builtin_aarch64_simd_xi __o;
27949 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[0], 0);
27950 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[1], 1);
27951 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[2], 2);
27952 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[3], 3);
27953 __builtin_aarch64_st4v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
27956 __extension__ extern __inline void
27957 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27958 vst4q_s32 (int32_t * __a, int32x4x4_t val)
27960 __builtin_aarch64_simd_xi __o;
27961 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) val.val[0], 0);
27962 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) val.val[1], 1);
27963 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) val.val[2], 2);
27964 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) val.val[3], 3);
27965 __builtin_aarch64_st4v4si ((__builtin_aarch64_simd_si *) __a, __o);
27968 __extension__ extern __inline void
27969 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27970 vst4q_s64 (int64_t * __a, int64x2x4_t val)
27972 __builtin_aarch64_simd_xi __o;
27973 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) val.val[0], 0);
27974 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) val.val[1], 1);
27975 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) val.val[2], 2);
27976 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) val.val[3], 3);
27977 __builtin_aarch64_st4v2di ((__builtin_aarch64_simd_di *) __a, __o);
27980 __extension__ extern __inline void
27981 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27982 vst4q_u8 (uint8_t * __a, uint8x16x4_t val)
27984 __builtin_aarch64_simd_xi __o;
27985 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[0], 0);
27986 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[1], 1);
27987 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[2], 2);
27988 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[3], 3);
27989 __builtin_aarch64_st4v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
27992 __extension__ extern __inline void
27993 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27994 vst4q_u16 (uint16_t * __a, uint16x8x4_t val)
27996 __builtin_aarch64_simd_xi __o;
27997 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[0], 0);
27998 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[1], 1);
27999 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[2], 2);
28000 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[3], 3);
28001 __builtin_aarch64_st4v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
28004 __extension__ extern __inline void
28005 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28006 vst4q_u32 (uint32_t * __a, uint32x4x4_t val)
28008 __builtin_aarch64_simd_xi __o;
28009 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) val.val[0], 0);
28010 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) val.val[1], 1);
28011 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) val.val[2], 2);
28012 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) val.val[3], 3);
28013 __builtin_aarch64_st4v4si ((__builtin_aarch64_simd_si *) __a, __o);
28016 __extension__ extern __inline void
28017 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28018 vst4q_u64 (uint64_t * __a, uint64x2x4_t val)
28020 __builtin_aarch64_simd_xi __o;
28021 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) val.val[0], 0);
28022 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) val.val[1], 1);
28023 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) val.val[2], 2);
28024 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) val.val[3], 3);
28025 __builtin_aarch64_st4v2di ((__builtin_aarch64_simd_di *) __a, __o);
28028 __extension__ extern __inline void
28029 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28030 vst4q_f16 (float16_t * __a, float16x8x4_t val)
28032 __builtin_aarch64_simd_xi __o;
28033 __o = __builtin_aarch64_set_qregxiv8hf (__o, (float16x8_t) val.val[0], 0);
28034 __o = __builtin_aarch64_set_qregxiv8hf (__o, (float16x8_t) val.val[1], 1);
28035 __o = __builtin_aarch64_set_qregxiv8hf (__o, (float16x8_t) val.val[2], 2);
28036 __o = __builtin_aarch64_set_qregxiv8hf (__o, (float16x8_t) val.val[3], 3);
28037 __builtin_aarch64_st4v8hf ((__builtin_aarch64_simd_hf *) __a, __o);
28040 __extension__ extern __inline void
28041 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28042 vst4q_f32 (float32_t * __a, float32x4x4_t val)
28044 __builtin_aarch64_simd_xi __o;
28045 __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) val.val[0], 0);
28046 __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) val.val[1], 1);
28047 __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) val.val[2], 2);
28048 __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) val.val[3], 3);
28049 __builtin_aarch64_st4v4sf ((__builtin_aarch64_simd_sf *) __a, __o);
28052 __extension__ extern __inline void
28053 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28054 vst4q_f64 (float64_t * __a, float64x2x4_t val)
28056 __builtin_aarch64_simd_xi __o;
28057 __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) val.val[0], 0);
28058 __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) val.val[1], 1);
28059 __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) val.val[2], 2);
28060 __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) val.val[3], 3);
28061 __builtin_aarch64_st4v2df ((__builtin_aarch64_simd_df *) __a, __o);
28064 __extension__ extern __inline void
28065 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28066 vst4q_p64 (poly64_t * __a, poly64x2x4_t val)
28068 __builtin_aarch64_simd_xi __o;
28069 __o = __builtin_aarch64_set_qregxiv2di_ssps (__o,
28070 (poly64x2_t) val.val[0], 0);
28071 __o = __builtin_aarch64_set_qregxiv2di_ssps (__o,
28072 (poly64x2_t) val.val[1], 1);
28073 __o = __builtin_aarch64_set_qregxiv2di_ssps (__o,
28074 (poly64x2_t) val.val[2], 2);
28075 __o = __builtin_aarch64_set_qregxiv2di_ssps (__o,
28076 (poly64x2_t) val.val[3], 3);
28077 __builtin_aarch64_st4v2di ((__builtin_aarch64_simd_di *) __a, __o);
28080 /* vsub */
28082 __extension__ extern __inline int64_t
28083 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28084 vsubd_s64 (int64_t __a, int64_t __b)
28086 return __a - __b;
28089 __extension__ extern __inline uint64_t
28090 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28091 vsubd_u64 (uint64_t __a, uint64_t __b)
28093 return __a - __b;
28096 /* vtbx1 */
28098 __extension__ extern __inline int8x8_t
28099 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28100 vtbx1_s8 (int8x8_t __r, int8x8_t __tab, int8x8_t __idx)
28102 uint8x8_t __mask = vclt_u8 (vreinterpret_u8_s8 (__idx),
28103 vmov_n_u8 (8));
28104 int8x8_t __tbl = vtbl1_s8 (__tab, __idx);
28106 return vbsl_s8 (__mask, __tbl, __r);
28109 __extension__ extern __inline uint8x8_t
28110 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28111 vtbx1_u8 (uint8x8_t __r, uint8x8_t __tab, uint8x8_t __idx)
28113 uint8x8_t __mask = vclt_u8 (__idx, vmov_n_u8 (8));
28114 uint8x8_t __tbl = vtbl1_u8 (__tab, __idx);
28116 return vbsl_u8 (__mask, __tbl, __r);
28119 __extension__ extern __inline poly8x8_t
28120 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28121 vtbx1_p8 (poly8x8_t __r, poly8x8_t __tab, uint8x8_t __idx)
28123 uint8x8_t __mask = vclt_u8 (__idx, vmov_n_u8 (8));
28124 poly8x8_t __tbl = vtbl1_p8 (__tab, __idx);
28126 return vbsl_p8 (__mask, __tbl, __r);
28129 /* vtbx3 */
28131 __extension__ extern __inline int8x8_t
28132 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28133 vtbx3_s8 (int8x8_t __r, int8x8x3_t __tab, int8x8_t __idx)
28135 uint8x8_t __mask = vclt_u8 (vreinterpret_u8_s8 (__idx),
28136 vmov_n_u8 (24));
28137 int8x8_t __tbl = vtbl3_s8 (__tab, __idx);
28139 return vbsl_s8 (__mask, __tbl, __r);
28142 __extension__ extern __inline uint8x8_t
28143 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28144 vtbx3_u8 (uint8x8_t __r, uint8x8x3_t __tab, uint8x8_t __idx)
28146 uint8x8_t __mask = vclt_u8 (__idx, vmov_n_u8 (24));
28147 uint8x8_t __tbl = vtbl3_u8 (__tab, __idx);
28149 return vbsl_u8 (__mask, __tbl, __r);
28152 __extension__ extern __inline poly8x8_t
28153 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28154 vtbx3_p8 (poly8x8_t __r, poly8x8x3_t __tab, uint8x8_t __idx)
28156 uint8x8_t __mask = vclt_u8 (__idx, vmov_n_u8 (24));
28157 poly8x8_t __tbl = vtbl3_p8 (__tab, __idx);
28159 return vbsl_p8 (__mask, __tbl, __r);
28162 /* vtbx4 */
28164 __extension__ extern __inline int8x8_t
28165 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28166 vtbx4_s8 (int8x8_t __r, int8x8x4_t __tab, int8x8_t __idx)
28168 int8x8_t result;
28169 int8x16x2_t temp;
28170 __builtin_aarch64_simd_oi __o;
28171 temp.val[0] = vcombine_s8 (__tab.val[0], __tab.val[1]);
28172 temp.val[1] = vcombine_s8 (__tab.val[2], __tab.val[3]);
28173 __o = __builtin_aarch64_set_qregoiv16qi (__o,
28174 (int8x16_t) temp.val[0], 0);
28175 __o = __builtin_aarch64_set_qregoiv16qi (__o,
28176 (int8x16_t) temp.val[1], 1);
28177 result = __builtin_aarch64_tbx4v8qi (__r, __o, __idx);
28178 return result;
28181 __extension__ extern __inline uint8x8_t
28182 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28183 vtbx4_u8 (uint8x8_t __r, uint8x8x4_t __tab, uint8x8_t __idx)
28185 uint8x8_t result;
28186 uint8x16x2_t temp;
28187 __builtin_aarch64_simd_oi __o;
28188 temp.val[0] = vcombine_u8 (__tab.val[0], __tab.val[1]);
28189 temp.val[1] = vcombine_u8 (__tab.val[2], __tab.val[3]);
28190 __o = __builtin_aarch64_set_qregoiv16qi (__o,
28191 (int8x16_t) temp.val[0], 0);
28192 __o = __builtin_aarch64_set_qregoiv16qi (__o,
28193 (int8x16_t) temp.val[1], 1);
28194 result = (uint8x8_t)__builtin_aarch64_tbx4v8qi ((int8x8_t)__r, __o,
28195 (int8x8_t)__idx);
28196 return result;
28199 __extension__ extern __inline poly8x8_t
28200 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28201 vtbx4_p8 (poly8x8_t __r, poly8x8x4_t __tab, uint8x8_t __idx)
28203 poly8x8_t result;
28204 poly8x16x2_t temp;
28205 __builtin_aarch64_simd_oi __o;
28206 temp.val[0] = vcombine_p8 (__tab.val[0], __tab.val[1]);
28207 temp.val[1] = vcombine_p8 (__tab.val[2], __tab.val[3]);
28208 __o = __builtin_aarch64_set_qregoiv16qi (__o,
28209 (int8x16_t) temp.val[0], 0);
28210 __o = __builtin_aarch64_set_qregoiv16qi (__o,
28211 (int8x16_t) temp.val[1], 1);
28212 result = (poly8x8_t)__builtin_aarch64_tbx4v8qi ((int8x8_t)__r, __o,
28213 (int8x8_t)__idx);
28214 return result;
28217 /* vtrn */
28219 __extension__ extern __inline float16x4_t
28220 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28221 vtrn1_f16 (float16x4_t __a, float16x4_t __b)
28223 #ifdef __AARCH64EB__
28224 return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 1, 7, 3});
28225 #else
28226 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 2, 6});
28227 #endif
28230 __extension__ extern __inline float32x2_t
28231 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28232 vtrn1_f32 (float32x2_t __a, float32x2_t __b)
28234 #ifdef __AARCH64EB__
28235 return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
28236 #else
28237 return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
28238 #endif
28241 __extension__ extern __inline poly8x8_t
28242 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28243 vtrn1_p8 (poly8x8_t __a, poly8x8_t __b)
28245 #ifdef __AARCH64EB__
28246 return __builtin_shuffle (__a, __b, (uint8x8_t) {9, 1, 11, 3, 13, 5, 15, 7});
28247 #else
28248 return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 8, 2, 10, 4, 12, 6, 14});
28249 #endif
28252 __extension__ extern __inline poly16x4_t
28253 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28254 vtrn1_p16 (poly16x4_t __a, poly16x4_t __b)
28256 #ifdef __AARCH64EB__
28257 return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 1, 7, 3});
28258 #else
28259 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 2, 6});
28260 #endif
28263 __extension__ extern __inline int8x8_t
28264 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28265 vtrn1_s8 (int8x8_t __a, int8x8_t __b)
28267 #ifdef __AARCH64EB__
28268 return __builtin_shuffle (__a, __b, (uint8x8_t) {9, 1, 11, 3, 13, 5, 15, 7});
28269 #else
28270 return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 8, 2, 10, 4, 12, 6, 14});
28271 #endif
28274 __extension__ extern __inline int16x4_t
28275 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28276 vtrn1_s16 (int16x4_t __a, int16x4_t __b)
28278 #ifdef __AARCH64EB__
28279 return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 1, 7, 3});
28280 #else
28281 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 2, 6});
28282 #endif
28285 __extension__ extern __inline int32x2_t
28286 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28287 vtrn1_s32 (int32x2_t __a, int32x2_t __b)
28289 #ifdef __AARCH64EB__
28290 return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
28291 #else
28292 return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
28293 #endif
28296 __extension__ extern __inline uint8x8_t
28297 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28298 vtrn1_u8 (uint8x8_t __a, uint8x8_t __b)
28300 #ifdef __AARCH64EB__
28301 return __builtin_shuffle (__a, __b, (uint8x8_t) {9, 1, 11, 3, 13, 5, 15, 7});
28302 #else
28303 return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 8, 2, 10, 4, 12, 6, 14});
28304 #endif
28307 __extension__ extern __inline uint16x4_t
28308 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28309 vtrn1_u16 (uint16x4_t __a, uint16x4_t __b)
28311 #ifdef __AARCH64EB__
28312 return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 1, 7, 3});
28313 #else
28314 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 2, 6});
28315 #endif
28318 __extension__ extern __inline uint32x2_t
28319 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28320 vtrn1_u32 (uint32x2_t __a, uint32x2_t __b)
28322 #ifdef __AARCH64EB__
28323 return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
28324 #else
28325 return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
28326 #endif
28329 __extension__ extern __inline float16x8_t
28330 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28331 vtrn1q_f16 (float16x8_t __a, float16x8_t __b)
28333 #ifdef __AARCH64EB__
28334 return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 1, 11, 3, 13, 5, 15, 7});
28335 #else
28336 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 8, 2, 10, 4, 12, 6, 14});
28337 #endif
28340 __extension__ extern __inline float32x4_t
28341 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28342 vtrn1q_f32 (float32x4_t __a, float32x4_t __b)
28344 #ifdef __AARCH64EB__
28345 return __builtin_shuffle (__a, __b, (uint32x4_t) {5, 1, 7, 3});
28346 #else
28347 return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 4, 2, 6});
28348 #endif
28351 __extension__ extern __inline float64x2_t
28352 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28353 vtrn1q_f64 (float64x2_t __a, float64x2_t __b)
28355 #ifdef __AARCH64EB__
28356 return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
28357 #else
28358 return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
28359 #endif
28362 __extension__ extern __inline poly8x16_t
28363 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28364 vtrn1q_p8 (poly8x16_t __a, poly8x16_t __b)
28366 #ifdef __AARCH64EB__
28367 return __builtin_shuffle (__a, __b,
28368 (uint8x16_t) {17, 1, 19, 3, 21, 5, 23, 7, 25, 9, 27, 11, 29, 13, 31, 15});
28369 #else
28370 return __builtin_shuffle (__a, __b,
28371 (uint8x16_t) {0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30});
28372 #endif
28375 __extension__ extern __inline poly16x8_t
28376 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28377 vtrn1q_p16 (poly16x8_t __a, poly16x8_t __b)
28379 #ifdef __AARCH64EB__
28380 return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 1, 11, 3, 13, 5, 15, 7});
28381 #else
28382 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 8, 2, 10, 4, 12, 6, 14});
28383 #endif
28386 __extension__ extern __inline int8x16_t
28387 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28388 vtrn1q_s8 (int8x16_t __a, int8x16_t __b)
28390 #ifdef __AARCH64EB__
28391 return __builtin_shuffle (__a, __b,
28392 (uint8x16_t) {17, 1, 19, 3, 21, 5, 23, 7, 25, 9, 27, 11, 29, 13, 31, 15});
28393 #else
28394 return __builtin_shuffle (__a, __b,
28395 (uint8x16_t) {0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30});
28396 #endif
28399 __extension__ extern __inline int16x8_t
28400 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28401 vtrn1q_s16 (int16x8_t __a, int16x8_t __b)
28403 #ifdef __AARCH64EB__
28404 return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 1, 11, 3, 13, 5, 15, 7});
28405 #else
28406 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 8, 2, 10, 4, 12, 6, 14});
28407 #endif
28410 __extension__ extern __inline int32x4_t
28411 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28412 vtrn1q_s32 (int32x4_t __a, int32x4_t __b)
28414 #ifdef __AARCH64EB__
28415 return __builtin_shuffle (__a, __b, (uint32x4_t) {5, 1, 7, 3});
28416 #else
28417 return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 4, 2, 6});
28418 #endif
28421 __extension__ extern __inline int64x2_t
28422 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28423 vtrn1q_s64 (int64x2_t __a, int64x2_t __b)
28425 #ifdef __AARCH64EB__
28426 return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
28427 #else
28428 return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
28429 #endif
28432 __extension__ extern __inline uint8x16_t
28433 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28434 vtrn1q_u8 (uint8x16_t __a, uint8x16_t __b)
28436 #ifdef __AARCH64EB__
28437 return __builtin_shuffle (__a, __b,
28438 (uint8x16_t) {17, 1, 19, 3, 21, 5, 23, 7, 25, 9, 27, 11, 29, 13, 31, 15});
28439 #else
28440 return __builtin_shuffle (__a, __b,
28441 (uint8x16_t) {0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30});
28442 #endif
28445 __extension__ extern __inline uint16x8_t
28446 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28447 vtrn1q_u16 (uint16x8_t __a, uint16x8_t __b)
28449 #ifdef __AARCH64EB__
28450 return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 1, 11, 3, 13, 5, 15, 7});
28451 #else
28452 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 8, 2, 10, 4, 12, 6, 14});
28453 #endif
28456 __extension__ extern __inline uint32x4_t
28457 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28458 vtrn1q_u32 (uint32x4_t __a, uint32x4_t __b)
28460 #ifdef __AARCH64EB__
28461 return __builtin_shuffle (__a, __b, (uint32x4_t) {5, 1, 7, 3});
28462 #else
28463 return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 4, 2, 6});
28464 #endif
28467 __extension__ extern __inline uint64x2_t
28468 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28469 vtrn1q_u64 (uint64x2_t __a, uint64x2_t __b)
28471 #ifdef __AARCH64EB__
28472 return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
28473 #else
28474 return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
28475 #endif
28478 __extension__ extern __inline float16x4_t
28479 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28480 vtrn2_f16 (float16x4_t __a, float16x4_t __b)
28482 #ifdef __AARCH64EB__
28483 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 6, 2});
28484 #else
28485 return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 5, 3, 7});
28486 #endif
28489 __extension__ extern __inline float32x2_t
28490 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28491 vtrn2_f32 (float32x2_t __a, float32x2_t __b)
28493 #ifdef __AARCH64EB__
28494 return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
28495 #else
28496 return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
28497 #endif
28500 __extension__ extern __inline poly8x8_t
28501 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28502 vtrn2_p8 (poly8x8_t __a, poly8x8_t __b)
28504 #ifdef __AARCH64EB__
28505 return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 0, 10, 2, 12, 4, 14, 6});
28506 #else
28507 return __builtin_shuffle (__a, __b, (uint8x8_t) {1, 9, 3, 11, 5, 13, 7, 15});
28508 #endif
28511 __extension__ extern __inline poly16x4_t
28512 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28513 vtrn2_p16 (poly16x4_t __a, poly16x4_t __b)
28515 #ifdef __AARCH64EB__
28516 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 6, 2});
28517 #else
28518 return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 5, 3, 7});
28519 #endif
28522 __extension__ extern __inline int8x8_t
28523 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28524 vtrn2_s8 (int8x8_t __a, int8x8_t __b)
28526 #ifdef __AARCH64EB__
28527 return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 0, 10, 2, 12, 4, 14, 6});
28528 #else
28529 return __builtin_shuffle (__a, __b, (uint8x8_t) {1, 9, 3, 11, 5, 13, 7, 15});
28530 #endif
28533 __extension__ extern __inline int16x4_t
28534 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28535 vtrn2_s16 (int16x4_t __a, int16x4_t __b)
28537 #ifdef __AARCH64EB__
28538 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 6, 2});
28539 #else
28540 return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 5, 3, 7});
28541 #endif
28544 __extension__ extern __inline int32x2_t
28545 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28546 vtrn2_s32 (int32x2_t __a, int32x2_t __b)
28548 #ifdef __AARCH64EB__
28549 return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
28550 #else
28551 return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
28552 #endif
28555 __extension__ extern __inline uint8x8_t
28556 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28557 vtrn2_u8 (uint8x8_t __a, uint8x8_t __b)
28559 #ifdef __AARCH64EB__
28560 return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 0, 10, 2, 12, 4, 14, 6});
28561 #else
28562 return __builtin_shuffle (__a, __b, (uint8x8_t) {1, 9, 3, 11, 5, 13, 7, 15});
28563 #endif
28566 __extension__ extern __inline uint16x4_t
28567 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28568 vtrn2_u16 (uint16x4_t __a, uint16x4_t __b)
28570 #ifdef __AARCH64EB__
28571 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 6, 2});
28572 #else
28573 return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 5, 3, 7});
28574 #endif
28577 __extension__ extern __inline uint32x2_t
28578 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28579 vtrn2_u32 (uint32x2_t __a, uint32x2_t __b)
28581 #ifdef __AARCH64EB__
28582 return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
28583 #else
28584 return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
28585 #endif
28588 __extension__ extern __inline float16x8_t
28589 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28590 vtrn2q_f16 (float16x8_t __a, float16x8_t __b)
28592 #ifdef __AARCH64EB__
28593 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 0, 10, 2, 12, 4, 14, 6});
28594 #else
28595 return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 9, 3, 11, 5, 13, 7, 15});
28596 #endif
28599 __extension__ extern __inline float32x4_t
28600 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28601 vtrn2q_f32 (float32x4_t __a, float32x4_t __b)
28603 #ifdef __AARCH64EB__
28604 return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 0, 6, 2});
28605 #else
28606 return __builtin_shuffle (__a, __b, (uint32x4_t) {1, 5, 3, 7});
28607 #endif
28610 __extension__ extern __inline float64x2_t
28611 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28612 vtrn2q_f64 (float64x2_t __a, float64x2_t __b)
28614 #ifdef __AARCH64EB__
28615 return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
28616 #else
28617 return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
28618 #endif
28621 __extension__ extern __inline poly8x16_t
28622 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28623 vtrn2q_p8 (poly8x16_t __a, poly8x16_t __b)
28625 #ifdef __AARCH64EB__
28626 return __builtin_shuffle (__a, __b,
28627 (uint8x16_t) {16, 0, 18, 2, 20, 4, 22, 6, 24, 8, 26, 10, 28, 12, 30, 14});
28628 #else
28629 return __builtin_shuffle (__a, __b,
28630 (uint8x16_t) {1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31});
28631 #endif
28634 __extension__ extern __inline poly16x8_t
28635 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28636 vtrn2q_p16 (poly16x8_t __a, poly16x8_t __b)
28638 #ifdef __AARCH64EB__
28639 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 0, 10, 2, 12, 4, 14, 6});
28640 #else
28641 return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 9, 3, 11, 5, 13, 7, 15});
28642 #endif
28645 __extension__ extern __inline int8x16_t
28646 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28647 vtrn2q_s8 (int8x16_t __a, int8x16_t __b)
28649 #ifdef __AARCH64EB__
28650 return __builtin_shuffle (__a, __b,
28651 (uint8x16_t) {16, 0, 18, 2, 20, 4, 22, 6, 24, 8, 26, 10, 28, 12, 30, 14});
28652 #else
28653 return __builtin_shuffle (__a, __b,
28654 (uint8x16_t) {1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31});
28655 #endif
28658 __extension__ extern __inline int16x8_t
28659 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28660 vtrn2q_s16 (int16x8_t __a, int16x8_t __b)
28662 #ifdef __AARCH64EB__
28663 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 0, 10, 2, 12, 4, 14, 6});
28664 #else
28665 return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 9, 3, 11, 5, 13, 7, 15});
28666 #endif
28669 __extension__ extern __inline int32x4_t
28670 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28671 vtrn2q_s32 (int32x4_t __a, int32x4_t __b)
28673 #ifdef __AARCH64EB__
28674 return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 0, 6, 2});
28675 #else
28676 return __builtin_shuffle (__a, __b, (uint32x4_t) {1, 5, 3, 7});
28677 #endif
28680 __extension__ extern __inline int64x2_t
28681 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28682 vtrn2q_s64 (int64x2_t __a, int64x2_t __b)
28684 #ifdef __AARCH64EB__
28685 return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
28686 #else
28687 return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
28688 #endif
28691 __extension__ extern __inline uint8x16_t
28692 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28693 vtrn2q_u8 (uint8x16_t __a, uint8x16_t __b)
28695 #ifdef __AARCH64EB__
28696 return __builtin_shuffle (__a, __b,
28697 (uint8x16_t) {16, 0, 18, 2, 20, 4, 22, 6, 24, 8, 26, 10, 28, 12, 30, 14});
28698 #else
28699 return __builtin_shuffle (__a, __b,
28700 (uint8x16_t) {1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31});
28701 #endif
28704 __extension__ extern __inline uint16x8_t
28705 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28706 vtrn2q_u16 (uint16x8_t __a, uint16x8_t __b)
28708 #ifdef __AARCH64EB__
28709 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 0, 10, 2, 12, 4, 14, 6});
28710 #else
28711 return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 9, 3, 11, 5, 13, 7, 15});
28712 #endif
28715 __extension__ extern __inline uint32x4_t
28716 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28717 vtrn2q_u32 (uint32x4_t __a, uint32x4_t __b)
28719 #ifdef __AARCH64EB__
28720 return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 0, 6, 2});
28721 #else
28722 return __builtin_shuffle (__a, __b, (uint32x4_t) {1, 5, 3, 7});
28723 #endif
28726 __extension__ extern __inline uint64x2_t
28727 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28728 vtrn2q_u64 (uint64x2_t __a, uint64x2_t __b)
28730 #ifdef __AARCH64EB__
28731 return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
28732 #else
28733 return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
28734 #endif
28737 __extension__ extern __inline float16x4x2_t
28738 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28739 vtrn_f16 (float16x4_t __a, float16x4_t __b)
28741 return (float16x4x2_t) {vtrn1_f16 (__a, __b), vtrn2_f16 (__a, __b)};
28744 __extension__ extern __inline float32x2x2_t
28745 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28746 vtrn_f32 (float32x2_t a, float32x2_t b)
28748 return (float32x2x2_t) {vtrn1_f32 (a, b), vtrn2_f32 (a, b)};
28751 __extension__ extern __inline poly8x8x2_t
28752 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28753 vtrn_p8 (poly8x8_t a, poly8x8_t b)
28755 return (poly8x8x2_t) {vtrn1_p8 (a, b), vtrn2_p8 (a, b)};
28758 __extension__ extern __inline poly16x4x2_t
28759 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28760 vtrn_p16 (poly16x4_t a, poly16x4_t b)
28762 return (poly16x4x2_t) {vtrn1_p16 (a, b), vtrn2_p16 (a, b)};
28765 __extension__ extern __inline int8x8x2_t
28766 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28767 vtrn_s8 (int8x8_t a, int8x8_t b)
28769 return (int8x8x2_t) {vtrn1_s8 (a, b), vtrn2_s8 (a, b)};
28772 __extension__ extern __inline int16x4x2_t
28773 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28774 vtrn_s16 (int16x4_t a, int16x4_t b)
28776 return (int16x4x2_t) {vtrn1_s16 (a, b), vtrn2_s16 (a, b)};
28779 __extension__ extern __inline int32x2x2_t
28780 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28781 vtrn_s32 (int32x2_t a, int32x2_t b)
28783 return (int32x2x2_t) {vtrn1_s32 (a, b), vtrn2_s32 (a, b)};
28786 __extension__ extern __inline uint8x8x2_t
28787 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28788 vtrn_u8 (uint8x8_t a, uint8x8_t b)
28790 return (uint8x8x2_t) {vtrn1_u8 (a, b), vtrn2_u8 (a, b)};
28793 __extension__ extern __inline uint16x4x2_t
28794 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28795 vtrn_u16 (uint16x4_t a, uint16x4_t b)
28797 return (uint16x4x2_t) {vtrn1_u16 (a, b), vtrn2_u16 (a, b)};
28800 __extension__ extern __inline uint32x2x2_t
28801 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28802 vtrn_u32 (uint32x2_t a, uint32x2_t b)
28804 return (uint32x2x2_t) {vtrn1_u32 (a, b), vtrn2_u32 (a, b)};
28807 __extension__ extern __inline float16x8x2_t
28808 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28809 vtrnq_f16 (float16x8_t __a, float16x8_t __b)
28811 return (float16x8x2_t) {vtrn1q_f16 (__a, __b), vtrn2q_f16 (__a, __b)};
28814 __extension__ extern __inline float32x4x2_t
28815 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28816 vtrnq_f32 (float32x4_t a, float32x4_t b)
28818 return (float32x4x2_t) {vtrn1q_f32 (a, b), vtrn2q_f32 (a, b)};
28821 __extension__ extern __inline poly8x16x2_t
28822 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28823 vtrnq_p8 (poly8x16_t a, poly8x16_t b)
28825 return (poly8x16x2_t) {vtrn1q_p8 (a, b), vtrn2q_p8 (a, b)};
28828 __extension__ extern __inline poly16x8x2_t
28829 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28830 vtrnq_p16 (poly16x8_t a, poly16x8_t b)
28832 return (poly16x8x2_t) {vtrn1q_p16 (a, b), vtrn2q_p16 (a, b)};
28835 __extension__ extern __inline int8x16x2_t
28836 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28837 vtrnq_s8 (int8x16_t a, int8x16_t b)
28839 return (int8x16x2_t) {vtrn1q_s8 (a, b), vtrn2q_s8 (a, b)};
28842 __extension__ extern __inline int16x8x2_t
28843 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28844 vtrnq_s16 (int16x8_t a, int16x8_t b)
28846 return (int16x8x2_t) {vtrn1q_s16 (a, b), vtrn2q_s16 (a, b)};
28849 __extension__ extern __inline int32x4x2_t
28850 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28851 vtrnq_s32 (int32x4_t a, int32x4_t b)
28853 return (int32x4x2_t) {vtrn1q_s32 (a, b), vtrn2q_s32 (a, b)};
28856 __extension__ extern __inline uint8x16x2_t
28857 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28858 vtrnq_u8 (uint8x16_t a, uint8x16_t b)
28860 return (uint8x16x2_t) {vtrn1q_u8 (a, b), vtrn2q_u8 (a, b)};
28863 __extension__ extern __inline uint16x8x2_t
28864 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28865 vtrnq_u16 (uint16x8_t a, uint16x8_t b)
28867 return (uint16x8x2_t) {vtrn1q_u16 (a, b), vtrn2q_u16 (a, b)};
28870 __extension__ extern __inline uint32x4x2_t
28871 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28872 vtrnq_u32 (uint32x4_t a, uint32x4_t b)
28874 return (uint32x4x2_t) {vtrn1q_u32 (a, b), vtrn2q_u32 (a, b)};
28877 /* vtst */
28879 __extension__ extern __inline uint8x8_t
28880 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28881 vtst_s8 (int8x8_t __a, int8x8_t __b)
28883 return (uint8x8_t) ((__a & __b) != 0);
28886 __extension__ extern __inline uint16x4_t
28887 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28888 vtst_s16 (int16x4_t __a, int16x4_t __b)
28890 return (uint16x4_t) ((__a & __b) != 0);
28893 __extension__ extern __inline uint32x2_t
28894 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28895 vtst_s32 (int32x2_t __a, int32x2_t __b)
28897 return (uint32x2_t) ((__a & __b) != 0);
28900 __extension__ extern __inline uint64x1_t
28901 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28902 vtst_s64 (int64x1_t __a, int64x1_t __b)
28904 return (uint64x1_t) ((__a & __b) != __AARCH64_INT64_C (0));
28907 __extension__ extern __inline uint8x8_t
28908 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28909 vtst_u8 (uint8x8_t __a, uint8x8_t __b)
28911 return ((__a & __b) != 0);
28914 __extension__ extern __inline uint16x4_t
28915 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28916 vtst_u16 (uint16x4_t __a, uint16x4_t __b)
28918 return ((__a & __b) != 0);
28921 __extension__ extern __inline uint32x2_t
28922 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28923 vtst_u32 (uint32x2_t __a, uint32x2_t __b)
28925 return ((__a & __b) != 0);
28928 __extension__ extern __inline uint64x1_t
28929 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28930 vtst_u64 (uint64x1_t __a, uint64x1_t __b)
28932 return ((__a & __b) != __AARCH64_UINT64_C (0));
28935 __extension__ extern __inline uint8x16_t
28936 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28937 vtstq_s8 (int8x16_t __a, int8x16_t __b)
28939 return (uint8x16_t) ((__a & __b) != 0);
28942 __extension__ extern __inline uint16x8_t
28943 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28944 vtstq_s16 (int16x8_t __a, int16x8_t __b)
28946 return (uint16x8_t) ((__a & __b) != 0);
28949 __extension__ extern __inline uint32x4_t
28950 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28951 vtstq_s32 (int32x4_t __a, int32x4_t __b)
28953 return (uint32x4_t) ((__a & __b) != 0);
28956 __extension__ extern __inline uint64x2_t
28957 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28958 vtstq_s64 (int64x2_t __a, int64x2_t __b)
28960 return (uint64x2_t) ((__a & __b) != __AARCH64_INT64_C (0));
28963 __extension__ extern __inline uint8x16_t
28964 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28965 vtstq_u8 (uint8x16_t __a, uint8x16_t __b)
28967 return ((__a & __b) != 0);
28970 __extension__ extern __inline uint16x8_t
28971 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28972 vtstq_u16 (uint16x8_t __a, uint16x8_t __b)
28974 return ((__a & __b) != 0);
28977 __extension__ extern __inline uint32x4_t
28978 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28979 vtstq_u32 (uint32x4_t __a, uint32x4_t __b)
28981 return ((__a & __b) != 0);
28984 __extension__ extern __inline uint64x2_t
28985 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28986 vtstq_u64 (uint64x2_t __a, uint64x2_t __b)
28988 return ((__a & __b) != __AARCH64_UINT64_C (0));
28991 __extension__ extern __inline uint64_t
28992 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28993 vtstd_s64 (int64_t __a, int64_t __b)
28995 return (__a & __b) ? -1ll : 0ll;
28998 __extension__ extern __inline uint64_t
28999 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29000 vtstd_u64 (uint64_t __a, uint64_t __b)
29002 return (__a & __b) ? -1ll : 0ll;
29005 /* vuqadd */
29007 __extension__ extern __inline int8x8_t
29008 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29009 vuqadd_s8 (int8x8_t __a, uint8x8_t __b)
29011 return __builtin_aarch64_suqaddv8qi_ssu (__a, __b);
29014 __extension__ extern __inline int16x4_t
29015 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29016 vuqadd_s16 (int16x4_t __a, uint16x4_t __b)
29018 return __builtin_aarch64_suqaddv4hi_ssu (__a, __b);
29021 __extension__ extern __inline int32x2_t
29022 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29023 vuqadd_s32 (int32x2_t __a, uint32x2_t __b)
29025 return __builtin_aarch64_suqaddv2si_ssu (__a, __b);
29028 __extension__ extern __inline int64x1_t
29029 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29030 vuqadd_s64 (int64x1_t __a, uint64x1_t __b)
29032 return (int64x1_t) {__builtin_aarch64_suqadddi_ssu (__a[0], __b[0])};
29035 __extension__ extern __inline int8x16_t
29036 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29037 vuqaddq_s8 (int8x16_t __a, uint8x16_t __b)
29039 return __builtin_aarch64_suqaddv16qi_ssu (__a, __b);
29042 __extension__ extern __inline int16x8_t
29043 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29044 vuqaddq_s16 (int16x8_t __a, uint16x8_t __b)
29046 return __builtin_aarch64_suqaddv8hi_ssu (__a, __b);
29049 __extension__ extern __inline int32x4_t
29050 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29051 vuqaddq_s32 (int32x4_t __a, uint32x4_t __b)
29053 return __builtin_aarch64_suqaddv4si_ssu (__a, __b);
29056 __extension__ extern __inline int64x2_t
29057 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29058 vuqaddq_s64 (int64x2_t __a, uint64x2_t __b)
29060 return __builtin_aarch64_suqaddv2di_ssu (__a, __b);
29063 __extension__ extern __inline int8_t
29064 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29065 vuqaddb_s8 (int8_t __a, uint8_t __b)
29067 return __builtin_aarch64_suqaddqi_ssu (__a, __b);
29070 __extension__ extern __inline int16_t
29071 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29072 vuqaddh_s16 (int16_t __a, uint16_t __b)
29074 return __builtin_aarch64_suqaddhi_ssu (__a, __b);
29077 __extension__ extern __inline int32_t
29078 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29079 vuqadds_s32 (int32_t __a, uint32_t __b)
29081 return __builtin_aarch64_suqaddsi_ssu (__a, __b);
29084 __extension__ extern __inline int64_t
29085 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29086 vuqaddd_s64 (int64_t __a, uint64_t __b)
29088 return __builtin_aarch64_suqadddi_ssu (__a, __b);
29091 #define __DEFINTERLEAVE(op, rettype, intype, funcsuffix, Q) \
29092 __extension__ extern __inline rettype \
29093 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) \
29094 v ## op ## Q ## _ ## funcsuffix (intype a, intype b) \
29096 return (rettype) {v ## op ## 1 ## Q ## _ ## funcsuffix (a, b), \
29097 v ## op ## 2 ## Q ## _ ## funcsuffix (a, b)}; \
29100 #define __INTERLEAVE_LIST(op) \
29101 __DEFINTERLEAVE (op, float16x4x2_t, float16x4_t, f16,) \
29102 __DEFINTERLEAVE (op, float32x2x2_t, float32x2_t, f32,) \
29103 __DEFINTERLEAVE (op, poly8x8x2_t, poly8x8_t, p8,) \
29104 __DEFINTERLEAVE (op, poly16x4x2_t, poly16x4_t, p16,) \
29105 __DEFINTERLEAVE (op, int8x8x2_t, int8x8_t, s8,) \
29106 __DEFINTERLEAVE (op, int16x4x2_t, int16x4_t, s16,) \
29107 __DEFINTERLEAVE (op, int32x2x2_t, int32x2_t, s32,) \
29108 __DEFINTERLEAVE (op, uint8x8x2_t, uint8x8_t, u8,) \
29109 __DEFINTERLEAVE (op, uint16x4x2_t, uint16x4_t, u16,) \
29110 __DEFINTERLEAVE (op, uint32x2x2_t, uint32x2_t, u32,) \
29111 __DEFINTERLEAVE (op, float16x8x2_t, float16x8_t, f16, q) \
29112 __DEFINTERLEAVE (op, float32x4x2_t, float32x4_t, f32, q) \
29113 __DEFINTERLEAVE (op, poly8x16x2_t, poly8x16_t, p8, q) \
29114 __DEFINTERLEAVE (op, poly16x8x2_t, poly16x8_t, p16, q) \
29115 __DEFINTERLEAVE (op, int8x16x2_t, int8x16_t, s8, q) \
29116 __DEFINTERLEAVE (op, int16x8x2_t, int16x8_t, s16, q) \
29117 __DEFINTERLEAVE (op, int32x4x2_t, int32x4_t, s32, q) \
29118 __DEFINTERLEAVE (op, uint8x16x2_t, uint8x16_t, u8, q) \
29119 __DEFINTERLEAVE (op, uint16x8x2_t, uint16x8_t, u16, q) \
29120 __DEFINTERLEAVE (op, uint32x4x2_t, uint32x4_t, u32, q)
29122 /* vuzp */
29124 __extension__ extern __inline float16x4_t
29125 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29126 vuzp1_f16 (float16x4_t __a, float16x4_t __b)
29128 #ifdef __AARCH64EB__
29129 return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 7, 1, 3});
29130 #else
29131 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 2, 4, 6});
29132 #endif
29135 __extension__ extern __inline float32x2_t
29136 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29137 vuzp1_f32 (float32x2_t __a, float32x2_t __b)
29139 #ifdef __AARCH64EB__
29140 return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
29141 #else
29142 return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
29143 #endif
29146 __extension__ extern __inline poly8x8_t
29147 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29148 vuzp1_p8 (poly8x8_t __a, poly8x8_t __b)
29150 #ifdef __AARCH64EB__
29151 return __builtin_shuffle (__a, __b, (uint8x8_t) {9, 11, 13, 15, 1, 3, 5, 7});
29152 #else
29153 return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 2, 4, 6, 8, 10, 12, 14});
29154 #endif
29157 __extension__ extern __inline poly16x4_t
29158 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29159 vuzp1_p16 (poly16x4_t __a, poly16x4_t __b)
29161 #ifdef __AARCH64EB__
29162 return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 7, 1, 3});
29163 #else
29164 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 2, 4, 6});
29165 #endif
29168 __extension__ extern __inline int8x8_t
29169 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29170 vuzp1_s8 (int8x8_t __a, int8x8_t __b)
29172 #ifdef __AARCH64EB__
29173 return __builtin_shuffle (__a, __b, (uint8x8_t) {9, 11, 13, 15, 1, 3, 5, 7});
29174 #else
29175 return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 2, 4, 6, 8, 10, 12, 14});
29176 #endif
29179 __extension__ extern __inline int16x4_t
29180 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29181 vuzp1_s16 (int16x4_t __a, int16x4_t __b)
29183 #ifdef __AARCH64EB__
29184 return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 7, 1, 3});
29185 #else
29186 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 2, 4, 6});
29187 #endif
29190 __extension__ extern __inline int32x2_t
29191 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29192 vuzp1_s32 (int32x2_t __a, int32x2_t __b)
29194 #ifdef __AARCH64EB__
29195 return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
29196 #else
29197 return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
29198 #endif
29201 __extension__ extern __inline uint8x8_t
29202 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29203 vuzp1_u8 (uint8x8_t __a, uint8x8_t __b)
29205 #ifdef __AARCH64EB__
29206 return __builtin_shuffle (__a, __b, (uint8x8_t) {9, 11, 13, 15, 1, 3, 5, 7});
29207 #else
29208 return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 2, 4, 6, 8, 10, 12, 14});
29209 #endif
29212 __extension__ extern __inline uint16x4_t
29213 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29214 vuzp1_u16 (uint16x4_t __a, uint16x4_t __b)
29216 #ifdef __AARCH64EB__
29217 return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 7, 1, 3});
29218 #else
29219 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 2, 4, 6});
29220 #endif
29223 __extension__ extern __inline uint32x2_t
29224 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29225 vuzp1_u32 (uint32x2_t __a, uint32x2_t __b)
29227 #ifdef __AARCH64EB__
29228 return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
29229 #else
29230 return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
29231 #endif
29234 __extension__ extern __inline float16x8_t
29235 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29236 vuzp1q_f16 (float16x8_t __a, float16x8_t __b)
29238 #ifdef __AARCH64EB__
29239 return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 11, 13, 15, 1, 3, 5, 7});
29240 #else
29241 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 2, 4, 6, 8, 10, 12, 14});
29242 #endif
29245 __extension__ extern __inline float32x4_t
29246 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29247 vuzp1q_f32 (float32x4_t __a, float32x4_t __b)
29249 #ifdef __AARCH64EB__
29250 return __builtin_shuffle (__a, __b, (uint32x4_t) {5, 7, 1, 3});
29251 #else
29252 return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 2, 4, 6});
29253 #endif
29256 __extension__ extern __inline float64x2_t
29257 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29258 vuzp1q_f64 (float64x2_t __a, float64x2_t __b)
29260 #ifdef __AARCH64EB__
29261 return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
29262 #else
29263 return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
29264 #endif
29267 __extension__ extern __inline poly8x16_t
29268 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29269 vuzp1q_p8 (poly8x16_t __a, poly8x16_t __b)
29271 #ifdef __AARCH64EB__
29272 return __builtin_shuffle (__a, __b, (uint8x16_t)
29273 {17, 19, 21, 23, 25, 27, 29, 31, 1, 3, 5, 7, 9, 11, 13, 15});
29274 #else
29275 return __builtin_shuffle (__a, __b, (uint8x16_t)
29276 {0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30});
29277 #endif
29280 __extension__ extern __inline poly16x8_t
29281 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29282 vuzp1q_p16 (poly16x8_t __a, poly16x8_t __b)
29284 #ifdef __AARCH64EB__
29285 return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 11, 13, 15, 1, 3, 5, 7});
29286 #else
29287 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 2, 4, 6, 8, 10, 12, 14});
29288 #endif
29291 __extension__ extern __inline int8x16_t
29292 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29293 vuzp1q_s8 (int8x16_t __a, int8x16_t __b)
29295 #ifdef __AARCH64EB__
29296 return __builtin_shuffle (__a, __b,
29297 (uint8x16_t) {17, 19, 21, 23, 25, 27, 29, 31, 1, 3, 5, 7, 9, 11, 13, 15});
29298 #else
29299 return __builtin_shuffle (__a, __b,
29300 (uint8x16_t) {0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30});
29301 #endif
29304 __extension__ extern __inline int16x8_t
29305 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29306 vuzp1q_s16 (int16x8_t __a, int16x8_t __b)
29308 #ifdef __AARCH64EB__
29309 return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 11, 13, 15, 1, 3, 5, 7});
29310 #else
29311 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 2, 4, 6, 8, 10, 12, 14});
29312 #endif
29315 __extension__ extern __inline int32x4_t
29316 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29317 vuzp1q_s32 (int32x4_t __a, int32x4_t __b)
29319 #ifdef __AARCH64EB__
29320 return __builtin_shuffle (__a, __b, (uint32x4_t) {5, 7, 1, 3});
29321 #else
29322 return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 2, 4, 6});
29323 #endif
29326 __extension__ extern __inline int64x2_t
29327 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29328 vuzp1q_s64 (int64x2_t __a, int64x2_t __b)
29330 #ifdef __AARCH64EB__
29331 return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
29332 #else
29333 return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
29334 #endif
29337 __extension__ extern __inline uint8x16_t
29338 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29339 vuzp1q_u8 (uint8x16_t __a, uint8x16_t __b)
29341 #ifdef __AARCH64EB__
29342 return __builtin_shuffle (__a, __b,
29343 (uint8x16_t) {17, 19, 21, 23, 25, 27, 29, 31, 1, 3, 5, 7, 9, 11, 13, 15});
29344 #else
29345 return __builtin_shuffle (__a, __b,
29346 (uint8x16_t) {0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30});
29347 #endif
29350 __extension__ extern __inline uint16x8_t
29351 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29352 vuzp1q_u16 (uint16x8_t __a, uint16x8_t __b)
29354 #ifdef __AARCH64EB__
29355 return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 11, 13, 15, 1, 3, 5, 7});
29356 #else
29357 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 2, 4, 6, 8, 10, 12, 14});
29358 #endif
29361 __extension__ extern __inline uint32x4_t
29362 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29363 vuzp1q_u32 (uint32x4_t __a, uint32x4_t __b)
29365 #ifdef __AARCH64EB__
29366 return __builtin_shuffle (__a, __b, (uint32x4_t) {5, 7, 1, 3});
29367 #else
29368 return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 2, 4, 6});
29369 #endif
29372 __extension__ extern __inline uint64x2_t
29373 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29374 vuzp1q_u64 (uint64x2_t __a, uint64x2_t __b)
29376 #ifdef __AARCH64EB__
29377 return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
29378 #else
29379 return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
29380 #endif
29383 __extension__ extern __inline float16x4_t
29384 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29385 vuzp2_f16 (float16x4_t __a, float16x4_t __b)
29387 #ifdef __AARCH64EB__
29388 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 6, 0, 2});
29389 #else
29390 return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 3, 5, 7});
29391 #endif
29394 __extension__ extern __inline float32x2_t
29395 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29396 vuzp2_f32 (float32x2_t __a, float32x2_t __b)
29398 #ifdef __AARCH64EB__
29399 return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
29400 #else
29401 return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
29402 #endif
29405 __extension__ extern __inline poly8x8_t
29406 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29407 vuzp2_p8 (poly8x8_t __a, poly8x8_t __b)
29409 #ifdef __AARCH64EB__
29410 return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 10, 12, 14, 0, 2, 4, 6});
29411 #else
29412 return __builtin_shuffle (__a, __b, (uint8x8_t) {1, 3, 5, 7, 9, 11, 13, 15});
29413 #endif
29416 __extension__ extern __inline poly16x4_t
29417 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29418 vuzp2_p16 (poly16x4_t __a, poly16x4_t __b)
29420 #ifdef __AARCH64EB__
29421 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 6, 0, 2});
29422 #else
29423 return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 3, 5, 7});
29424 #endif
29427 __extension__ extern __inline int8x8_t
29428 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29429 vuzp2_s8 (int8x8_t __a, int8x8_t __b)
29431 #ifdef __AARCH64EB__
29432 return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 10, 12, 14, 0, 2, 4, 6});
29433 #else
29434 return __builtin_shuffle (__a, __b, (uint8x8_t) {1, 3, 5, 7, 9, 11, 13, 15});
29435 #endif
29438 __extension__ extern __inline int16x4_t
29439 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29440 vuzp2_s16 (int16x4_t __a, int16x4_t __b)
29442 #ifdef __AARCH64EB__
29443 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 6, 0, 2});
29444 #else
29445 return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 3, 5, 7});
29446 #endif
29449 __extension__ extern __inline int32x2_t
29450 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29451 vuzp2_s32 (int32x2_t __a, int32x2_t __b)
29453 #ifdef __AARCH64EB__
29454 return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
29455 #else
29456 return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
29457 #endif
29460 __extension__ extern __inline uint8x8_t
29461 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29462 vuzp2_u8 (uint8x8_t __a, uint8x8_t __b)
29464 #ifdef __AARCH64EB__
29465 return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 10, 12, 14, 0, 2, 4, 6});
29466 #else
29467 return __builtin_shuffle (__a, __b, (uint8x8_t) {1, 3, 5, 7, 9, 11, 13, 15});
29468 #endif
29471 __extension__ extern __inline uint16x4_t
29472 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29473 vuzp2_u16 (uint16x4_t __a, uint16x4_t __b)
29475 #ifdef __AARCH64EB__
29476 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 6, 0, 2});
29477 #else
29478 return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 3, 5, 7});
29479 #endif
29482 __extension__ extern __inline uint32x2_t
29483 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29484 vuzp2_u32 (uint32x2_t __a, uint32x2_t __b)
29486 #ifdef __AARCH64EB__
29487 return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
29488 #else
29489 return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
29490 #endif
29493 __extension__ extern __inline float16x8_t
29494 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29495 vuzp2q_f16 (float16x8_t __a, float16x8_t __b)
29497 #ifdef __AARCH64EB__
29498 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 10, 12, 14, 0, 2, 4, 6});
29499 #else
29500 return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 3, 5, 7, 9, 11, 13, 15});
29501 #endif
29504 __extension__ extern __inline float32x4_t
29505 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29506 vuzp2q_f32 (float32x4_t __a, float32x4_t __b)
29508 #ifdef __AARCH64EB__
29509 return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 6, 0, 2});
29510 #else
29511 return __builtin_shuffle (__a, __b, (uint32x4_t) {1, 3, 5, 7});
29512 #endif
29515 __extension__ extern __inline float64x2_t
29516 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29517 vuzp2q_f64 (float64x2_t __a, float64x2_t __b)
29519 #ifdef __AARCH64EB__
29520 return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
29521 #else
29522 return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
29523 #endif
29526 __extension__ extern __inline poly8x16_t
29527 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29528 vuzp2q_p8 (poly8x16_t __a, poly8x16_t __b)
29530 #ifdef __AARCH64EB__
29531 return __builtin_shuffle (__a, __b,
29532 (uint8x16_t) {16, 18, 20, 22, 24, 26, 28, 30, 0, 2, 4, 6, 8, 10, 12, 14});
29533 #else
29534 return __builtin_shuffle (__a, __b,
29535 (uint8x16_t) {1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31});
29536 #endif
29539 __extension__ extern __inline poly16x8_t
29540 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29541 vuzp2q_p16 (poly16x8_t __a, poly16x8_t __b)
29543 #ifdef __AARCH64EB__
29544 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 10, 12, 14, 0, 2, 4, 6});
29545 #else
29546 return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 3, 5, 7, 9, 11, 13, 15});
29547 #endif
29550 __extension__ extern __inline int8x16_t
29551 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29552 vuzp2q_s8 (int8x16_t __a, int8x16_t __b)
29554 #ifdef __AARCH64EB__
29555 return __builtin_shuffle (__a, __b,
29556 (uint8x16_t) {16, 18, 20, 22, 24, 26, 28, 30, 0, 2, 4, 6, 8, 10, 12, 14});
29557 #else
29558 return __builtin_shuffle (__a, __b,
29559 (uint8x16_t) {1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31});
29560 #endif
29563 __extension__ extern __inline int16x8_t
29564 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29565 vuzp2q_s16 (int16x8_t __a, int16x8_t __b)
29567 #ifdef __AARCH64EB__
29568 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 10, 12, 14, 0, 2, 4, 6});
29569 #else
29570 return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 3, 5, 7, 9, 11, 13, 15});
29571 #endif
29574 __extension__ extern __inline int32x4_t
29575 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29576 vuzp2q_s32 (int32x4_t __a, int32x4_t __b)
29578 #ifdef __AARCH64EB__
29579 return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 6, 0, 2});
29580 #else
29581 return __builtin_shuffle (__a, __b, (uint32x4_t) {1, 3, 5, 7});
29582 #endif
29585 __extension__ extern __inline int64x2_t
29586 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29587 vuzp2q_s64 (int64x2_t __a, int64x2_t __b)
29589 #ifdef __AARCH64EB__
29590 return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
29591 #else
29592 return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
29593 #endif
29596 __extension__ extern __inline uint8x16_t
29597 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29598 vuzp2q_u8 (uint8x16_t __a, uint8x16_t __b)
29600 #ifdef __AARCH64EB__
29601 return __builtin_shuffle (__a, __b, (uint8x16_t)
29602 {16, 18, 20, 22, 24, 26, 28, 30, 0, 2, 4, 6, 8, 10, 12, 14});
29603 #else
29604 return __builtin_shuffle (__a, __b, (uint8x16_t)
29605 {1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31});
29606 #endif
29609 __extension__ extern __inline uint16x8_t
29610 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29611 vuzp2q_u16 (uint16x8_t __a, uint16x8_t __b)
29613 #ifdef __AARCH64EB__
29614 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 10, 12, 14, 0, 2, 4, 6});
29615 #else
29616 return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 3, 5, 7, 9, 11, 13, 15});
29617 #endif
29620 __extension__ extern __inline uint32x4_t
29621 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29622 vuzp2q_u32 (uint32x4_t __a, uint32x4_t __b)
29624 #ifdef __AARCH64EB__
29625 return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 6, 0, 2});
29626 #else
29627 return __builtin_shuffle (__a, __b, (uint32x4_t) {1, 3, 5, 7});
29628 #endif
29631 __extension__ extern __inline uint64x2_t
29632 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29633 vuzp2q_u64 (uint64x2_t __a, uint64x2_t __b)
29635 #ifdef __AARCH64EB__
29636 return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
29637 #else
29638 return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
29639 #endif
29642 __INTERLEAVE_LIST (uzp)
29644 /* vzip */
29646 __extension__ extern __inline float16x4_t
29647 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29648 vzip1_f16 (float16x4_t __a, float16x4_t __b)
29650 #ifdef __AARCH64EB__
29651 return __builtin_shuffle (__a, __b, (uint16x4_t) {6, 2, 7, 3});
29652 #else
29653 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 1, 5});
29654 #endif
29657 __extension__ extern __inline float32x2_t
29658 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29659 vzip1_f32 (float32x2_t __a, float32x2_t __b)
29661 #ifdef __AARCH64EB__
29662 return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
29663 #else
29664 return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
29665 #endif
29668 __extension__ extern __inline poly8x8_t
29669 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29670 vzip1_p8 (poly8x8_t __a, poly8x8_t __b)
29672 #ifdef __AARCH64EB__
29673 return __builtin_shuffle (__a, __b, (uint8x8_t) {12, 4, 13, 5, 14, 6, 15, 7});
29674 #else
29675 return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 8, 1, 9, 2, 10, 3, 11});
29676 #endif
29679 __extension__ extern __inline poly16x4_t
29680 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29681 vzip1_p16 (poly16x4_t __a, poly16x4_t __b)
29683 #ifdef __AARCH64EB__
29684 return __builtin_shuffle (__a, __b, (uint16x4_t) {6, 2, 7, 3});
29685 #else
29686 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 1, 5});
29687 #endif
29690 __extension__ extern __inline int8x8_t
29691 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29692 vzip1_s8 (int8x8_t __a, int8x8_t __b)
29694 #ifdef __AARCH64EB__
29695 return __builtin_shuffle (__a, __b, (uint8x8_t) {12, 4, 13, 5, 14, 6, 15, 7});
29696 #else
29697 return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 8, 1, 9, 2, 10, 3, 11});
29698 #endif
29701 __extension__ extern __inline int16x4_t
29702 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29703 vzip1_s16 (int16x4_t __a, int16x4_t __b)
29705 #ifdef __AARCH64EB__
29706 return __builtin_shuffle (__a, __b, (uint16x4_t) {6, 2, 7, 3});
29707 #else
29708 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 1, 5});
29709 #endif
29712 __extension__ extern __inline int32x2_t
29713 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29714 vzip1_s32 (int32x2_t __a, int32x2_t __b)
29716 #ifdef __AARCH64EB__
29717 return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
29718 #else
29719 return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
29720 #endif
29723 __extension__ extern __inline uint8x8_t
29724 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29725 vzip1_u8 (uint8x8_t __a, uint8x8_t __b)
29727 #ifdef __AARCH64EB__
29728 return __builtin_shuffle (__a, __b, (uint8x8_t) {12, 4, 13, 5, 14, 6, 15, 7});
29729 #else
29730 return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 8, 1, 9, 2, 10, 3, 11});
29731 #endif
29734 __extension__ extern __inline uint16x4_t
29735 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29736 vzip1_u16 (uint16x4_t __a, uint16x4_t __b)
29738 #ifdef __AARCH64EB__
29739 return __builtin_shuffle (__a, __b, (uint16x4_t) {6, 2, 7, 3});
29740 #else
29741 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 1, 5});
29742 #endif
29745 __extension__ extern __inline uint32x2_t
29746 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29747 vzip1_u32 (uint32x2_t __a, uint32x2_t __b)
29749 #ifdef __AARCH64EB__
29750 return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
29751 #else
29752 return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
29753 #endif
29756 __extension__ extern __inline float16x8_t
29757 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29758 vzip1q_f16 (float16x8_t __a, float16x8_t __b)
29760 #ifdef __AARCH64EB__
29761 return __builtin_shuffle (__a, __b,
29762 (uint16x8_t) {12, 4, 13, 5, 14, 6, 15, 7});
29763 #else
29764 return __builtin_shuffle (__a, __b,
29765 (uint16x8_t) {0, 8, 1, 9, 2, 10, 3, 11});
29766 #endif
29769 __extension__ extern __inline float32x4_t
29770 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29771 vzip1q_f32 (float32x4_t __a, float32x4_t __b)
29773 #ifdef __AARCH64EB__
29774 return __builtin_shuffle (__a, __b, (uint32x4_t) {6, 2, 7, 3});
29775 #else
29776 return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 4, 1, 5});
29777 #endif
29780 __extension__ extern __inline float64x2_t
29781 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29782 vzip1q_f64 (float64x2_t __a, float64x2_t __b)
29784 #ifdef __AARCH64EB__
29785 return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
29786 #else
29787 return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
29788 #endif
29791 __extension__ extern __inline poly8x16_t
29792 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29793 vzip1q_p8 (poly8x16_t __a, poly8x16_t __b)
29795 #ifdef __AARCH64EB__
29796 return __builtin_shuffle (__a, __b, (uint8x16_t)
29797 {24, 8, 25, 9, 26, 10, 27, 11, 28, 12, 29, 13, 30, 14, 31, 15});
29798 #else
29799 return __builtin_shuffle (__a, __b, (uint8x16_t)
29800 {0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23});
29801 #endif
29804 __extension__ extern __inline poly16x8_t
29805 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29806 vzip1q_p16 (poly16x8_t __a, poly16x8_t __b)
29808 #ifdef __AARCH64EB__
29809 return __builtin_shuffle (__a, __b, (uint16x8_t)
29810 {12, 4, 13, 5, 14, 6, 15, 7});
29811 #else
29812 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 8, 1, 9, 2, 10, 3, 11});
29813 #endif
29816 __extension__ extern __inline int8x16_t
29817 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29818 vzip1q_s8 (int8x16_t __a, int8x16_t __b)
29820 #ifdef __AARCH64EB__
29821 return __builtin_shuffle (__a, __b, (uint8x16_t)
29822 {24, 8, 25, 9, 26, 10, 27, 11, 28, 12, 29, 13, 30, 14, 31, 15});
29823 #else
29824 return __builtin_shuffle (__a, __b, (uint8x16_t)
29825 {0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23});
29826 #endif
29829 __extension__ extern __inline int16x8_t
29830 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29831 vzip1q_s16 (int16x8_t __a, int16x8_t __b)
29833 #ifdef __AARCH64EB__
29834 return __builtin_shuffle (__a, __b, (uint16x8_t)
29835 {12, 4, 13, 5, 14, 6, 15, 7});
29836 #else
29837 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 8, 1, 9, 2, 10, 3, 11});
29838 #endif
29841 __extension__ extern __inline int32x4_t
29842 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29843 vzip1q_s32 (int32x4_t __a, int32x4_t __b)
29845 #ifdef __AARCH64EB__
29846 return __builtin_shuffle (__a, __b, (uint32x4_t) {6, 2, 7, 3});
29847 #else
29848 return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 4, 1, 5});
29849 #endif
29852 __extension__ extern __inline int64x2_t
29853 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29854 vzip1q_s64 (int64x2_t __a, int64x2_t __b)
29856 #ifdef __AARCH64EB__
29857 return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
29858 #else
29859 return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
29860 #endif
29863 __extension__ extern __inline uint8x16_t
29864 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29865 vzip1q_u8 (uint8x16_t __a, uint8x16_t __b)
29867 #ifdef __AARCH64EB__
29868 return __builtin_shuffle (__a, __b, (uint8x16_t)
29869 {24, 8, 25, 9, 26, 10, 27, 11, 28, 12, 29, 13, 30, 14, 31, 15});
29870 #else
29871 return __builtin_shuffle (__a, __b, (uint8x16_t)
29872 {0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23});
29873 #endif
29876 __extension__ extern __inline uint16x8_t
29877 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29878 vzip1q_u16 (uint16x8_t __a, uint16x8_t __b)
29880 #ifdef __AARCH64EB__
29881 return __builtin_shuffle (__a, __b, (uint16x8_t)
29882 {12, 4, 13, 5, 14, 6, 15, 7});
29883 #else
29884 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 8, 1, 9, 2, 10, 3, 11});
29885 #endif
29888 __extension__ extern __inline uint32x4_t
29889 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29890 vzip1q_u32 (uint32x4_t __a, uint32x4_t __b)
29892 #ifdef __AARCH64EB__
29893 return __builtin_shuffle (__a, __b, (uint32x4_t) {6, 2, 7, 3});
29894 #else
29895 return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 4, 1, 5});
29896 #endif
29899 __extension__ extern __inline uint64x2_t
29900 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29901 vzip1q_u64 (uint64x2_t __a, uint64x2_t __b)
29903 #ifdef __AARCH64EB__
29904 return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
29905 #else
29906 return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
29907 #endif
29910 __extension__ extern __inline float16x4_t
29911 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29912 vzip2_f16 (float16x4_t __a, float16x4_t __b)
29914 #ifdef __AARCH64EB__
29915 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 5, 1});
29916 #else
29917 return __builtin_shuffle (__a, __b, (uint16x4_t) {2, 6, 3, 7});
29918 #endif
29921 __extension__ extern __inline float32x2_t
29922 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29923 vzip2_f32 (float32x2_t __a, float32x2_t __b)
29925 #ifdef __AARCH64EB__
29926 return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
29927 #else
29928 return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
29929 #endif
29932 __extension__ extern __inline poly8x8_t
29933 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29934 vzip2_p8 (poly8x8_t __a, poly8x8_t __b)
29936 #ifdef __AARCH64EB__
29937 return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 0, 9, 1, 10, 2, 11, 3});
29938 #else
29939 return __builtin_shuffle (__a, __b, (uint8x8_t) {4, 12, 5, 13, 6, 14, 7, 15});
29940 #endif
29943 __extension__ extern __inline poly16x4_t
29944 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29945 vzip2_p16 (poly16x4_t __a, poly16x4_t __b)
29947 #ifdef __AARCH64EB__
29948 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 5, 1});
29949 #else
29950 return __builtin_shuffle (__a, __b, (uint16x4_t) {2, 6, 3, 7});
29951 #endif
29954 __extension__ extern __inline int8x8_t
29955 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29956 vzip2_s8 (int8x8_t __a, int8x8_t __b)
29958 #ifdef __AARCH64EB__
29959 return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 0, 9, 1, 10, 2, 11, 3});
29960 #else
29961 return __builtin_shuffle (__a, __b, (uint8x8_t) {4, 12, 5, 13, 6, 14, 7, 15});
29962 #endif
29965 __extension__ extern __inline int16x4_t
29966 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29967 vzip2_s16 (int16x4_t __a, int16x4_t __b)
29969 #ifdef __AARCH64EB__
29970 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 5, 1});
29971 #else
29972 return __builtin_shuffle (__a, __b, (uint16x4_t) {2, 6, 3, 7});
29973 #endif
29976 __extension__ extern __inline int32x2_t
29977 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29978 vzip2_s32 (int32x2_t __a, int32x2_t __b)
29980 #ifdef __AARCH64EB__
29981 return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
29982 #else
29983 return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
29984 #endif
29987 __extension__ extern __inline uint8x8_t
29988 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29989 vzip2_u8 (uint8x8_t __a, uint8x8_t __b)
29991 #ifdef __AARCH64EB__
29992 return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 0, 9, 1, 10, 2, 11, 3});
29993 #else
29994 return __builtin_shuffle (__a, __b, (uint8x8_t) {4, 12, 5, 13, 6, 14, 7, 15});
29995 #endif
29998 __extension__ extern __inline uint16x4_t
29999 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30000 vzip2_u16 (uint16x4_t __a, uint16x4_t __b)
30002 #ifdef __AARCH64EB__
30003 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 5, 1});
30004 #else
30005 return __builtin_shuffle (__a, __b, (uint16x4_t) {2, 6, 3, 7});
30006 #endif
30009 __extension__ extern __inline uint32x2_t
30010 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30011 vzip2_u32 (uint32x2_t __a, uint32x2_t __b)
30013 #ifdef __AARCH64EB__
30014 return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
30015 #else
30016 return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
30017 #endif
30020 __extension__ extern __inline float16x8_t
30021 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30022 vzip2q_f16 (float16x8_t __a, float16x8_t __b)
30024 #ifdef __AARCH64EB__
30025 return __builtin_shuffle (__a, __b,
30026 (uint16x8_t) {8, 0, 9, 1, 10, 2, 11, 3});
30027 #else
30028 return __builtin_shuffle (__a, __b,
30029 (uint16x8_t) {4, 12, 5, 13, 6, 14, 7, 15});
30030 #endif
30033 __extension__ extern __inline float32x4_t
30034 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30035 vzip2q_f32 (float32x4_t __a, float32x4_t __b)
30037 #ifdef __AARCH64EB__
30038 return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 0, 5, 1});
30039 #else
30040 return __builtin_shuffle (__a, __b, (uint32x4_t) {2, 6, 3, 7});
30041 #endif
30044 __extension__ extern __inline float64x2_t
30045 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30046 vzip2q_f64 (float64x2_t __a, float64x2_t __b)
30048 #ifdef __AARCH64EB__
30049 return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
30050 #else
30051 return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
30052 #endif
30055 __extension__ extern __inline poly8x16_t
30056 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30057 vzip2q_p8 (poly8x16_t __a, poly8x16_t __b)
30059 #ifdef __AARCH64EB__
30060 return __builtin_shuffle (__a, __b, (uint8x16_t)
30061 {16, 0, 17, 1, 18, 2, 19, 3, 20, 4, 21, 5, 22, 6, 23, 7});
30062 #else
30063 return __builtin_shuffle (__a, __b, (uint8x16_t)
30064 {8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31});
30065 #endif
30068 __extension__ extern __inline poly16x8_t
30069 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30070 vzip2q_p16 (poly16x8_t __a, poly16x8_t __b)
30072 #ifdef __AARCH64EB__
30073 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 0, 9, 1, 10, 2, 11, 3});
30074 #else
30075 return __builtin_shuffle (__a, __b, (uint16x8_t)
30076 {4, 12, 5, 13, 6, 14, 7, 15});
30077 #endif
30080 __extension__ extern __inline int8x16_t
30081 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30082 vzip2q_s8 (int8x16_t __a, int8x16_t __b)
30084 #ifdef __AARCH64EB__
30085 return __builtin_shuffle (__a, __b, (uint8x16_t)
30086 {16, 0, 17, 1, 18, 2, 19, 3, 20, 4, 21, 5, 22, 6, 23, 7});
30087 #else
30088 return __builtin_shuffle (__a, __b, (uint8x16_t)
30089 {8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31});
30090 #endif
30093 __extension__ extern __inline int16x8_t
30094 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30095 vzip2q_s16 (int16x8_t __a, int16x8_t __b)
30097 #ifdef __AARCH64EB__
30098 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 0, 9, 1, 10, 2, 11, 3});
30099 #else
30100 return __builtin_shuffle (__a, __b, (uint16x8_t)
30101 {4, 12, 5, 13, 6, 14, 7, 15});
30102 #endif
30105 __extension__ extern __inline int32x4_t
30106 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30107 vzip2q_s32 (int32x4_t __a, int32x4_t __b)
30109 #ifdef __AARCH64EB__
30110 return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 0, 5, 1});
30111 #else
30112 return __builtin_shuffle (__a, __b, (uint32x4_t) {2, 6, 3, 7});
30113 #endif
30116 __extension__ extern __inline int64x2_t
30117 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30118 vzip2q_s64 (int64x2_t __a, int64x2_t __b)
30120 #ifdef __AARCH64EB__
30121 return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
30122 #else
30123 return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
30124 #endif
30127 __extension__ extern __inline uint8x16_t
30128 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30129 vzip2q_u8 (uint8x16_t __a, uint8x16_t __b)
30131 #ifdef __AARCH64EB__
30132 return __builtin_shuffle (__a, __b, (uint8x16_t)
30133 {16, 0, 17, 1, 18, 2, 19, 3, 20, 4, 21, 5, 22, 6, 23, 7});
30134 #else
30135 return __builtin_shuffle (__a, __b, (uint8x16_t)
30136 {8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31});
30137 #endif
30140 __extension__ extern __inline uint16x8_t
30141 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30142 vzip2q_u16 (uint16x8_t __a, uint16x8_t __b)
30144 #ifdef __AARCH64EB__
30145 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 0, 9, 1, 10, 2, 11, 3});
30146 #else
30147 return __builtin_shuffle (__a, __b, (uint16x8_t)
30148 {4, 12, 5, 13, 6, 14, 7, 15});
30149 #endif
30152 __extension__ extern __inline uint32x4_t
30153 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30154 vzip2q_u32 (uint32x4_t __a, uint32x4_t __b)
30156 #ifdef __AARCH64EB__
30157 return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 0, 5, 1});
30158 #else
30159 return __builtin_shuffle (__a, __b, (uint32x4_t) {2, 6, 3, 7});
30160 #endif
30163 __extension__ extern __inline uint64x2_t
30164 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30165 vzip2q_u64 (uint64x2_t __a, uint64x2_t __b)
30167 #ifdef __AARCH64EB__
30168 return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
30169 #else
30170 return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
30171 #endif
30174 __INTERLEAVE_LIST (zip)
30176 #undef __INTERLEAVE_LIST
30177 #undef __DEFINTERLEAVE
30179 /* End of optimal implementations in approved order. */
30181 #pragma GCC pop_options
30183 /* ARMv8.2-A FP16 intrinsics. */
30185 #include "arm_fp16.h"
30187 #pragma GCC push_options
30188 #pragma GCC target ("arch=armv8.2-a+fp16")
30190 /* ARMv8.2-A FP16 one operand vector intrinsics. */
30192 __extension__ extern __inline float16x4_t
30193 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30194 vabs_f16 (float16x4_t __a)
30196 return __builtin_aarch64_absv4hf (__a);
30199 __extension__ extern __inline float16x8_t
30200 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30201 vabsq_f16 (float16x8_t __a)
30203 return __builtin_aarch64_absv8hf (__a);
30206 __extension__ extern __inline uint16x4_t
30207 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30208 vceqz_f16 (float16x4_t __a)
30210 return __builtin_aarch64_cmeqv4hf_uss (__a, vdup_n_f16 (0.0f));
30213 __extension__ extern __inline uint16x8_t
30214 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30215 vceqzq_f16 (float16x8_t __a)
30217 return __builtin_aarch64_cmeqv8hf_uss (__a, vdupq_n_f16 (0.0f));
30220 __extension__ extern __inline uint16x4_t
30221 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30222 vcgez_f16 (float16x4_t __a)
30224 return __builtin_aarch64_cmgev4hf_uss (__a, vdup_n_f16 (0.0f));
30227 __extension__ extern __inline uint16x8_t
30228 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30229 vcgezq_f16 (float16x8_t __a)
30231 return __builtin_aarch64_cmgev8hf_uss (__a, vdupq_n_f16 (0.0f));
30234 __extension__ extern __inline uint16x4_t
30235 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30236 vcgtz_f16 (float16x4_t __a)
30238 return __builtin_aarch64_cmgtv4hf_uss (__a, vdup_n_f16 (0.0f));
30241 __extension__ extern __inline uint16x8_t
30242 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30243 vcgtzq_f16 (float16x8_t __a)
30245 return __builtin_aarch64_cmgtv8hf_uss (__a, vdupq_n_f16 (0.0f));
30248 __extension__ extern __inline uint16x4_t
30249 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30250 vclez_f16 (float16x4_t __a)
30252 return __builtin_aarch64_cmlev4hf_uss (__a, vdup_n_f16 (0.0f));
30255 __extension__ extern __inline uint16x8_t
30256 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30257 vclezq_f16 (float16x8_t __a)
30259 return __builtin_aarch64_cmlev8hf_uss (__a, vdupq_n_f16 (0.0f));
30262 __extension__ extern __inline uint16x4_t
30263 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30264 vcltz_f16 (float16x4_t __a)
30266 return __builtin_aarch64_cmltv4hf_uss (__a, vdup_n_f16 (0.0f));
30269 __extension__ extern __inline uint16x8_t
30270 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30271 vcltzq_f16 (float16x8_t __a)
30273 return __builtin_aarch64_cmltv8hf_uss (__a, vdupq_n_f16 (0.0f));
30276 __extension__ extern __inline float16x4_t
30277 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30278 vcvt_f16_s16 (int16x4_t __a)
30280 return __builtin_aarch64_floatv4hiv4hf (__a);
30283 __extension__ extern __inline float16x8_t
30284 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30285 vcvtq_f16_s16 (int16x8_t __a)
30287 return __builtin_aarch64_floatv8hiv8hf (__a);
30290 __extension__ extern __inline float16x4_t
30291 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30292 vcvt_f16_u16 (uint16x4_t __a)
30294 return __builtin_aarch64_floatunsv4hiv4hf ((int16x4_t) __a);
30297 __extension__ extern __inline float16x8_t
30298 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30299 vcvtq_f16_u16 (uint16x8_t __a)
30301 return __builtin_aarch64_floatunsv8hiv8hf ((int16x8_t) __a);
30304 __extension__ extern __inline int16x4_t
30305 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30306 vcvt_s16_f16 (float16x4_t __a)
30308 return __builtin_aarch64_lbtruncv4hfv4hi (__a);
30311 __extension__ extern __inline int16x8_t
30312 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30313 vcvtq_s16_f16 (float16x8_t __a)
30315 return __builtin_aarch64_lbtruncv8hfv8hi (__a);
30318 __extension__ extern __inline uint16x4_t
30319 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30320 vcvt_u16_f16 (float16x4_t __a)
30322 return __builtin_aarch64_lbtruncuv4hfv4hi_us (__a);
30325 __extension__ extern __inline uint16x8_t
30326 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30327 vcvtq_u16_f16 (float16x8_t __a)
30329 return __builtin_aarch64_lbtruncuv8hfv8hi_us (__a);
30332 __extension__ extern __inline int16x4_t
30333 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30334 vcvta_s16_f16 (float16x4_t __a)
30336 return __builtin_aarch64_lroundv4hfv4hi (__a);
30339 __extension__ extern __inline int16x8_t
30340 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30341 vcvtaq_s16_f16 (float16x8_t __a)
30343 return __builtin_aarch64_lroundv8hfv8hi (__a);
30346 __extension__ extern __inline uint16x4_t
30347 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30348 vcvta_u16_f16 (float16x4_t __a)
30350 return __builtin_aarch64_lrounduv4hfv4hi_us (__a);
30353 __extension__ extern __inline uint16x8_t
30354 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30355 vcvtaq_u16_f16 (float16x8_t __a)
30357 return __builtin_aarch64_lrounduv8hfv8hi_us (__a);
30360 __extension__ extern __inline int16x4_t
30361 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30362 vcvtm_s16_f16 (float16x4_t __a)
30364 return __builtin_aarch64_lfloorv4hfv4hi (__a);
30367 __extension__ extern __inline int16x8_t
30368 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30369 vcvtmq_s16_f16 (float16x8_t __a)
30371 return __builtin_aarch64_lfloorv8hfv8hi (__a);
30374 __extension__ extern __inline uint16x4_t
30375 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30376 vcvtm_u16_f16 (float16x4_t __a)
30378 return __builtin_aarch64_lflooruv4hfv4hi_us (__a);
30381 __extension__ extern __inline uint16x8_t
30382 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30383 vcvtmq_u16_f16 (float16x8_t __a)
30385 return __builtin_aarch64_lflooruv8hfv8hi_us (__a);
30388 __extension__ extern __inline int16x4_t
30389 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30390 vcvtn_s16_f16 (float16x4_t __a)
30392 return __builtin_aarch64_lfrintnv4hfv4hi (__a);
30395 __extension__ extern __inline int16x8_t
30396 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30397 vcvtnq_s16_f16 (float16x8_t __a)
30399 return __builtin_aarch64_lfrintnv8hfv8hi (__a);
30402 __extension__ extern __inline uint16x4_t
30403 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30404 vcvtn_u16_f16 (float16x4_t __a)
30406 return __builtin_aarch64_lfrintnuv4hfv4hi_us (__a);
30409 __extension__ extern __inline uint16x8_t
30410 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30411 vcvtnq_u16_f16 (float16x8_t __a)
30413 return __builtin_aarch64_lfrintnuv8hfv8hi_us (__a);
30416 __extension__ extern __inline int16x4_t
30417 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30418 vcvtp_s16_f16 (float16x4_t __a)
30420 return __builtin_aarch64_lceilv4hfv4hi (__a);
30423 __extension__ extern __inline int16x8_t
30424 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30425 vcvtpq_s16_f16 (float16x8_t __a)
30427 return __builtin_aarch64_lceilv8hfv8hi (__a);
30430 __extension__ extern __inline uint16x4_t
30431 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30432 vcvtp_u16_f16 (float16x4_t __a)
30434 return __builtin_aarch64_lceiluv4hfv4hi_us (__a);
30437 __extension__ extern __inline uint16x8_t
30438 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30439 vcvtpq_u16_f16 (float16x8_t __a)
30441 return __builtin_aarch64_lceiluv8hfv8hi_us (__a);
30444 __extension__ extern __inline float16x4_t
30445 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30446 vneg_f16 (float16x4_t __a)
30448 return -__a;
30451 __extension__ extern __inline float16x8_t
30452 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30453 vnegq_f16 (float16x8_t __a)
30455 return -__a;
30458 __extension__ extern __inline float16x4_t
30459 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30460 vrecpe_f16 (float16x4_t __a)
30462 return __builtin_aarch64_frecpev4hf (__a);
30465 __extension__ extern __inline float16x8_t
30466 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30467 vrecpeq_f16 (float16x8_t __a)
30469 return __builtin_aarch64_frecpev8hf (__a);
30472 __extension__ extern __inline float16x4_t
30473 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30474 vrnd_f16 (float16x4_t __a)
30476 return __builtin_aarch64_btruncv4hf (__a);
30479 __extension__ extern __inline float16x8_t
30480 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30481 vrndq_f16 (float16x8_t __a)
30483 return __builtin_aarch64_btruncv8hf (__a);
30486 __extension__ extern __inline float16x4_t
30487 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30488 vrnda_f16 (float16x4_t __a)
30490 return __builtin_aarch64_roundv4hf (__a);
30493 __extension__ extern __inline float16x8_t
30494 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30495 vrndaq_f16 (float16x8_t __a)
30497 return __builtin_aarch64_roundv8hf (__a);
30500 __extension__ extern __inline float16x4_t
30501 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30502 vrndi_f16 (float16x4_t __a)
30504 return __builtin_aarch64_nearbyintv4hf (__a);
30507 __extension__ extern __inline float16x8_t
30508 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30509 vrndiq_f16 (float16x8_t __a)
30511 return __builtin_aarch64_nearbyintv8hf (__a);
30514 __extension__ extern __inline float16x4_t
30515 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30516 vrndm_f16 (float16x4_t __a)
30518 return __builtin_aarch64_floorv4hf (__a);
30521 __extension__ extern __inline float16x8_t
30522 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30523 vrndmq_f16 (float16x8_t __a)
30525 return __builtin_aarch64_floorv8hf (__a);
30528 __extension__ extern __inline float16x4_t
30529 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30530 vrndn_f16 (float16x4_t __a)
30532 return __builtin_aarch64_frintnv4hf (__a);
30535 __extension__ extern __inline float16x8_t
30536 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30537 vrndnq_f16 (float16x8_t __a)
30539 return __builtin_aarch64_frintnv8hf (__a);
30542 __extension__ extern __inline float16x4_t
30543 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30544 vrndp_f16 (float16x4_t __a)
30546 return __builtin_aarch64_ceilv4hf (__a);
30549 __extension__ extern __inline float16x8_t
30550 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30551 vrndpq_f16 (float16x8_t __a)
30553 return __builtin_aarch64_ceilv8hf (__a);
30556 __extension__ extern __inline float16x4_t
30557 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30558 vrndx_f16 (float16x4_t __a)
30560 return __builtin_aarch64_rintv4hf (__a);
30563 __extension__ extern __inline float16x8_t
30564 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30565 vrndxq_f16 (float16x8_t __a)
30567 return __builtin_aarch64_rintv8hf (__a);
30570 __extension__ extern __inline float16x4_t
30571 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30572 vrsqrte_f16 (float16x4_t a)
30574 return __builtin_aarch64_rsqrtev4hf (a);
30577 __extension__ extern __inline float16x8_t
30578 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30579 vrsqrteq_f16 (float16x8_t a)
30581 return __builtin_aarch64_rsqrtev8hf (a);
30584 __extension__ extern __inline float16x4_t
30585 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30586 vsqrt_f16 (float16x4_t a)
30588 return __builtin_aarch64_sqrtv4hf (a);
30591 __extension__ extern __inline float16x8_t
30592 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30593 vsqrtq_f16 (float16x8_t a)
30595 return __builtin_aarch64_sqrtv8hf (a);
30598 /* ARMv8.2-A FP16 two operands vector intrinsics. */
30600 __extension__ extern __inline float16x4_t
30601 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30602 vadd_f16 (float16x4_t __a, float16x4_t __b)
30604 return __a + __b;
30607 __extension__ extern __inline float16x8_t
30608 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30609 vaddq_f16 (float16x8_t __a, float16x8_t __b)
30611 return __a + __b;
30614 __extension__ extern __inline float16x4_t
30615 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30616 vabd_f16 (float16x4_t a, float16x4_t b)
30618 return __builtin_aarch64_fabdv4hf (a, b);
30621 __extension__ extern __inline float16x8_t
30622 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30623 vabdq_f16 (float16x8_t a, float16x8_t b)
30625 return __builtin_aarch64_fabdv8hf (a, b);
30628 __extension__ extern __inline uint16x4_t
30629 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30630 vcage_f16 (float16x4_t __a, float16x4_t __b)
30632 return __builtin_aarch64_facgev4hf_uss (__a, __b);
30635 __extension__ extern __inline uint16x8_t
30636 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30637 vcageq_f16 (float16x8_t __a, float16x8_t __b)
30639 return __builtin_aarch64_facgev8hf_uss (__a, __b);
30642 __extension__ extern __inline uint16x4_t
30643 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30644 vcagt_f16 (float16x4_t __a, float16x4_t __b)
30646 return __builtin_aarch64_facgtv4hf_uss (__a, __b);
30649 __extension__ extern __inline uint16x8_t
30650 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30651 vcagtq_f16 (float16x8_t __a, float16x8_t __b)
30653 return __builtin_aarch64_facgtv8hf_uss (__a, __b);
30656 __extension__ extern __inline uint16x4_t
30657 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30658 vcale_f16 (float16x4_t __a, float16x4_t __b)
30660 return __builtin_aarch64_faclev4hf_uss (__a, __b);
30663 __extension__ extern __inline uint16x8_t
30664 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30665 vcaleq_f16 (float16x8_t __a, float16x8_t __b)
30667 return __builtin_aarch64_faclev8hf_uss (__a, __b);
30670 __extension__ extern __inline uint16x4_t
30671 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30672 vcalt_f16 (float16x4_t __a, float16x4_t __b)
30674 return __builtin_aarch64_facltv4hf_uss (__a, __b);
30677 __extension__ extern __inline uint16x8_t
30678 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30679 vcaltq_f16 (float16x8_t __a, float16x8_t __b)
30681 return __builtin_aarch64_facltv8hf_uss (__a, __b);
30684 __extension__ extern __inline uint16x4_t
30685 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30686 vceq_f16 (float16x4_t __a, float16x4_t __b)
30688 return __builtin_aarch64_cmeqv4hf_uss (__a, __b);
30691 __extension__ extern __inline uint16x8_t
30692 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30693 vceqq_f16 (float16x8_t __a, float16x8_t __b)
30695 return __builtin_aarch64_cmeqv8hf_uss (__a, __b);
30698 __extension__ extern __inline uint16x4_t
30699 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30700 vcge_f16 (float16x4_t __a, float16x4_t __b)
30702 return __builtin_aarch64_cmgev4hf_uss (__a, __b);
30705 __extension__ extern __inline uint16x8_t
30706 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30707 vcgeq_f16 (float16x8_t __a, float16x8_t __b)
30709 return __builtin_aarch64_cmgev8hf_uss (__a, __b);
30712 __extension__ extern __inline uint16x4_t
30713 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30714 vcgt_f16 (float16x4_t __a, float16x4_t __b)
30716 return __builtin_aarch64_cmgtv4hf_uss (__a, __b);
30719 __extension__ extern __inline uint16x8_t
30720 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30721 vcgtq_f16 (float16x8_t __a, float16x8_t __b)
30723 return __builtin_aarch64_cmgtv8hf_uss (__a, __b);
30726 __extension__ extern __inline uint16x4_t
30727 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30728 vcle_f16 (float16x4_t __a, float16x4_t __b)
30730 return __builtin_aarch64_cmlev4hf_uss (__a, __b);
30733 __extension__ extern __inline uint16x8_t
30734 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30735 vcleq_f16 (float16x8_t __a, float16x8_t __b)
30737 return __builtin_aarch64_cmlev8hf_uss (__a, __b);
30740 __extension__ extern __inline uint16x4_t
30741 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30742 vclt_f16 (float16x4_t __a, float16x4_t __b)
30744 return __builtin_aarch64_cmltv4hf_uss (__a, __b);
30747 __extension__ extern __inline uint16x8_t
30748 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30749 vcltq_f16 (float16x8_t __a, float16x8_t __b)
30751 return __builtin_aarch64_cmltv8hf_uss (__a, __b);
30754 __extension__ extern __inline float16x4_t
30755 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30756 vcvt_n_f16_s16 (int16x4_t __a, const int __b)
30758 return __builtin_aarch64_scvtfv4hi (__a, __b);
30761 __extension__ extern __inline float16x8_t
30762 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30763 vcvtq_n_f16_s16 (int16x8_t __a, const int __b)
30765 return __builtin_aarch64_scvtfv8hi (__a, __b);
30768 __extension__ extern __inline float16x4_t
30769 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30770 vcvt_n_f16_u16 (uint16x4_t __a, const int __b)
30772 return __builtin_aarch64_ucvtfv4hi_sus (__a, __b);
30775 __extension__ extern __inline float16x8_t
30776 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30777 vcvtq_n_f16_u16 (uint16x8_t __a, const int __b)
30779 return __builtin_aarch64_ucvtfv8hi_sus (__a, __b);
30782 __extension__ extern __inline int16x4_t
30783 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30784 vcvt_n_s16_f16 (float16x4_t __a, const int __b)
30786 return __builtin_aarch64_fcvtzsv4hf (__a, __b);
30789 __extension__ extern __inline int16x8_t
30790 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30791 vcvtq_n_s16_f16 (float16x8_t __a, const int __b)
30793 return __builtin_aarch64_fcvtzsv8hf (__a, __b);
30796 __extension__ extern __inline uint16x4_t
30797 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30798 vcvt_n_u16_f16 (float16x4_t __a, const int __b)
30800 return __builtin_aarch64_fcvtzuv4hf_uss (__a, __b);
30803 __extension__ extern __inline uint16x8_t
30804 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30805 vcvtq_n_u16_f16 (float16x8_t __a, const int __b)
30807 return __builtin_aarch64_fcvtzuv8hf_uss (__a, __b);
30810 __extension__ extern __inline float16x4_t
30811 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30812 vdiv_f16 (float16x4_t __a, float16x4_t __b)
30814 return __a / __b;
30817 __extension__ extern __inline float16x8_t
30818 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30819 vdivq_f16 (float16x8_t __a, float16x8_t __b)
30821 return __a / __b;
30824 __extension__ extern __inline float16x4_t
30825 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30826 vmax_f16 (float16x4_t __a, float16x4_t __b)
30828 return __builtin_aarch64_smax_nanv4hf (__a, __b);
30831 __extension__ extern __inline float16x8_t
30832 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30833 vmaxq_f16 (float16x8_t __a, float16x8_t __b)
30835 return __builtin_aarch64_smax_nanv8hf (__a, __b);
30838 __extension__ extern __inline float16x4_t
30839 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30840 vmaxnm_f16 (float16x4_t __a, float16x4_t __b)
30842 return __builtin_aarch64_fmaxv4hf (__a, __b);
30845 __extension__ extern __inline float16x8_t
30846 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30847 vmaxnmq_f16 (float16x8_t __a, float16x8_t __b)
30849 return __builtin_aarch64_fmaxv8hf (__a, __b);
30852 __extension__ extern __inline float16x4_t
30853 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30854 vmin_f16 (float16x4_t __a, float16x4_t __b)
30856 return __builtin_aarch64_smin_nanv4hf (__a, __b);
30859 __extension__ extern __inline float16x8_t
30860 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30861 vminq_f16 (float16x8_t __a, float16x8_t __b)
30863 return __builtin_aarch64_smin_nanv8hf (__a, __b);
30866 __extension__ extern __inline float16x4_t
30867 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30868 vminnm_f16 (float16x4_t __a, float16x4_t __b)
30870 return __builtin_aarch64_fminv4hf (__a, __b);
30873 __extension__ extern __inline float16x8_t
30874 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30875 vminnmq_f16 (float16x8_t __a, float16x8_t __b)
30877 return __builtin_aarch64_fminv8hf (__a, __b);
30880 __extension__ extern __inline float16x4_t
30881 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30882 vmul_f16 (float16x4_t __a, float16x4_t __b)
30884 return __a * __b;
30887 __extension__ extern __inline float16x8_t
30888 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30889 vmulq_f16 (float16x8_t __a, float16x8_t __b)
30891 return __a * __b;
30894 __extension__ extern __inline float16x4_t
30895 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30896 vmulx_f16 (float16x4_t __a, float16x4_t __b)
30898 return __builtin_aarch64_fmulxv4hf (__a, __b);
30901 __extension__ extern __inline float16x8_t
30902 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30903 vmulxq_f16 (float16x8_t __a, float16x8_t __b)
30905 return __builtin_aarch64_fmulxv8hf (__a, __b);
30908 __extension__ extern __inline float16x4_t
30909 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30910 vpadd_f16 (float16x4_t a, float16x4_t b)
30912 return __builtin_aarch64_faddpv4hf (a, b);
30915 __extension__ extern __inline float16x8_t
30916 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30917 vpaddq_f16 (float16x8_t a, float16x8_t b)
30919 return __builtin_aarch64_faddpv8hf (a, b);
30922 __extension__ extern __inline float16x4_t
30923 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30924 vpmax_f16 (float16x4_t a, float16x4_t b)
30926 return __builtin_aarch64_smax_nanpv4hf (a, b);
30929 __extension__ extern __inline float16x8_t
30930 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30931 vpmaxq_f16 (float16x8_t a, float16x8_t b)
30933 return __builtin_aarch64_smax_nanpv8hf (a, b);
30936 __extension__ extern __inline float16x4_t
30937 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30938 vpmaxnm_f16 (float16x4_t a, float16x4_t b)
30940 return __builtin_aarch64_smaxpv4hf (a, b);
30943 __extension__ extern __inline float16x8_t
30944 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30945 vpmaxnmq_f16 (float16x8_t a, float16x8_t b)
30947 return __builtin_aarch64_smaxpv8hf (a, b);
30950 __extension__ extern __inline float16x4_t
30951 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30952 vpmin_f16 (float16x4_t a, float16x4_t b)
30954 return __builtin_aarch64_smin_nanpv4hf (a, b);
30957 __extension__ extern __inline float16x8_t
30958 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30959 vpminq_f16 (float16x8_t a, float16x8_t b)
30961 return __builtin_aarch64_smin_nanpv8hf (a, b);
30964 __extension__ extern __inline float16x4_t
30965 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30966 vpminnm_f16 (float16x4_t a, float16x4_t b)
30968 return __builtin_aarch64_sminpv4hf (a, b);
30971 __extension__ extern __inline float16x8_t
30972 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30973 vpminnmq_f16 (float16x8_t a, float16x8_t b)
30975 return __builtin_aarch64_sminpv8hf (a, b);
30978 __extension__ extern __inline float16x4_t
30979 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30980 vrecps_f16 (float16x4_t __a, float16x4_t __b)
30982 return __builtin_aarch64_frecpsv4hf (__a, __b);
30985 __extension__ extern __inline float16x8_t
30986 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30987 vrecpsq_f16 (float16x8_t __a, float16x8_t __b)
30989 return __builtin_aarch64_frecpsv8hf (__a, __b);
30992 __extension__ extern __inline float16x4_t
30993 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30994 vrsqrts_f16 (float16x4_t a, float16x4_t b)
30996 return __builtin_aarch64_rsqrtsv4hf (a, b);
30999 __extension__ extern __inline float16x8_t
31000 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31001 vrsqrtsq_f16 (float16x8_t a, float16x8_t b)
31003 return __builtin_aarch64_rsqrtsv8hf (a, b);
31006 __extension__ extern __inline float16x4_t
31007 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31008 vsub_f16 (float16x4_t __a, float16x4_t __b)
31010 return __a - __b;
31013 __extension__ extern __inline float16x8_t
31014 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31015 vsubq_f16 (float16x8_t __a, float16x8_t __b)
31017 return __a - __b;
31020 /* ARMv8.2-A FP16 three operands vector intrinsics. */
31022 __extension__ extern __inline float16x4_t
31023 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31024 vfma_f16 (float16x4_t __a, float16x4_t __b, float16x4_t __c)
31026 return __builtin_aarch64_fmav4hf (__b, __c, __a);
31029 __extension__ extern __inline float16x8_t
31030 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31031 vfmaq_f16 (float16x8_t __a, float16x8_t __b, float16x8_t __c)
31033 return __builtin_aarch64_fmav8hf (__b, __c, __a);
31036 __extension__ extern __inline float16x4_t
31037 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31038 vfms_f16 (float16x4_t __a, float16x4_t __b, float16x4_t __c)
31040 return __builtin_aarch64_fnmav4hf (__b, __c, __a);
31043 __extension__ extern __inline float16x8_t
31044 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31045 vfmsq_f16 (float16x8_t __a, float16x8_t __b, float16x8_t __c)
31047 return __builtin_aarch64_fnmav8hf (__b, __c, __a);
31050 /* ARMv8.2-A FP16 lane vector intrinsics. */
31052 __extension__ extern __inline float16_t
31053 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31054 vfmah_lane_f16 (float16_t __a, float16_t __b,
31055 float16x4_t __c, const int __lane)
31057 return vfmah_f16 (__a, __b, __aarch64_vget_lane_any (__c, __lane));
31060 __extension__ extern __inline float16_t
31061 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31062 vfmah_laneq_f16 (float16_t __a, float16_t __b,
31063 float16x8_t __c, const int __lane)
31065 return vfmah_f16 (__a, __b, __aarch64_vget_lane_any (__c, __lane));
31068 __extension__ extern __inline float16x4_t
31069 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31070 vfma_lane_f16 (float16x4_t __a, float16x4_t __b,
31071 float16x4_t __c, const int __lane)
31073 return vfma_f16 (__a, __b, __aarch64_vdup_lane_f16 (__c, __lane));
31076 __extension__ extern __inline float16x8_t
31077 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31078 vfmaq_lane_f16 (float16x8_t __a, float16x8_t __b,
31079 float16x4_t __c, const int __lane)
31081 return vfmaq_f16 (__a, __b, __aarch64_vdupq_lane_f16 (__c, __lane));
31084 __extension__ extern __inline float16x4_t
31085 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31086 vfma_laneq_f16 (float16x4_t __a, float16x4_t __b,
31087 float16x8_t __c, const int __lane)
31089 return vfma_f16 (__a, __b, __aarch64_vdup_laneq_f16 (__c, __lane));
31092 __extension__ extern __inline float16x8_t
31093 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31094 vfmaq_laneq_f16 (float16x8_t __a, float16x8_t __b,
31095 float16x8_t __c, const int __lane)
31097 return vfmaq_f16 (__a, __b, __aarch64_vdupq_laneq_f16 (__c, __lane));
31100 __extension__ extern __inline float16x4_t
31101 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31102 vfma_n_f16 (float16x4_t __a, float16x4_t __b, float16_t __c)
31104 return vfma_f16 (__a, __b, vdup_n_f16 (__c));
31107 __extension__ extern __inline float16x8_t
31108 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31109 vfmaq_n_f16 (float16x8_t __a, float16x8_t __b, float16_t __c)
31111 return vfmaq_f16 (__a, __b, vdupq_n_f16 (__c));
31114 __extension__ extern __inline float16_t
31115 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31116 vfmsh_lane_f16 (float16_t __a, float16_t __b,
31117 float16x4_t __c, const int __lane)
31119 return vfmsh_f16 (__a, __b, __aarch64_vget_lane_any (__c, __lane));
31122 __extension__ extern __inline float16_t
31123 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31124 vfmsh_laneq_f16 (float16_t __a, float16_t __b,
31125 float16x8_t __c, const int __lane)
31127 return vfmsh_f16 (__a, __b, __aarch64_vget_lane_any (__c, __lane));
31130 __extension__ extern __inline float16x4_t
31131 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31132 vfms_lane_f16 (float16x4_t __a, float16x4_t __b,
31133 float16x4_t __c, const int __lane)
31135 return vfms_f16 (__a, __b, __aarch64_vdup_lane_f16 (__c, __lane));
31138 __extension__ extern __inline float16x8_t
31139 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31140 vfmsq_lane_f16 (float16x8_t __a, float16x8_t __b,
31141 float16x4_t __c, const int __lane)
31143 return vfmsq_f16 (__a, __b, __aarch64_vdupq_lane_f16 (__c, __lane));
31146 __extension__ extern __inline float16x4_t
31147 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31148 vfms_laneq_f16 (float16x4_t __a, float16x4_t __b,
31149 float16x8_t __c, const int __lane)
31151 return vfms_f16 (__a, __b, __aarch64_vdup_laneq_f16 (__c, __lane));
31154 __extension__ extern __inline float16x8_t
31155 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31156 vfmsq_laneq_f16 (float16x8_t __a, float16x8_t __b,
31157 float16x8_t __c, const int __lane)
31159 return vfmsq_f16 (__a, __b, __aarch64_vdupq_laneq_f16 (__c, __lane));
31162 __extension__ extern __inline float16x4_t
31163 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31164 vfms_n_f16 (float16x4_t __a, float16x4_t __b, float16_t __c)
31166 return vfms_f16 (__a, __b, vdup_n_f16 (__c));
31169 __extension__ extern __inline float16x8_t
31170 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31171 vfmsq_n_f16 (float16x8_t __a, float16x8_t __b, float16_t __c)
31173 return vfmsq_f16 (__a, __b, vdupq_n_f16 (__c));
31176 __extension__ extern __inline float16_t
31177 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31178 vmulh_lane_f16 (float16_t __a, float16x4_t __b, const int __lane)
31180 return __a * __aarch64_vget_lane_any (__b, __lane);
31183 __extension__ extern __inline float16x4_t
31184 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31185 vmul_lane_f16 (float16x4_t __a, float16x4_t __b, const int __lane)
31187 return vmul_f16 (__a, vdup_n_f16 (__aarch64_vget_lane_any (__b, __lane)));
31190 __extension__ extern __inline float16x8_t
31191 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31192 vmulq_lane_f16 (float16x8_t __a, float16x4_t __b, const int __lane)
31194 return vmulq_f16 (__a, vdupq_n_f16 (__aarch64_vget_lane_any (__b, __lane)));
31197 __extension__ extern __inline float16_t
31198 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31199 vmulh_laneq_f16 (float16_t __a, float16x8_t __b, const int __lane)
31201 return __a * __aarch64_vget_lane_any (__b, __lane);
31204 __extension__ extern __inline float16x4_t
31205 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31206 vmul_laneq_f16 (float16x4_t __a, float16x8_t __b, const int __lane)
31208 return vmul_f16 (__a, vdup_n_f16 (__aarch64_vget_lane_any (__b, __lane)));
31211 __extension__ extern __inline float16x8_t
31212 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31213 vmulq_laneq_f16 (float16x8_t __a, float16x8_t __b, const int __lane)
31215 return vmulq_f16 (__a, vdupq_n_f16 (__aarch64_vget_lane_any (__b, __lane)));
31218 __extension__ extern __inline float16x4_t
31219 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31220 vmul_n_f16 (float16x4_t __a, float16_t __b)
31222 return vmul_lane_f16 (__a, vdup_n_f16 (__b), 0);
31225 __extension__ extern __inline float16x8_t
31226 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31227 vmulq_n_f16 (float16x8_t __a, float16_t __b)
31229 return vmulq_laneq_f16 (__a, vdupq_n_f16 (__b), 0);
31232 __extension__ extern __inline float16_t
31233 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31234 vmulxh_lane_f16 (float16_t __a, float16x4_t __b, const int __lane)
31236 return vmulxh_f16 (__a, __aarch64_vget_lane_any (__b, __lane));
31239 __extension__ extern __inline float16x4_t
31240 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31241 vmulx_lane_f16 (float16x4_t __a, float16x4_t __b, const int __lane)
31243 return vmulx_f16 (__a, __aarch64_vdup_lane_f16 (__b, __lane));
31246 __extension__ extern __inline float16x8_t
31247 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31248 vmulxq_lane_f16 (float16x8_t __a, float16x4_t __b, const int __lane)
31250 return vmulxq_f16 (__a, __aarch64_vdupq_lane_f16 (__b, __lane));
31253 __extension__ extern __inline float16_t
31254 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31255 vmulxh_laneq_f16 (float16_t __a, float16x8_t __b, const int __lane)
31257 return vmulxh_f16 (__a, __aarch64_vget_lane_any (__b, __lane));
31260 __extension__ extern __inline float16x4_t
31261 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31262 vmulx_laneq_f16 (float16x4_t __a, float16x8_t __b, const int __lane)
31264 return vmulx_f16 (__a, __aarch64_vdup_laneq_f16 (__b, __lane));
31267 __extension__ extern __inline float16x8_t
31268 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31269 vmulxq_laneq_f16 (float16x8_t __a, float16x8_t __b, const int __lane)
31271 return vmulxq_f16 (__a, __aarch64_vdupq_laneq_f16 (__b, __lane));
31274 __extension__ extern __inline float16x4_t
31275 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31276 vmulx_n_f16 (float16x4_t __a, float16_t __b)
31278 return vmulx_f16 (__a, vdup_n_f16 (__b));
31281 __extension__ extern __inline float16x8_t
31282 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31283 vmulxq_n_f16 (float16x8_t __a, float16_t __b)
31285 return vmulxq_f16 (__a, vdupq_n_f16 (__b));
31288 /* ARMv8.2-A FP16 reduction vector intrinsics. */
31290 __extension__ extern __inline float16_t
31291 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31292 vmaxv_f16 (float16x4_t __a)
31294 return __builtin_aarch64_reduc_smax_nan_scal_v4hf (__a);
31297 __extension__ extern __inline float16_t
31298 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31299 vmaxvq_f16 (float16x8_t __a)
31301 return __builtin_aarch64_reduc_smax_nan_scal_v8hf (__a);
31304 __extension__ extern __inline float16_t
31305 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31306 vminv_f16 (float16x4_t __a)
31308 return __builtin_aarch64_reduc_smin_nan_scal_v4hf (__a);
31311 __extension__ extern __inline float16_t
31312 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31313 vminvq_f16 (float16x8_t __a)
31315 return __builtin_aarch64_reduc_smin_nan_scal_v8hf (__a);
31318 __extension__ extern __inline float16_t
31319 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31320 vmaxnmv_f16 (float16x4_t __a)
31322 return __builtin_aarch64_reduc_smax_scal_v4hf (__a);
31325 __extension__ extern __inline float16_t
31326 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31327 vmaxnmvq_f16 (float16x8_t __a)
31329 return __builtin_aarch64_reduc_smax_scal_v8hf (__a);
31332 __extension__ extern __inline float16_t
31333 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31334 vminnmv_f16 (float16x4_t __a)
31336 return __builtin_aarch64_reduc_smin_scal_v4hf (__a);
31339 __extension__ extern __inline float16_t
31340 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31341 vminnmvq_f16 (float16x8_t __a)
31343 return __builtin_aarch64_reduc_smin_scal_v8hf (__a);
31346 #pragma GCC pop_options
31348 #undef __aarch64_vget_lane_any
31350 #undef __aarch64_vdup_lane_any
31351 #undef __aarch64_vdup_lane_f16
31352 #undef __aarch64_vdup_lane_f32
31353 #undef __aarch64_vdup_lane_f64
31354 #undef __aarch64_vdup_lane_p8
31355 #undef __aarch64_vdup_lane_p16
31356 #undef __aarch64_vdup_lane_s8
31357 #undef __aarch64_vdup_lane_s16
31358 #undef __aarch64_vdup_lane_s32
31359 #undef __aarch64_vdup_lane_s64
31360 #undef __aarch64_vdup_lane_u8
31361 #undef __aarch64_vdup_lane_u16
31362 #undef __aarch64_vdup_lane_u32
31363 #undef __aarch64_vdup_lane_u64
31364 #undef __aarch64_vdup_laneq_f16
31365 #undef __aarch64_vdup_laneq_f32
31366 #undef __aarch64_vdup_laneq_f64
31367 #undef __aarch64_vdup_laneq_p8
31368 #undef __aarch64_vdup_laneq_p16
31369 #undef __aarch64_vdup_laneq_s8
31370 #undef __aarch64_vdup_laneq_s16
31371 #undef __aarch64_vdup_laneq_s32
31372 #undef __aarch64_vdup_laneq_s64
31373 #undef __aarch64_vdup_laneq_u8
31374 #undef __aarch64_vdup_laneq_u16
31375 #undef __aarch64_vdup_laneq_u32
31376 #undef __aarch64_vdup_laneq_u64
31377 #undef __aarch64_vdupq_lane_f16
31378 #undef __aarch64_vdupq_lane_f32
31379 #undef __aarch64_vdupq_lane_f64
31380 #undef __aarch64_vdupq_lane_p8
31381 #undef __aarch64_vdupq_lane_p16
31382 #undef __aarch64_vdupq_lane_s8
31383 #undef __aarch64_vdupq_lane_s16
31384 #undef __aarch64_vdupq_lane_s32
31385 #undef __aarch64_vdupq_lane_s64
31386 #undef __aarch64_vdupq_lane_u8
31387 #undef __aarch64_vdupq_lane_u16
31388 #undef __aarch64_vdupq_lane_u32
31389 #undef __aarch64_vdupq_lane_u64
31390 #undef __aarch64_vdupq_laneq_f16
31391 #undef __aarch64_vdupq_laneq_f32
31392 #undef __aarch64_vdupq_laneq_f64
31393 #undef __aarch64_vdupq_laneq_p8
31394 #undef __aarch64_vdupq_laneq_p16
31395 #undef __aarch64_vdupq_laneq_s8
31396 #undef __aarch64_vdupq_laneq_s16
31397 #undef __aarch64_vdupq_laneq_s32
31398 #undef __aarch64_vdupq_laneq_s64
31399 #undef __aarch64_vdupq_laneq_u8
31400 #undef __aarch64_vdupq_laneq_u16
31401 #undef __aarch64_vdupq_laneq_u32
31402 #undef __aarch64_vdupq_laneq_u64
31404 #endif