2016-11-28 Tamar Christina <tamar.christina@arm.com>
[official-gcc.git] / gcc / config / aarch64 / arm_neon.h
blobd39adf1f19a5d82f39b638e14e69906fc3d3f713
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 vsriq_n_p8(a, b, c) \
10613 __extension__ \
10614 ({ \
10615 poly8x16_t b_ = (b); \
10616 poly8x16_t a_ = (a); \
10617 poly8x16_t result; \
10618 __asm__ ("sri %0.16b,%2.16b,%3" \
10619 : "=w"(result) \
10620 : "0"(a_), "w"(b_), "i"(c) \
10621 : /* No clobbers */); \
10622 result; \
10625 #define vsriq_n_p16(a, b, c) \
10626 __extension__ \
10627 ({ \
10628 poly16x8_t b_ = (b); \
10629 poly16x8_t a_ = (a); \
10630 poly16x8_t result; \
10631 __asm__ ("sri %0.8h,%2.8h,%3" \
10632 : "=w"(result) \
10633 : "0"(a_), "w"(b_), "i"(c) \
10634 : /* No clobbers */); \
10635 result; \
10638 __extension__ extern __inline uint8x8_t
10639 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10640 vtst_p8 (poly8x8_t a, poly8x8_t b)
10642 uint8x8_t result;
10643 __asm__ ("cmtst %0.8b, %1.8b, %2.8b"
10644 : "=w"(result)
10645 : "w"(a), "w"(b)
10646 : /* No clobbers */);
10647 return result;
10650 __extension__ extern __inline uint16x4_t
10651 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10652 vtst_p16 (poly16x4_t a, poly16x4_t b)
10654 uint16x4_t result;
10655 __asm__ ("cmtst %0.4h, %1.4h, %2.4h"
10656 : "=w"(result)
10657 : "w"(a), "w"(b)
10658 : /* No clobbers */);
10659 return result;
10662 __extension__ extern __inline uint8x16_t
10663 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10664 vtstq_p8 (poly8x16_t a, poly8x16_t b)
10666 uint8x16_t result;
10667 __asm__ ("cmtst %0.16b, %1.16b, %2.16b"
10668 : "=w"(result)
10669 : "w"(a), "w"(b)
10670 : /* No clobbers */);
10671 return result;
10674 __extension__ extern __inline uint16x8_t
10675 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10676 vtstq_p16 (poly16x8_t a, poly16x8_t b)
10678 uint16x8_t result;
10679 __asm__ ("cmtst %0.8h, %1.8h, %2.8h"
10680 : "=w"(result)
10681 : "w"(a), "w"(b)
10682 : /* No clobbers */);
10683 return result;
10686 /* End of temporary inline asm implementations. */
10688 /* Start of temporary inline asm for vldn, vstn and friends. */
10690 /* Create struct element types for duplicating loads.
10692 Create 2 element structures of:
10694 +------+----+----+----+----+
10695 | | 8 | 16 | 32 | 64 |
10696 +------+----+----+----+----+
10697 |int | Y | Y | N | N |
10698 +------+----+----+----+----+
10699 |uint | Y | Y | N | N |
10700 +------+----+----+----+----+
10701 |float | - | Y | N | N |
10702 +------+----+----+----+----+
10703 |poly | Y | Y | - | - |
10704 +------+----+----+----+----+
10706 Create 3 element structures of:
10708 +------+----+----+----+----+
10709 | | 8 | 16 | 32 | 64 |
10710 +------+----+----+----+----+
10711 |int | Y | Y | Y | Y |
10712 +------+----+----+----+----+
10713 |uint | Y | Y | Y | Y |
10714 +------+----+----+----+----+
10715 |float | - | Y | Y | Y |
10716 +------+----+----+----+----+
10717 |poly | Y | Y | - | - |
10718 +------+----+----+----+----+
10720 Create 4 element structures of:
10722 +------+----+----+----+----+
10723 | | 8 | 16 | 32 | 64 |
10724 +------+----+----+----+----+
10725 |int | Y | N | N | Y |
10726 +------+----+----+----+----+
10727 |uint | Y | N | N | Y |
10728 +------+----+----+----+----+
10729 |float | - | N | N | Y |
10730 +------+----+----+----+----+
10731 |poly | Y | N | - | - |
10732 +------+----+----+----+----+
10734 This is required for casting memory reference. */
10735 #define __STRUCTN(t, sz, nelem) \
10736 typedef struct t ## sz ## x ## nelem ## _t { \
10737 t ## sz ## _t val[nelem]; \
10738 } t ## sz ## x ## nelem ## _t;
10740 /* 2-element structs. */
10741 __STRUCTN (int, 8, 2)
10742 __STRUCTN (int, 16, 2)
10743 __STRUCTN (uint, 8, 2)
10744 __STRUCTN (uint, 16, 2)
10745 __STRUCTN (float, 16, 2)
10746 __STRUCTN (poly, 8, 2)
10747 __STRUCTN (poly, 16, 2)
10748 /* 3-element structs. */
10749 __STRUCTN (int, 8, 3)
10750 __STRUCTN (int, 16, 3)
10751 __STRUCTN (int, 32, 3)
10752 __STRUCTN (int, 64, 3)
10753 __STRUCTN (uint, 8, 3)
10754 __STRUCTN (uint, 16, 3)
10755 __STRUCTN (uint, 32, 3)
10756 __STRUCTN (uint, 64, 3)
10757 __STRUCTN (float, 16, 3)
10758 __STRUCTN (float, 32, 3)
10759 __STRUCTN (float, 64, 3)
10760 __STRUCTN (poly, 8, 3)
10761 __STRUCTN (poly, 16, 3)
10762 /* 4-element structs. */
10763 __STRUCTN (int, 8, 4)
10764 __STRUCTN (int, 64, 4)
10765 __STRUCTN (uint, 8, 4)
10766 __STRUCTN (uint, 64, 4)
10767 __STRUCTN (poly, 8, 4)
10768 __STRUCTN (float, 64, 4)
10769 #undef __STRUCTN
10772 #define __ST2_LANE_FUNC(intype, largetype, ptrtype, mode, \
10773 qmode, ptr_mode, funcsuffix, signedtype) \
10774 __extension__ extern __inline void \
10775 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) \
10776 vst2_lane_ ## funcsuffix (ptrtype *__ptr, \
10777 intype __b, const int __c) \
10779 __builtin_aarch64_simd_oi __o; \
10780 largetype __temp; \
10781 __temp.val[0] \
10782 = vcombine_##funcsuffix (__b.val[0], \
10783 vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
10784 __temp.val[1] \
10785 = vcombine_##funcsuffix (__b.val[1], \
10786 vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
10787 __o = __builtin_aarch64_set_qregoi##qmode (__o, \
10788 (signedtype) __temp.val[0], 0); \
10789 __o = __builtin_aarch64_set_qregoi##qmode (__o, \
10790 (signedtype) __temp.val[1], 1); \
10791 __builtin_aarch64_st2_lane##mode ((__builtin_aarch64_simd_ ## ptr_mode *) \
10792 __ptr, __o, __c); \
10795 __ST2_LANE_FUNC (float16x4x2_t, float16x8x2_t, float16_t, v4hf, v8hf, hf, f16,
10796 float16x8_t)
10797 __ST2_LANE_FUNC (float32x2x2_t, float32x4x2_t, float32_t, v2sf, v4sf, sf, f32,
10798 float32x4_t)
10799 __ST2_LANE_FUNC (float64x1x2_t, float64x2x2_t, float64_t, df, v2df, df, f64,
10800 float64x2_t)
10801 __ST2_LANE_FUNC (poly8x8x2_t, poly8x16x2_t, poly8_t, v8qi, v16qi, qi, p8,
10802 int8x16_t)
10803 __ST2_LANE_FUNC (poly16x4x2_t, poly16x8x2_t, poly16_t, v4hi, v8hi, hi, p16,
10804 int16x8_t)
10805 __ST2_LANE_FUNC (poly64x1x2_t, poly64x2x2_t, poly64_t, di, v2di_ssps, di, p64,
10806 poly64x2_t)
10807 __ST2_LANE_FUNC (int8x8x2_t, int8x16x2_t, int8_t, v8qi, v16qi, qi, s8,
10808 int8x16_t)
10809 __ST2_LANE_FUNC (int16x4x2_t, int16x8x2_t, int16_t, v4hi, v8hi, hi, s16,
10810 int16x8_t)
10811 __ST2_LANE_FUNC (int32x2x2_t, int32x4x2_t, int32_t, v2si, v4si, si, s32,
10812 int32x4_t)
10813 __ST2_LANE_FUNC (int64x1x2_t, int64x2x2_t, int64_t, di, v2di, di, s64,
10814 int64x2_t)
10815 __ST2_LANE_FUNC (uint8x8x2_t, uint8x16x2_t, uint8_t, v8qi, v16qi, qi, u8,
10816 int8x16_t)
10817 __ST2_LANE_FUNC (uint16x4x2_t, uint16x8x2_t, uint16_t, v4hi, v8hi, hi, u16,
10818 int16x8_t)
10819 __ST2_LANE_FUNC (uint32x2x2_t, uint32x4x2_t, uint32_t, v2si, v4si, si, u32,
10820 int32x4_t)
10821 __ST2_LANE_FUNC (uint64x1x2_t, uint64x2x2_t, uint64_t, di, v2di, di, u64,
10822 int64x2_t)
10824 #undef __ST2_LANE_FUNC
10825 #define __ST2_LANE_FUNC(intype, ptrtype, mode, ptr_mode, funcsuffix) \
10826 __extension__ extern __inline void \
10827 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) \
10828 vst2q_lane_ ## funcsuffix (ptrtype *__ptr, \
10829 intype __b, const int __c) \
10831 union { intype __i; \
10832 __builtin_aarch64_simd_oi __o; } __temp = { __b }; \
10833 __builtin_aarch64_st2_lane##mode ((__builtin_aarch64_simd_ ## ptr_mode *) \
10834 __ptr, __temp.__o, __c); \
10837 __ST2_LANE_FUNC (float16x8x2_t, float16_t, v8hf, hf, f16)
10838 __ST2_LANE_FUNC (float32x4x2_t, float32_t, v4sf, sf, f32)
10839 __ST2_LANE_FUNC (float64x2x2_t, float64_t, v2df, df, f64)
10840 __ST2_LANE_FUNC (poly8x16x2_t, poly8_t, v16qi, qi, p8)
10841 __ST2_LANE_FUNC (poly16x8x2_t, poly16_t, v8hi, hi, p16)
10842 __ST2_LANE_FUNC (poly64x2x2_t, poly64_t, v2di, di, p64)
10843 __ST2_LANE_FUNC (int8x16x2_t, int8_t, v16qi, qi, s8)
10844 __ST2_LANE_FUNC (int16x8x2_t, int16_t, v8hi, hi, s16)
10845 __ST2_LANE_FUNC (int32x4x2_t, int32_t, v4si, si, s32)
10846 __ST2_LANE_FUNC (int64x2x2_t, int64_t, v2di, di, s64)
10847 __ST2_LANE_FUNC (uint8x16x2_t, uint8_t, v16qi, qi, u8)
10848 __ST2_LANE_FUNC (uint16x8x2_t, uint16_t, v8hi, hi, u16)
10849 __ST2_LANE_FUNC (uint32x4x2_t, uint32_t, v4si, si, u32)
10850 __ST2_LANE_FUNC (uint64x2x2_t, uint64_t, v2di, di, u64)
10852 #define __ST3_LANE_FUNC(intype, largetype, ptrtype, mode, \
10853 qmode, ptr_mode, funcsuffix, signedtype) \
10854 __extension__ extern __inline void \
10855 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) \
10856 vst3_lane_ ## funcsuffix (ptrtype *__ptr, \
10857 intype __b, const int __c) \
10859 __builtin_aarch64_simd_ci __o; \
10860 largetype __temp; \
10861 __temp.val[0] \
10862 = vcombine_##funcsuffix (__b.val[0], \
10863 vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
10864 __temp.val[1] \
10865 = vcombine_##funcsuffix (__b.val[1], \
10866 vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
10867 __temp.val[2] \
10868 = vcombine_##funcsuffix (__b.val[2], \
10869 vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
10870 __o = __builtin_aarch64_set_qregci##qmode (__o, \
10871 (signedtype) __temp.val[0], 0); \
10872 __o = __builtin_aarch64_set_qregci##qmode (__o, \
10873 (signedtype) __temp.val[1], 1); \
10874 __o = __builtin_aarch64_set_qregci##qmode (__o, \
10875 (signedtype) __temp.val[2], 2); \
10876 __builtin_aarch64_st3_lane##mode ((__builtin_aarch64_simd_ ## ptr_mode *) \
10877 __ptr, __o, __c); \
10880 __ST3_LANE_FUNC (float16x4x3_t, float16x8x3_t, float16_t, v4hf, v8hf, hf, f16,
10881 float16x8_t)
10882 __ST3_LANE_FUNC (float32x2x3_t, float32x4x3_t, float32_t, v2sf, v4sf, sf, f32,
10883 float32x4_t)
10884 __ST3_LANE_FUNC (float64x1x3_t, float64x2x3_t, float64_t, df, v2df, df, f64,
10885 float64x2_t)
10886 __ST3_LANE_FUNC (poly8x8x3_t, poly8x16x3_t, poly8_t, v8qi, v16qi, qi, p8,
10887 int8x16_t)
10888 __ST3_LANE_FUNC (poly16x4x3_t, poly16x8x3_t, poly16_t, v4hi, v8hi, hi, p16,
10889 int16x8_t)
10890 __ST3_LANE_FUNC (poly64x1x3_t, poly64x2x3_t, poly64_t, di, v2di_ssps, di, p64,
10891 poly64x2_t)
10892 __ST3_LANE_FUNC (int8x8x3_t, int8x16x3_t, int8_t, v8qi, v16qi, qi, s8,
10893 int8x16_t)
10894 __ST3_LANE_FUNC (int16x4x3_t, int16x8x3_t, int16_t, v4hi, v8hi, hi, s16,
10895 int16x8_t)
10896 __ST3_LANE_FUNC (int32x2x3_t, int32x4x3_t, int32_t, v2si, v4si, si, s32,
10897 int32x4_t)
10898 __ST3_LANE_FUNC (int64x1x3_t, int64x2x3_t, int64_t, di, v2di, di, s64,
10899 int64x2_t)
10900 __ST3_LANE_FUNC (uint8x8x3_t, uint8x16x3_t, uint8_t, v8qi, v16qi, qi, u8,
10901 int8x16_t)
10902 __ST3_LANE_FUNC (uint16x4x3_t, uint16x8x3_t, uint16_t, v4hi, v8hi, hi, u16,
10903 int16x8_t)
10904 __ST3_LANE_FUNC (uint32x2x3_t, uint32x4x3_t, uint32_t, v2si, v4si, si, u32,
10905 int32x4_t)
10906 __ST3_LANE_FUNC (uint64x1x3_t, uint64x2x3_t, uint64_t, di, v2di, di, u64,
10907 int64x2_t)
10909 #undef __ST3_LANE_FUNC
10910 #define __ST3_LANE_FUNC(intype, ptrtype, mode, ptr_mode, funcsuffix) \
10911 __extension__ extern __inline void \
10912 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) \
10913 vst3q_lane_ ## funcsuffix (ptrtype *__ptr, \
10914 intype __b, const int __c) \
10916 union { intype __i; \
10917 __builtin_aarch64_simd_ci __o; } __temp = { __b }; \
10918 __builtin_aarch64_st3_lane##mode ((__builtin_aarch64_simd_ ## ptr_mode *) \
10919 __ptr, __temp.__o, __c); \
10922 __ST3_LANE_FUNC (float16x8x3_t, float16_t, v8hf, hf, f16)
10923 __ST3_LANE_FUNC (float32x4x3_t, float32_t, v4sf, sf, f32)
10924 __ST3_LANE_FUNC (float64x2x3_t, float64_t, v2df, df, f64)
10925 __ST3_LANE_FUNC (poly8x16x3_t, poly8_t, v16qi, qi, p8)
10926 __ST3_LANE_FUNC (poly16x8x3_t, poly16_t, v8hi, hi, p16)
10927 __ST3_LANE_FUNC (poly64x2x3_t, poly64_t, v2di, di, p64)
10928 __ST3_LANE_FUNC (int8x16x3_t, int8_t, v16qi, qi, s8)
10929 __ST3_LANE_FUNC (int16x8x3_t, int16_t, v8hi, hi, s16)
10930 __ST3_LANE_FUNC (int32x4x3_t, int32_t, v4si, si, s32)
10931 __ST3_LANE_FUNC (int64x2x3_t, int64_t, v2di, di, s64)
10932 __ST3_LANE_FUNC (uint8x16x3_t, uint8_t, v16qi, qi, u8)
10933 __ST3_LANE_FUNC (uint16x8x3_t, uint16_t, v8hi, hi, u16)
10934 __ST3_LANE_FUNC (uint32x4x3_t, uint32_t, v4si, si, u32)
10935 __ST3_LANE_FUNC (uint64x2x3_t, uint64_t, v2di, di, u64)
10937 #define __ST4_LANE_FUNC(intype, largetype, ptrtype, mode, \
10938 qmode, ptr_mode, funcsuffix, signedtype) \
10939 __extension__ extern __inline void \
10940 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) \
10941 vst4_lane_ ## funcsuffix (ptrtype *__ptr, \
10942 intype __b, const int __c) \
10944 __builtin_aarch64_simd_xi __o; \
10945 largetype __temp; \
10946 __temp.val[0] \
10947 = vcombine_##funcsuffix (__b.val[0], \
10948 vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
10949 __temp.val[1] \
10950 = vcombine_##funcsuffix (__b.val[1], \
10951 vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
10952 __temp.val[2] \
10953 = vcombine_##funcsuffix (__b.val[2], \
10954 vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
10955 __temp.val[3] \
10956 = vcombine_##funcsuffix (__b.val[3], \
10957 vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
10958 __o = __builtin_aarch64_set_qregxi##qmode (__o, \
10959 (signedtype) __temp.val[0], 0); \
10960 __o = __builtin_aarch64_set_qregxi##qmode (__o, \
10961 (signedtype) __temp.val[1], 1); \
10962 __o = __builtin_aarch64_set_qregxi##qmode (__o, \
10963 (signedtype) __temp.val[2], 2); \
10964 __o = __builtin_aarch64_set_qregxi##qmode (__o, \
10965 (signedtype) __temp.val[3], 3); \
10966 __builtin_aarch64_st4_lane##mode ((__builtin_aarch64_simd_ ## ptr_mode *) \
10967 __ptr, __o, __c); \
10970 __ST4_LANE_FUNC (float16x4x4_t, float16x8x4_t, float16_t, v4hf, v8hf, hf, f16,
10971 float16x8_t)
10972 __ST4_LANE_FUNC (float32x2x4_t, float32x4x4_t, float32_t, v2sf, v4sf, sf, f32,
10973 float32x4_t)
10974 __ST4_LANE_FUNC (float64x1x4_t, float64x2x4_t, float64_t, df, v2df, df, f64,
10975 float64x2_t)
10976 __ST4_LANE_FUNC (poly8x8x4_t, poly8x16x4_t, poly8_t, v8qi, v16qi, qi, p8,
10977 int8x16_t)
10978 __ST4_LANE_FUNC (poly16x4x4_t, poly16x8x4_t, poly16_t, v4hi, v8hi, hi, p16,
10979 int16x8_t)
10980 __ST4_LANE_FUNC (poly64x1x4_t, poly64x2x4_t, poly64_t, di, v2di_ssps, di, p64,
10981 poly64x2_t)
10982 __ST4_LANE_FUNC (int8x8x4_t, int8x16x4_t, int8_t, v8qi, v16qi, qi, s8,
10983 int8x16_t)
10984 __ST4_LANE_FUNC (int16x4x4_t, int16x8x4_t, int16_t, v4hi, v8hi, hi, s16,
10985 int16x8_t)
10986 __ST4_LANE_FUNC (int32x2x4_t, int32x4x4_t, int32_t, v2si, v4si, si, s32,
10987 int32x4_t)
10988 __ST4_LANE_FUNC (int64x1x4_t, int64x2x4_t, int64_t, di, v2di, di, s64,
10989 int64x2_t)
10990 __ST4_LANE_FUNC (uint8x8x4_t, uint8x16x4_t, uint8_t, v8qi, v16qi, qi, u8,
10991 int8x16_t)
10992 __ST4_LANE_FUNC (uint16x4x4_t, uint16x8x4_t, uint16_t, v4hi, v8hi, hi, u16,
10993 int16x8_t)
10994 __ST4_LANE_FUNC (uint32x2x4_t, uint32x4x4_t, uint32_t, v2si, v4si, si, u32,
10995 int32x4_t)
10996 __ST4_LANE_FUNC (uint64x1x4_t, uint64x2x4_t, uint64_t, di, v2di, di, u64,
10997 int64x2_t)
10999 #undef __ST4_LANE_FUNC
11000 #define __ST4_LANE_FUNC(intype, ptrtype, mode, ptr_mode, funcsuffix) \
11001 __extension__ extern __inline void \
11002 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) \
11003 vst4q_lane_ ## funcsuffix (ptrtype *__ptr, \
11004 intype __b, const int __c) \
11006 union { intype __i; \
11007 __builtin_aarch64_simd_xi __o; } __temp = { __b }; \
11008 __builtin_aarch64_st4_lane##mode ((__builtin_aarch64_simd_ ## ptr_mode *) \
11009 __ptr, __temp.__o, __c); \
11012 __ST4_LANE_FUNC (float16x8x4_t, float16_t, v8hf, hf, f16)
11013 __ST4_LANE_FUNC (float32x4x4_t, float32_t, v4sf, sf, f32)
11014 __ST4_LANE_FUNC (float64x2x4_t, float64_t, v2df, df, f64)
11015 __ST4_LANE_FUNC (poly8x16x4_t, poly8_t, v16qi, qi, p8)
11016 __ST4_LANE_FUNC (poly16x8x4_t, poly16_t, v8hi, hi, p16)
11017 __ST4_LANE_FUNC (poly64x2x4_t, poly64_t, v2di, di, p64)
11018 __ST4_LANE_FUNC (int8x16x4_t, int8_t, v16qi, qi, s8)
11019 __ST4_LANE_FUNC (int16x8x4_t, int16_t, v8hi, hi, s16)
11020 __ST4_LANE_FUNC (int32x4x4_t, int32_t, v4si, si, s32)
11021 __ST4_LANE_FUNC (int64x2x4_t, int64_t, v2di, di, s64)
11022 __ST4_LANE_FUNC (uint8x16x4_t, uint8_t, v16qi, qi, u8)
11023 __ST4_LANE_FUNC (uint16x8x4_t, uint16_t, v8hi, hi, u16)
11024 __ST4_LANE_FUNC (uint32x4x4_t, uint32_t, v4si, si, u32)
11025 __ST4_LANE_FUNC (uint64x2x4_t, uint64_t, v2di, di, u64)
11027 __extension__ extern __inline int64_t
11028 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11029 vaddlv_s32 (int32x2_t a)
11031 int64_t result;
11032 __asm__ ("saddlp %0.1d, %1.2s" : "=w"(result) : "w"(a) : );
11033 return result;
11036 __extension__ extern __inline uint64_t
11037 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11038 vaddlv_u32 (uint32x2_t a)
11040 uint64_t result;
11041 __asm__ ("uaddlp %0.1d, %1.2s" : "=w"(result) : "w"(a) : );
11042 return result;
11045 __extension__ extern __inline int16x4_t
11046 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11047 vqdmulh_laneq_s16 (int16x4_t __a, int16x8_t __b, const int __c)
11049 return __builtin_aarch64_sqdmulh_laneqv4hi (__a, __b, __c);
11052 __extension__ extern __inline int32x2_t
11053 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11054 vqdmulh_laneq_s32 (int32x2_t __a, int32x4_t __b, const int __c)
11056 return __builtin_aarch64_sqdmulh_laneqv2si (__a, __b, __c);
11059 __extension__ extern __inline int16x8_t
11060 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11061 vqdmulhq_laneq_s16 (int16x8_t __a, int16x8_t __b, const int __c)
11063 return __builtin_aarch64_sqdmulh_laneqv8hi (__a, __b, __c);
11066 __extension__ extern __inline int32x4_t
11067 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11068 vqdmulhq_laneq_s32 (int32x4_t __a, int32x4_t __b, const int __c)
11070 return __builtin_aarch64_sqdmulh_laneqv4si (__a, __b, __c);
11073 __extension__ extern __inline int16x4_t
11074 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11075 vqrdmulh_laneq_s16 (int16x4_t __a, int16x8_t __b, const int __c)
11077 return __builtin_aarch64_sqrdmulh_laneqv4hi (__a, __b, __c);
11080 __extension__ extern __inline int32x2_t
11081 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11082 vqrdmulh_laneq_s32 (int32x2_t __a, int32x4_t __b, const int __c)
11084 return __builtin_aarch64_sqrdmulh_laneqv2si (__a, __b, __c);
11087 __extension__ extern __inline int16x8_t
11088 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11089 vqrdmulhq_laneq_s16 (int16x8_t __a, int16x8_t __b, const int __c)
11091 return __builtin_aarch64_sqrdmulh_laneqv8hi (__a, __b, __c);
11094 __extension__ extern __inline int32x4_t
11095 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11096 vqrdmulhq_laneq_s32 (int32x4_t __a, int32x4_t __b, const int __c)
11098 return __builtin_aarch64_sqrdmulh_laneqv4si (__a, __b, __c);
11101 /* Table intrinsics. */
11103 __extension__ extern __inline poly8x8_t
11104 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11105 vqtbl1_p8 (poly8x16_t a, uint8x8_t b)
11107 poly8x8_t result;
11108 __asm__ ("tbl %0.8b, {%1.16b}, %2.8b"
11109 : "=w"(result)
11110 : "w"(a), "w"(b)
11111 : /* No clobbers */);
11112 return result;
11115 __extension__ extern __inline int8x8_t
11116 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11117 vqtbl1_s8 (int8x16_t a, uint8x8_t b)
11119 int8x8_t result;
11120 __asm__ ("tbl %0.8b, {%1.16b}, %2.8b"
11121 : "=w"(result)
11122 : "w"(a), "w"(b)
11123 : /* No clobbers */);
11124 return result;
11127 __extension__ extern __inline uint8x8_t
11128 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11129 vqtbl1_u8 (uint8x16_t a, uint8x8_t b)
11131 uint8x8_t result;
11132 __asm__ ("tbl %0.8b, {%1.16b}, %2.8b"
11133 : "=w"(result)
11134 : "w"(a), "w"(b)
11135 : /* No clobbers */);
11136 return result;
11139 __extension__ extern __inline poly8x16_t
11140 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11141 vqtbl1q_p8 (poly8x16_t a, uint8x16_t b)
11143 poly8x16_t result;
11144 __asm__ ("tbl %0.16b, {%1.16b}, %2.16b"
11145 : "=w"(result)
11146 : "w"(a), "w"(b)
11147 : /* No clobbers */);
11148 return result;
11151 __extension__ extern __inline int8x16_t
11152 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11153 vqtbl1q_s8 (int8x16_t a, uint8x16_t b)
11155 int8x16_t result;
11156 __asm__ ("tbl %0.16b, {%1.16b}, %2.16b"
11157 : "=w"(result)
11158 : "w"(a), "w"(b)
11159 : /* No clobbers */);
11160 return result;
11163 __extension__ extern __inline uint8x16_t
11164 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11165 vqtbl1q_u8 (uint8x16_t a, uint8x16_t b)
11167 uint8x16_t result;
11168 __asm__ ("tbl %0.16b, {%1.16b}, %2.16b"
11169 : "=w"(result)
11170 : "w"(a), "w"(b)
11171 : /* No clobbers */);
11172 return result;
11175 __extension__ extern __inline int8x8_t
11176 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11177 vqtbx1_s8 (int8x8_t r, int8x16_t tab, uint8x8_t idx)
11179 int8x8_t result = r;
11180 __asm__ ("tbx %0.8b,{%1.16b},%2.8b"
11181 : "+w"(result)
11182 : "w"(tab), "w"(idx)
11183 : /* No clobbers */);
11184 return result;
11187 __extension__ extern __inline uint8x8_t
11188 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11189 vqtbx1_u8 (uint8x8_t r, uint8x16_t tab, uint8x8_t idx)
11191 uint8x8_t result = r;
11192 __asm__ ("tbx %0.8b,{%1.16b},%2.8b"
11193 : "+w"(result)
11194 : "w"(tab), "w"(idx)
11195 : /* No clobbers */);
11196 return result;
11199 __extension__ extern __inline poly8x8_t
11200 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11201 vqtbx1_p8 (poly8x8_t r, poly8x16_t tab, uint8x8_t idx)
11203 poly8x8_t result = r;
11204 __asm__ ("tbx %0.8b,{%1.16b},%2.8b"
11205 : "+w"(result)
11206 : "w"(tab), "w"(idx)
11207 : /* No clobbers */);
11208 return result;
11211 __extension__ extern __inline int8x16_t
11212 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11213 vqtbx1q_s8 (int8x16_t r, int8x16_t tab, uint8x16_t idx)
11215 int8x16_t result = r;
11216 __asm__ ("tbx %0.16b,{%1.16b},%2.16b"
11217 : "+w"(result)
11218 : "w"(tab), "w"(idx)
11219 : /* No clobbers */);
11220 return result;
11223 __extension__ extern __inline uint8x16_t
11224 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11225 vqtbx1q_u8 (uint8x16_t r, uint8x16_t tab, uint8x16_t idx)
11227 uint8x16_t result = r;
11228 __asm__ ("tbx %0.16b,{%1.16b},%2.16b"
11229 : "+w"(result)
11230 : "w"(tab), "w"(idx)
11231 : /* No clobbers */);
11232 return result;
11235 __extension__ extern __inline poly8x16_t
11236 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11237 vqtbx1q_p8 (poly8x16_t r, poly8x16_t tab, uint8x16_t idx)
11239 poly8x16_t result = r;
11240 __asm__ ("tbx %0.16b,{%1.16b},%2.16b"
11241 : "+w"(result)
11242 : "w"(tab), "w"(idx)
11243 : /* No clobbers */);
11244 return result;
11247 /* V7 legacy table intrinsics. */
11249 __extension__ extern __inline int8x8_t
11250 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11251 vtbl1_s8 (int8x8_t tab, int8x8_t idx)
11253 int8x8_t result;
11254 int8x16_t temp = vcombine_s8 (tab, vcreate_s8 (__AARCH64_UINT64_C (0x0)));
11255 __asm__ ("tbl %0.8b, {%1.16b}, %2.8b"
11256 : "=w"(result)
11257 : "w"(temp), "w"(idx)
11258 : /* No clobbers */);
11259 return result;
11262 __extension__ extern __inline uint8x8_t
11263 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11264 vtbl1_u8 (uint8x8_t tab, uint8x8_t idx)
11266 uint8x8_t result;
11267 uint8x16_t temp = vcombine_u8 (tab, vcreate_u8 (__AARCH64_UINT64_C (0x0)));
11268 __asm__ ("tbl %0.8b, {%1.16b}, %2.8b"
11269 : "=w"(result)
11270 : "w"(temp), "w"(idx)
11271 : /* No clobbers */);
11272 return result;
11275 __extension__ extern __inline poly8x8_t
11276 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11277 vtbl1_p8 (poly8x8_t tab, uint8x8_t idx)
11279 poly8x8_t result;
11280 poly8x16_t temp = vcombine_p8 (tab, vcreate_p8 (__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 int8x8_t
11289 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11290 vtbl2_s8 (int8x8x2_t tab, int8x8_t idx)
11292 int8x8_t result;
11293 int8x16_t temp = vcombine_s8 (tab.val[0], tab.val[1]);
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 uint8x8_t
11302 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11303 vtbl2_u8 (uint8x8x2_t tab, uint8x8_t idx)
11305 uint8x8_t result;
11306 uint8x16_t temp = vcombine_u8 (tab.val[0], tab.val[1]);
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 poly8x8_t
11315 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11316 vtbl2_p8 (poly8x8x2_t tab, uint8x8_t idx)
11318 poly8x8_t result;
11319 poly8x16_t temp = vcombine_p8 (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 int8x8_t
11328 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11329 vtbl3_s8 (int8x8x3_t tab, int8x8_t idx)
11331 int8x8_t result;
11332 int8x16x2_t temp;
11333 __builtin_aarch64_simd_oi __o;
11334 temp.val[0] = vcombine_s8 (tab.val[0], tab.val[1]);
11335 temp.val[1] = vcombine_s8 (tab.val[2], vcreate_s8 (__AARCH64_UINT64_C (0x0)));
11336 __o = __builtin_aarch64_set_qregoiv16qi (__o,
11337 (int8x16_t) temp.val[0], 0);
11338 __o = __builtin_aarch64_set_qregoiv16qi (__o,
11339 (int8x16_t) temp.val[1], 1);
11340 result = __builtin_aarch64_tbl3v8qi (__o, idx);
11341 return result;
11344 __extension__ extern __inline uint8x8_t
11345 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11346 vtbl3_u8 (uint8x8x3_t tab, uint8x8_t idx)
11348 uint8x8_t result;
11349 uint8x16x2_t temp;
11350 __builtin_aarch64_simd_oi __o;
11351 temp.val[0] = vcombine_u8 (tab.val[0], tab.val[1]);
11352 temp.val[1] = vcombine_u8 (tab.val[2], vcreate_u8 (__AARCH64_UINT64_C (0x0)));
11353 __o = __builtin_aarch64_set_qregoiv16qi (__o,
11354 (int8x16_t) temp.val[0], 0);
11355 __o = __builtin_aarch64_set_qregoiv16qi (__o,
11356 (int8x16_t) temp.val[1], 1);
11357 result = (uint8x8_t)__builtin_aarch64_tbl3v8qi (__o, (int8x8_t)idx);
11358 return result;
11361 __extension__ extern __inline poly8x8_t
11362 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11363 vtbl3_p8 (poly8x8x3_t tab, uint8x8_t idx)
11365 poly8x8_t result;
11366 poly8x16x2_t temp;
11367 __builtin_aarch64_simd_oi __o;
11368 temp.val[0] = vcombine_p8 (tab.val[0], tab.val[1]);
11369 temp.val[1] = vcombine_p8 (tab.val[2], vcreate_p8 (__AARCH64_UINT64_C (0x0)));
11370 __o = __builtin_aarch64_set_qregoiv16qi (__o,
11371 (int8x16_t) temp.val[0], 0);
11372 __o = __builtin_aarch64_set_qregoiv16qi (__o,
11373 (int8x16_t) temp.val[1], 1);
11374 result = (poly8x8_t)__builtin_aarch64_tbl3v8qi (__o, (int8x8_t)idx);
11375 return result;
11378 __extension__ extern __inline int8x8_t
11379 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11380 vtbl4_s8 (int8x8x4_t tab, int8x8_t idx)
11382 int8x8_t result;
11383 int8x16x2_t temp;
11384 __builtin_aarch64_simd_oi __o;
11385 temp.val[0] = vcombine_s8 (tab.val[0], tab.val[1]);
11386 temp.val[1] = vcombine_s8 (tab.val[2], tab.val[3]);
11387 __o = __builtin_aarch64_set_qregoiv16qi (__o,
11388 (int8x16_t) temp.val[0], 0);
11389 __o = __builtin_aarch64_set_qregoiv16qi (__o,
11390 (int8x16_t) temp.val[1], 1);
11391 result = __builtin_aarch64_tbl3v8qi (__o, idx);
11392 return result;
11395 __extension__ extern __inline uint8x8_t
11396 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11397 vtbl4_u8 (uint8x8x4_t tab, uint8x8_t idx)
11399 uint8x8_t result;
11400 uint8x16x2_t temp;
11401 __builtin_aarch64_simd_oi __o;
11402 temp.val[0] = vcombine_u8 (tab.val[0], tab.val[1]);
11403 temp.val[1] = vcombine_u8 (tab.val[2], tab.val[3]);
11404 __o = __builtin_aarch64_set_qregoiv16qi (__o,
11405 (int8x16_t) temp.val[0], 0);
11406 __o = __builtin_aarch64_set_qregoiv16qi (__o,
11407 (int8x16_t) temp.val[1], 1);
11408 result = (uint8x8_t)__builtin_aarch64_tbl3v8qi (__o, (int8x8_t)idx);
11409 return result;
11412 __extension__ extern __inline poly8x8_t
11413 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11414 vtbl4_p8 (poly8x8x4_t tab, uint8x8_t idx)
11416 poly8x8_t result;
11417 poly8x16x2_t temp;
11418 __builtin_aarch64_simd_oi __o;
11419 temp.val[0] = vcombine_p8 (tab.val[0], tab.val[1]);
11420 temp.val[1] = vcombine_p8 (tab.val[2], tab.val[3]);
11421 __o = __builtin_aarch64_set_qregoiv16qi (__o,
11422 (int8x16_t) temp.val[0], 0);
11423 __o = __builtin_aarch64_set_qregoiv16qi (__o,
11424 (int8x16_t) temp.val[1], 1);
11425 result = (poly8x8_t)__builtin_aarch64_tbl3v8qi (__o, (int8x8_t)idx);
11426 return result;
11429 __extension__ extern __inline int8x8_t
11430 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11431 vtbx2_s8 (int8x8_t r, int8x8x2_t tab, int8x8_t idx)
11433 int8x8_t result = r;
11434 int8x16_t temp = vcombine_s8 (tab.val[0], tab.val[1]);
11435 __asm__ ("tbx %0.8b, {%1.16b}, %2.8b"
11436 : "+w"(result)
11437 : "w"(temp), "w"(idx)
11438 : /* No clobbers */);
11439 return result;
11442 __extension__ extern __inline uint8x8_t
11443 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11444 vtbx2_u8 (uint8x8_t r, uint8x8x2_t tab, uint8x8_t idx)
11446 uint8x8_t result = r;
11447 uint8x16_t temp = vcombine_u8 (tab.val[0], tab.val[1]);
11448 __asm__ ("tbx %0.8b, {%1.16b}, %2.8b"
11449 : "+w"(result)
11450 : "w"(temp), "w"(idx)
11451 : /* No clobbers */);
11452 return result;
11455 __extension__ extern __inline poly8x8_t
11456 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11457 vtbx2_p8 (poly8x8_t r, poly8x8x2_t tab, uint8x8_t idx)
11459 poly8x8_t result = r;
11460 poly8x16_t temp = vcombine_p8 (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 /* End of temporary inline asm. */
11470 /* Start of optimal implementations in approved order. */
11472 /* vabd. */
11474 __extension__ extern __inline float32_t
11475 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11476 vabds_f32 (float32_t __a, float32_t __b)
11478 return __builtin_aarch64_fabdsf (__a, __b);
11481 __extension__ extern __inline float64_t
11482 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11483 vabdd_f64 (float64_t __a, float64_t __b)
11485 return __builtin_aarch64_fabddf (__a, __b);
11488 __extension__ extern __inline float32x2_t
11489 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11490 vabd_f32 (float32x2_t __a, float32x2_t __b)
11492 return __builtin_aarch64_fabdv2sf (__a, __b);
11495 __extension__ extern __inline float64x1_t
11496 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11497 vabd_f64 (float64x1_t __a, float64x1_t __b)
11499 return (float64x1_t) {vabdd_f64 (vget_lane_f64 (__a, 0),
11500 vget_lane_f64 (__b, 0))};
11503 __extension__ extern __inline float32x4_t
11504 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11505 vabdq_f32 (float32x4_t __a, float32x4_t __b)
11507 return __builtin_aarch64_fabdv4sf (__a, __b);
11510 __extension__ extern __inline float64x2_t
11511 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11512 vabdq_f64 (float64x2_t __a, float64x2_t __b)
11514 return __builtin_aarch64_fabdv2df (__a, __b);
11517 /* vabs */
11519 __extension__ extern __inline float32x2_t
11520 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11521 vabs_f32 (float32x2_t __a)
11523 return __builtin_aarch64_absv2sf (__a);
11526 __extension__ extern __inline float64x1_t
11527 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11528 vabs_f64 (float64x1_t __a)
11530 return (float64x1_t) {__builtin_fabs (__a[0])};
11533 __extension__ extern __inline int8x8_t
11534 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11535 vabs_s8 (int8x8_t __a)
11537 return __builtin_aarch64_absv8qi (__a);
11540 __extension__ extern __inline int16x4_t
11541 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11542 vabs_s16 (int16x4_t __a)
11544 return __builtin_aarch64_absv4hi (__a);
11547 __extension__ extern __inline int32x2_t
11548 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11549 vabs_s32 (int32x2_t __a)
11551 return __builtin_aarch64_absv2si (__a);
11554 __extension__ extern __inline int64x1_t
11555 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11556 vabs_s64 (int64x1_t __a)
11558 return (int64x1_t) {__builtin_aarch64_absdi (__a[0])};
11561 __extension__ extern __inline float32x4_t
11562 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11563 vabsq_f32 (float32x4_t __a)
11565 return __builtin_aarch64_absv4sf (__a);
11568 __extension__ extern __inline float64x2_t
11569 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11570 vabsq_f64 (float64x2_t __a)
11572 return __builtin_aarch64_absv2df (__a);
11575 __extension__ extern __inline int8x16_t
11576 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11577 vabsq_s8 (int8x16_t __a)
11579 return __builtin_aarch64_absv16qi (__a);
11582 __extension__ extern __inline int16x8_t
11583 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11584 vabsq_s16 (int16x8_t __a)
11586 return __builtin_aarch64_absv8hi (__a);
11589 __extension__ extern __inline int32x4_t
11590 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11591 vabsq_s32 (int32x4_t __a)
11593 return __builtin_aarch64_absv4si (__a);
11596 __extension__ extern __inline int64x2_t
11597 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11598 vabsq_s64 (int64x2_t __a)
11600 return __builtin_aarch64_absv2di (__a);
11603 /* vadd */
11605 __extension__ extern __inline int64_t
11606 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11607 vaddd_s64 (int64_t __a, int64_t __b)
11609 return __a + __b;
11612 __extension__ extern __inline uint64_t
11613 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11614 vaddd_u64 (uint64_t __a, uint64_t __b)
11616 return __a + __b;
11619 /* vaddv */
11621 __extension__ extern __inline int8_t
11622 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11623 vaddv_s8 (int8x8_t __a)
11625 return __builtin_aarch64_reduc_plus_scal_v8qi (__a);
11628 __extension__ extern __inline int16_t
11629 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11630 vaddv_s16 (int16x4_t __a)
11632 return __builtin_aarch64_reduc_plus_scal_v4hi (__a);
11635 __extension__ extern __inline int32_t
11636 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11637 vaddv_s32 (int32x2_t __a)
11639 return __builtin_aarch64_reduc_plus_scal_v2si (__a);
11642 __extension__ extern __inline uint8_t
11643 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11644 vaddv_u8 (uint8x8_t __a)
11646 return (uint8_t) __builtin_aarch64_reduc_plus_scal_v8qi ((int8x8_t) __a);
11649 __extension__ extern __inline uint16_t
11650 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11651 vaddv_u16 (uint16x4_t __a)
11653 return (uint16_t) __builtin_aarch64_reduc_plus_scal_v4hi ((int16x4_t) __a);
11656 __extension__ extern __inline uint32_t
11657 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11658 vaddv_u32 (uint32x2_t __a)
11660 return (int32_t) __builtin_aarch64_reduc_plus_scal_v2si ((int32x2_t) __a);
11663 __extension__ extern __inline int8_t
11664 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11665 vaddvq_s8 (int8x16_t __a)
11667 return __builtin_aarch64_reduc_plus_scal_v16qi (__a);
11670 __extension__ extern __inline int16_t
11671 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11672 vaddvq_s16 (int16x8_t __a)
11674 return __builtin_aarch64_reduc_plus_scal_v8hi (__a);
11677 __extension__ extern __inline int32_t
11678 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11679 vaddvq_s32 (int32x4_t __a)
11681 return __builtin_aarch64_reduc_plus_scal_v4si (__a);
11684 __extension__ extern __inline int64_t
11685 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11686 vaddvq_s64 (int64x2_t __a)
11688 return __builtin_aarch64_reduc_plus_scal_v2di (__a);
11691 __extension__ extern __inline uint8_t
11692 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11693 vaddvq_u8 (uint8x16_t __a)
11695 return (uint8_t) __builtin_aarch64_reduc_plus_scal_v16qi ((int8x16_t) __a);
11698 __extension__ extern __inline uint16_t
11699 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11700 vaddvq_u16 (uint16x8_t __a)
11702 return (uint16_t) __builtin_aarch64_reduc_plus_scal_v8hi ((int16x8_t) __a);
11705 __extension__ extern __inline uint32_t
11706 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11707 vaddvq_u32 (uint32x4_t __a)
11709 return (uint32_t) __builtin_aarch64_reduc_plus_scal_v4si ((int32x4_t) __a);
11712 __extension__ extern __inline uint64_t
11713 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11714 vaddvq_u64 (uint64x2_t __a)
11716 return (uint64_t) __builtin_aarch64_reduc_plus_scal_v2di ((int64x2_t) __a);
11719 __extension__ extern __inline float32_t
11720 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11721 vaddv_f32 (float32x2_t __a)
11723 return __builtin_aarch64_reduc_plus_scal_v2sf (__a);
11726 __extension__ extern __inline float32_t
11727 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11728 vaddvq_f32 (float32x4_t __a)
11730 return __builtin_aarch64_reduc_plus_scal_v4sf (__a);
11733 __extension__ extern __inline float64_t
11734 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11735 vaddvq_f64 (float64x2_t __a)
11737 return __builtin_aarch64_reduc_plus_scal_v2df (__a);
11740 /* vbsl */
11742 __extension__ extern __inline float16x4_t
11743 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11744 vbsl_f16 (uint16x4_t __a, float16x4_t __b, float16x4_t __c)
11746 return __builtin_aarch64_simd_bslv4hf_suss (__a, __b, __c);
11749 __extension__ extern __inline float32x2_t
11750 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11751 vbsl_f32 (uint32x2_t __a, float32x2_t __b, float32x2_t __c)
11753 return __builtin_aarch64_simd_bslv2sf_suss (__a, __b, __c);
11756 __extension__ extern __inline float64x1_t
11757 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11758 vbsl_f64 (uint64x1_t __a, float64x1_t __b, float64x1_t __c)
11760 return (float64x1_t)
11761 { __builtin_aarch64_simd_bsldf_suss (__a[0], __b[0], __c[0]) };
11764 __extension__ extern __inline poly8x8_t
11765 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11766 vbsl_p8 (uint8x8_t __a, poly8x8_t __b, poly8x8_t __c)
11768 return __builtin_aarch64_simd_bslv8qi_pupp (__a, __b, __c);
11771 __extension__ extern __inline poly16x4_t
11772 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11773 vbsl_p16 (uint16x4_t __a, poly16x4_t __b, poly16x4_t __c)
11775 return __builtin_aarch64_simd_bslv4hi_pupp (__a, __b, __c);
11778 __extension__ extern __inline int8x8_t
11779 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11780 vbsl_s8 (uint8x8_t __a, int8x8_t __b, int8x8_t __c)
11782 return __builtin_aarch64_simd_bslv8qi_suss (__a, __b, __c);
11785 __extension__ extern __inline int16x4_t
11786 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11787 vbsl_s16 (uint16x4_t __a, int16x4_t __b, int16x4_t __c)
11789 return __builtin_aarch64_simd_bslv4hi_suss (__a, __b, __c);
11792 __extension__ extern __inline int32x2_t
11793 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11794 vbsl_s32 (uint32x2_t __a, int32x2_t __b, int32x2_t __c)
11796 return __builtin_aarch64_simd_bslv2si_suss (__a, __b, __c);
11799 __extension__ extern __inline int64x1_t
11800 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11801 vbsl_s64 (uint64x1_t __a, int64x1_t __b, int64x1_t __c)
11803 return (int64x1_t)
11804 {__builtin_aarch64_simd_bsldi_suss (__a[0], __b[0], __c[0])};
11807 __extension__ extern __inline uint8x8_t
11808 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11809 vbsl_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c)
11811 return __builtin_aarch64_simd_bslv8qi_uuuu (__a, __b, __c);
11814 __extension__ extern __inline uint16x4_t
11815 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11816 vbsl_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c)
11818 return __builtin_aarch64_simd_bslv4hi_uuuu (__a, __b, __c);
11821 __extension__ extern __inline uint32x2_t
11822 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11823 vbsl_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c)
11825 return __builtin_aarch64_simd_bslv2si_uuuu (__a, __b, __c);
11828 __extension__ extern __inline uint64x1_t
11829 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11830 vbsl_u64 (uint64x1_t __a, uint64x1_t __b, uint64x1_t __c)
11832 return (uint64x1_t)
11833 {__builtin_aarch64_simd_bsldi_uuuu (__a[0], __b[0], __c[0])};
11836 __extension__ extern __inline float16x8_t
11837 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11838 vbslq_f16 (uint16x8_t __a, float16x8_t __b, float16x8_t __c)
11840 return __builtin_aarch64_simd_bslv8hf_suss (__a, __b, __c);
11843 __extension__ extern __inline float32x4_t
11844 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11845 vbslq_f32 (uint32x4_t __a, float32x4_t __b, float32x4_t __c)
11847 return __builtin_aarch64_simd_bslv4sf_suss (__a, __b, __c);
11850 __extension__ extern __inline float64x2_t
11851 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11852 vbslq_f64 (uint64x2_t __a, float64x2_t __b, float64x2_t __c)
11854 return __builtin_aarch64_simd_bslv2df_suss (__a, __b, __c);
11857 __extension__ extern __inline poly8x16_t
11858 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11859 vbslq_p8 (uint8x16_t __a, poly8x16_t __b, poly8x16_t __c)
11861 return __builtin_aarch64_simd_bslv16qi_pupp (__a, __b, __c);
11864 __extension__ extern __inline poly16x8_t
11865 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11866 vbslq_p16 (uint16x8_t __a, poly16x8_t __b, poly16x8_t __c)
11868 return __builtin_aarch64_simd_bslv8hi_pupp (__a, __b, __c);
11871 __extension__ extern __inline int8x16_t
11872 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11873 vbslq_s8 (uint8x16_t __a, int8x16_t __b, int8x16_t __c)
11875 return __builtin_aarch64_simd_bslv16qi_suss (__a, __b, __c);
11878 __extension__ extern __inline int16x8_t
11879 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11880 vbslq_s16 (uint16x8_t __a, int16x8_t __b, int16x8_t __c)
11882 return __builtin_aarch64_simd_bslv8hi_suss (__a, __b, __c);
11885 __extension__ extern __inline int32x4_t
11886 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11887 vbslq_s32 (uint32x4_t __a, int32x4_t __b, int32x4_t __c)
11889 return __builtin_aarch64_simd_bslv4si_suss (__a, __b, __c);
11892 __extension__ extern __inline int64x2_t
11893 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11894 vbslq_s64 (uint64x2_t __a, int64x2_t __b, int64x2_t __c)
11896 return __builtin_aarch64_simd_bslv2di_suss (__a, __b, __c);
11899 __extension__ extern __inline uint8x16_t
11900 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11901 vbslq_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c)
11903 return __builtin_aarch64_simd_bslv16qi_uuuu (__a, __b, __c);
11906 __extension__ extern __inline uint16x8_t
11907 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11908 vbslq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
11910 return __builtin_aarch64_simd_bslv8hi_uuuu (__a, __b, __c);
11913 __extension__ extern __inline uint32x4_t
11914 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11915 vbslq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
11917 return __builtin_aarch64_simd_bslv4si_uuuu (__a, __b, __c);
11920 __extension__ extern __inline uint64x2_t
11921 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11922 vbslq_u64 (uint64x2_t __a, uint64x2_t __b, uint64x2_t __c)
11924 return __builtin_aarch64_simd_bslv2di_uuuu (__a, __b, __c);
11927 /* ARMv8.1-A instrinsics. */
11928 #pragma GCC push_options
11929 #pragma GCC target ("arch=armv8.1-a")
11931 __extension__ extern __inline int16x4_t
11932 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11933 vqrdmlah_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c)
11935 return __builtin_aarch64_sqrdmlahv4hi (__a, __b, __c);
11938 __extension__ extern __inline int32x2_t
11939 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11940 vqrdmlah_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c)
11942 return __builtin_aarch64_sqrdmlahv2si (__a, __b, __c);
11945 __extension__ extern __inline int16x8_t
11946 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11947 vqrdmlahq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
11949 return __builtin_aarch64_sqrdmlahv8hi (__a, __b, __c);
11952 __extension__ extern __inline int32x4_t
11953 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11954 vqrdmlahq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
11956 return __builtin_aarch64_sqrdmlahv4si (__a, __b, __c);
11959 __extension__ extern __inline int16x4_t
11960 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11961 vqrdmlsh_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c)
11963 return __builtin_aarch64_sqrdmlshv4hi (__a, __b, __c);
11966 __extension__ extern __inline int32x2_t
11967 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11968 vqrdmlsh_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c)
11970 return __builtin_aarch64_sqrdmlshv2si (__a, __b, __c);
11973 __extension__ extern __inline int16x8_t
11974 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11975 vqrdmlshq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
11977 return __builtin_aarch64_sqrdmlshv8hi (__a, __b, __c);
11980 __extension__ extern __inline int32x4_t
11981 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11982 vqrdmlshq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
11984 return __builtin_aarch64_sqrdmlshv4si (__a, __b, __c);
11987 __extension__ extern __inline int16x4_t
11988 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11989 vqrdmlah_laneq_s16 (int16x4_t __a, int16x4_t __b, int16x8_t __c, const int __d)
11991 return __builtin_aarch64_sqrdmlah_laneqv4hi (__a, __b, __c, __d);
11994 __extension__ extern __inline int32x2_t
11995 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11996 vqrdmlah_laneq_s32 (int32x2_t __a, int32x2_t __b, int32x4_t __c, const int __d)
11998 return __builtin_aarch64_sqrdmlah_laneqv2si (__a, __b, __c, __d);
12001 __extension__ extern __inline int16x8_t
12002 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12003 vqrdmlahq_laneq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c, const int __d)
12005 return __builtin_aarch64_sqrdmlah_laneqv8hi (__a, __b, __c, __d);
12008 __extension__ extern __inline int32x4_t
12009 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12010 vqrdmlahq_laneq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c, const int __d)
12012 return __builtin_aarch64_sqrdmlah_laneqv4si (__a, __b, __c, __d);
12015 __extension__ extern __inline int16x4_t
12016 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12017 vqrdmlsh_laneq_s16 (int16x4_t __a, int16x4_t __b, int16x8_t __c, const int __d)
12019 return __builtin_aarch64_sqrdmlsh_laneqv4hi (__a, __b, __c, __d);
12022 __extension__ extern __inline int32x2_t
12023 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12024 vqrdmlsh_laneq_s32 (int32x2_t __a, int32x2_t __b, int32x4_t __c, const int __d)
12026 return __builtin_aarch64_sqrdmlsh_laneqv2si (__a, __b, __c, __d);
12029 __extension__ extern __inline int16x8_t
12030 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12031 vqrdmlshq_laneq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c, const int __d)
12033 return __builtin_aarch64_sqrdmlsh_laneqv8hi (__a, __b, __c, __d);
12036 __extension__ extern __inline int32x4_t
12037 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12038 vqrdmlshq_laneq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c, const int __d)
12040 return __builtin_aarch64_sqrdmlsh_laneqv4si (__a, __b, __c, __d);
12043 __extension__ extern __inline int16x4_t
12044 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12045 vqrdmlah_lane_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
12047 return __builtin_aarch64_sqrdmlah_lanev4hi (__a, __b, __c, __d);
12050 __extension__ extern __inline int32x2_t
12051 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12052 vqrdmlah_lane_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
12054 return __builtin_aarch64_sqrdmlah_lanev2si (__a, __b, __c, __d);
12057 __extension__ extern __inline int16x8_t
12058 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12059 vqrdmlahq_lane_s16 (int16x8_t __a, int16x8_t __b, int16x4_t __c, const int __d)
12061 return __builtin_aarch64_sqrdmlah_lanev8hi (__a, __b, __c, __d);
12064 __extension__ extern __inline int32x4_t
12065 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12066 vqrdmlahq_lane_s32 (int32x4_t __a, int32x4_t __b, int32x2_t __c, const int __d)
12068 return __builtin_aarch64_sqrdmlah_lanev4si (__a, __b, __c, __d);
12071 __extension__ extern __inline int16_t
12072 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12073 vqrdmlahh_s16 (int16_t __a, int16_t __b, int16_t __c)
12075 return (int16_t) __builtin_aarch64_sqrdmlahhi (__a, __b, __c);
12078 __extension__ extern __inline int16_t
12079 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12080 vqrdmlahh_lane_s16 (int16_t __a, int16_t __b, int16x4_t __c, const int __d)
12082 return __builtin_aarch64_sqrdmlah_lanehi (__a, __b, __c, __d);
12085 __extension__ extern __inline int16_t
12086 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12087 vqrdmlahh_laneq_s16 (int16_t __a, int16_t __b, int16x8_t __c, const int __d)
12089 return __builtin_aarch64_sqrdmlah_laneqhi (__a, __b, __c, __d);
12092 __extension__ extern __inline int32_t
12093 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12094 vqrdmlahs_s32 (int32_t __a, int32_t __b, int32_t __c)
12096 return (int32_t) __builtin_aarch64_sqrdmlahsi (__a, __b, __c);
12099 __extension__ extern __inline int32_t
12100 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12101 vqrdmlahs_lane_s32 (int32_t __a, int32_t __b, int32x2_t __c, const int __d)
12103 return __builtin_aarch64_sqrdmlah_lanesi (__a, __b, __c, __d);
12106 __extension__ extern __inline int32_t
12107 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12108 vqrdmlahs_laneq_s32 (int32_t __a, int32_t __b, int32x4_t __c, const int __d)
12110 return __builtin_aarch64_sqrdmlah_laneqsi (__a, __b, __c, __d);
12113 __extension__ extern __inline int16x4_t
12114 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12115 vqrdmlsh_lane_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
12117 return __builtin_aarch64_sqrdmlsh_lanev4hi (__a, __b, __c, __d);
12120 __extension__ extern __inline int32x2_t
12121 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12122 vqrdmlsh_lane_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
12124 return __builtin_aarch64_sqrdmlsh_lanev2si (__a, __b, __c, __d);
12127 __extension__ extern __inline int16x8_t
12128 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12129 vqrdmlshq_lane_s16 (int16x8_t __a, int16x8_t __b, int16x4_t __c, const int __d)
12131 return __builtin_aarch64_sqrdmlsh_lanev8hi (__a, __b, __c, __d);
12134 __extension__ extern __inline int32x4_t
12135 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12136 vqrdmlshq_lane_s32 (int32x4_t __a, int32x4_t __b, int32x2_t __c, const int __d)
12138 return __builtin_aarch64_sqrdmlsh_lanev4si (__a, __b, __c, __d);
12141 __extension__ extern __inline int16_t
12142 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12143 vqrdmlshh_s16 (int16_t __a, int16_t __b, int16_t __c)
12145 return (int16_t) __builtin_aarch64_sqrdmlshhi (__a, __b, __c);
12148 __extension__ extern __inline int16_t
12149 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12150 vqrdmlshh_lane_s16 (int16_t __a, int16_t __b, int16x4_t __c, const int __d)
12152 return __builtin_aarch64_sqrdmlsh_lanehi (__a, __b, __c, __d);
12155 __extension__ extern __inline int16_t
12156 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12157 vqrdmlshh_laneq_s16 (int16_t __a, int16_t __b, int16x8_t __c, const int __d)
12159 return __builtin_aarch64_sqrdmlsh_laneqhi (__a, __b, __c, __d);
12162 __extension__ extern __inline int32_t
12163 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12164 vqrdmlshs_s32 (int32_t __a, int32_t __b, int32_t __c)
12166 return (int32_t) __builtin_aarch64_sqrdmlshsi (__a, __b, __c);
12169 __extension__ extern __inline int32_t
12170 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12171 vqrdmlshs_lane_s32 (int32_t __a, int32_t __b, int32x2_t __c, const int __d)
12173 return __builtin_aarch64_sqrdmlsh_lanesi (__a, __b, __c, __d);
12176 __extension__ extern __inline int32_t
12177 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12178 vqrdmlshs_laneq_s32 (int32_t __a, int32_t __b, int32x4_t __c, const int __d)
12180 return __builtin_aarch64_sqrdmlsh_laneqsi (__a, __b, __c, __d);
12182 #pragma GCC pop_options
12184 #pragma GCC push_options
12185 #pragma GCC target ("+nothing+crypto")
12186 /* vaes */
12188 __extension__ extern __inline uint8x16_t
12189 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12190 vaeseq_u8 (uint8x16_t data, uint8x16_t key)
12192 return __builtin_aarch64_crypto_aesev16qi_uuu (data, key);
12195 __extension__ extern __inline uint8x16_t
12196 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12197 vaesdq_u8 (uint8x16_t data, uint8x16_t key)
12199 return __builtin_aarch64_crypto_aesdv16qi_uuu (data, key);
12202 __extension__ extern __inline uint8x16_t
12203 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12204 vaesmcq_u8 (uint8x16_t data)
12206 return __builtin_aarch64_crypto_aesmcv16qi_uu (data);
12209 __extension__ extern __inline uint8x16_t
12210 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12211 vaesimcq_u8 (uint8x16_t data)
12213 return __builtin_aarch64_crypto_aesimcv16qi_uu (data);
12215 #pragma GCC pop_options
12217 /* vcage */
12219 __extension__ extern __inline uint64x1_t
12220 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12221 vcage_f64 (float64x1_t __a, float64x1_t __b)
12223 return vabs_f64 (__a) >= vabs_f64 (__b);
12226 __extension__ extern __inline uint32_t
12227 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12228 vcages_f32 (float32_t __a, float32_t __b)
12230 return __builtin_fabsf (__a) >= __builtin_fabsf (__b) ? -1 : 0;
12233 __extension__ extern __inline uint32x2_t
12234 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12235 vcage_f32 (float32x2_t __a, float32x2_t __b)
12237 return vabs_f32 (__a) >= vabs_f32 (__b);
12240 __extension__ extern __inline uint32x4_t
12241 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12242 vcageq_f32 (float32x4_t __a, float32x4_t __b)
12244 return vabsq_f32 (__a) >= vabsq_f32 (__b);
12247 __extension__ extern __inline uint64_t
12248 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12249 vcaged_f64 (float64_t __a, float64_t __b)
12251 return __builtin_fabs (__a) >= __builtin_fabs (__b) ? -1 : 0;
12254 __extension__ extern __inline uint64x2_t
12255 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12256 vcageq_f64 (float64x2_t __a, float64x2_t __b)
12258 return vabsq_f64 (__a) >= vabsq_f64 (__b);
12261 /* vcagt */
12263 __extension__ extern __inline uint32_t
12264 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12265 vcagts_f32 (float32_t __a, float32_t __b)
12267 return __builtin_fabsf (__a) > __builtin_fabsf (__b) ? -1 : 0;
12270 __extension__ extern __inline uint32x2_t
12271 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12272 vcagt_f32 (float32x2_t __a, float32x2_t __b)
12274 return vabs_f32 (__a) > vabs_f32 (__b);
12277 __extension__ extern __inline uint64x1_t
12278 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12279 vcagt_f64 (float64x1_t __a, float64x1_t __b)
12281 return vabs_f64 (__a) > vabs_f64 (__b);
12284 __extension__ extern __inline uint32x4_t
12285 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12286 vcagtq_f32 (float32x4_t __a, float32x4_t __b)
12288 return vabsq_f32 (__a) > vabsq_f32 (__b);
12291 __extension__ extern __inline uint64_t
12292 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12293 vcagtd_f64 (float64_t __a, float64_t __b)
12295 return __builtin_fabs (__a) > __builtin_fabs (__b) ? -1 : 0;
12298 __extension__ extern __inline uint64x2_t
12299 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12300 vcagtq_f64 (float64x2_t __a, float64x2_t __b)
12302 return vabsq_f64 (__a) > vabsq_f64 (__b);
12305 /* vcale */
12307 __extension__ extern __inline uint32x2_t
12308 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12309 vcale_f32 (float32x2_t __a, float32x2_t __b)
12311 return vabs_f32 (__a) <= vabs_f32 (__b);
12314 __extension__ extern __inline uint64x1_t
12315 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12316 vcale_f64 (float64x1_t __a, float64x1_t __b)
12318 return vabs_f64 (__a) <= vabs_f64 (__b);
12321 __extension__ extern __inline uint64_t
12322 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12323 vcaled_f64 (float64_t __a, float64_t __b)
12325 return __builtin_fabs (__a) <= __builtin_fabs (__b) ? -1 : 0;
12328 __extension__ extern __inline uint32_t
12329 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12330 vcales_f32 (float32_t __a, float32_t __b)
12332 return __builtin_fabsf (__a) <= __builtin_fabsf (__b) ? -1 : 0;
12335 __extension__ extern __inline uint32x4_t
12336 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12337 vcaleq_f32 (float32x4_t __a, float32x4_t __b)
12339 return vabsq_f32 (__a) <= vabsq_f32 (__b);
12342 __extension__ extern __inline uint64x2_t
12343 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12344 vcaleq_f64 (float64x2_t __a, float64x2_t __b)
12346 return vabsq_f64 (__a) <= vabsq_f64 (__b);
12349 /* vcalt */
12351 __extension__ extern __inline uint32x2_t
12352 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12353 vcalt_f32 (float32x2_t __a, float32x2_t __b)
12355 return vabs_f32 (__a) < vabs_f32 (__b);
12358 __extension__ extern __inline uint64x1_t
12359 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12360 vcalt_f64 (float64x1_t __a, float64x1_t __b)
12362 return vabs_f64 (__a) < vabs_f64 (__b);
12365 __extension__ extern __inline uint64_t
12366 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12367 vcaltd_f64 (float64_t __a, float64_t __b)
12369 return __builtin_fabs (__a) < __builtin_fabs (__b) ? -1 : 0;
12372 __extension__ extern __inline uint32x4_t
12373 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12374 vcaltq_f32 (float32x4_t __a, float32x4_t __b)
12376 return vabsq_f32 (__a) < vabsq_f32 (__b);
12379 __extension__ extern __inline uint64x2_t
12380 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12381 vcaltq_f64 (float64x2_t __a, float64x2_t __b)
12383 return vabsq_f64 (__a) < vabsq_f64 (__b);
12386 __extension__ extern __inline uint32_t
12387 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12388 vcalts_f32 (float32_t __a, float32_t __b)
12390 return __builtin_fabsf (__a) < __builtin_fabsf (__b) ? -1 : 0;
12393 /* vceq - vector. */
12395 __extension__ extern __inline uint32x2_t
12396 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12397 vceq_f32 (float32x2_t __a, float32x2_t __b)
12399 return (uint32x2_t) (__a == __b);
12402 __extension__ extern __inline uint64x1_t
12403 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12404 vceq_f64 (float64x1_t __a, float64x1_t __b)
12406 return (uint64x1_t) (__a == __b);
12409 __extension__ extern __inline uint8x8_t
12410 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12411 vceq_p8 (poly8x8_t __a, poly8x8_t __b)
12413 return (uint8x8_t) (__a == __b);
12416 __extension__ extern __inline uint8x8_t
12417 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12418 vceq_s8 (int8x8_t __a, int8x8_t __b)
12420 return (uint8x8_t) (__a == __b);
12423 __extension__ extern __inline uint16x4_t
12424 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12425 vceq_s16 (int16x4_t __a, int16x4_t __b)
12427 return (uint16x4_t) (__a == __b);
12430 __extension__ extern __inline uint32x2_t
12431 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12432 vceq_s32 (int32x2_t __a, int32x2_t __b)
12434 return (uint32x2_t) (__a == __b);
12437 __extension__ extern __inline uint64x1_t
12438 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12439 vceq_s64 (int64x1_t __a, int64x1_t __b)
12441 return (uint64x1_t) (__a == __b);
12444 __extension__ extern __inline uint8x8_t
12445 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12446 vceq_u8 (uint8x8_t __a, uint8x8_t __b)
12448 return (__a == __b);
12451 __extension__ extern __inline uint16x4_t
12452 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12453 vceq_u16 (uint16x4_t __a, uint16x4_t __b)
12455 return (__a == __b);
12458 __extension__ extern __inline uint32x2_t
12459 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12460 vceq_u32 (uint32x2_t __a, uint32x2_t __b)
12462 return (__a == __b);
12465 __extension__ extern __inline uint64x1_t
12466 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12467 vceq_u64 (uint64x1_t __a, uint64x1_t __b)
12469 return (__a == __b);
12472 __extension__ extern __inline uint32x4_t
12473 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12474 vceqq_f32 (float32x4_t __a, float32x4_t __b)
12476 return (uint32x4_t) (__a == __b);
12479 __extension__ extern __inline uint64x2_t
12480 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12481 vceqq_f64 (float64x2_t __a, float64x2_t __b)
12483 return (uint64x2_t) (__a == __b);
12486 __extension__ extern __inline uint8x16_t
12487 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12488 vceqq_p8 (poly8x16_t __a, poly8x16_t __b)
12490 return (uint8x16_t) (__a == __b);
12493 __extension__ extern __inline uint8x16_t
12494 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12495 vceqq_s8 (int8x16_t __a, int8x16_t __b)
12497 return (uint8x16_t) (__a == __b);
12500 __extension__ extern __inline uint16x8_t
12501 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12502 vceqq_s16 (int16x8_t __a, int16x8_t __b)
12504 return (uint16x8_t) (__a == __b);
12507 __extension__ extern __inline uint32x4_t
12508 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12509 vceqq_s32 (int32x4_t __a, int32x4_t __b)
12511 return (uint32x4_t) (__a == __b);
12514 __extension__ extern __inline uint64x2_t
12515 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12516 vceqq_s64 (int64x2_t __a, int64x2_t __b)
12518 return (uint64x2_t) (__a == __b);
12521 __extension__ extern __inline uint8x16_t
12522 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12523 vceqq_u8 (uint8x16_t __a, uint8x16_t __b)
12525 return (__a == __b);
12528 __extension__ extern __inline uint16x8_t
12529 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12530 vceqq_u16 (uint16x8_t __a, uint16x8_t __b)
12532 return (__a == __b);
12535 __extension__ extern __inline uint32x4_t
12536 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12537 vceqq_u32 (uint32x4_t __a, uint32x4_t __b)
12539 return (__a == __b);
12542 __extension__ extern __inline uint64x2_t
12543 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12544 vceqq_u64 (uint64x2_t __a, uint64x2_t __b)
12546 return (__a == __b);
12549 /* vceq - scalar. */
12551 __extension__ extern __inline uint32_t
12552 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12553 vceqs_f32 (float32_t __a, float32_t __b)
12555 return __a == __b ? -1 : 0;
12558 __extension__ extern __inline uint64_t
12559 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12560 vceqd_s64 (int64_t __a, int64_t __b)
12562 return __a == __b ? -1ll : 0ll;
12565 __extension__ extern __inline uint64_t
12566 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12567 vceqd_u64 (uint64_t __a, uint64_t __b)
12569 return __a == __b ? -1ll : 0ll;
12572 __extension__ extern __inline uint64_t
12573 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12574 vceqd_f64 (float64_t __a, float64_t __b)
12576 return __a == __b ? -1ll : 0ll;
12579 /* vceqz - vector. */
12581 __extension__ extern __inline uint32x2_t
12582 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12583 vceqz_f32 (float32x2_t __a)
12585 return (uint32x2_t) (__a == 0.0f);
12588 __extension__ extern __inline uint64x1_t
12589 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12590 vceqz_f64 (float64x1_t __a)
12592 return (uint64x1_t) (__a == (float64x1_t) {0.0});
12595 __extension__ extern __inline uint8x8_t
12596 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12597 vceqz_p8 (poly8x8_t __a)
12599 return (uint8x8_t) (__a == 0);
12602 __extension__ extern __inline uint8x8_t
12603 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12604 vceqz_s8 (int8x8_t __a)
12606 return (uint8x8_t) (__a == 0);
12609 __extension__ extern __inline uint16x4_t
12610 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12611 vceqz_s16 (int16x4_t __a)
12613 return (uint16x4_t) (__a == 0);
12616 __extension__ extern __inline uint32x2_t
12617 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12618 vceqz_s32 (int32x2_t __a)
12620 return (uint32x2_t) (__a == 0);
12623 __extension__ extern __inline uint64x1_t
12624 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12625 vceqz_s64 (int64x1_t __a)
12627 return (uint64x1_t) (__a == __AARCH64_INT64_C (0));
12630 __extension__ extern __inline uint8x8_t
12631 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12632 vceqz_u8 (uint8x8_t __a)
12634 return (__a == 0);
12637 __extension__ extern __inline uint16x4_t
12638 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12639 vceqz_u16 (uint16x4_t __a)
12641 return (__a == 0);
12644 __extension__ extern __inline uint32x2_t
12645 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12646 vceqz_u32 (uint32x2_t __a)
12648 return (__a == 0);
12651 __extension__ extern __inline uint64x1_t
12652 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12653 vceqz_u64 (uint64x1_t __a)
12655 return (__a == __AARCH64_UINT64_C (0));
12658 __extension__ extern __inline uint32x4_t
12659 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12660 vceqzq_f32 (float32x4_t __a)
12662 return (uint32x4_t) (__a == 0.0f);
12665 __extension__ extern __inline uint64x2_t
12666 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12667 vceqzq_f64 (float64x2_t __a)
12669 return (uint64x2_t) (__a == 0.0f);
12672 __extension__ extern __inline uint8x16_t
12673 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12674 vceqzq_p8 (poly8x16_t __a)
12676 return (uint8x16_t) (__a == 0);
12679 __extension__ extern __inline uint8x16_t
12680 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12681 vceqzq_s8 (int8x16_t __a)
12683 return (uint8x16_t) (__a == 0);
12686 __extension__ extern __inline uint16x8_t
12687 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12688 vceqzq_s16 (int16x8_t __a)
12690 return (uint16x8_t) (__a == 0);
12693 __extension__ extern __inline uint32x4_t
12694 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12695 vceqzq_s32 (int32x4_t __a)
12697 return (uint32x4_t) (__a == 0);
12700 __extension__ extern __inline uint64x2_t
12701 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12702 vceqzq_s64 (int64x2_t __a)
12704 return (uint64x2_t) (__a == __AARCH64_INT64_C (0));
12707 __extension__ extern __inline uint8x16_t
12708 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12709 vceqzq_u8 (uint8x16_t __a)
12711 return (__a == 0);
12714 __extension__ extern __inline uint16x8_t
12715 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12716 vceqzq_u16 (uint16x8_t __a)
12718 return (__a == 0);
12721 __extension__ extern __inline uint32x4_t
12722 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12723 vceqzq_u32 (uint32x4_t __a)
12725 return (__a == 0);
12728 __extension__ extern __inline uint64x2_t
12729 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12730 vceqzq_u64 (uint64x2_t __a)
12732 return (__a == __AARCH64_UINT64_C (0));
12735 /* vceqz - scalar. */
12737 __extension__ extern __inline uint32_t
12738 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12739 vceqzs_f32 (float32_t __a)
12741 return __a == 0.0f ? -1 : 0;
12744 __extension__ extern __inline uint64_t
12745 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12746 vceqzd_s64 (int64_t __a)
12748 return __a == 0 ? -1ll : 0ll;
12751 __extension__ extern __inline uint64_t
12752 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12753 vceqzd_u64 (uint64_t __a)
12755 return __a == 0 ? -1ll : 0ll;
12758 __extension__ extern __inline uint64_t
12759 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12760 vceqzd_f64 (float64_t __a)
12762 return __a == 0.0 ? -1ll : 0ll;
12765 /* vcge - vector. */
12767 __extension__ extern __inline uint32x2_t
12768 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12769 vcge_f32 (float32x2_t __a, float32x2_t __b)
12771 return (uint32x2_t) (__a >= __b);
12774 __extension__ extern __inline uint64x1_t
12775 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12776 vcge_f64 (float64x1_t __a, float64x1_t __b)
12778 return (uint64x1_t) (__a >= __b);
12781 __extension__ extern __inline uint8x8_t
12782 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12783 vcge_s8 (int8x8_t __a, int8x8_t __b)
12785 return (uint8x8_t) (__a >= __b);
12788 __extension__ extern __inline uint16x4_t
12789 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12790 vcge_s16 (int16x4_t __a, int16x4_t __b)
12792 return (uint16x4_t) (__a >= __b);
12795 __extension__ extern __inline uint32x2_t
12796 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12797 vcge_s32 (int32x2_t __a, int32x2_t __b)
12799 return (uint32x2_t) (__a >= __b);
12802 __extension__ extern __inline uint64x1_t
12803 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12804 vcge_s64 (int64x1_t __a, int64x1_t __b)
12806 return (uint64x1_t) (__a >= __b);
12809 __extension__ extern __inline uint8x8_t
12810 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12811 vcge_u8 (uint8x8_t __a, uint8x8_t __b)
12813 return (__a >= __b);
12816 __extension__ extern __inline uint16x4_t
12817 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12818 vcge_u16 (uint16x4_t __a, uint16x4_t __b)
12820 return (__a >= __b);
12823 __extension__ extern __inline uint32x2_t
12824 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12825 vcge_u32 (uint32x2_t __a, uint32x2_t __b)
12827 return (__a >= __b);
12830 __extension__ extern __inline uint64x1_t
12831 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12832 vcge_u64 (uint64x1_t __a, uint64x1_t __b)
12834 return (__a >= __b);
12837 __extension__ extern __inline uint32x4_t
12838 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12839 vcgeq_f32 (float32x4_t __a, float32x4_t __b)
12841 return (uint32x4_t) (__a >= __b);
12844 __extension__ extern __inline uint64x2_t
12845 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12846 vcgeq_f64 (float64x2_t __a, float64x2_t __b)
12848 return (uint64x2_t) (__a >= __b);
12851 __extension__ extern __inline uint8x16_t
12852 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12853 vcgeq_s8 (int8x16_t __a, int8x16_t __b)
12855 return (uint8x16_t) (__a >= __b);
12858 __extension__ extern __inline uint16x8_t
12859 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12860 vcgeq_s16 (int16x8_t __a, int16x8_t __b)
12862 return (uint16x8_t) (__a >= __b);
12865 __extension__ extern __inline uint32x4_t
12866 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12867 vcgeq_s32 (int32x4_t __a, int32x4_t __b)
12869 return (uint32x4_t) (__a >= __b);
12872 __extension__ extern __inline uint64x2_t
12873 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12874 vcgeq_s64 (int64x2_t __a, int64x2_t __b)
12876 return (uint64x2_t) (__a >= __b);
12879 __extension__ extern __inline uint8x16_t
12880 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12881 vcgeq_u8 (uint8x16_t __a, uint8x16_t __b)
12883 return (__a >= __b);
12886 __extension__ extern __inline uint16x8_t
12887 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12888 vcgeq_u16 (uint16x8_t __a, uint16x8_t __b)
12890 return (__a >= __b);
12893 __extension__ extern __inline uint32x4_t
12894 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12895 vcgeq_u32 (uint32x4_t __a, uint32x4_t __b)
12897 return (__a >= __b);
12900 __extension__ extern __inline uint64x2_t
12901 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12902 vcgeq_u64 (uint64x2_t __a, uint64x2_t __b)
12904 return (__a >= __b);
12907 /* vcge - scalar. */
12909 __extension__ extern __inline uint32_t
12910 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12911 vcges_f32 (float32_t __a, float32_t __b)
12913 return __a >= __b ? -1 : 0;
12916 __extension__ extern __inline uint64_t
12917 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12918 vcged_s64 (int64_t __a, int64_t __b)
12920 return __a >= __b ? -1ll : 0ll;
12923 __extension__ extern __inline uint64_t
12924 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12925 vcged_u64 (uint64_t __a, uint64_t __b)
12927 return __a >= __b ? -1ll : 0ll;
12930 __extension__ extern __inline uint64_t
12931 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12932 vcged_f64 (float64_t __a, float64_t __b)
12934 return __a >= __b ? -1ll : 0ll;
12937 /* vcgez - vector. */
12939 __extension__ extern __inline uint32x2_t
12940 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12941 vcgez_f32 (float32x2_t __a)
12943 return (uint32x2_t) (__a >= 0.0f);
12946 __extension__ extern __inline uint64x1_t
12947 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12948 vcgez_f64 (float64x1_t __a)
12950 return (uint64x1_t) (__a[0] >= (float64x1_t) {0.0});
12953 __extension__ extern __inline uint8x8_t
12954 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12955 vcgez_s8 (int8x8_t __a)
12957 return (uint8x8_t) (__a >= 0);
12960 __extension__ extern __inline uint16x4_t
12961 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12962 vcgez_s16 (int16x4_t __a)
12964 return (uint16x4_t) (__a >= 0);
12967 __extension__ extern __inline uint32x2_t
12968 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12969 vcgez_s32 (int32x2_t __a)
12971 return (uint32x2_t) (__a >= 0);
12974 __extension__ extern __inline uint64x1_t
12975 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12976 vcgez_s64 (int64x1_t __a)
12978 return (uint64x1_t) (__a >= __AARCH64_INT64_C (0));
12981 __extension__ extern __inline uint32x4_t
12982 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12983 vcgezq_f32 (float32x4_t __a)
12985 return (uint32x4_t) (__a >= 0.0f);
12988 __extension__ extern __inline uint64x2_t
12989 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12990 vcgezq_f64 (float64x2_t __a)
12992 return (uint64x2_t) (__a >= 0.0);
12995 __extension__ extern __inline uint8x16_t
12996 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12997 vcgezq_s8 (int8x16_t __a)
12999 return (uint8x16_t) (__a >= 0);
13002 __extension__ extern __inline uint16x8_t
13003 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13004 vcgezq_s16 (int16x8_t __a)
13006 return (uint16x8_t) (__a >= 0);
13009 __extension__ extern __inline uint32x4_t
13010 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13011 vcgezq_s32 (int32x4_t __a)
13013 return (uint32x4_t) (__a >= 0);
13016 __extension__ extern __inline uint64x2_t
13017 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13018 vcgezq_s64 (int64x2_t __a)
13020 return (uint64x2_t) (__a >= __AARCH64_INT64_C (0));
13023 /* vcgez - scalar. */
13025 __extension__ extern __inline uint32_t
13026 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13027 vcgezs_f32 (float32_t __a)
13029 return __a >= 0.0f ? -1 : 0;
13032 __extension__ extern __inline uint64_t
13033 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13034 vcgezd_s64 (int64_t __a)
13036 return __a >= 0 ? -1ll : 0ll;
13039 __extension__ extern __inline uint64_t
13040 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13041 vcgezd_f64 (float64_t __a)
13043 return __a >= 0.0 ? -1ll : 0ll;
13046 /* vcgt - vector. */
13048 __extension__ extern __inline uint32x2_t
13049 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13050 vcgt_f32 (float32x2_t __a, float32x2_t __b)
13052 return (uint32x2_t) (__a > __b);
13055 __extension__ extern __inline uint64x1_t
13056 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13057 vcgt_f64 (float64x1_t __a, float64x1_t __b)
13059 return (uint64x1_t) (__a > __b);
13062 __extension__ extern __inline uint8x8_t
13063 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13064 vcgt_s8 (int8x8_t __a, int8x8_t __b)
13066 return (uint8x8_t) (__a > __b);
13069 __extension__ extern __inline uint16x4_t
13070 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13071 vcgt_s16 (int16x4_t __a, int16x4_t __b)
13073 return (uint16x4_t) (__a > __b);
13076 __extension__ extern __inline uint32x2_t
13077 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13078 vcgt_s32 (int32x2_t __a, int32x2_t __b)
13080 return (uint32x2_t) (__a > __b);
13083 __extension__ extern __inline uint64x1_t
13084 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13085 vcgt_s64 (int64x1_t __a, int64x1_t __b)
13087 return (uint64x1_t) (__a > __b);
13090 __extension__ extern __inline uint8x8_t
13091 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13092 vcgt_u8 (uint8x8_t __a, uint8x8_t __b)
13094 return (__a > __b);
13097 __extension__ extern __inline uint16x4_t
13098 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13099 vcgt_u16 (uint16x4_t __a, uint16x4_t __b)
13101 return (__a > __b);
13104 __extension__ extern __inline uint32x2_t
13105 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13106 vcgt_u32 (uint32x2_t __a, uint32x2_t __b)
13108 return (__a > __b);
13111 __extension__ extern __inline uint64x1_t
13112 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13113 vcgt_u64 (uint64x1_t __a, uint64x1_t __b)
13115 return (__a > __b);
13118 __extension__ extern __inline uint32x4_t
13119 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13120 vcgtq_f32 (float32x4_t __a, float32x4_t __b)
13122 return (uint32x4_t) (__a > __b);
13125 __extension__ extern __inline uint64x2_t
13126 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13127 vcgtq_f64 (float64x2_t __a, float64x2_t __b)
13129 return (uint64x2_t) (__a > __b);
13132 __extension__ extern __inline uint8x16_t
13133 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13134 vcgtq_s8 (int8x16_t __a, int8x16_t __b)
13136 return (uint8x16_t) (__a > __b);
13139 __extension__ extern __inline uint16x8_t
13140 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13141 vcgtq_s16 (int16x8_t __a, int16x8_t __b)
13143 return (uint16x8_t) (__a > __b);
13146 __extension__ extern __inline uint32x4_t
13147 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13148 vcgtq_s32 (int32x4_t __a, int32x4_t __b)
13150 return (uint32x4_t) (__a > __b);
13153 __extension__ extern __inline uint64x2_t
13154 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13155 vcgtq_s64 (int64x2_t __a, int64x2_t __b)
13157 return (uint64x2_t) (__a > __b);
13160 __extension__ extern __inline uint8x16_t
13161 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13162 vcgtq_u8 (uint8x16_t __a, uint8x16_t __b)
13164 return (__a > __b);
13167 __extension__ extern __inline uint16x8_t
13168 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13169 vcgtq_u16 (uint16x8_t __a, uint16x8_t __b)
13171 return (__a > __b);
13174 __extension__ extern __inline uint32x4_t
13175 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13176 vcgtq_u32 (uint32x4_t __a, uint32x4_t __b)
13178 return (__a > __b);
13181 __extension__ extern __inline uint64x2_t
13182 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13183 vcgtq_u64 (uint64x2_t __a, uint64x2_t __b)
13185 return (__a > __b);
13188 /* vcgt - scalar. */
13190 __extension__ extern __inline uint32_t
13191 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13192 vcgts_f32 (float32_t __a, float32_t __b)
13194 return __a > __b ? -1 : 0;
13197 __extension__ extern __inline uint64_t
13198 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13199 vcgtd_s64 (int64_t __a, int64_t __b)
13201 return __a > __b ? -1ll : 0ll;
13204 __extension__ extern __inline uint64_t
13205 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13206 vcgtd_u64 (uint64_t __a, uint64_t __b)
13208 return __a > __b ? -1ll : 0ll;
13211 __extension__ extern __inline uint64_t
13212 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13213 vcgtd_f64 (float64_t __a, float64_t __b)
13215 return __a > __b ? -1ll : 0ll;
13218 /* vcgtz - vector. */
13220 __extension__ extern __inline uint32x2_t
13221 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13222 vcgtz_f32 (float32x2_t __a)
13224 return (uint32x2_t) (__a > 0.0f);
13227 __extension__ extern __inline uint64x1_t
13228 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13229 vcgtz_f64 (float64x1_t __a)
13231 return (uint64x1_t) (__a > (float64x1_t) {0.0});
13234 __extension__ extern __inline uint8x8_t
13235 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13236 vcgtz_s8 (int8x8_t __a)
13238 return (uint8x8_t) (__a > 0);
13241 __extension__ extern __inline uint16x4_t
13242 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13243 vcgtz_s16 (int16x4_t __a)
13245 return (uint16x4_t) (__a > 0);
13248 __extension__ extern __inline uint32x2_t
13249 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13250 vcgtz_s32 (int32x2_t __a)
13252 return (uint32x2_t) (__a > 0);
13255 __extension__ extern __inline uint64x1_t
13256 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13257 vcgtz_s64 (int64x1_t __a)
13259 return (uint64x1_t) (__a > __AARCH64_INT64_C (0));
13262 __extension__ extern __inline uint32x4_t
13263 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13264 vcgtzq_f32 (float32x4_t __a)
13266 return (uint32x4_t) (__a > 0.0f);
13269 __extension__ extern __inline uint64x2_t
13270 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13271 vcgtzq_f64 (float64x2_t __a)
13273 return (uint64x2_t) (__a > 0.0);
13276 __extension__ extern __inline uint8x16_t
13277 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13278 vcgtzq_s8 (int8x16_t __a)
13280 return (uint8x16_t) (__a > 0);
13283 __extension__ extern __inline uint16x8_t
13284 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13285 vcgtzq_s16 (int16x8_t __a)
13287 return (uint16x8_t) (__a > 0);
13290 __extension__ extern __inline uint32x4_t
13291 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13292 vcgtzq_s32 (int32x4_t __a)
13294 return (uint32x4_t) (__a > 0);
13297 __extension__ extern __inline uint64x2_t
13298 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13299 vcgtzq_s64 (int64x2_t __a)
13301 return (uint64x2_t) (__a > __AARCH64_INT64_C (0));
13304 /* vcgtz - scalar. */
13306 __extension__ extern __inline uint32_t
13307 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13308 vcgtzs_f32 (float32_t __a)
13310 return __a > 0.0f ? -1 : 0;
13313 __extension__ extern __inline uint64_t
13314 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13315 vcgtzd_s64 (int64_t __a)
13317 return __a > 0 ? -1ll : 0ll;
13320 __extension__ extern __inline uint64_t
13321 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13322 vcgtzd_f64 (float64_t __a)
13324 return __a > 0.0 ? -1ll : 0ll;
13327 /* vcle - vector. */
13329 __extension__ extern __inline uint32x2_t
13330 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13331 vcle_f32 (float32x2_t __a, float32x2_t __b)
13333 return (uint32x2_t) (__a <= __b);
13336 __extension__ extern __inline uint64x1_t
13337 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13338 vcle_f64 (float64x1_t __a, float64x1_t __b)
13340 return (uint64x1_t) (__a <= __b);
13343 __extension__ extern __inline uint8x8_t
13344 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13345 vcle_s8 (int8x8_t __a, int8x8_t __b)
13347 return (uint8x8_t) (__a <= __b);
13350 __extension__ extern __inline uint16x4_t
13351 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13352 vcle_s16 (int16x4_t __a, int16x4_t __b)
13354 return (uint16x4_t) (__a <= __b);
13357 __extension__ extern __inline uint32x2_t
13358 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13359 vcle_s32 (int32x2_t __a, int32x2_t __b)
13361 return (uint32x2_t) (__a <= __b);
13364 __extension__ extern __inline uint64x1_t
13365 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13366 vcle_s64 (int64x1_t __a, int64x1_t __b)
13368 return (uint64x1_t) (__a <= __b);
13371 __extension__ extern __inline uint8x8_t
13372 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13373 vcle_u8 (uint8x8_t __a, uint8x8_t __b)
13375 return (__a <= __b);
13378 __extension__ extern __inline uint16x4_t
13379 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13380 vcle_u16 (uint16x4_t __a, uint16x4_t __b)
13382 return (__a <= __b);
13385 __extension__ extern __inline uint32x2_t
13386 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13387 vcle_u32 (uint32x2_t __a, uint32x2_t __b)
13389 return (__a <= __b);
13392 __extension__ extern __inline uint64x1_t
13393 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13394 vcle_u64 (uint64x1_t __a, uint64x1_t __b)
13396 return (__a <= __b);
13399 __extension__ extern __inline uint32x4_t
13400 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13401 vcleq_f32 (float32x4_t __a, float32x4_t __b)
13403 return (uint32x4_t) (__a <= __b);
13406 __extension__ extern __inline uint64x2_t
13407 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13408 vcleq_f64 (float64x2_t __a, float64x2_t __b)
13410 return (uint64x2_t) (__a <= __b);
13413 __extension__ extern __inline uint8x16_t
13414 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13415 vcleq_s8 (int8x16_t __a, int8x16_t __b)
13417 return (uint8x16_t) (__a <= __b);
13420 __extension__ extern __inline uint16x8_t
13421 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13422 vcleq_s16 (int16x8_t __a, int16x8_t __b)
13424 return (uint16x8_t) (__a <= __b);
13427 __extension__ extern __inline uint32x4_t
13428 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13429 vcleq_s32 (int32x4_t __a, int32x4_t __b)
13431 return (uint32x4_t) (__a <= __b);
13434 __extension__ extern __inline uint64x2_t
13435 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13436 vcleq_s64 (int64x2_t __a, int64x2_t __b)
13438 return (uint64x2_t) (__a <= __b);
13441 __extension__ extern __inline uint8x16_t
13442 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13443 vcleq_u8 (uint8x16_t __a, uint8x16_t __b)
13445 return (__a <= __b);
13448 __extension__ extern __inline uint16x8_t
13449 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13450 vcleq_u16 (uint16x8_t __a, uint16x8_t __b)
13452 return (__a <= __b);
13455 __extension__ extern __inline uint32x4_t
13456 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13457 vcleq_u32 (uint32x4_t __a, uint32x4_t __b)
13459 return (__a <= __b);
13462 __extension__ extern __inline uint64x2_t
13463 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13464 vcleq_u64 (uint64x2_t __a, uint64x2_t __b)
13466 return (__a <= __b);
13469 /* vcle - scalar. */
13471 __extension__ extern __inline uint32_t
13472 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13473 vcles_f32 (float32_t __a, float32_t __b)
13475 return __a <= __b ? -1 : 0;
13478 __extension__ extern __inline uint64_t
13479 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13480 vcled_s64 (int64_t __a, int64_t __b)
13482 return __a <= __b ? -1ll : 0ll;
13485 __extension__ extern __inline uint64_t
13486 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13487 vcled_u64 (uint64_t __a, uint64_t __b)
13489 return __a <= __b ? -1ll : 0ll;
13492 __extension__ extern __inline uint64_t
13493 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13494 vcled_f64 (float64_t __a, float64_t __b)
13496 return __a <= __b ? -1ll : 0ll;
13499 /* vclez - vector. */
13501 __extension__ extern __inline uint32x2_t
13502 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13503 vclez_f32 (float32x2_t __a)
13505 return (uint32x2_t) (__a <= 0.0f);
13508 __extension__ extern __inline uint64x1_t
13509 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13510 vclez_f64 (float64x1_t __a)
13512 return (uint64x1_t) (__a <= (float64x1_t) {0.0});
13515 __extension__ extern __inline uint8x8_t
13516 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13517 vclez_s8 (int8x8_t __a)
13519 return (uint8x8_t) (__a <= 0);
13522 __extension__ extern __inline uint16x4_t
13523 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13524 vclez_s16 (int16x4_t __a)
13526 return (uint16x4_t) (__a <= 0);
13529 __extension__ extern __inline uint32x2_t
13530 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13531 vclez_s32 (int32x2_t __a)
13533 return (uint32x2_t) (__a <= 0);
13536 __extension__ extern __inline uint64x1_t
13537 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13538 vclez_s64 (int64x1_t __a)
13540 return (uint64x1_t) (__a <= __AARCH64_INT64_C (0));
13543 __extension__ extern __inline uint32x4_t
13544 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13545 vclezq_f32 (float32x4_t __a)
13547 return (uint32x4_t) (__a <= 0.0f);
13550 __extension__ extern __inline uint64x2_t
13551 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13552 vclezq_f64 (float64x2_t __a)
13554 return (uint64x2_t) (__a <= 0.0);
13557 __extension__ extern __inline uint8x16_t
13558 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13559 vclezq_s8 (int8x16_t __a)
13561 return (uint8x16_t) (__a <= 0);
13564 __extension__ extern __inline uint16x8_t
13565 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13566 vclezq_s16 (int16x8_t __a)
13568 return (uint16x8_t) (__a <= 0);
13571 __extension__ extern __inline uint32x4_t
13572 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13573 vclezq_s32 (int32x4_t __a)
13575 return (uint32x4_t) (__a <= 0);
13578 __extension__ extern __inline uint64x2_t
13579 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13580 vclezq_s64 (int64x2_t __a)
13582 return (uint64x2_t) (__a <= __AARCH64_INT64_C (0));
13585 /* vclez - scalar. */
13587 __extension__ extern __inline uint32_t
13588 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13589 vclezs_f32 (float32_t __a)
13591 return __a <= 0.0f ? -1 : 0;
13594 __extension__ extern __inline uint64_t
13595 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13596 vclezd_s64 (int64_t __a)
13598 return __a <= 0 ? -1ll : 0ll;
13601 __extension__ extern __inline uint64_t
13602 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13603 vclezd_f64 (float64_t __a)
13605 return __a <= 0.0 ? -1ll : 0ll;
13608 /* vclt - vector. */
13610 __extension__ extern __inline uint32x2_t
13611 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13612 vclt_f32 (float32x2_t __a, float32x2_t __b)
13614 return (uint32x2_t) (__a < __b);
13617 __extension__ extern __inline uint64x1_t
13618 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13619 vclt_f64 (float64x1_t __a, float64x1_t __b)
13621 return (uint64x1_t) (__a < __b);
13624 __extension__ extern __inline uint8x8_t
13625 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13626 vclt_s8 (int8x8_t __a, int8x8_t __b)
13628 return (uint8x8_t) (__a < __b);
13631 __extension__ extern __inline uint16x4_t
13632 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13633 vclt_s16 (int16x4_t __a, int16x4_t __b)
13635 return (uint16x4_t) (__a < __b);
13638 __extension__ extern __inline uint32x2_t
13639 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13640 vclt_s32 (int32x2_t __a, int32x2_t __b)
13642 return (uint32x2_t) (__a < __b);
13645 __extension__ extern __inline uint64x1_t
13646 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13647 vclt_s64 (int64x1_t __a, int64x1_t __b)
13649 return (uint64x1_t) (__a < __b);
13652 __extension__ extern __inline uint8x8_t
13653 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13654 vclt_u8 (uint8x8_t __a, uint8x8_t __b)
13656 return (__a < __b);
13659 __extension__ extern __inline uint16x4_t
13660 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13661 vclt_u16 (uint16x4_t __a, uint16x4_t __b)
13663 return (__a < __b);
13666 __extension__ extern __inline uint32x2_t
13667 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13668 vclt_u32 (uint32x2_t __a, uint32x2_t __b)
13670 return (__a < __b);
13673 __extension__ extern __inline uint64x1_t
13674 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13675 vclt_u64 (uint64x1_t __a, uint64x1_t __b)
13677 return (__a < __b);
13680 __extension__ extern __inline uint32x4_t
13681 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13682 vcltq_f32 (float32x4_t __a, float32x4_t __b)
13684 return (uint32x4_t) (__a < __b);
13687 __extension__ extern __inline uint64x2_t
13688 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13689 vcltq_f64 (float64x2_t __a, float64x2_t __b)
13691 return (uint64x2_t) (__a < __b);
13694 __extension__ extern __inline uint8x16_t
13695 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13696 vcltq_s8 (int8x16_t __a, int8x16_t __b)
13698 return (uint8x16_t) (__a < __b);
13701 __extension__ extern __inline uint16x8_t
13702 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13703 vcltq_s16 (int16x8_t __a, int16x8_t __b)
13705 return (uint16x8_t) (__a < __b);
13708 __extension__ extern __inline uint32x4_t
13709 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13710 vcltq_s32 (int32x4_t __a, int32x4_t __b)
13712 return (uint32x4_t) (__a < __b);
13715 __extension__ extern __inline uint64x2_t
13716 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13717 vcltq_s64 (int64x2_t __a, int64x2_t __b)
13719 return (uint64x2_t) (__a < __b);
13722 __extension__ extern __inline uint8x16_t
13723 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13724 vcltq_u8 (uint8x16_t __a, uint8x16_t __b)
13726 return (__a < __b);
13729 __extension__ extern __inline uint16x8_t
13730 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13731 vcltq_u16 (uint16x8_t __a, uint16x8_t __b)
13733 return (__a < __b);
13736 __extension__ extern __inline uint32x4_t
13737 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13738 vcltq_u32 (uint32x4_t __a, uint32x4_t __b)
13740 return (__a < __b);
13743 __extension__ extern __inline uint64x2_t
13744 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13745 vcltq_u64 (uint64x2_t __a, uint64x2_t __b)
13747 return (__a < __b);
13750 /* vclt - scalar. */
13752 __extension__ extern __inline uint32_t
13753 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13754 vclts_f32 (float32_t __a, float32_t __b)
13756 return __a < __b ? -1 : 0;
13759 __extension__ extern __inline uint64_t
13760 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13761 vcltd_s64 (int64_t __a, int64_t __b)
13763 return __a < __b ? -1ll : 0ll;
13766 __extension__ extern __inline uint64_t
13767 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13768 vcltd_u64 (uint64_t __a, uint64_t __b)
13770 return __a < __b ? -1ll : 0ll;
13773 __extension__ extern __inline uint64_t
13774 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13775 vcltd_f64 (float64_t __a, float64_t __b)
13777 return __a < __b ? -1ll : 0ll;
13780 /* vcltz - vector. */
13782 __extension__ extern __inline uint32x2_t
13783 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13784 vcltz_f32 (float32x2_t __a)
13786 return (uint32x2_t) (__a < 0.0f);
13789 __extension__ extern __inline uint64x1_t
13790 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13791 vcltz_f64 (float64x1_t __a)
13793 return (uint64x1_t) (__a < (float64x1_t) {0.0});
13796 __extension__ extern __inline uint8x8_t
13797 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13798 vcltz_s8 (int8x8_t __a)
13800 return (uint8x8_t) (__a < 0);
13803 __extension__ extern __inline uint16x4_t
13804 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13805 vcltz_s16 (int16x4_t __a)
13807 return (uint16x4_t) (__a < 0);
13810 __extension__ extern __inline uint32x2_t
13811 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13812 vcltz_s32 (int32x2_t __a)
13814 return (uint32x2_t) (__a < 0);
13817 __extension__ extern __inline uint64x1_t
13818 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13819 vcltz_s64 (int64x1_t __a)
13821 return (uint64x1_t) (__a < __AARCH64_INT64_C (0));
13824 __extension__ extern __inline uint32x4_t
13825 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13826 vcltzq_f32 (float32x4_t __a)
13828 return (uint32x4_t) (__a < 0.0f);
13831 __extension__ extern __inline uint64x2_t
13832 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13833 vcltzq_f64 (float64x2_t __a)
13835 return (uint64x2_t) (__a < 0.0);
13838 __extension__ extern __inline uint8x16_t
13839 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13840 vcltzq_s8 (int8x16_t __a)
13842 return (uint8x16_t) (__a < 0);
13845 __extension__ extern __inline uint16x8_t
13846 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13847 vcltzq_s16 (int16x8_t __a)
13849 return (uint16x8_t) (__a < 0);
13852 __extension__ extern __inline uint32x4_t
13853 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13854 vcltzq_s32 (int32x4_t __a)
13856 return (uint32x4_t) (__a < 0);
13859 __extension__ extern __inline uint64x2_t
13860 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13861 vcltzq_s64 (int64x2_t __a)
13863 return (uint64x2_t) (__a < __AARCH64_INT64_C (0));
13866 /* vcltz - scalar. */
13868 __extension__ extern __inline uint32_t
13869 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13870 vcltzs_f32 (float32_t __a)
13872 return __a < 0.0f ? -1 : 0;
13875 __extension__ extern __inline uint64_t
13876 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13877 vcltzd_s64 (int64_t __a)
13879 return __a < 0 ? -1ll : 0ll;
13882 __extension__ extern __inline uint64_t
13883 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13884 vcltzd_f64 (float64_t __a)
13886 return __a < 0.0 ? -1ll : 0ll;
13889 /* vcls. */
13891 __extension__ extern __inline int8x8_t
13892 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13893 vcls_s8 (int8x8_t __a)
13895 return __builtin_aarch64_clrsbv8qi (__a);
13898 __extension__ extern __inline int16x4_t
13899 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13900 vcls_s16 (int16x4_t __a)
13902 return __builtin_aarch64_clrsbv4hi (__a);
13905 __extension__ extern __inline int32x2_t
13906 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13907 vcls_s32 (int32x2_t __a)
13909 return __builtin_aarch64_clrsbv2si (__a);
13912 __extension__ extern __inline int8x16_t
13913 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13914 vclsq_s8 (int8x16_t __a)
13916 return __builtin_aarch64_clrsbv16qi (__a);
13919 __extension__ extern __inline int16x8_t
13920 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13921 vclsq_s16 (int16x8_t __a)
13923 return __builtin_aarch64_clrsbv8hi (__a);
13926 __extension__ extern __inline int32x4_t
13927 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13928 vclsq_s32 (int32x4_t __a)
13930 return __builtin_aarch64_clrsbv4si (__a);
13933 /* vclz. */
13935 __extension__ extern __inline int8x8_t
13936 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13937 vclz_s8 (int8x8_t __a)
13939 return __builtin_aarch64_clzv8qi (__a);
13942 __extension__ extern __inline int16x4_t
13943 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13944 vclz_s16 (int16x4_t __a)
13946 return __builtin_aarch64_clzv4hi (__a);
13949 __extension__ extern __inline int32x2_t
13950 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13951 vclz_s32 (int32x2_t __a)
13953 return __builtin_aarch64_clzv2si (__a);
13956 __extension__ extern __inline uint8x8_t
13957 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13958 vclz_u8 (uint8x8_t __a)
13960 return (uint8x8_t)__builtin_aarch64_clzv8qi ((int8x8_t)__a);
13963 __extension__ extern __inline uint16x4_t
13964 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13965 vclz_u16 (uint16x4_t __a)
13967 return (uint16x4_t)__builtin_aarch64_clzv4hi ((int16x4_t)__a);
13970 __extension__ extern __inline uint32x2_t
13971 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13972 vclz_u32 (uint32x2_t __a)
13974 return (uint32x2_t)__builtin_aarch64_clzv2si ((int32x2_t)__a);
13977 __extension__ extern __inline int8x16_t
13978 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13979 vclzq_s8 (int8x16_t __a)
13981 return __builtin_aarch64_clzv16qi (__a);
13984 __extension__ extern __inline int16x8_t
13985 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13986 vclzq_s16 (int16x8_t __a)
13988 return __builtin_aarch64_clzv8hi (__a);
13991 __extension__ extern __inline int32x4_t
13992 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13993 vclzq_s32 (int32x4_t __a)
13995 return __builtin_aarch64_clzv4si (__a);
13998 __extension__ extern __inline uint8x16_t
13999 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14000 vclzq_u8 (uint8x16_t __a)
14002 return (uint8x16_t)__builtin_aarch64_clzv16qi ((int8x16_t)__a);
14005 __extension__ extern __inline uint16x8_t
14006 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14007 vclzq_u16 (uint16x8_t __a)
14009 return (uint16x8_t)__builtin_aarch64_clzv8hi ((int16x8_t)__a);
14012 __extension__ extern __inline uint32x4_t
14013 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14014 vclzq_u32 (uint32x4_t __a)
14016 return (uint32x4_t)__builtin_aarch64_clzv4si ((int32x4_t)__a);
14019 /* vcnt. */
14021 __extension__ extern __inline poly8x8_t
14022 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14023 vcnt_p8 (poly8x8_t __a)
14025 return (poly8x8_t) __builtin_aarch64_popcountv8qi ((int8x8_t) __a);
14028 __extension__ extern __inline int8x8_t
14029 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14030 vcnt_s8 (int8x8_t __a)
14032 return __builtin_aarch64_popcountv8qi (__a);
14035 __extension__ extern __inline uint8x8_t
14036 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14037 vcnt_u8 (uint8x8_t __a)
14039 return (uint8x8_t) __builtin_aarch64_popcountv8qi ((int8x8_t) __a);
14042 __extension__ extern __inline poly8x16_t
14043 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14044 vcntq_p8 (poly8x16_t __a)
14046 return (poly8x16_t) __builtin_aarch64_popcountv16qi ((int8x16_t) __a);
14049 __extension__ extern __inline int8x16_t
14050 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14051 vcntq_s8 (int8x16_t __a)
14053 return __builtin_aarch64_popcountv16qi (__a);
14056 __extension__ extern __inline uint8x16_t
14057 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14058 vcntq_u8 (uint8x16_t __a)
14060 return (uint8x16_t) __builtin_aarch64_popcountv16qi ((int8x16_t) __a);
14063 /* vcopy_lane. */
14065 __extension__ extern __inline float32x2_t
14066 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14067 vcopy_lane_f32 (float32x2_t __a, const int __lane1,
14068 float32x2_t __b, const int __lane2)
14070 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14071 __a, __lane1);
14074 __extension__ extern __inline float64x1_t
14075 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14076 vcopy_lane_f64 (float64x1_t __a, const int __lane1,
14077 float64x1_t __b, const int __lane2)
14079 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14080 __a, __lane1);
14083 __extension__ extern __inline poly8x8_t
14084 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14085 vcopy_lane_p8 (poly8x8_t __a, const int __lane1,
14086 poly8x8_t __b, const int __lane2)
14088 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14089 __a, __lane1);
14092 __extension__ extern __inline poly16x4_t
14093 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14094 vcopy_lane_p16 (poly16x4_t __a, const int __lane1,
14095 poly16x4_t __b, const int __lane2)
14097 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14098 __a, __lane1);
14101 __extension__ extern __inline poly64x1_t
14102 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14103 vcopy_lane_p64 (poly64x1_t __a, const int __lane1,
14104 poly64x1_t __b, const int __lane2)
14106 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14107 __a, __lane1);
14110 __extension__ extern __inline int8x8_t
14111 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14112 vcopy_lane_s8 (int8x8_t __a, const int __lane1,
14113 int8x8_t __b, const int __lane2)
14115 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14116 __a, __lane1);
14119 __extension__ extern __inline int16x4_t
14120 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14121 vcopy_lane_s16 (int16x4_t __a, const int __lane1,
14122 int16x4_t __b, const int __lane2)
14124 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14125 __a, __lane1);
14128 __extension__ extern __inline int32x2_t
14129 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14130 vcopy_lane_s32 (int32x2_t __a, const int __lane1,
14131 int32x2_t __b, const int __lane2)
14133 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14134 __a, __lane1);
14137 __extension__ extern __inline int64x1_t
14138 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14139 vcopy_lane_s64 (int64x1_t __a, const int __lane1,
14140 int64x1_t __b, const int __lane2)
14142 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14143 __a, __lane1);
14146 __extension__ extern __inline uint8x8_t
14147 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14148 vcopy_lane_u8 (uint8x8_t __a, const int __lane1,
14149 uint8x8_t __b, const int __lane2)
14151 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14152 __a, __lane1);
14155 __extension__ extern __inline uint16x4_t
14156 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14157 vcopy_lane_u16 (uint16x4_t __a, const int __lane1,
14158 uint16x4_t __b, const int __lane2)
14160 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14161 __a, __lane1);
14164 __extension__ extern __inline uint32x2_t
14165 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14166 vcopy_lane_u32 (uint32x2_t __a, const int __lane1,
14167 uint32x2_t __b, const int __lane2)
14169 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14170 __a, __lane1);
14173 __extension__ extern __inline uint64x1_t
14174 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14175 vcopy_lane_u64 (uint64x1_t __a, const int __lane1,
14176 uint64x1_t __b, const int __lane2)
14178 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14179 __a, __lane1);
14182 /* vcopy_laneq. */
14184 __extension__ extern __inline float32x2_t
14185 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14186 vcopy_laneq_f32 (float32x2_t __a, const int __lane1,
14187 float32x4_t __b, const int __lane2)
14189 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14190 __a, __lane1);
14193 __extension__ extern __inline float64x1_t
14194 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14195 vcopy_laneq_f64 (float64x1_t __a, const int __lane1,
14196 float64x2_t __b, const int __lane2)
14198 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14199 __a, __lane1);
14202 __extension__ extern __inline poly8x8_t
14203 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14204 vcopy_laneq_p8 (poly8x8_t __a, const int __lane1,
14205 poly8x16_t __b, const int __lane2)
14207 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14208 __a, __lane1);
14211 __extension__ extern __inline poly16x4_t
14212 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14213 vcopy_laneq_p16 (poly16x4_t __a, const int __lane1,
14214 poly16x8_t __b, const int __lane2)
14216 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14217 __a, __lane1);
14220 __extension__ extern __inline poly64x1_t
14221 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14222 vcopy_laneq_p64 (poly64x1_t __a, const int __lane1,
14223 poly64x2_t __b, const int __lane2)
14225 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14226 __a, __lane1);
14229 __extension__ extern __inline int8x8_t
14230 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14231 vcopy_laneq_s8 (int8x8_t __a, const int __lane1,
14232 int8x16_t __b, const int __lane2)
14234 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14235 __a, __lane1);
14238 __extension__ extern __inline int16x4_t
14239 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14240 vcopy_laneq_s16 (int16x4_t __a, const int __lane1,
14241 int16x8_t __b, const int __lane2)
14243 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14244 __a, __lane1);
14247 __extension__ extern __inline int32x2_t
14248 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14249 vcopy_laneq_s32 (int32x2_t __a, const int __lane1,
14250 int32x4_t __b, const int __lane2)
14252 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14253 __a, __lane1);
14256 __extension__ extern __inline int64x1_t
14257 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14258 vcopy_laneq_s64 (int64x1_t __a, const int __lane1,
14259 int64x2_t __b, const int __lane2)
14261 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14262 __a, __lane1);
14265 __extension__ extern __inline uint8x8_t
14266 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14267 vcopy_laneq_u8 (uint8x8_t __a, const int __lane1,
14268 uint8x16_t __b, const int __lane2)
14270 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14271 __a, __lane1);
14274 __extension__ extern __inline uint16x4_t
14275 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14276 vcopy_laneq_u16 (uint16x4_t __a, const int __lane1,
14277 uint16x8_t __b, const int __lane2)
14279 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14280 __a, __lane1);
14283 __extension__ extern __inline uint32x2_t
14284 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14285 vcopy_laneq_u32 (uint32x2_t __a, const int __lane1,
14286 uint32x4_t __b, const int __lane2)
14288 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14289 __a, __lane1);
14292 __extension__ extern __inline uint64x1_t
14293 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14294 vcopy_laneq_u64 (uint64x1_t __a, const int __lane1,
14295 uint64x2_t __b, const int __lane2)
14297 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14298 __a, __lane1);
14301 /* vcopyq_lane. */
14303 __extension__ extern __inline float32x4_t
14304 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14305 vcopyq_lane_f32 (float32x4_t __a, const int __lane1,
14306 float32x2_t __b, const int __lane2)
14308 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14309 __a, __lane1);
14312 __extension__ extern __inline float64x2_t
14313 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14314 vcopyq_lane_f64 (float64x2_t __a, const int __lane1,
14315 float64x1_t __b, const int __lane2)
14317 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14318 __a, __lane1);
14321 __extension__ extern __inline poly8x16_t
14322 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14323 vcopyq_lane_p8 (poly8x16_t __a, const int __lane1,
14324 poly8x8_t __b, const int __lane2)
14326 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14327 __a, __lane1);
14330 __extension__ extern __inline poly16x8_t
14331 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14332 vcopyq_lane_p16 (poly16x8_t __a, const int __lane1,
14333 poly16x4_t __b, const int __lane2)
14335 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14336 __a, __lane1);
14339 __extension__ extern __inline poly64x2_t
14340 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14341 vcopyq_lane_p64 (poly64x2_t __a, const int __lane1,
14342 poly64x1_t __b, const int __lane2)
14344 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14345 __a, __lane1);
14348 __extension__ extern __inline int8x16_t
14349 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14350 vcopyq_lane_s8 (int8x16_t __a, const int __lane1,
14351 int8x8_t __b, const int __lane2)
14353 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14354 __a, __lane1);
14357 __extension__ extern __inline int16x8_t
14358 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14359 vcopyq_lane_s16 (int16x8_t __a, const int __lane1,
14360 int16x4_t __b, const int __lane2)
14362 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14363 __a, __lane1);
14366 __extension__ extern __inline int32x4_t
14367 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14368 vcopyq_lane_s32 (int32x4_t __a, const int __lane1,
14369 int32x2_t __b, const int __lane2)
14371 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14372 __a, __lane1);
14375 __extension__ extern __inline int64x2_t
14376 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14377 vcopyq_lane_s64 (int64x2_t __a, const int __lane1,
14378 int64x1_t __b, const int __lane2)
14380 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14381 __a, __lane1);
14384 __extension__ extern __inline uint8x16_t
14385 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14386 vcopyq_lane_u8 (uint8x16_t __a, const int __lane1,
14387 uint8x8_t __b, const int __lane2)
14389 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14390 __a, __lane1);
14393 __extension__ extern __inline uint16x8_t
14394 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14395 vcopyq_lane_u16 (uint16x8_t __a, const int __lane1,
14396 uint16x4_t __b, const int __lane2)
14398 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14399 __a, __lane1);
14402 __extension__ extern __inline uint32x4_t
14403 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14404 vcopyq_lane_u32 (uint32x4_t __a, const int __lane1,
14405 uint32x2_t __b, const int __lane2)
14407 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14408 __a, __lane1);
14411 __extension__ extern __inline uint64x2_t
14412 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14413 vcopyq_lane_u64 (uint64x2_t __a, const int __lane1,
14414 uint64x1_t __b, const int __lane2)
14416 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14417 __a, __lane1);
14420 /* vcopyq_laneq. */
14422 __extension__ extern __inline float32x4_t
14423 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14424 vcopyq_laneq_f32 (float32x4_t __a, const int __lane1,
14425 float32x4_t __b, const int __lane2)
14427 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14428 __a, __lane1);
14431 __extension__ extern __inline float64x2_t
14432 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14433 vcopyq_laneq_f64 (float64x2_t __a, const int __lane1,
14434 float64x2_t __b, const int __lane2)
14436 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14437 __a, __lane1);
14440 __extension__ extern __inline poly8x16_t
14441 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14442 vcopyq_laneq_p8 (poly8x16_t __a, const int __lane1,
14443 poly8x16_t __b, const int __lane2)
14445 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14446 __a, __lane1);
14449 __extension__ extern __inline poly16x8_t
14450 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14451 vcopyq_laneq_p16 (poly16x8_t __a, const int __lane1,
14452 poly16x8_t __b, const int __lane2)
14454 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14455 __a, __lane1);
14458 __extension__ extern __inline poly64x2_t
14459 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14460 vcopyq_laneq_p64 (poly64x2_t __a, const int __lane1,
14461 poly64x2_t __b, const int __lane2)
14463 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14464 __a, __lane1);
14467 __extension__ extern __inline int8x16_t
14468 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14469 vcopyq_laneq_s8 (int8x16_t __a, const int __lane1,
14470 int8x16_t __b, const int __lane2)
14472 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14473 __a, __lane1);
14476 __extension__ extern __inline int16x8_t
14477 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14478 vcopyq_laneq_s16 (int16x8_t __a, const int __lane1,
14479 int16x8_t __b, const int __lane2)
14481 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14482 __a, __lane1);
14485 __extension__ extern __inline int32x4_t
14486 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14487 vcopyq_laneq_s32 (int32x4_t __a, const int __lane1,
14488 int32x4_t __b, const int __lane2)
14490 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14491 __a, __lane1);
14494 __extension__ extern __inline int64x2_t
14495 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14496 vcopyq_laneq_s64 (int64x2_t __a, const int __lane1,
14497 int64x2_t __b, const int __lane2)
14499 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14500 __a, __lane1);
14503 __extension__ extern __inline uint8x16_t
14504 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14505 vcopyq_laneq_u8 (uint8x16_t __a, const int __lane1,
14506 uint8x16_t __b, const int __lane2)
14508 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14509 __a, __lane1);
14512 __extension__ extern __inline uint16x8_t
14513 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14514 vcopyq_laneq_u16 (uint16x8_t __a, const int __lane1,
14515 uint16x8_t __b, const int __lane2)
14517 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14518 __a, __lane1);
14521 __extension__ extern __inline uint32x4_t
14522 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14523 vcopyq_laneq_u32 (uint32x4_t __a, const int __lane1,
14524 uint32x4_t __b, const int __lane2)
14526 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14527 __a, __lane1);
14530 __extension__ extern __inline uint64x2_t
14531 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14532 vcopyq_laneq_u64 (uint64x2_t __a, const int __lane1,
14533 uint64x2_t __b, const int __lane2)
14535 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14536 __a, __lane1);
14539 /* vcvt (double -> float). */
14541 __extension__ extern __inline float16x4_t
14542 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14543 vcvt_f16_f32 (float32x4_t __a)
14545 return __builtin_aarch64_float_truncate_lo_v4hf (__a);
14548 __extension__ extern __inline float16x8_t
14549 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14550 vcvt_high_f16_f32 (float16x4_t __a, float32x4_t __b)
14552 return __builtin_aarch64_float_truncate_hi_v8hf (__a, __b);
14555 __extension__ extern __inline float32x2_t
14556 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14557 vcvt_f32_f64 (float64x2_t __a)
14559 return __builtin_aarch64_float_truncate_lo_v2sf (__a);
14562 __extension__ extern __inline float32x4_t
14563 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14564 vcvt_high_f32_f64 (float32x2_t __a, float64x2_t __b)
14566 return __builtin_aarch64_float_truncate_hi_v4sf (__a, __b);
14569 /* vcvt (float -> double). */
14571 __extension__ extern __inline float32x4_t
14572 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14573 vcvt_f32_f16 (float16x4_t __a)
14575 return __builtin_aarch64_float_extend_lo_v4sf (__a);
14578 __extension__ extern __inline float64x2_t
14579 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14580 vcvt_f64_f32 (float32x2_t __a)
14583 return __builtin_aarch64_float_extend_lo_v2df (__a);
14586 __extension__ extern __inline float32x4_t
14587 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14588 vcvt_high_f32_f16 (float16x8_t __a)
14590 return __builtin_aarch64_vec_unpacks_hi_v8hf (__a);
14593 __extension__ extern __inline float64x2_t
14594 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14595 vcvt_high_f64_f32 (float32x4_t __a)
14597 return __builtin_aarch64_vec_unpacks_hi_v4sf (__a);
14600 /* vcvt (<u>fixed-point -> float). */
14602 __extension__ extern __inline float64_t
14603 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14604 vcvtd_n_f64_s64 (int64_t __a, const int __b)
14606 return __builtin_aarch64_scvtfdi (__a, __b);
14609 __extension__ extern __inline float64_t
14610 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14611 vcvtd_n_f64_u64 (uint64_t __a, const int __b)
14613 return __builtin_aarch64_ucvtfdi_sus (__a, __b);
14616 __extension__ extern __inline float32_t
14617 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14618 vcvts_n_f32_s32 (int32_t __a, const int __b)
14620 return __builtin_aarch64_scvtfsi (__a, __b);
14623 __extension__ extern __inline float32_t
14624 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14625 vcvts_n_f32_u32 (uint32_t __a, const int __b)
14627 return __builtin_aarch64_ucvtfsi_sus (__a, __b);
14630 __extension__ extern __inline float32x2_t
14631 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14632 vcvt_n_f32_s32 (int32x2_t __a, const int __b)
14634 return __builtin_aarch64_scvtfv2si (__a, __b);
14637 __extension__ extern __inline float32x2_t
14638 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14639 vcvt_n_f32_u32 (uint32x2_t __a, const int __b)
14641 return __builtin_aarch64_ucvtfv2si_sus (__a, __b);
14644 __extension__ extern __inline float64x1_t
14645 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14646 vcvt_n_f64_s64 (int64x1_t __a, const int __b)
14648 return (float64x1_t)
14649 { __builtin_aarch64_scvtfdi (vget_lane_s64 (__a, 0), __b) };
14652 __extension__ extern __inline float64x1_t
14653 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14654 vcvt_n_f64_u64 (uint64x1_t __a, const int __b)
14656 return (float64x1_t)
14657 { __builtin_aarch64_ucvtfdi_sus (vget_lane_u64 (__a, 0), __b) };
14660 __extension__ extern __inline float32x4_t
14661 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14662 vcvtq_n_f32_s32 (int32x4_t __a, const int __b)
14664 return __builtin_aarch64_scvtfv4si (__a, __b);
14667 __extension__ extern __inline float32x4_t
14668 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14669 vcvtq_n_f32_u32 (uint32x4_t __a, const int __b)
14671 return __builtin_aarch64_ucvtfv4si_sus (__a, __b);
14674 __extension__ extern __inline float64x2_t
14675 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14676 vcvtq_n_f64_s64 (int64x2_t __a, const int __b)
14678 return __builtin_aarch64_scvtfv2di (__a, __b);
14681 __extension__ extern __inline float64x2_t
14682 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14683 vcvtq_n_f64_u64 (uint64x2_t __a, const int __b)
14685 return __builtin_aarch64_ucvtfv2di_sus (__a, __b);
14688 /* vcvt (float -> <u>fixed-point). */
14690 __extension__ extern __inline int64_t
14691 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14692 vcvtd_n_s64_f64 (float64_t __a, const int __b)
14694 return __builtin_aarch64_fcvtzsdf (__a, __b);
14697 __extension__ extern __inline uint64_t
14698 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14699 vcvtd_n_u64_f64 (float64_t __a, const int __b)
14701 return __builtin_aarch64_fcvtzudf_uss (__a, __b);
14704 __extension__ extern __inline int32_t
14705 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14706 vcvts_n_s32_f32 (float32_t __a, const int __b)
14708 return __builtin_aarch64_fcvtzssf (__a, __b);
14711 __extension__ extern __inline uint32_t
14712 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14713 vcvts_n_u32_f32 (float32_t __a, const int __b)
14715 return __builtin_aarch64_fcvtzusf_uss (__a, __b);
14718 __extension__ extern __inline int32x2_t
14719 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14720 vcvt_n_s32_f32 (float32x2_t __a, const int __b)
14722 return __builtin_aarch64_fcvtzsv2sf (__a, __b);
14725 __extension__ extern __inline uint32x2_t
14726 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14727 vcvt_n_u32_f32 (float32x2_t __a, const int __b)
14729 return __builtin_aarch64_fcvtzuv2sf_uss (__a, __b);
14732 __extension__ extern __inline int64x1_t
14733 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14734 vcvt_n_s64_f64 (float64x1_t __a, const int __b)
14736 return (int64x1_t)
14737 { __builtin_aarch64_fcvtzsdf (vget_lane_f64 (__a, 0), __b) };
14740 __extension__ extern __inline uint64x1_t
14741 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14742 vcvt_n_u64_f64 (float64x1_t __a, const int __b)
14744 return (uint64x1_t)
14745 { __builtin_aarch64_fcvtzudf_uss (vget_lane_f64 (__a, 0), __b) };
14748 __extension__ extern __inline int32x4_t
14749 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14750 vcvtq_n_s32_f32 (float32x4_t __a, const int __b)
14752 return __builtin_aarch64_fcvtzsv4sf (__a, __b);
14755 __extension__ extern __inline uint32x4_t
14756 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14757 vcvtq_n_u32_f32 (float32x4_t __a, const int __b)
14759 return __builtin_aarch64_fcvtzuv4sf_uss (__a, __b);
14762 __extension__ extern __inline int64x2_t
14763 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14764 vcvtq_n_s64_f64 (float64x2_t __a, const int __b)
14766 return __builtin_aarch64_fcvtzsv2df (__a, __b);
14769 __extension__ extern __inline uint64x2_t
14770 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14771 vcvtq_n_u64_f64 (float64x2_t __a, const int __b)
14773 return __builtin_aarch64_fcvtzuv2df_uss (__a, __b);
14776 /* vcvt (<u>int -> float) */
14778 __extension__ extern __inline float64_t
14779 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14780 vcvtd_f64_s64 (int64_t __a)
14782 return (float64_t) __a;
14785 __extension__ extern __inline float64_t
14786 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14787 vcvtd_f64_u64 (uint64_t __a)
14789 return (float64_t) __a;
14792 __extension__ extern __inline float32_t
14793 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14794 vcvts_f32_s32 (int32_t __a)
14796 return (float32_t) __a;
14799 __extension__ extern __inline float32_t
14800 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14801 vcvts_f32_u32 (uint32_t __a)
14803 return (float32_t) __a;
14806 __extension__ extern __inline float32x2_t
14807 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14808 vcvt_f32_s32 (int32x2_t __a)
14810 return __builtin_aarch64_floatv2siv2sf (__a);
14813 __extension__ extern __inline float32x2_t
14814 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14815 vcvt_f32_u32 (uint32x2_t __a)
14817 return __builtin_aarch64_floatunsv2siv2sf ((int32x2_t) __a);
14820 __extension__ extern __inline float64x1_t
14821 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14822 vcvt_f64_s64 (int64x1_t __a)
14824 return (float64x1_t) { vget_lane_s64 (__a, 0) };
14827 __extension__ extern __inline float64x1_t
14828 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14829 vcvt_f64_u64 (uint64x1_t __a)
14831 return (float64x1_t) { vget_lane_u64 (__a, 0) };
14834 __extension__ extern __inline float32x4_t
14835 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14836 vcvtq_f32_s32 (int32x4_t __a)
14838 return __builtin_aarch64_floatv4siv4sf (__a);
14841 __extension__ extern __inline float32x4_t
14842 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14843 vcvtq_f32_u32 (uint32x4_t __a)
14845 return __builtin_aarch64_floatunsv4siv4sf ((int32x4_t) __a);
14848 __extension__ extern __inline float64x2_t
14849 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14850 vcvtq_f64_s64 (int64x2_t __a)
14852 return __builtin_aarch64_floatv2div2df (__a);
14855 __extension__ extern __inline float64x2_t
14856 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14857 vcvtq_f64_u64 (uint64x2_t __a)
14859 return __builtin_aarch64_floatunsv2div2df ((int64x2_t) __a);
14862 /* vcvt (float -> <u>int) */
14864 __extension__ extern __inline int64_t
14865 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14866 vcvtd_s64_f64 (float64_t __a)
14868 return (int64_t) __a;
14871 __extension__ extern __inline uint64_t
14872 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14873 vcvtd_u64_f64 (float64_t __a)
14875 return (uint64_t) __a;
14878 __extension__ extern __inline int32_t
14879 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14880 vcvts_s32_f32 (float32_t __a)
14882 return (int32_t) __a;
14885 __extension__ extern __inline uint32_t
14886 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14887 vcvts_u32_f32 (float32_t __a)
14889 return (uint32_t) __a;
14892 __extension__ extern __inline int32x2_t
14893 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14894 vcvt_s32_f32 (float32x2_t __a)
14896 return __builtin_aarch64_lbtruncv2sfv2si (__a);
14899 __extension__ extern __inline uint32x2_t
14900 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14901 vcvt_u32_f32 (float32x2_t __a)
14903 return __builtin_aarch64_lbtruncuv2sfv2si_us (__a);
14906 __extension__ extern __inline int32x4_t
14907 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14908 vcvtq_s32_f32 (float32x4_t __a)
14910 return __builtin_aarch64_lbtruncv4sfv4si (__a);
14913 __extension__ extern __inline uint32x4_t
14914 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14915 vcvtq_u32_f32 (float32x4_t __a)
14917 return __builtin_aarch64_lbtruncuv4sfv4si_us (__a);
14920 __extension__ extern __inline int64x1_t
14921 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14922 vcvt_s64_f64 (float64x1_t __a)
14924 return (int64x1_t) {vcvtd_s64_f64 (__a[0])};
14927 __extension__ extern __inline uint64x1_t
14928 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14929 vcvt_u64_f64 (float64x1_t __a)
14931 return (uint64x1_t) {vcvtd_u64_f64 (__a[0])};
14934 __extension__ extern __inline int64x2_t
14935 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14936 vcvtq_s64_f64 (float64x2_t __a)
14938 return __builtin_aarch64_lbtruncv2dfv2di (__a);
14941 __extension__ extern __inline uint64x2_t
14942 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14943 vcvtq_u64_f64 (float64x2_t __a)
14945 return __builtin_aarch64_lbtruncuv2dfv2di_us (__a);
14948 /* vcvta */
14950 __extension__ extern __inline int64_t
14951 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14952 vcvtad_s64_f64 (float64_t __a)
14954 return __builtin_aarch64_lrounddfdi (__a);
14957 __extension__ extern __inline uint64_t
14958 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14959 vcvtad_u64_f64 (float64_t __a)
14961 return __builtin_aarch64_lroundudfdi_us (__a);
14964 __extension__ extern __inline int32_t
14965 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14966 vcvtas_s32_f32 (float32_t __a)
14968 return __builtin_aarch64_lroundsfsi (__a);
14971 __extension__ extern __inline uint32_t
14972 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14973 vcvtas_u32_f32 (float32_t __a)
14975 return __builtin_aarch64_lroundusfsi_us (__a);
14978 __extension__ extern __inline int32x2_t
14979 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14980 vcvta_s32_f32 (float32x2_t __a)
14982 return __builtin_aarch64_lroundv2sfv2si (__a);
14985 __extension__ extern __inline uint32x2_t
14986 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14987 vcvta_u32_f32 (float32x2_t __a)
14989 return __builtin_aarch64_lrounduv2sfv2si_us (__a);
14992 __extension__ extern __inline int32x4_t
14993 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14994 vcvtaq_s32_f32 (float32x4_t __a)
14996 return __builtin_aarch64_lroundv4sfv4si (__a);
14999 __extension__ extern __inline uint32x4_t
15000 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15001 vcvtaq_u32_f32 (float32x4_t __a)
15003 return __builtin_aarch64_lrounduv4sfv4si_us (__a);
15006 __extension__ extern __inline int64x1_t
15007 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15008 vcvta_s64_f64 (float64x1_t __a)
15010 return (int64x1_t) {vcvtad_s64_f64 (__a[0])};
15013 __extension__ extern __inline uint64x1_t
15014 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15015 vcvta_u64_f64 (float64x1_t __a)
15017 return (uint64x1_t) {vcvtad_u64_f64 (__a[0])};
15020 __extension__ extern __inline int64x2_t
15021 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15022 vcvtaq_s64_f64 (float64x2_t __a)
15024 return __builtin_aarch64_lroundv2dfv2di (__a);
15027 __extension__ extern __inline uint64x2_t
15028 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15029 vcvtaq_u64_f64 (float64x2_t __a)
15031 return __builtin_aarch64_lrounduv2dfv2di_us (__a);
15034 /* vcvtm */
15036 __extension__ extern __inline int64_t
15037 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15038 vcvtmd_s64_f64 (float64_t __a)
15040 return __builtin_llfloor (__a);
15043 __extension__ extern __inline uint64_t
15044 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15045 vcvtmd_u64_f64 (float64_t __a)
15047 return __builtin_aarch64_lfloorudfdi_us (__a);
15050 __extension__ extern __inline int32_t
15051 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15052 vcvtms_s32_f32 (float32_t __a)
15054 return __builtin_ifloorf (__a);
15057 __extension__ extern __inline uint32_t
15058 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15059 vcvtms_u32_f32 (float32_t __a)
15061 return __builtin_aarch64_lfloorusfsi_us (__a);
15064 __extension__ extern __inline int32x2_t
15065 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15066 vcvtm_s32_f32 (float32x2_t __a)
15068 return __builtin_aarch64_lfloorv2sfv2si (__a);
15071 __extension__ extern __inline uint32x2_t
15072 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15073 vcvtm_u32_f32 (float32x2_t __a)
15075 return __builtin_aarch64_lflooruv2sfv2si_us (__a);
15078 __extension__ extern __inline int32x4_t
15079 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15080 vcvtmq_s32_f32 (float32x4_t __a)
15082 return __builtin_aarch64_lfloorv4sfv4si (__a);
15085 __extension__ extern __inline uint32x4_t
15086 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15087 vcvtmq_u32_f32 (float32x4_t __a)
15089 return __builtin_aarch64_lflooruv4sfv4si_us (__a);
15092 __extension__ extern __inline int64x1_t
15093 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15094 vcvtm_s64_f64 (float64x1_t __a)
15096 return (int64x1_t) {vcvtmd_s64_f64 (__a[0])};
15099 __extension__ extern __inline uint64x1_t
15100 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15101 vcvtm_u64_f64 (float64x1_t __a)
15103 return (uint64x1_t) {vcvtmd_u64_f64 (__a[0])};
15106 __extension__ extern __inline int64x2_t
15107 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15108 vcvtmq_s64_f64 (float64x2_t __a)
15110 return __builtin_aarch64_lfloorv2dfv2di (__a);
15113 __extension__ extern __inline uint64x2_t
15114 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15115 vcvtmq_u64_f64 (float64x2_t __a)
15117 return __builtin_aarch64_lflooruv2dfv2di_us (__a);
15120 /* vcvtn */
15122 __extension__ extern __inline int64_t
15123 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15124 vcvtnd_s64_f64 (float64_t __a)
15126 return __builtin_aarch64_lfrintndfdi (__a);
15129 __extension__ extern __inline uint64_t
15130 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15131 vcvtnd_u64_f64 (float64_t __a)
15133 return __builtin_aarch64_lfrintnudfdi_us (__a);
15136 __extension__ extern __inline int32_t
15137 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15138 vcvtns_s32_f32 (float32_t __a)
15140 return __builtin_aarch64_lfrintnsfsi (__a);
15143 __extension__ extern __inline uint32_t
15144 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15145 vcvtns_u32_f32 (float32_t __a)
15147 return __builtin_aarch64_lfrintnusfsi_us (__a);
15150 __extension__ extern __inline int32x2_t
15151 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15152 vcvtn_s32_f32 (float32x2_t __a)
15154 return __builtin_aarch64_lfrintnv2sfv2si (__a);
15157 __extension__ extern __inline uint32x2_t
15158 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15159 vcvtn_u32_f32 (float32x2_t __a)
15161 return __builtin_aarch64_lfrintnuv2sfv2si_us (__a);
15164 __extension__ extern __inline int32x4_t
15165 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15166 vcvtnq_s32_f32 (float32x4_t __a)
15168 return __builtin_aarch64_lfrintnv4sfv4si (__a);
15171 __extension__ extern __inline uint32x4_t
15172 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15173 vcvtnq_u32_f32 (float32x4_t __a)
15175 return __builtin_aarch64_lfrintnuv4sfv4si_us (__a);
15178 __extension__ extern __inline int64x1_t
15179 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15180 vcvtn_s64_f64 (float64x1_t __a)
15182 return (int64x1_t) {vcvtnd_s64_f64 (__a[0])};
15185 __extension__ extern __inline uint64x1_t
15186 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15187 vcvtn_u64_f64 (float64x1_t __a)
15189 return (uint64x1_t) {vcvtnd_u64_f64 (__a[0])};
15192 __extension__ extern __inline int64x2_t
15193 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15194 vcvtnq_s64_f64 (float64x2_t __a)
15196 return __builtin_aarch64_lfrintnv2dfv2di (__a);
15199 __extension__ extern __inline uint64x2_t
15200 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15201 vcvtnq_u64_f64 (float64x2_t __a)
15203 return __builtin_aarch64_lfrintnuv2dfv2di_us (__a);
15206 /* vcvtp */
15208 __extension__ extern __inline int64_t
15209 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15210 vcvtpd_s64_f64 (float64_t __a)
15212 return __builtin_llceil (__a);
15215 __extension__ extern __inline uint64_t
15216 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15217 vcvtpd_u64_f64 (float64_t __a)
15219 return __builtin_aarch64_lceiludfdi_us (__a);
15222 __extension__ extern __inline int32_t
15223 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15224 vcvtps_s32_f32 (float32_t __a)
15226 return __builtin_iceilf (__a);
15229 __extension__ extern __inline uint32_t
15230 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15231 vcvtps_u32_f32 (float32_t __a)
15233 return __builtin_aarch64_lceilusfsi_us (__a);
15236 __extension__ extern __inline int32x2_t
15237 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15238 vcvtp_s32_f32 (float32x2_t __a)
15240 return __builtin_aarch64_lceilv2sfv2si (__a);
15243 __extension__ extern __inline uint32x2_t
15244 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15245 vcvtp_u32_f32 (float32x2_t __a)
15247 return __builtin_aarch64_lceiluv2sfv2si_us (__a);
15250 __extension__ extern __inline int32x4_t
15251 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15252 vcvtpq_s32_f32 (float32x4_t __a)
15254 return __builtin_aarch64_lceilv4sfv4si (__a);
15257 __extension__ extern __inline uint32x4_t
15258 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15259 vcvtpq_u32_f32 (float32x4_t __a)
15261 return __builtin_aarch64_lceiluv4sfv4si_us (__a);
15264 __extension__ extern __inline int64x1_t
15265 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15266 vcvtp_s64_f64 (float64x1_t __a)
15268 return (int64x1_t) {vcvtpd_s64_f64 (__a[0])};
15271 __extension__ extern __inline uint64x1_t
15272 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15273 vcvtp_u64_f64 (float64x1_t __a)
15275 return (uint64x1_t) {vcvtpd_u64_f64 (__a[0])};
15278 __extension__ extern __inline int64x2_t
15279 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15280 vcvtpq_s64_f64 (float64x2_t __a)
15282 return __builtin_aarch64_lceilv2dfv2di (__a);
15285 __extension__ extern __inline uint64x2_t
15286 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15287 vcvtpq_u64_f64 (float64x2_t __a)
15289 return __builtin_aarch64_lceiluv2dfv2di_us (__a);
15292 /* vdup_n */
15294 __extension__ extern __inline float16x4_t
15295 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15296 vdup_n_f16 (float16_t __a)
15298 return (float16x4_t) {__a, __a, __a, __a};
15301 __extension__ extern __inline float32x2_t
15302 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15303 vdup_n_f32 (float32_t __a)
15305 return (float32x2_t) {__a, __a};
15308 __extension__ extern __inline float64x1_t
15309 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15310 vdup_n_f64 (float64_t __a)
15312 return (float64x1_t) {__a};
15315 __extension__ extern __inline poly8x8_t
15316 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15317 vdup_n_p8 (poly8_t __a)
15319 return (poly8x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
15322 __extension__ extern __inline poly16x4_t
15323 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15324 vdup_n_p16 (poly16_t __a)
15326 return (poly16x4_t) {__a, __a, __a, __a};
15329 __extension__ extern __inline poly64x1_t
15330 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15331 vdup_n_p64 (poly64_t __a)
15333 return (poly64x1_t) {__a};
15336 __extension__ extern __inline int8x8_t
15337 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15338 vdup_n_s8 (int8_t __a)
15340 return (int8x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
15343 __extension__ extern __inline int16x4_t
15344 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15345 vdup_n_s16 (int16_t __a)
15347 return (int16x4_t) {__a, __a, __a, __a};
15350 __extension__ extern __inline int32x2_t
15351 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15352 vdup_n_s32 (int32_t __a)
15354 return (int32x2_t) {__a, __a};
15357 __extension__ extern __inline int64x1_t
15358 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15359 vdup_n_s64 (int64_t __a)
15361 return (int64x1_t) {__a};
15364 __extension__ extern __inline uint8x8_t
15365 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15366 vdup_n_u8 (uint8_t __a)
15368 return (uint8x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
15371 __extension__ extern __inline uint16x4_t
15372 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15373 vdup_n_u16 (uint16_t __a)
15375 return (uint16x4_t) {__a, __a, __a, __a};
15378 __extension__ extern __inline uint32x2_t
15379 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15380 vdup_n_u32 (uint32_t __a)
15382 return (uint32x2_t) {__a, __a};
15385 __extension__ extern __inline uint64x1_t
15386 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15387 vdup_n_u64 (uint64_t __a)
15389 return (uint64x1_t) {__a};
15392 /* vdupq_n */
15394 __extension__ extern __inline float16x8_t
15395 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15396 vdupq_n_f16 (float16_t __a)
15398 return (float16x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
15401 __extension__ extern __inline float32x4_t
15402 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15403 vdupq_n_f32 (float32_t __a)
15405 return (float32x4_t) {__a, __a, __a, __a};
15408 __extension__ extern __inline float64x2_t
15409 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15410 vdupq_n_f64 (float64_t __a)
15412 return (float64x2_t) {__a, __a};
15415 __extension__ extern __inline poly8x16_t
15416 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15417 vdupq_n_p8 (uint32_t __a)
15419 return (poly8x16_t) {__a, __a, __a, __a, __a, __a, __a, __a,
15420 __a, __a, __a, __a, __a, __a, __a, __a};
15423 __extension__ extern __inline poly16x8_t
15424 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15425 vdupq_n_p16 (uint32_t __a)
15427 return (poly16x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
15430 __extension__ extern __inline poly64x2_t
15431 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15432 vdupq_n_p64 (uint64_t __a)
15434 return (poly64x2_t) {__a, __a};
15437 __extension__ extern __inline int8x16_t
15438 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15439 vdupq_n_s8 (int32_t __a)
15441 return (int8x16_t) {__a, __a, __a, __a, __a, __a, __a, __a,
15442 __a, __a, __a, __a, __a, __a, __a, __a};
15445 __extension__ extern __inline int16x8_t
15446 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15447 vdupq_n_s16 (int32_t __a)
15449 return (int16x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
15452 __extension__ extern __inline int32x4_t
15453 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15454 vdupq_n_s32 (int32_t __a)
15456 return (int32x4_t) {__a, __a, __a, __a};
15459 __extension__ extern __inline int64x2_t
15460 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15461 vdupq_n_s64 (int64_t __a)
15463 return (int64x2_t) {__a, __a};
15466 __extension__ extern __inline uint8x16_t
15467 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15468 vdupq_n_u8 (uint32_t __a)
15470 return (uint8x16_t) {__a, __a, __a, __a, __a, __a, __a, __a,
15471 __a, __a, __a, __a, __a, __a, __a, __a};
15474 __extension__ extern __inline uint16x8_t
15475 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15476 vdupq_n_u16 (uint32_t __a)
15478 return (uint16x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
15481 __extension__ extern __inline uint32x4_t
15482 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15483 vdupq_n_u32 (uint32_t __a)
15485 return (uint32x4_t) {__a, __a, __a, __a};
15488 __extension__ extern __inline uint64x2_t
15489 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15490 vdupq_n_u64 (uint64_t __a)
15492 return (uint64x2_t) {__a, __a};
15495 /* vdup_lane */
15497 __extension__ extern __inline float16x4_t
15498 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15499 vdup_lane_f16 (float16x4_t __a, const int __b)
15501 return __aarch64_vdup_lane_f16 (__a, __b);
15504 __extension__ extern __inline float32x2_t
15505 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15506 vdup_lane_f32 (float32x2_t __a, const int __b)
15508 return __aarch64_vdup_lane_f32 (__a, __b);
15511 __extension__ extern __inline float64x1_t
15512 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15513 vdup_lane_f64 (float64x1_t __a, const int __b)
15515 return __aarch64_vdup_lane_f64 (__a, __b);
15518 __extension__ extern __inline poly8x8_t
15519 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15520 vdup_lane_p8 (poly8x8_t __a, const int __b)
15522 return __aarch64_vdup_lane_p8 (__a, __b);
15525 __extension__ extern __inline poly16x4_t
15526 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15527 vdup_lane_p16 (poly16x4_t __a, const int __b)
15529 return __aarch64_vdup_lane_p16 (__a, __b);
15532 __extension__ extern __inline poly64x1_t
15533 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15534 vdup_lane_p64 (poly64x1_t __a, const int __b)
15536 return __aarch64_vdup_lane_p64 (__a, __b);
15539 __extension__ extern __inline int8x8_t
15540 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15541 vdup_lane_s8 (int8x8_t __a, const int __b)
15543 return __aarch64_vdup_lane_s8 (__a, __b);
15546 __extension__ extern __inline int16x4_t
15547 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15548 vdup_lane_s16 (int16x4_t __a, const int __b)
15550 return __aarch64_vdup_lane_s16 (__a, __b);
15553 __extension__ extern __inline int32x2_t
15554 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15555 vdup_lane_s32 (int32x2_t __a, const int __b)
15557 return __aarch64_vdup_lane_s32 (__a, __b);
15560 __extension__ extern __inline int64x1_t
15561 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15562 vdup_lane_s64 (int64x1_t __a, const int __b)
15564 return __aarch64_vdup_lane_s64 (__a, __b);
15567 __extension__ extern __inline uint8x8_t
15568 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15569 vdup_lane_u8 (uint8x8_t __a, const int __b)
15571 return __aarch64_vdup_lane_u8 (__a, __b);
15574 __extension__ extern __inline uint16x4_t
15575 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15576 vdup_lane_u16 (uint16x4_t __a, const int __b)
15578 return __aarch64_vdup_lane_u16 (__a, __b);
15581 __extension__ extern __inline uint32x2_t
15582 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15583 vdup_lane_u32 (uint32x2_t __a, const int __b)
15585 return __aarch64_vdup_lane_u32 (__a, __b);
15588 __extension__ extern __inline uint64x1_t
15589 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15590 vdup_lane_u64 (uint64x1_t __a, const int __b)
15592 return __aarch64_vdup_lane_u64 (__a, __b);
15595 /* vdup_laneq */
15597 __extension__ extern __inline float16x4_t
15598 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15599 vdup_laneq_f16 (float16x8_t __a, const int __b)
15601 return __aarch64_vdup_laneq_f16 (__a, __b);
15604 __extension__ extern __inline float32x2_t
15605 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15606 vdup_laneq_f32 (float32x4_t __a, const int __b)
15608 return __aarch64_vdup_laneq_f32 (__a, __b);
15611 __extension__ extern __inline float64x1_t
15612 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15613 vdup_laneq_f64 (float64x2_t __a, const int __b)
15615 return __aarch64_vdup_laneq_f64 (__a, __b);
15618 __extension__ extern __inline poly8x8_t
15619 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15620 vdup_laneq_p8 (poly8x16_t __a, const int __b)
15622 return __aarch64_vdup_laneq_p8 (__a, __b);
15625 __extension__ extern __inline poly16x4_t
15626 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15627 vdup_laneq_p16 (poly16x8_t __a, const int __b)
15629 return __aarch64_vdup_laneq_p16 (__a, __b);
15632 __extension__ extern __inline poly64x1_t
15633 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15634 vdup_laneq_p64 (poly64x2_t __a, const int __b)
15636 return __aarch64_vdup_laneq_p64 (__a, __b);
15639 __extension__ extern __inline int8x8_t
15640 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15641 vdup_laneq_s8 (int8x16_t __a, const int __b)
15643 return __aarch64_vdup_laneq_s8 (__a, __b);
15646 __extension__ extern __inline int16x4_t
15647 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15648 vdup_laneq_s16 (int16x8_t __a, const int __b)
15650 return __aarch64_vdup_laneq_s16 (__a, __b);
15653 __extension__ extern __inline int32x2_t
15654 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15655 vdup_laneq_s32 (int32x4_t __a, const int __b)
15657 return __aarch64_vdup_laneq_s32 (__a, __b);
15660 __extension__ extern __inline int64x1_t
15661 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15662 vdup_laneq_s64 (int64x2_t __a, const int __b)
15664 return __aarch64_vdup_laneq_s64 (__a, __b);
15667 __extension__ extern __inline uint8x8_t
15668 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15669 vdup_laneq_u8 (uint8x16_t __a, const int __b)
15671 return __aarch64_vdup_laneq_u8 (__a, __b);
15674 __extension__ extern __inline uint16x4_t
15675 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15676 vdup_laneq_u16 (uint16x8_t __a, const int __b)
15678 return __aarch64_vdup_laneq_u16 (__a, __b);
15681 __extension__ extern __inline uint32x2_t
15682 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15683 vdup_laneq_u32 (uint32x4_t __a, const int __b)
15685 return __aarch64_vdup_laneq_u32 (__a, __b);
15688 __extension__ extern __inline uint64x1_t
15689 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15690 vdup_laneq_u64 (uint64x2_t __a, const int __b)
15692 return __aarch64_vdup_laneq_u64 (__a, __b);
15695 /* vdupq_lane */
15697 __extension__ extern __inline float16x8_t
15698 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15699 vdupq_lane_f16 (float16x4_t __a, const int __b)
15701 return __aarch64_vdupq_lane_f16 (__a, __b);
15704 __extension__ extern __inline float32x4_t
15705 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15706 vdupq_lane_f32 (float32x2_t __a, const int __b)
15708 return __aarch64_vdupq_lane_f32 (__a, __b);
15711 __extension__ extern __inline float64x2_t
15712 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15713 vdupq_lane_f64 (float64x1_t __a, const int __b)
15715 return __aarch64_vdupq_lane_f64 (__a, __b);
15718 __extension__ extern __inline poly8x16_t
15719 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15720 vdupq_lane_p8 (poly8x8_t __a, const int __b)
15722 return __aarch64_vdupq_lane_p8 (__a, __b);
15725 __extension__ extern __inline poly16x8_t
15726 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15727 vdupq_lane_p16 (poly16x4_t __a, const int __b)
15729 return __aarch64_vdupq_lane_p16 (__a, __b);
15732 __extension__ extern __inline poly64x2_t
15733 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15734 vdupq_lane_p64 (poly64x1_t __a, const int __b)
15736 return __aarch64_vdupq_lane_p64 (__a, __b);
15739 __extension__ extern __inline int8x16_t
15740 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15741 vdupq_lane_s8 (int8x8_t __a, const int __b)
15743 return __aarch64_vdupq_lane_s8 (__a, __b);
15746 __extension__ extern __inline int16x8_t
15747 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15748 vdupq_lane_s16 (int16x4_t __a, const int __b)
15750 return __aarch64_vdupq_lane_s16 (__a, __b);
15753 __extension__ extern __inline int32x4_t
15754 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15755 vdupq_lane_s32 (int32x2_t __a, const int __b)
15757 return __aarch64_vdupq_lane_s32 (__a, __b);
15760 __extension__ extern __inline int64x2_t
15761 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15762 vdupq_lane_s64 (int64x1_t __a, const int __b)
15764 return __aarch64_vdupq_lane_s64 (__a, __b);
15767 __extension__ extern __inline uint8x16_t
15768 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15769 vdupq_lane_u8 (uint8x8_t __a, const int __b)
15771 return __aarch64_vdupq_lane_u8 (__a, __b);
15774 __extension__ extern __inline uint16x8_t
15775 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15776 vdupq_lane_u16 (uint16x4_t __a, const int __b)
15778 return __aarch64_vdupq_lane_u16 (__a, __b);
15781 __extension__ extern __inline uint32x4_t
15782 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15783 vdupq_lane_u32 (uint32x2_t __a, const int __b)
15785 return __aarch64_vdupq_lane_u32 (__a, __b);
15788 __extension__ extern __inline uint64x2_t
15789 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15790 vdupq_lane_u64 (uint64x1_t __a, const int __b)
15792 return __aarch64_vdupq_lane_u64 (__a, __b);
15795 /* vdupq_laneq */
15797 __extension__ extern __inline float16x8_t
15798 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15799 vdupq_laneq_f16 (float16x8_t __a, const int __b)
15801 return __aarch64_vdupq_laneq_f16 (__a, __b);
15804 __extension__ extern __inline float32x4_t
15805 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15806 vdupq_laneq_f32 (float32x4_t __a, const int __b)
15808 return __aarch64_vdupq_laneq_f32 (__a, __b);
15811 __extension__ extern __inline float64x2_t
15812 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15813 vdupq_laneq_f64 (float64x2_t __a, const int __b)
15815 return __aarch64_vdupq_laneq_f64 (__a, __b);
15818 __extension__ extern __inline poly8x16_t
15819 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15820 vdupq_laneq_p8 (poly8x16_t __a, const int __b)
15822 return __aarch64_vdupq_laneq_p8 (__a, __b);
15825 __extension__ extern __inline poly16x8_t
15826 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15827 vdupq_laneq_p16 (poly16x8_t __a, const int __b)
15829 return __aarch64_vdupq_laneq_p16 (__a, __b);
15832 __extension__ extern __inline poly64x2_t
15833 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15834 vdupq_laneq_p64 (poly64x2_t __a, const int __b)
15836 return __aarch64_vdupq_laneq_p64 (__a, __b);
15839 __extension__ extern __inline int8x16_t
15840 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15841 vdupq_laneq_s8 (int8x16_t __a, const int __b)
15843 return __aarch64_vdupq_laneq_s8 (__a, __b);
15846 __extension__ extern __inline int16x8_t
15847 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15848 vdupq_laneq_s16 (int16x8_t __a, const int __b)
15850 return __aarch64_vdupq_laneq_s16 (__a, __b);
15853 __extension__ extern __inline int32x4_t
15854 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15855 vdupq_laneq_s32 (int32x4_t __a, const int __b)
15857 return __aarch64_vdupq_laneq_s32 (__a, __b);
15860 __extension__ extern __inline int64x2_t
15861 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15862 vdupq_laneq_s64 (int64x2_t __a, const int __b)
15864 return __aarch64_vdupq_laneq_s64 (__a, __b);
15867 __extension__ extern __inline uint8x16_t
15868 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15869 vdupq_laneq_u8 (uint8x16_t __a, const int __b)
15871 return __aarch64_vdupq_laneq_u8 (__a, __b);
15874 __extension__ extern __inline uint16x8_t
15875 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15876 vdupq_laneq_u16 (uint16x8_t __a, const int __b)
15878 return __aarch64_vdupq_laneq_u16 (__a, __b);
15881 __extension__ extern __inline uint32x4_t
15882 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15883 vdupq_laneq_u32 (uint32x4_t __a, const int __b)
15885 return __aarch64_vdupq_laneq_u32 (__a, __b);
15888 __extension__ extern __inline uint64x2_t
15889 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15890 vdupq_laneq_u64 (uint64x2_t __a, const int __b)
15892 return __aarch64_vdupq_laneq_u64 (__a, __b);
15895 /* vdupb_lane */
15896 __extension__ extern __inline poly8_t
15897 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15898 vdupb_lane_p8 (poly8x8_t __a, const int __b)
15900 return __aarch64_vget_lane_any (__a, __b);
15903 __extension__ extern __inline int8_t
15904 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15905 vdupb_lane_s8 (int8x8_t __a, const int __b)
15907 return __aarch64_vget_lane_any (__a, __b);
15910 __extension__ extern __inline uint8_t
15911 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15912 vdupb_lane_u8 (uint8x8_t __a, const int __b)
15914 return __aarch64_vget_lane_any (__a, __b);
15917 /* vduph_lane */
15919 __extension__ extern __inline float16_t
15920 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15921 vduph_lane_f16 (float16x4_t __a, const int __b)
15923 return __aarch64_vget_lane_any (__a, __b);
15926 __extension__ extern __inline poly16_t
15927 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15928 vduph_lane_p16 (poly16x4_t __a, const int __b)
15930 return __aarch64_vget_lane_any (__a, __b);
15933 __extension__ extern __inline int16_t
15934 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15935 vduph_lane_s16 (int16x4_t __a, const int __b)
15937 return __aarch64_vget_lane_any (__a, __b);
15940 __extension__ extern __inline uint16_t
15941 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15942 vduph_lane_u16 (uint16x4_t __a, const int __b)
15944 return __aarch64_vget_lane_any (__a, __b);
15947 /* vdups_lane */
15949 __extension__ extern __inline float32_t
15950 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15951 vdups_lane_f32 (float32x2_t __a, const int __b)
15953 return __aarch64_vget_lane_any (__a, __b);
15956 __extension__ extern __inline int32_t
15957 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15958 vdups_lane_s32 (int32x2_t __a, const int __b)
15960 return __aarch64_vget_lane_any (__a, __b);
15963 __extension__ extern __inline uint32_t
15964 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15965 vdups_lane_u32 (uint32x2_t __a, const int __b)
15967 return __aarch64_vget_lane_any (__a, __b);
15970 /* vdupd_lane */
15971 __extension__ extern __inline float64_t
15972 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15973 vdupd_lane_f64 (float64x1_t __a, const int __b)
15975 __AARCH64_LANE_CHECK (__a, __b);
15976 return __a[0];
15979 __extension__ extern __inline int64_t
15980 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15981 vdupd_lane_s64 (int64x1_t __a, const int __b)
15983 __AARCH64_LANE_CHECK (__a, __b);
15984 return __a[0];
15987 __extension__ extern __inline uint64_t
15988 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15989 vdupd_lane_u64 (uint64x1_t __a, const int __b)
15991 __AARCH64_LANE_CHECK (__a, __b);
15992 return __a[0];
15995 /* vdupb_laneq */
15996 __extension__ extern __inline poly8_t
15997 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15998 vdupb_laneq_p8 (poly8x16_t __a, const int __b)
16000 return __aarch64_vget_lane_any (__a, __b);
16003 __extension__ extern __inline int8_t
16004 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16005 vdupb_laneq_s8 (int8x16_t __a, const int __b)
16007 return __aarch64_vget_lane_any (__a, __b);
16010 __extension__ extern __inline uint8_t
16011 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16012 vdupb_laneq_u8 (uint8x16_t __a, const int __b)
16014 return __aarch64_vget_lane_any (__a, __b);
16017 /* vduph_laneq */
16019 __extension__ extern __inline float16_t
16020 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16021 vduph_laneq_f16 (float16x8_t __a, const int __b)
16023 return __aarch64_vget_lane_any (__a, __b);
16026 __extension__ extern __inline poly16_t
16027 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16028 vduph_laneq_p16 (poly16x8_t __a, const int __b)
16030 return __aarch64_vget_lane_any (__a, __b);
16033 __extension__ extern __inline int16_t
16034 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16035 vduph_laneq_s16 (int16x8_t __a, const int __b)
16037 return __aarch64_vget_lane_any (__a, __b);
16040 __extension__ extern __inline uint16_t
16041 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16042 vduph_laneq_u16 (uint16x8_t __a, const int __b)
16044 return __aarch64_vget_lane_any (__a, __b);
16047 /* vdups_laneq */
16049 __extension__ extern __inline float32_t
16050 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16051 vdups_laneq_f32 (float32x4_t __a, const int __b)
16053 return __aarch64_vget_lane_any (__a, __b);
16056 __extension__ extern __inline int32_t
16057 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16058 vdups_laneq_s32 (int32x4_t __a, const int __b)
16060 return __aarch64_vget_lane_any (__a, __b);
16063 __extension__ extern __inline uint32_t
16064 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16065 vdups_laneq_u32 (uint32x4_t __a, const int __b)
16067 return __aarch64_vget_lane_any (__a, __b);
16070 /* vdupd_laneq */
16071 __extension__ extern __inline float64_t
16072 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16073 vdupd_laneq_f64 (float64x2_t __a, const int __b)
16075 return __aarch64_vget_lane_any (__a, __b);
16078 __extension__ extern __inline int64_t
16079 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16080 vdupd_laneq_s64 (int64x2_t __a, const int __b)
16082 return __aarch64_vget_lane_any (__a, __b);
16085 __extension__ extern __inline uint64_t
16086 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16087 vdupd_laneq_u64 (uint64x2_t __a, const int __b)
16089 return __aarch64_vget_lane_any (__a, __b);
16092 /* vext */
16094 __extension__ extern __inline float16x4_t
16095 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16096 vext_f16 (float16x4_t __a, float16x4_t __b, __const int __c)
16098 __AARCH64_LANE_CHECK (__a, __c);
16099 #ifdef __AARCH64EB__
16100 return __builtin_shuffle (__b, __a,
16101 (uint16x4_t) {4 - __c, 5 - __c, 6 - __c, 7 - __c});
16102 #else
16103 return __builtin_shuffle (__a, __b,
16104 (uint16x4_t) {__c, __c + 1, __c + 2, __c + 3});
16105 #endif
16108 __extension__ extern __inline float32x2_t
16109 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16110 vext_f32 (float32x2_t __a, float32x2_t __b, __const int __c)
16112 __AARCH64_LANE_CHECK (__a, __c);
16113 #ifdef __AARCH64EB__
16114 return __builtin_shuffle (__b, __a, (uint32x2_t) {2-__c, 3-__c});
16115 #else
16116 return __builtin_shuffle (__a, __b, (uint32x2_t) {__c, __c+1});
16117 #endif
16120 __extension__ extern __inline float64x1_t
16121 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16122 vext_f64 (float64x1_t __a, float64x1_t __b, __const int __c)
16124 __AARCH64_LANE_CHECK (__a, __c);
16125 /* The only possible index to the assembler instruction returns element 0. */
16126 return __a;
16128 __extension__ extern __inline poly8x8_t
16129 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16130 vext_p8 (poly8x8_t __a, poly8x8_t __b, __const int __c)
16132 __AARCH64_LANE_CHECK (__a, __c);
16133 #ifdef __AARCH64EB__
16134 return __builtin_shuffle (__b, __a, (uint8x8_t)
16135 {8-__c, 9-__c, 10-__c, 11-__c, 12-__c, 13-__c, 14-__c, 15-__c});
16136 #else
16137 return __builtin_shuffle (__a, __b,
16138 (uint8x8_t) {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7});
16139 #endif
16142 __extension__ extern __inline poly16x4_t
16143 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16144 vext_p16 (poly16x4_t __a, poly16x4_t __b, __const int __c)
16146 __AARCH64_LANE_CHECK (__a, __c);
16147 #ifdef __AARCH64EB__
16148 return __builtin_shuffle (__b, __a,
16149 (uint16x4_t) {4-__c, 5-__c, 6-__c, 7-__c});
16150 #else
16151 return __builtin_shuffle (__a, __b, (uint16x4_t) {__c, __c+1, __c+2, __c+3});
16152 #endif
16155 __extension__ extern __inline int8x8_t
16156 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16157 vext_s8 (int8x8_t __a, int8x8_t __b, __const int __c)
16159 __AARCH64_LANE_CHECK (__a, __c);
16160 #ifdef __AARCH64EB__
16161 return __builtin_shuffle (__b, __a, (uint8x8_t)
16162 {8-__c, 9-__c, 10-__c, 11-__c, 12-__c, 13-__c, 14-__c, 15-__c});
16163 #else
16164 return __builtin_shuffle (__a, __b,
16165 (uint8x8_t) {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7});
16166 #endif
16169 __extension__ extern __inline int16x4_t
16170 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16171 vext_s16 (int16x4_t __a, int16x4_t __b, __const int __c)
16173 __AARCH64_LANE_CHECK (__a, __c);
16174 #ifdef __AARCH64EB__
16175 return __builtin_shuffle (__b, __a,
16176 (uint16x4_t) {4-__c, 5-__c, 6-__c, 7-__c});
16177 #else
16178 return __builtin_shuffle (__a, __b, (uint16x4_t) {__c, __c+1, __c+2, __c+3});
16179 #endif
16182 __extension__ extern __inline int32x2_t
16183 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16184 vext_s32 (int32x2_t __a, int32x2_t __b, __const int __c)
16186 __AARCH64_LANE_CHECK (__a, __c);
16187 #ifdef __AARCH64EB__
16188 return __builtin_shuffle (__b, __a, (uint32x2_t) {2-__c, 3-__c});
16189 #else
16190 return __builtin_shuffle (__a, __b, (uint32x2_t) {__c, __c+1});
16191 #endif
16194 __extension__ extern __inline int64x1_t
16195 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16196 vext_s64 (int64x1_t __a, int64x1_t __b, __const int __c)
16198 __AARCH64_LANE_CHECK (__a, __c);
16199 /* The only possible index to the assembler instruction returns element 0. */
16200 return __a;
16203 __extension__ extern __inline uint8x8_t
16204 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16205 vext_u8 (uint8x8_t __a, uint8x8_t __b, __const int __c)
16207 __AARCH64_LANE_CHECK (__a, __c);
16208 #ifdef __AARCH64EB__
16209 return __builtin_shuffle (__b, __a, (uint8x8_t)
16210 {8-__c, 9-__c, 10-__c, 11-__c, 12-__c, 13-__c, 14-__c, 15-__c});
16211 #else
16212 return __builtin_shuffle (__a, __b,
16213 (uint8x8_t) {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7});
16214 #endif
16217 __extension__ extern __inline uint16x4_t
16218 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16219 vext_u16 (uint16x4_t __a, uint16x4_t __b, __const int __c)
16221 __AARCH64_LANE_CHECK (__a, __c);
16222 #ifdef __AARCH64EB__
16223 return __builtin_shuffle (__b, __a,
16224 (uint16x4_t) {4-__c, 5-__c, 6-__c, 7-__c});
16225 #else
16226 return __builtin_shuffle (__a, __b, (uint16x4_t) {__c, __c+1, __c+2, __c+3});
16227 #endif
16230 __extension__ extern __inline uint32x2_t
16231 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16232 vext_u32 (uint32x2_t __a, uint32x2_t __b, __const int __c)
16234 __AARCH64_LANE_CHECK (__a, __c);
16235 #ifdef __AARCH64EB__
16236 return __builtin_shuffle (__b, __a, (uint32x2_t) {2-__c, 3-__c});
16237 #else
16238 return __builtin_shuffle (__a, __b, (uint32x2_t) {__c, __c+1});
16239 #endif
16242 __extension__ extern __inline uint64x1_t
16243 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16244 vext_u64 (uint64x1_t __a, uint64x1_t __b, __const int __c)
16246 __AARCH64_LANE_CHECK (__a, __c);
16247 /* The only possible index to the assembler instruction returns element 0. */
16248 return __a;
16251 __extension__ extern __inline float16x8_t
16252 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16253 vextq_f16 (float16x8_t __a, float16x8_t __b, __const int __c)
16255 __AARCH64_LANE_CHECK (__a, __c);
16256 #ifdef __AARCH64EB__
16257 return __builtin_shuffle (__b, __a,
16258 (uint16x8_t) {8 - __c, 9 - __c, 10 - __c, 11 - __c,
16259 12 - __c, 13 - __c, 14 - __c,
16260 15 - __c});
16261 #else
16262 return __builtin_shuffle (__a, __b,
16263 (uint16x8_t) {__c, __c + 1, __c + 2, __c + 3,
16264 __c + 4, __c + 5, __c + 6, __c + 7});
16265 #endif
16268 __extension__ extern __inline float32x4_t
16269 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16270 vextq_f32 (float32x4_t __a, float32x4_t __b, __const int __c)
16272 __AARCH64_LANE_CHECK (__a, __c);
16273 #ifdef __AARCH64EB__
16274 return __builtin_shuffle (__b, __a,
16275 (uint32x4_t) {4-__c, 5-__c, 6-__c, 7-__c});
16276 #else
16277 return __builtin_shuffle (__a, __b, (uint32x4_t) {__c, __c+1, __c+2, __c+3});
16278 #endif
16281 __extension__ extern __inline float64x2_t
16282 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16283 vextq_f64 (float64x2_t __a, float64x2_t __b, __const int __c)
16285 __AARCH64_LANE_CHECK (__a, __c);
16286 #ifdef __AARCH64EB__
16287 return __builtin_shuffle (__b, __a, (uint64x2_t) {2-__c, 3-__c});
16288 #else
16289 return __builtin_shuffle (__a, __b, (uint64x2_t) {__c, __c+1});
16290 #endif
16293 __extension__ extern __inline poly8x16_t
16294 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16295 vextq_p8 (poly8x16_t __a, poly8x16_t __b, __const int __c)
16297 __AARCH64_LANE_CHECK (__a, __c);
16298 #ifdef __AARCH64EB__
16299 return __builtin_shuffle (__b, __a, (uint8x16_t)
16300 {16-__c, 17-__c, 18-__c, 19-__c, 20-__c, 21-__c, 22-__c, 23-__c,
16301 24-__c, 25-__c, 26-__c, 27-__c, 28-__c, 29-__c, 30-__c, 31-__c});
16302 #else
16303 return __builtin_shuffle (__a, __b, (uint8x16_t)
16304 {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7,
16305 __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15});
16306 #endif
16309 __extension__ extern __inline poly16x8_t
16310 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16311 vextq_p16 (poly16x8_t __a, poly16x8_t __b, __const int __c)
16313 __AARCH64_LANE_CHECK (__a, __c);
16314 #ifdef __AARCH64EB__
16315 return __builtin_shuffle (__b, __a, (uint16x8_t)
16316 {8-__c, 9-__c, 10-__c, 11-__c, 12-__c, 13-__c, 14-__c, 15-__c});
16317 #else
16318 return __builtin_shuffle (__a, __b,
16319 (uint16x8_t) {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7});
16320 #endif
16323 __extension__ extern __inline int8x16_t
16324 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16325 vextq_s8 (int8x16_t __a, int8x16_t __b, __const int __c)
16327 __AARCH64_LANE_CHECK (__a, __c);
16328 #ifdef __AARCH64EB__
16329 return __builtin_shuffle (__b, __a, (uint8x16_t)
16330 {16-__c, 17-__c, 18-__c, 19-__c, 20-__c, 21-__c, 22-__c, 23-__c,
16331 24-__c, 25-__c, 26-__c, 27-__c, 28-__c, 29-__c, 30-__c, 31-__c});
16332 #else
16333 return __builtin_shuffle (__a, __b, (uint8x16_t)
16334 {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7,
16335 __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15});
16336 #endif
16339 __extension__ extern __inline int16x8_t
16340 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16341 vextq_s16 (int16x8_t __a, int16x8_t __b, __const int __c)
16343 __AARCH64_LANE_CHECK (__a, __c);
16344 #ifdef __AARCH64EB__
16345 return __builtin_shuffle (__b, __a, (uint16x8_t)
16346 {8-__c, 9-__c, 10-__c, 11-__c, 12-__c, 13-__c, 14-__c, 15-__c});
16347 #else
16348 return __builtin_shuffle (__a, __b,
16349 (uint16x8_t) {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7});
16350 #endif
16353 __extension__ extern __inline int32x4_t
16354 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16355 vextq_s32 (int32x4_t __a, int32x4_t __b, __const int __c)
16357 __AARCH64_LANE_CHECK (__a, __c);
16358 #ifdef __AARCH64EB__
16359 return __builtin_shuffle (__b, __a,
16360 (uint32x4_t) {4-__c, 5-__c, 6-__c, 7-__c});
16361 #else
16362 return __builtin_shuffle (__a, __b, (uint32x4_t) {__c, __c+1, __c+2, __c+3});
16363 #endif
16366 __extension__ extern __inline int64x2_t
16367 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16368 vextq_s64 (int64x2_t __a, int64x2_t __b, __const int __c)
16370 __AARCH64_LANE_CHECK (__a, __c);
16371 #ifdef __AARCH64EB__
16372 return __builtin_shuffle (__b, __a, (uint64x2_t) {2-__c, 3-__c});
16373 #else
16374 return __builtin_shuffle (__a, __b, (uint64x2_t) {__c, __c+1});
16375 #endif
16378 __extension__ extern __inline uint8x16_t
16379 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16380 vextq_u8 (uint8x16_t __a, uint8x16_t __b, __const int __c)
16382 __AARCH64_LANE_CHECK (__a, __c);
16383 #ifdef __AARCH64EB__
16384 return __builtin_shuffle (__b, __a, (uint8x16_t)
16385 {16-__c, 17-__c, 18-__c, 19-__c, 20-__c, 21-__c, 22-__c, 23-__c,
16386 24-__c, 25-__c, 26-__c, 27-__c, 28-__c, 29-__c, 30-__c, 31-__c});
16387 #else
16388 return __builtin_shuffle (__a, __b, (uint8x16_t)
16389 {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7,
16390 __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15});
16391 #endif
16394 __extension__ extern __inline uint16x8_t
16395 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16396 vextq_u16 (uint16x8_t __a, uint16x8_t __b, __const int __c)
16398 __AARCH64_LANE_CHECK (__a, __c);
16399 #ifdef __AARCH64EB__
16400 return __builtin_shuffle (__b, __a, (uint16x8_t)
16401 {8-__c, 9-__c, 10-__c, 11-__c, 12-__c, 13-__c, 14-__c, 15-__c});
16402 #else
16403 return __builtin_shuffle (__a, __b,
16404 (uint16x8_t) {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7});
16405 #endif
16408 __extension__ extern __inline uint32x4_t
16409 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16410 vextq_u32 (uint32x4_t __a, uint32x4_t __b, __const int __c)
16412 __AARCH64_LANE_CHECK (__a, __c);
16413 #ifdef __AARCH64EB__
16414 return __builtin_shuffle (__b, __a,
16415 (uint32x4_t) {4-__c, 5-__c, 6-__c, 7-__c});
16416 #else
16417 return __builtin_shuffle (__a, __b, (uint32x4_t) {__c, __c+1, __c+2, __c+3});
16418 #endif
16421 __extension__ extern __inline uint64x2_t
16422 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16423 vextq_u64 (uint64x2_t __a, uint64x2_t __b, __const int __c)
16425 __AARCH64_LANE_CHECK (__a, __c);
16426 #ifdef __AARCH64EB__
16427 return __builtin_shuffle (__b, __a, (uint64x2_t) {2-__c, 3-__c});
16428 #else
16429 return __builtin_shuffle (__a, __b, (uint64x2_t) {__c, __c+1});
16430 #endif
16433 /* vfma */
16435 __extension__ extern __inline float64x1_t
16436 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16437 vfma_f64 (float64x1_t __a, float64x1_t __b, float64x1_t __c)
16439 return (float64x1_t) {__builtin_fma (__b[0], __c[0], __a[0])};
16442 __extension__ extern __inline float32x2_t
16443 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16444 vfma_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c)
16446 return __builtin_aarch64_fmav2sf (__b, __c, __a);
16449 __extension__ extern __inline float32x4_t
16450 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16451 vfmaq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c)
16453 return __builtin_aarch64_fmav4sf (__b, __c, __a);
16456 __extension__ extern __inline float64x2_t
16457 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16458 vfmaq_f64 (float64x2_t __a, float64x2_t __b, float64x2_t __c)
16460 return __builtin_aarch64_fmav2df (__b, __c, __a);
16463 __extension__ extern __inline float32x2_t
16464 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16465 vfma_n_f32 (float32x2_t __a, float32x2_t __b, float32_t __c)
16467 return __builtin_aarch64_fmav2sf (__b, vdup_n_f32 (__c), __a);
16470 __extension__ extern __inline float64x1_t
16471 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16472 vfma_n_f64 (float64x1_t __a, float64x1_t __b, float64_t __c)
16474 return (float64x1_t) {__b[0] * __c + __a[0]};
16477 __extension__ extern __inline float32x4_t
16478 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16479 vfmaq_n_f32 (float32x4_t __a, float32x4_t __b, float32_t __c)
16481 return __builtin_aarch64_fmav4sf (__b, vdupq_n_f32 (__c), __a);
16484 __extension__ extern __inline float64x2_t
16485 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16486 vfmaq_n_f64 (float64x2_t __a, float64x2_t __b, float64_t __c)
16488 return __builtin_aarch64_fmav2df (__b, vdupq_n_f64 (__c), __a);
16491 /* vfma_lane */
16493 __extension__ extern __inline float32x2_t
16494 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16495 vfma_lane_f32 (float32x2_t __a, float32x2_t __b,
16496 float32x2_t __c, const int __lane)
16498 return __builtin_aarch64_fmav2sf (__b,
16499 __aarch64_vdup_lane_f32 (__c, __lane),
16500 __a);
16503 __extension__ extern __inline float64x1_t
16504 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16505 vfma_lane_f64 (float64x1_t __a, float64x1_t __b,
16506 float64x1_t __c, const int __lane)
16508 return (float64x1_t) {__builtin_fma (__b[0], __c[0], __a[0])};
16511 __extension__ extern __inline float64_t
16512 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16513 vfmad_lane_f64 (float64_t __a, float64_t __b,
16514 float64x1_t __c, const int __lane)
16516 return __builtin_fma (__b, __c[0], __a);
16519 __extension__ extern __inline float32_t
16520 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16521 vfmas_lane_f32 (float32_t __a, float32_t __b,
16522 float32x2_t __c, const int __lane)
16524 return __builtin_fmaf (__b, __aarch64_vget_lane_any (__c, __lane), __a);
16527 /* vfma_laneq */
16529 __extension__ extern __inline float32x2_t
16530 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16531 vfma_laneq_f32 (float32x2_t __a, float32x2_t __b,
16532 float32x4_t __c, const int __lane)
16534 return __builtin_aarch64_fmav2sf (__b,
16535 __aarch64_vdup_laneq_f32 (__c, __lane),
16536 __a);
16539 __extension__ extern __inline float64x1_t
16540 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16541 vfma_laneq_f64 (float64x1_t __a, float64x1_t __b,
16542 float64x2_t __c, const int __lane)
16544 float64_t __c0 = __aarch64_vget_lane_any (__c, __lane);
16545 return (float64x1_t) {__builtin_fma (__b[0], __c0, __a[0])};
16548 __extension__ extern __inline float64_t
16549 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16550 vfmad_laneq_f64 (float64_t __a, float64_t __b,
16551 float64x2_t __c, const int __lane)
16553 return __builtin_fma (__b, __aarch64_vget_lane_any (__c, __lane), __a);
16556 __extension__ extern __inline float32_t
16557 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16558 vfmas_laneq_f32 (float32_t __a, float32_t __b,
16559 float32x4_t __c, const int __lane)
16561 return __builtin_fmaf (__b, __aarch64_vget_lane_any (__c, __lane), __a);
16564 /* vfmaq_lane */
16566 __extension__ extern __inline float32x4_t
16567 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16568 vfmaq_lane_f32 (float32x4_t __a, float32x4_t __b,
16569 float32x2_t __c, const int __lane)
16571 return __builtin_aarch64_fmav4sf (__b,
16572 __aarch64_vdupq_lane_f32 (__c, __lane),
16573 __a);
16576 __extension__ extern __inline float64x2_t
16577 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16578 vfmaq_lane_f64 (float64x2_t __a, float64x2_t __b,
16579 float64x1_t __c, const int __lane)
16581 return __builtin_aarch64_fmav2df (__b, vdupq_n_f64 (__c[0]), __a);
16584 /* vfmaq_laneq */
16586 __extension__ extern __inline float32x4_t
16587 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16588 vfmaq_laneq_f32 (float32x4_t __a, float32x4_t __b,
16589 float32x4_t __c, const int __lane)
16591 return __builtin_aarch64_fmav4sf (__b,
16592 __aarch64_vdupq_laneq_f32 (__c, __lane),
16593 __a);
16596 __extension__ extern __inline float64x2_t
16597 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16598 vfmaq_laneq_f64 (float64x2_t __a, float64x2_t __b,
16599 float64x2_t __c, const int __lane)
16601 return __builtin_aarch64_fmav2df (__b,
16602 __aarch64_vdupq_laneq_f64 (__c, __lane),
16603 __a);
16606 /* vfms */
16608 __extension__ extern __inline float64x1_t
16609 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16610 vfms_f64 (float64x1_t __a, float64x1_t __b, float64x1_t __c)
16612 return (float64x1_t) {__builtin_fma (-__b[0], __c[0], __a[0])};
16615 __extension__ extern __inline float32x2_t
16616 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16617 vfms_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c)
16619 return __builtin_aarch64_fmav2sf (-__b, __c, __a);
16622 __extension__ extern __inline float32x4_t
16623 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16624 vfmsq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c)
16626 return __builtin_aarch64_fmav4sf (-__b, __c, __a);
16629 __extension__ extern __inline float64x2_t
16630 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16631 vfmsq_f64 (float64x2_t __a, float64x2_t __b, float64x2_t __c)
16633 return __builtin_aarch64_fmav2df (-__b, __c, __a);
16636 __extension__ extern __inline float32x2_t
16637 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16638 vfms_n_f32 (float32x2_t __a, float32x2_t __b, float32_t __c)
16640 return __builtin_aarch64_fmav2sf (-__b, vdup_n_f32 (__c), __a);
16643 __extension__ extern __inline float64x1_t
16644 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16645 vfms_n_f64 (float64x1_t __a, float64x1_t __b, float64_t __c)
16647 return (float64x1_t) {-__b[0] * __c + __a[0]};
16650 __extension__ extern __inline float32x4_t
16651 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16652 vfmsq_n_f32 (float32x4_t __a, float32x4_t __b, float32_t __c)
16654 return __builtin_aarch64_fmav4sf (-__b, vdupq_n_f32 (__c), __a);
16657 __extension__ extern __inline float64x2_t
16658 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16659 vfmsq_n_f64 (float64x2_t __a, float64x2_t __b, float64_t __c)
16661 return __builtin_aarch64_fmav2df (-__b, vdupq_n_f64 (__c), __a);
16664 /* vfms_lane */
16666 __extension__ extern __inline float32x2_t
16667 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16668 vfms_lane_f32 (float32x2_t __a, float32x2_t __b,
16669 float32x2_t __c, const int __lane)
16671 return __builtin_aarch64_fmav2sf (-__b,
16672 __aarch64_vdup_lane_f32 (__c, __lane),
16673 __a);
16676 __extension__ extern __inline float64x1_t
16677 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16678 vfms_lane_f64 (float64x1_t __a, float64x1_t __b,
16679 float64x1_t __c, const int __lane)
16681 return (float64x1_t) {__builtin_fma (-__b[0], __c[0], __a[0])};
16684 __extension__ extern __inline float64_t
16685 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16686 vfmsd_lane_f64 (float64_t __a, float64_t __b,
16687 float64x1_t __c, const int __lane)
16689 return __builtin_fma (-__b, __c[0], __a);
16692 __extension__ extern __inline float32_t
16693 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16694 vfmss_lane_f32 (float32_t __a, float32_t __b,
16695 float32x2_t __c, const int __lane)
16697 return __builtin_fmaf (-__b, __aarch64_vget_lane_any (__c, __lane), __a);
16700 /* vfms_laneq */
16702 __extension__ extern __inline float32x2_t
16703 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16704 vfms_laneq_f32 (float32x2_t __a, float32x2_t __b,
16705 float32x4_t __c, const int __lane)
16707 return __builtin_aarch64_fmav2sf (-__b,
16708 __aarch64_vdup_laneq_f32 (__c, __lane),
16709 __a);
16712 __extension__ extern __inline float64x1_t
16713 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16714 vfms_laneq_f64 (float64x1_t __a, float64x1_t __b,
16715 float64x2_t __c, const int __lane)
16717 float64_t __c0 = __aarch64_vget_lane_any (__c, __lane);
16718 return (float64x1_t) {__builtin_fma (-__b[0], __c0, __a[0])};
16721 __extension__ extern __inline float64_t
16722 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16723 vfmsd_laneq_f64 (float64_t __a, float64_t __b,
16724 float64x2_t __c, const int __lane)
16726 return __builtin_fma (-__b, __aarch64_vget_lane_any (__c, __lane), __a);
16729 __extension__ extern __inline float32_t
16730 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16731 vfmss_laneq_f32 (float32_t __a, float32_t __b,
16732 float32x4_t __c, const int __lane)
16734 return __builtin_fmaf (-__b, __aarch64_vget_lane_any (__c, __lane), __a);
16737 /* vfmsq_lane */
16739 __extension__ extern __inline float32x4_t
16740 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16741 vfmsq_lane_f32 (float32x4_t __a, float32x4_t __b,
16742 float32x2_t __c, const int __lane)
16744 return __builtin_aarch64_fmav4sf (-__b,
16745 __aarch64_vdupq_lane_f32 (__c, __lane),
16746 __a);
16749 __extension__ extern __inline float64x2_t
16750 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16751 vfmsq_lane_f64 (float64x2_t __a, float64x2_t __b,
16752 float64x1_t __c, const int __lane)
16754 return __builtin_aarch64_fmav2df (-__b, vdupq_n_f64 (__c[0]), __a);
16757 /* vfmsq_laneq */
16759 __extension__ extern __inline float32x4_t
16760 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16761 vfmsq_laneq_f32 (float32x4_t __a, float32x4_t __b,
16762 float32x4_t __c, const int __lane)
16764 return __builtin_aarch64_fmav4sf (-__b,
16765 __aarch64_vdupq_laneq_f32 (__c, __lane),
16766 __a);
16769 __extension__ extern __inline float64x2_t
16770 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16771 vfmsq_laneq_f64 (float64x2_t __a, float64x2_t __b,
16772 float64x2_t __c, const int __lane)
16774 return __builtin_aarch64_fmav2df (-__b,
16775 __aarch64_vdupq_laneq_f64 (__c, __lane),
16776 __a);
16779 /* vld1 */
16781 __extension__ extern __inline float16x4_t
16782 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16783 vld1_f16 (const float16_t *__a)
16785 return __builtin_aarch64_ld1v4hf (__a);
16788 __extension__ extern __inline float32x2_t
16789 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16790 vld1_f32 (const float32_t *a)
16792 return __builtin_aarch64_ld1v2sf ((const __builtin_aarch64_simd_sf *) a);
16795 __extension__ extern __inline float64x1_t
16796 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16797 vld1_f64 (const float64_t *a)
16799 return (float64x1_t) {*a};
16802 __extension__ extern __inline poly8x8_t
16803 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16804 vld1_p8 (const poly8_t *a)
16806 return (poly8x8_t)
16807 __builtin_aarch64_ld1v8qi ((const __builtin_aarch64_simd_qi *) a);
16810 __extension__ extern __inline poly16x4_t
16811 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16812 vld1_p16 (const poly16_t *a)
16814 return (poly16x4_t)
16815 __builtin_aarch64_ld1v4hi ((const __builtin_aarch64_simd_hi *) a);
16818 __extension__ extern __inline poly64x1_t
16819 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16820 vld1_p64 (const poly64_t *a)
16822 return (poly64x1_t) {*a};
16825 __extension__ extern __inline int8x8_t
16826 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16827 vld1_s8 (const int8_t *a)
16829 return __builtin_aarch64_ld1v8qi ((const __builtin_aarch64_simd_qi *) a);
16832 __extension__ extern __inline int16x4_t
16833 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16834 vld1_s16 (const int16_t *a)
16836 return __builtin_aarch64_ld1v4hi ((const __builtin_aarch64_simd_hi *) a);
16839 __extension__ extern __inline int32x2_t
16840 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16841 vld1_s32 (const int32_t *a)
16843 return __builtin_aarch64_ld1v2si ((const __builtin_aarch64_simd_si *) a);
16846 __extension__ extern __inline int64x1_t
16847 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16848 vld1_s64 (const int64_t *a)
16850 return (int64x1_t) {*a};
16853 __extension__ extern __inline uint8x8_t
16854 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16855 vld1_u8 (const uint8_t *a)
16857 return (uint8x8_t)
16858 __builtin_aarch64_ld1v8qi ((const __builtin_aarch64_simd_qi *) a);
16861 __extension__ extern __inline uint16x4_t
16862 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16863 vld1_u16 (const uint16_t *a)
16865 return (uint16x4_t)
16866 __builtin_aarch64_ld1v4hi ((const __builtin_aarch64_simd_hi *) a);
16869 __extension__ extern __inline uint32x2_t
16870 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16871 vld1_u32 (const uint32_t *a)
16873 return (uint32x2_t)
16874 __builtin_aarch64_ld1v2si ((const __builtin_aarch64_simd_si *) a);
16877 __extension__ extern __inline uint64x1_t
16878 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16879 vld1_u64 (const uint64_t *a)
16881 return (uint64x1_t) {*a};
16884 /* vld1q */
16886 __extension__ extern __inline float16x8_t
16887 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16888 vld1q_f16 (const float16_t *__a)
16890 return __builtin_aarch64_ld1v8hf (__a);
16893 __extension__ extern __inline float32x4_t
16894 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16895 vld1q_f32 (const float32_t *a)
16897 return __builtin_aarch64_ld1v4sf ((const __builtin_aarch64_simd_sf *) a);
16900 __extension__ extern __inline float64x2_t
16901 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16902 vld1q_f64 (const float64_t *a)
16904 return __builtin_aarch64_ld1v2df ((const __builtin_aarch64_simd_df *) a);
16907 __extension__ extern __inline poly8x16_t
16908 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16909 vld1q_p8 (const poly8_t *a)
16911 return (poly8x16_t)
16912 __builtin_aarch64_ld1v16qi ((const __builtin_aarch64_simd_qi *) a);
16915 __extension__ extern __inline poly16x8_t
16916 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16917 vld1q_p16 (const poly16_t *a)
16919 return (poly16x8_t)
16920 __builtin_aarch64_ld1v8hi ((const __builtin_aarch64_simd_hi *) a);
16923 __extension__ extern __inline poly64x2_t
16924 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16925 vld1q_p64 (const poly64_t *a)
16927 return (poly64x2_t)
16928 __builtin_aarch64_ld1v2di ((const __builtin_aarch64_simd_di *) a);
16931 __extension__ extern __inline int8x16_t
16932 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16933 vld1q_s8 (const int8_t *a)
16935 return __builtin_aarch64_ld1v16qi ((const __builtin_aarch64_simd_qi *) a);
16938 __extension__ extern __inline int16x8_t
16939 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16940 vld1q_s16 (const int16_t *a)
16942 return __builtin_aarch64_ld1v8hi ((const __builtin_aarch64_simd_hi *) a);
16945 __extension__ extern __inline int32x4_t
16946 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16947 vld1q_s32 (const int32_t *a)
16949 return __builtin_aarch64_ld1v4si ((const __builtin_aarch64_simd_si *) a);
16952 __extension__ extern __inline int64x2_t
16953 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16954 vld1q_s64 (const int64_t *a)
16956 return __builtin_aarch64_ld1v2di ((const __builtin_aarch64_simd_di *) a);
16959 __extension__ extern __inline uint8x16_t
16960 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16961 vld1q_u8 (const uint8_t *a)
16963 return (uint8x16_t)
16964 __builtin_aarch64_ld1v16qi ((const __builtin_aarch64_simd_qi *) a);
16967 __extension__ extern __inline uint16x8_t
16968 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16969 vld1q_u16 (const uint16_t *a)
16971 return (uint16x8_t)
16972 __builtin_aarch64_ld1v8hi ((const __builtin_aarch64_simd_hi *) a);
16975 __extension__ extern __inline uint32x4_t
16976 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16977 vld1q_u32 (const uint32_t *a)
16979 return (uint32x4_t)
16980 __builtin_aarch64_ld1v4si ((const __builtin_aarch64_simd_si *) a);
16983 __extension__ extern __inline uint64x2_t
16984 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16985 vld1q_u64 (const uint64_t *a)
16987 return (uint64x2_t)
16988 __builtin_aarch64_ld1v2di ((const __builtin_aarch64_simd_di *) a);
16991 /* vld1_dup */
16993 __extension__ extern __inline float16x4_t
16994 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16995 vld1_dup_f16 (const float16_t* __a)
16997 return vdup_n_f16 (*__a);
17000 __extension__ extern __inline float32x2_t
17001 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17002 vld1_dup_f32 (const float32_t* __a)
17004 return vdup_n_f32 (*__a);
17007 __extension__ extern __inline float64x1_t
17008 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17009 vld1_dup_f64 (const float64_t* __a)
17011 return vdup_n_f64 (*__a);
17014 __extension__ extern __inline poly8x8_t
17015 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17016 vld1_dup_p8 (const poly8_t* __a)
17018 return vdup_n_p8 (*__a);
17021 __extension__ extern __inline poly16x4_t
17022 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17023 vld1_dup_p16 (const poly16_t* __a)
17025 return vdup_n_p16 (*__a);
17028 __extension__ extern __inline poly64x1_t
17029 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17030 vld1_dup_p64 (const poly64_t* __a)
17032 return vdup_n_p64 (*__a);
17035 __extension__ extern __inline int8x8_t
17036 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17037 vld1_dup_s8 (const int8_t* __a)
17039 return vdup_n_s8 (*__a);
17042 __extension__ extern __inline int16x4_t
17043 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17044 vld1_dup_s16 (const int16_t* __a)
17046 return vdup_n_s16 (*__a);
17049 __extension__ extern __inline int32x2_t
17050 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17051 vld1_dup_s32 (const int32_t* __a)
17053 return vdup_n_s32 (*__a);
17056 __extension__ extern __inline int64x1_t
17057 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17058 vld1_dup_s64 (const int64_t* __a)
17060 return vdup_n_s64 (*__a);
17063 __extension__ extern __inline uint8x8_t
17064 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17065 vld1_dup_u8 (const uint8_t* __a)
17067 return vdup_n_u8 (*__a);
17070 __extension__ extern __inline uint16x4_t
17071 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17072 vld1_dup_u16 (const uint16_t* __a)
17074 return vdup_n_u16 (*__a);
17077 __extension__ extern __inline uint32x2_t
17078 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17079 vld1_dup_u32 (const uint32_t* __a)
17081 return vdup_n_u32 (*__a);
17084 __extension__ extern __inline uint64x1_t
17085 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17086 vld1_dup_u64 (const uint64_t* __a)
17088 return vdup_n_u64 (*__a);
17091 /* vld1q_dup */
17093 __extension__ extern __inline float16x8_t
17094 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17095 vld1q_dup_f16 (const float16_t* __a)
17097 return vdupq_n_f16 (*__a);
17100 __extension__ extern __inline float32x4_t
17101 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17102 vld1q_dup_f32 (const float32_t* __a)
17104 return vdupq_n_f32 (*__a);
17107 __extension__ extern __inline float64x2_t
17108 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17109 vld1q_dup_f64 (const float64_t* __a)
17111 return vdupq_n_f64 (*__a);
17114 __extension__ extern __inline poly8x16_t
17115 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17116 vld1q_dup_p8 (const poly8_t* __a)
17118 return vdupq_n_p8 (*__a);
17121 __extension__ extern __inline poly16x8_t
17122 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17123 vld1q_dup_p16 (const poly16_t* __a)
17125 return vdupq_n_p16 (*__a);
17128 __extension__ extern __inline poly64x2_t
17129 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17130 vld1q_dup_p64 (const poly64_t* __a)
17132 return vdupq_n_p64 (*__a);
17135 __extension__ extern __inline int8x16_t
17136 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17137 vld1q_dup_s8 (const int8_t* __a)
17139 return vdupq_n_s8 (*__a);
17142 __extension__ extern __inline int16x8_t
17143 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17144 vld1q_dup_s16 (const int16_t* __a)
17146 return vdupq_n_s16 (*__a);
17149 __extension__ extern __inline int32x4_t
17150 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17151 vld1q_dup_s32 (const int32_t* __a)
17153 return vdupq_n_s32 (*__a);
17156 __extension__ extern __inline int64x2_t
17157 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17158 vld1q_dup_s64 (const int64_t* __a)
17160 return vdupq_n_s64 (*__a);
17163 __extension__ extern __inline uint8x16_t
17164 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17165 vld1q_dup_u8 (const uint8_t* __a)
17167 return vdupq_n_u8 (*__a);
17170 __extension__ extern __inline uint16x8_t
17171 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17172 vld1q_dup_u16 (const uint16_t* __a)
17174 return vdupq_n_u16 (*__a);
17177 __extension__ extern __inline uint32x4_t
17178 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17179 vld1q_dup_u32 (const uint32_t* __a)
17181 return vdupq_n_u32 (*__a);
17184 __extension__ extern __inline uint64x2_t
17185 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17186 vld1q_dup_u64 (const uint64_t* __a)
17188 return vdupq_n_u64 (*__a);
17191 /* vld1_lane */
17193 __extension__ extern __inline float16x4_t
17194 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17195 vld1_lane_f16 (const float16_t *__src, float16x4_t __vec, const int __lane)
17197 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17200 __extension__ extern __inline float32x2_t
17201 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17202 vld1_lane_f32 (const float32_t *__src, float32x2_t __vec, const int __lane)
17204 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17207 __extension__ extern __inline float64x1_t
17208 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17209 vld1_lane_f64 (const float64_t *__src, float64x1_t __vec, const int __lane)
17211 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17214 __extension__ extern __inline poly8x8_t
17215 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17216 vld1_lane_p8 (const poly8_t *__src, poly8x8_t __vec, const int __lane)
17218 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17221 __extension__ extern __inline poly16x4_t
17222 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17223 vld1_lane_p16 (const poly16_t *__src, poly16x4_t __vec, const int __lane)
17225 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17228 __extension__ extern __inline poly64x1_t
17229 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17230 vld1_lane_p64 (const poly64_t *__src, poly64x1_t __vec, const int __lane)
17232 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17235 __extension__ extern __inline int8x8_t
17236 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17237 vld1_lane_s8 (const int8_t *__src, int8x8_t __vec, const int __lane)
17239 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17242 __extension__ extern __inline int16x4_t
17243 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17244 vld1_lane_s16 (const int16_t *__src, int16x4_t __vec, const int __lane)
17246 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17249 __extension__ extern __inline int32x2_t
17250 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17251 vld1_lane_s32 (const int32_t *__src, int32x2_t __vec, const int __lane)
17253 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17256 __extension__ extern __inline int64x1_t
17257 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17258 vld1_lane_s64 (const int64_t *__src, int64x1_t __vec, const int __lane)
17260 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17263 __extension__ extern __inline uint8x8_t
17264 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17265 vld1_lane_u8 (const uint8_t *__src, uint8x8_t __vec, const int __lane)
17267 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17270 __extension__ extern __inline uint16x4_t
17271 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17272 vld1_lane_u16 (const uint16_t *__src, uint16x4_t __vec, const int __lane)
17274 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17277 __extension__ extern __inline uint32x2_t
17278 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17279 vld1_lane_u32 (const uint32_t *__src, uint32x2_t __vec, const int __lane)
17281 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17284 __extension__ extern __inline uint64x1_t
17285 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17286 vld1_lane_u64 (const uint64_t *__src, uint64x1_t __vec, const int __lane)
17288 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17291 /* vld1q_lane */
17293 __extension__ extern __inline float16x8_t
17294 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17295 vld1q_lane_f16 (const float16_t *__src, float16x8_t __vec, const int __lane)
17297 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17300 __extension__ extern __inline float32x4_t
17301 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17302 vld1q_lane_f32 (const float32_t *__src, float32x4_t __vec, const int __lane)
17304 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17307 __extension__ extern __inline float64x2_t
17308 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17309 vld1q_lane_f64 (const float64_t *__src, float64x2_t __vec, const int __lane)
17311 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17314 __extension__ extern __inline poly8x16_t
17315 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17316 vld1q_lane_p8 (const poly8_t *__src, poly8x16_t __vec, const int __lane)
17318 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17321 __extension__ extern __inline poly16x8_t
17322 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17323 vld1q_lane_p16 (const poly16_t *__src, poly16x8_t __vec, const int __lane)
17325 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17328 __extension__ extern __inline poly64x2_t
17329 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17330 vld1q_lane_p64 (const poly64_t *__src, poly64x2_t __vec, const int __lane)
17332 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17335 __extension__ extern __inline int8x16_t
17336 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17337 vld1q_lane_s8 (const int8_t *__src, int8x16_t __vec, const int __lane)
17339 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17342 __extension__ extern __inline int16x8_t
17343 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17344 vld1q_lane_s16 (const int16_t *__src, int16x8_t __vec, const int __lane)
17346 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17349 __extension__ extern __inline int32x4_t
17350 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17351 vld1q_lane_s32 (const int32_t *__src, int32x4_t __vec, const int __lane)
17353 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17356 __extension__ extern __inline int64x2_t
17357 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17358 vld1q_lane_s64 (const int64_t *__src, int64x2_t __vec, const int __lane)
17360 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17363 __extension__ extern __inline uint8x16_t
17364 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17365 vld1q_lane_u8 (const uint8_t *__src, uint8x16_t __vec, const int __lane)
17367 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17370 __extension__ extern __inline uint16x8_t
17371 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17372 vld1q_lane_u16 (const uint16_t *__src, uint16x8_t __vec, const int __lane)
17374 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17377 __extension__ extern __inline uint32x4_t
17378 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17379 vld1q_lane_u32 (const uint32_t *__src, uint32x4_t __vec, const int __lane)
17381 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17384 __extension__ extern __inline uint64x2_t
17385 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17386 vld1q_lane_u64 (const uint64_t *__src, uint64x2_t __vec, const int __lane)
17388 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17391 /* vldn */
17393 __extension__ extern __inline int64x1x2_t
17394 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17395 vld2_s64 (const int64_t * __a)
17397 int64x1x2_t ret;
17398 __builtin_aarch64_simd_oi __o;
17399 __o = __builtin_aarch64_ld2di ((const __builtin_aarch64_simd_di *) __a);
17400 ret.val[0] = (int64x1_t) __builtin_aarch64_get_dregoidi (__o, 0);
17401 ret.val[1] = (int64x1_t) __builtin_aarch64_get_dregoidi (__o, 1);
17402 return ret;
17405 __extension__ extern __inline uint64x1x2_t
17406 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17407 vld2_u64 (const uint64_t * __a)
17409 uint64x1x2_t ret;
17410 __builtin_aarch64_simd_oi __o;
17411 __o = __builtin_aarch64_ld2di ((const __builtin_aarch64_simd_di *) __a);
17412 ret.val[0] = (uint64x1_t) __builtin_aarch64_get_dregoidi (__o, 0);
17413 ret.val[1] = (uint64x1_t) __builtin_aarch64_get_dregoidi (__o, 1);
17414 return ret;
17417 __extension__ extern __inline float64x1x2_t
17418 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17419 vld2_f64 (const float64_t * __a)
17421 float64x1x2_t ret;
17422 __builtin_aarch64_simd_oi __o;
17423 __o = __builtin_aarch64_ld2df ((const __builtin_aarch64_simd_df *) __a);
17424 ret.val[0] = (float64x1_t) {__builtin_aarch64_get_dregoidf (__o, 0)};
17425 ret.val[1] = (float64x1_t) {__builtin_aarch64_get_dregoidf (__o, 1)};
17426 return ret;
17429 __extension__ extern __inline int8x8x2_t
17430 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17431 vld2_s8 (const int8_t * __a)
17433 int8x8x2_t ret;
17434 __builtin_aarch64_simd_oi __o;
17435 __o = __builtin_aarch64_ld2v8qi ((const __builtin_aarch64_simd_qi *) __a);
17436 ret.val[0] = (int8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 0);
17437 ret.val[1] = (int8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 1);
17438 return ret;
17441 __extension__ extern __inline poly8x8x2_t
17442 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17443 vld2_p8 (const poly8_t * __a)
17445 poly8x8x2_t ret;
17446 __builtin_aarch64_simd_oi __o;
17447 __o = __builtin_aarch64_ld2v8qi ((const __builtin_aarch64_simd_qi *) __a);
17448 ret.val[0] = (poly8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 0);
17449 ret.val[1] = (poly8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 1);
17450 return ret;
17453 __extension__ extern __inline poly64x1x2_t
17454 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17455 vld2_p64 (const poly64_t * __a)
17457 poly64x1x2_t ret;
17458 __builtin_aarch64_simd_oi __o;
17459 __o = __builtin_aarch64_ld2di ((const __builtin_aarch64_simd_di *) __a);
17460 ret.val[0] = (poly64x1_t) __builtin_aarch64_get_dregoidi_pss (__o, 0);
17461 ret.val[1] = (poly64x1_t) __builtin_aarch64_get_dregoidi_pss (__o, 1);
17462 return ret;
17465 __extension__ extern __inline int16x4x2_t
17466 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17467 vld2_s16 (const int16_t * __a)
17469 int16x4x2_t ret;
17470 __builtin_aarch64_simd_oi __o;
17471 __o = __builtin_aarch64_ld2v4hi ((const __builtin_aarch64_simd_hi *) __a);
17472 ret.val[0] = (int16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 0);
17473 ret.val[1] = (int16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 1);
17474 return ret;
17477 __extension__ extern __inline poly16x4x2_t
17478 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17479 vld2_p16 (const poly16_t * __a)
17481 poly16x4x2_t ret;
17482 __builtin_aarch64_simd_oi __o;
17483 __o = __builtin_aarch64_ld2v4hi ((const __builtin_aarch64_simd_hi *) __a);
17484 ret.val[0] = (poly16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 0);
17485 ret.val[1] = (poly16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 1);
17486 return ret;
17489 __extension__ extern __inline int32x2x2_t
17490 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17491 vld2_s32 (const int32_t * __a)
17493 int32x2x2_t ret;
17494 __builtin_aarch64_simd_oi __o;
17495 __o = __builtin_aarch64_ld2v2si ((const __builtin_aarch64_simd_si *) __a);
17496 ret.val[0] = (int32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 0);
17497 ret.val[1] = (int32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 1);
17498 return ret;
17501 __extension__ extern __inline uint8x8x2_t
17502 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17503 vld2_u8 (const uint8_t * __a)
17505 uint8x8x2_t ret;
17506 __builtin_aarch64_simd_oi __o;
17507 __o = __builtin_aarch64_ld2v8qi ((const __builtin_aarch64_simd_qi *) __a);
17508 ret.val[0] = (uint8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 0);
17509 ret.val[1] = (uint8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 1);
17510 return ret;
17513 __extension__ extern __inline uint16x4x2_t
17514 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17515 vld2_u16 (const uint16_t * __a)
17517 uint16x4x2_t ret;
17518 __builtin_aarch64_simd_oi __o;
17519 __o = __builtin_aarch64_ld2v4hi ((const __builtin_aarch64_simd_hi *) __a);
17520 ret.val[0] = (uint16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 0);
17521 ret.val[1] = (uint16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 1);
17522 return ret;
17525 __extension__ extern __inline uint32x2x2_t
17526 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17527 vld2_u32 (const uint32_t * __a)
17529 uint32x2x2_t ret;
17530 __builtin_aarch64_simd_oi __o;
17531 __o = __builtin_aarch64_ld2v2si ((const __builtin_aarch64_simd_si *) __a);
17532 ret.val[0] = (uint32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 0);
17533 ret.val[1] = (uint32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 1);
17534 return ret;
17537 __extension__ extern __inline float16x4x2_t
17538 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17539 vld2_f16 (const float16_t * __a)
17541 float16x4x2_t ret;
17542 __builtin_aarch64_simd_oi __o;
17543 __o = __builtin_aarch64_ld2v4hf (__a);
17544 ret.val[0] = __builtin_aarch64_get_dregoiv4hf (__o, 0);
17545 ret.val[1] = __builtin_aarch64_get_dregoiv4hf (__o, 1);
17546 return ret;
17549 __extension__ extern __inline float32x2x2_t
17550 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17551 vld2_f32 (const float32_t * __a)
17553 float32x2x2_t ret;
17554 __builtin_aarch64_simd_oi __o;
17555 __o = __builtin_aarch64_ld2v2sf ((const __builtin_aarch64_simd_sf *) __a);
17556 ret.val[0] = (float32x2_t) __builtin_aarch64_get_dregoiv2sf (__o, 0);
17557 ret.val[1] = (float32x2_t) __builtin_aarch64_get_dregoiv2sf (__o, 1);
17558 return ret;
17561 __extension__ extern __inline int8x16x2_t
17562 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17563 vld2q_s8 (const int8_t * __a)
17565 int8x16x2_t ret;
17566 __builtin_aarch64_simd_oi __o;
17567 __o = __builtin_aarch64_ld2v16qi ((const __builtin_aarch64_simd_qi *) __a);
17568 ret.val[0] = (int8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 0);
17569 ret.val[1] = (int8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 1);
17570 return ret;
17573 __extension__ extern __inline poly8x16x2_t
17574 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17575 vld2q_p8 (const poly8_t * __a)
17577 poly8x16x2_t ret;
17578 __builtin_aarch64_simd_oi __o;
17579 __o = __builtin_aarch64_ld2v16qi ((const __builtin_aarch64_simd_qi *) __a);
17580 ret.val[0] = (poly8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 0);
17581 ret.val[1] = (poly8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 1);
17582 return ret;
17585 __extension__ extern __inline int16x8x2_t
17586 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17587 vld2q_s16 (const int16_t * __a)
17589 int16x8x2_t ret;
17590 __builtin_aarch64_simd_oi __o;
17591 __o = __builtin_aarch64_ld2v8hi ((const __builtin_aarch64_simd_hi *) __a);
17592 ret.val[0] = (int16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 0);
17593 ret.val[1] = (int16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 1);
17594 return ret;
17597 __extension__ extern __inline poly16x8x2_t
17598 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17599 vld2q_p16 (const poly16_t * __a)
17601 poly16x8x2_t ret;
17602 __builtin_aarch64_simd_oi __o;
17603 __o = __builtin_aarch64_ld2v8hi ((const __builtin_aarch64_simd_hi *) __a);
17604 ret.val[0] = (poly16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 0);
17605 ret.val[1] = (poly16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 1);
17606 return ret;
17609 __extension__ extern __inline poly64x2x2_t
17610 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17611 vld2q_p64 (const poly64_t * __a)
17613 poly64x2x2_t ret;
17614 __builtin_aarch64_simd_oi __o;
17615 __o = __builtin_aarch64_ld2v2di ((const __builtin_aarch64_simd_di *) __a);
17616 ret.val[0] = (poly64x2_t) __builtin_aarch64_get_qregoiv2di_pss (__o, 0);
17617 ret.val[1] = (poly64x2_t) __builtin_aarch64_get_qregoiv2di_pss (__o, 1);
17618 return ret;
17621 __extension__ extern __inline int32x4x2_t
17622 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17623 vld2q_s32 (const int32_t * __a)
17625 int32x4x2_t ret;
17626 __builtin_aarch64_simd_oi __o;
17627 __o = __builtin_aarch64_ld2v4si ((const __builtin_aarch64_simd_si *) __a);
17628 ret.val[0] = (int32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 0);
17629 ret.val[1] = (int32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 1);
17630 return ret;
17633 __extension__ extern __inline int64x2x2_t
17634 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17635 vld2q_s64 (const int64_t * __a)
17637 int64x2x2_t ret;
17638 __builtin_aarch64_simd_oi __o;
17639 __o = __builtin_aarch64_ld2v2di ((const __builtin_aarch64_simd_di *) __a);
17640 ret.val[0] = (int64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 0);
17641 ret.val[1] = (int64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 1);
17642 return ret;
17645 __extension__ extern __inline uint8x16x2_t
17646 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17647 vld2q_u8 (const uint8_t * __a)
17649 uint8x16x2_t ret;
17650 __builtin_aarch64_simd_oi __o;
17651 __o = __builtin_aarch64_ld2v16qi ((const __builtin_aarch64_simd_qi *) __a);
17652 ret.val[0] = (uint8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 0);
17653 ret.val[1] = (uint8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 1);
17654 return ret;
17657 __extension__ extern __inline uint16x8x2_t
17658 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17659 vld2q_u16 (const uint16_t * __a)
17661 uint16x8x2_t ret;
17662 __builtin_aarch64_simd_oi __o;
17663 __o = __builtin_aarch64_ld2v8hi ((const __builtin_aarch64_simd_hi *) __a);
17664 ret.val[0] = (uint16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 0);
17665 ret.val[1] = (uint16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 1);
17666 return ret;
17669 __extension__ extern __inline uint32x4x2_t
17670 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17671 vld2q_u32 (const uint32_t * __a)
17673 uint32x4x2_t ret;
17674 __builtin_aarch64_simd_oi __o;
17675 __o = __builtin_aarch64_ld2v4si ((const __builtin_aarch64_simd_si *) __a);
17676 ret.val[0] = (uint32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 0);
17677 ret.val[1] = (uint32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 1);
17678 return ret;
17681 __extension__ extern __inline uint64x2x2_t
17682 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17683 vld2q_u64 (const uint64_t * __a)
17685 uint64x2x2_t ret;
17686 __builtin_aarch64_simd_oi __o;
17687 __o = __builtin_aarch64_ld2v2di ((const __builtin_aarch64_simd_di *) __a);
17688 ret.val[0] = (uint64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 0);
17689 ret.val[1] = (uint64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 1);
17690 return ret;
17693 __extension__ extern __inline float16x8x2_t
17694 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17695 vld2q_f16 (const float16_t * __a)
17697 float16x8x2_t ret;
17698 __builtin_aarch64_simd_oi __o;
17699 __o = __builtin_aarch64_ld2v8hf (__a);
17700 ret.val[0] = __builtin_aarch64_get_qregoiv8hf (__o, 0);
17701 ret.val[1] = __builtin_aarch64_get_qregoiv8hf (__o, 1);
17702 return ret;
17705 __extension__ extern __inline float32x4x2_t
17706 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17707 vld2q_f32 (const float32_t * __a)
17709 float32x4x2_t ret;
17710 __builtin_aarch64_simd_oi __o;
17711 __o = __builtin_aarch64_ld2v4sf ((const __builtin_aarch64_simd_sf *) __a);
17712 ret.val[0] = (float32x4_t) __builtin_aarch64_get_qregoiv4sf (__o, 0);
17713 ret.val[1] = (float32x4_t) __builtin_aarch64_get_qregoiv4sf (__o, 1);
17714 return ret;
17717 __extension__ extern __inline float64x2x2_t
17718 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17719 vld2q_f64 (const float64_t * __a)
17721 float64x2x2_t ret;
17722 __builtin_aarch64_simd_oi __o;
17723 __o = __builtin_aarch64_ld2v2df ((const __builtin_aarch64_simd_df *) __a);
17724 ret.val[0] = (float64x2_t) __builtin_aarch64_get_qregoiv2df (__o, 0);
17725 ret.val[1] = (float64x2_t) __builtin_aarch64_get_qregoiv2df (__o, 1);
17726 return ret;
17729 __extension__ extern __inline int64x1x3_t
17730 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17731 vld3_s64 (const int64_t * __a)
17733 int64x1x3_t ret;
17734 __builtin_aarch64_simd_ci __o;
17735 __o = __builtin_aarch64_ld3di ((const __builtin_aarch64_simd_di *) __a);
17736 ret.val[0] = (int64x1_t) __builtin_aarch64_get_dregcidi (__o, 0);
17737 ret.val[1] = (int64x1_t) __builtin_aarch64_get_dregcidi (__o, 1);
17738 ret.val[2] = (int64x1_t) __builtin_aarch64_get_dregcidi (__o, 2);
17739 return ret;
17742 __extension__ extern __inline uint64x1x3_t
17743 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17744 vld3_u64 (const uint64_t * __a)
17746 uint64x1x3_t ret;
17747 __builtin_aarch64_simd_ci __o;
17748 __o = __builtin_aarch64_ld3di ((const __builtin_aarch64_simd_di *) __a);
17749 ret.val[0] = (uint64x1_t) __builtin_aarch64_get_dregcidi (__o, 0);
17750 ret.val[1] = (uint64x1_t) __builtin_aarch64_get_dregcidi (__o, 1);
17751 ret.val[2] = (uint64x1_t) __builtin_aarch64_get_dregcidi (__o, 2);
17752 return ret;
17755 __extension__ extern __inline float64x1x3_t
17756 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17757 vld3_f64 (const float64_t * __a)
17759 float64x1x3_t ret;
17760 __builtin_aarch64_simd_ci __o;
17761 __o = __builtin_aarch64_ld3df ((const __builtin_aarch64_simd_df *) __a);
17762 ret.val[0] = (float64x1_t) {__builtin_aarch64_get_dregcidf (__o, 0)};
17763 ret.val[1] = (float64x1_t) {__builtin_aarch64_get_dregcidf (__o, 1)};
17764 ret.val[2] = (float64x1_t) {__builtin_aarch64_get_dregcidf (__o, 2)};
17765 return ret;
17768 __extension__ extern __inline int8x8x3_t
17769 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17770 vld3_s8 (const int8_t * __a)
17772 int8x8x3_t ret;
17773 __builtin_aarch64_simd_ci __o;
17774 __o = __builtin_aarch64_ld3v8qi ((const __builtin_aarch64_simd_qi *) __a);
17775 ret.val[0] = (int8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 0);
17776 ret.val[1] = (int8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 1);
17777 ret.val[2] = (int8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 2);
17778 return ret;
17781 __extension__ extern __inline poly8x8x3_t
17782 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17783 vld3_p8 (const poly8_t * __a)
17785 poly8x8x3_t ret;
17786 __builtin_aarch64_simd_ci __o;
17787 __o = __builtin_aarch64_ld3v8qi ((const __builtin_aarch64_simd_qi *) __a);
17788 ret.val[0] = (poly8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 0);
17789 ret.val[1] = (poly8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 1);
17790 ret.val[2] = (poly8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 2);
17791 return ret;
17794 __extension__ extern __inline int16x4x3_t
17795 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17796 vld3_s16 (const int16_t * __a)
17798 int16x4x3_t ret;
17799 __builtin_aarch64_simd_ci __o;
17800 __o = __builtin_aarch64_ld3v4hi ((const __builtin_aarch64_simd_hi *) __a);
17801 ret.val[0] = (int16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 0);
17802 ret.val[1] = (int16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 1);
17803 ret.val[2] = (int16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 2);
17804 return ret;
17807 __extension__ extern __inline poly16x4x3_t
17808 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17809 vld3_p16 (const poly16_t * __a)
17811 poly16x4x3_t ret;
17812 __builtin_aarch64_simd_ci __o;
17813 __o = __builtin_aarch64_ld3v4hi ((const __builtin_aarch64_simd_hi *) __a);
17814 ret.val[0] = (poly16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 0);
17815 ret.val[1] = (poly16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 1);
17816 ret.val[2] = (poly16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 2);
17817 return ret;
17820 __extension__ extern __inline int32x2x3_t
17821 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17822 vld3_s32 (const int32_t * __a)
17824 int32x2x3_t ret;
17825 __builtin_aarch64_simd_ci __o;
17826 __o = __builtin_aarch64_ld3v2si ((const __builtin_aarch64_simd_si *) __a);
17827 ret.val[0] = (int32x2_t) __builtin_aarch64_get_dregciv2si (__o, 0);
17828 ret.val[1] = (int32x2_t) __builtin_aarch64_get_dregciv2si (__o, 1);
17829 ret.val[2] = (int32x2_t) __builtin_aarch64_get_dregciv2si (__o, 2);
17830 return ret;
17833 __extension__ extern __inline uint8x8x3_t
17834 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17835 vld3_u8 (const uint8_t * __a)
17837 uint8x8x3_t ret;
17838 __builtin_aarch64_simd_ci __o;
17839 __o = __builtin_aarch64_ld3v8qi ((const __builtin_aarch64_simd_qi *) __a);
17840 ret.val[0] = (uint8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 0);
17841 ret.val[1] = (uint8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 1);
17842 ret.val[2] = (uint8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 2);
17843 return ret;
17846 __extension__ extern __inline uint16x4x3_t
17847 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17848 vld3_u16 (const uint16_t * __a)
17850 uint16x4x3_t ret;
17851 __builtin_aarch64_simd_ci __o;
17852 __o = __builtin_aarch64_ld3v4hi ((const __builtin_aarch64_simd_hi *) __a);
17853 ret.val[0] = (uint16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 0);
17854 ret.val[1] = (uint16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 1);
17855 ret.val[2] = (uint16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 2);
17856 return ret;
17859 __extension__ extern __inline uint32x2x3_t
17860 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17861 vld3_u32 (const uint32_t * __a)
17863 uint32x2x3_t ret;
17864 __builtin_aarch64_simd_ci __o;
17865 __o = __builtin_aarch64_ld3v2si ((const __builtin_aarch64_simd_si *) __a);
17866 ret.val[0] = (uint32x2_t) __builtin_aarch64_get_dregciv2si (__o, 0);
17867 ret.val[1] = (uint32x2_t) __builtin_aarch64_get_dregciv2si (__o, 1);
17868 ret.val[2] = (uint32x2_t) __builtin_aarch64_get_dregciv2si (__o, 2);
17869 return ret;
17872 __extension__ extern __inline float16x4x3_t
17873 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17874 vld3_f16 (const float16_t * __a)
17876 float16x4x3_t ret;
17877 __builtin_aarch64_simd_ci __o;
17878 __o = __builtin_aarch64_ld3v4hf (__a);
17879 ret.val[0] = __builtin_aarch64_get_dregciv4hf (__o, 0);
17880 ret.val[1] = __builtin_aarch64_get_dregciv4hf (__o, 1);
17881 ret.val[2] = __builtin_aarch64_get_dregciv4hf (__o, 2);
17882 return ret;
17885 __extension__ extern __inline float32x2x3_t
17886 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17887 vld3_f32 (const float32_t * __a)
17889 float32x2x3_t ret;
17890 __builtin_aarch64_simd_ci __o;
17891 __o = __builtin_aarch64_ld3v2sf ((const __builtin_aarch64_simd_sf *) __a);
17892 ret.val[0] = (float32x2_t) __builtin_aarch64_get_dregciv2sf (__o, 0);
17893 ret.val[1] = (float32x2_t) __builtin_aarch64_get_dregciv2sf (__o, 1);
17894 ret.val[2] = (float32x2_t) __builtin_aarch64_get_dregciv2sf (__o, 2);
17895 return ret;
17898 __extension__ extern __inline poly64x1x3_t
17899 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17900 vld3_p64 (const poly64_t * __a)
17902 poly64x1x3_t ret;
17903 __builtin_aarch64_simd_ci __o;
17904 __o = __builtin_aarch64_ld3di ((const __builtin_aarch64_simd_di *) __a);
17905 ret.val[0] = (poly64x1_t) __builtin_aarch64_get_dregcidi_pss (__o, 0);
17906 ret.val[1] = (poly64x1_t) __builtin_aarch64_get_dregcidi_pss (__o, 1);
17907 ret.val[2] = (poly64x1_t) __builtin_aarch64_get_dregcidi_pss (__o, 2);
17908 return ret;
17911 __extension__ extern __inline int8x16x3_t
17912 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17913 vld3q_s8 (const int8_t * __a)
17915 int8x16x3_t ret;
17916 __builtin_aarch64_simd_ci __o;
17917 __o = __builtin_aarch64_ld3v16qi ((const __builtin_aarch64_simd_qi *) __a);
17918 ret.val[0] = (int8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 0);
17919 ret.val[1] = (int8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 1);
17920 ret.val[2] = (int8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 2);
17921 return ret;
17924 __extension__ extern __inline poly8x16x3_t
17925 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17926 vld3q_p8 (const poly8_t * __a)
17928 poly8x16x3_t ret;
17929 __builtin_aarch64_simd_ci __o;
17930 __o = __builtin_aarch64_ld3v16qi ((const __builtin_aarch64_simd_qi *) __a);
17931 ret.val[0] = (poly8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 0);
17932 ret.val[1] = (poly8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 1);
17933 ret.val[2] = (poly8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 2);
17934 return ret;
17937 __extension__ extern __inline int16x8x3_t
17938 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17939 vld3q_s16 (const int16_t * __a)
17941 int16x8x3_t ret;
17942 __builtin_aarch64_simd_ci __o;
17943 __o = __builtin_aarch64_ld3v8hi ((const __builtin_aarch64_simd_hi *) __a);
17944 ret.val[0] = (int16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 0);
17945 ret.val[1] = (int16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 1);
17946 ret.val[2] = (int16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 2);
17947 return ret;
17950 __extension__ extern __inline poly16x8x3_t
17951 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17952 vld3q_p16 (const poly16_t * __a)
17954 poly16x8x3_t ret;
17955 __builtin_aarch64_simd_ci __o;
17956 __o = __builtin_aarch64_ld3v8hi ((const __builtin_aarch64_simd_hi *) __a);
17957 ret.val[0] = (poly16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 0);
17958 ret.val[1] = (poly16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 1);
17959 ret.val[2] = (poly16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 2);
17960 return ret;
17963 __extension__ extern __inline int32x4x3_t
17964 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17965 vld3q_s32 (const int32_t * __a)
17967 int32x4x3_t ret;
17968 __builtin_aarch64_simd_ci __o;
17969 __o = __builtin_aarch64_ld3v4si ((const __builtin_aarch64_simd_si *) __a);
17970 ret.val[0] = (int32x4_t) __builtin_aarch64_get_qregciv4si (__o, 0);
17971 ret.val[1] = (int32x4_t) __builtin_aarch64_get_qregciv4si (__o, 1);
17972 ret.val[2] = (int32x4_t) __builtin_aarch64_get_qregciv4si (__o, 2);
17973 return ret;
17976 __extension__ extern __inline int64x2x3_t
17977 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17978 vld3q_s64 (const int64_t * __a)
17980 int64x2x3_t ret;
17981 __builtin_aarch64_simd_ci __o;
17982 __o = __builtin_aarch64_ld3v2di ((const __builtin_aarch64_simd_di *) __a);
17983 ret.val[0] = (int64x2_t) __builtin_aarch64_get_qregciv2di (__o, 0);
17984 ret.val[1] = (int64x2_t) __builtin_aarch64_get_qregciv2di (__o, 1);
17985 ret.val[2] = (int64x2_t) __builtin_aarch64_get_qregciv2di (__o, 2);
17986 return ret;
17989 __extension__ extern __inline uint8x16x3_t
17990 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17991 vld3q_u8 (const uint8_t * __a)
17993 uint8x16x3_t ret;
17994 __builtin_aarch64_simd_ci __o;
17995 __o = __builtin_aarch64_ld3v16qi ((const __builtin_aarch64_simd_qi *) __a);
17996 ret.val[0] = (uint8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 0);
17997 ret.val[1] = (uint8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 1);
17998 ret.val[2] = (uint8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 2);
17999 return ret;
18002 __extension__ extern __inline uint16x8x3_t
18003 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18004 vld3q_u16 (const uint16_t * __a)
18006 uint16x8x3_t ret;
18007 __builtin_aarch64_simd_ci __o;
18008 __o = __builtin_aarch64_ld3v8hi ((const __builtin_aarch64_simd_hi *) __a);
18009 ret.val[0] = (uint16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 0);
18010 ret.val[1] = (uint16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 1);
18011 ret.val[2] = (uint16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 2);
18012 return ret;
18015 __extension__ extern __inline uint32x4x3_t
18016 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18017 vld3q_u32 (const uint32_t * __a)
18019 uint32x4x3_t ret;
18020 __builtin_aarch64_simd_ci __o;
18021 __o = __builtin_aarch64_ld3v4si ((const __builtin_aarch64_simd_si *) __a);
18022 ret.val[0] = (uint32x4_t) __builtin_aarch64_get_qregciv4si (__o, 0);
18023 ret.val[1] = (uint32x4_t) __builtin_aarch64_get_qregciv4si (__o, 1);
18024 ret.val[2] = (uint32x4_t) __builtin_aarch64_get_qregciv4si (__o, 2);
18025 return ret;
18028 __extension__ extern __inline uint64x2x3_t
18029 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18030 vld3q_u64 (const uint64_t * __a)
18032 uint64x2x3_t ret;
18033 __builtin_aarch64_simd_ci __o;
18034 __o = __builtin_aarch64_ld3v2di ((const __builtin_aarch64_simd_di *) __a);
18035 ret.val[0] = (uint64x2_t) __builtin_aarch64_get_qregciv2di (__o, 0);
18036 ret.val[1] = (uint64x2_t) __builtin_aarch64_get_qregciv2di (__o, 1);
18037 ret.val[2] = (uint64x2_t) __builtin_aarch64_get_qregciv2di (__o, 2);
18038 return ret;
18041 __extension__ extern __inline float16x8x3_t
18042 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18043 vld3q_f16 (const float16_t * __a)
18045 float16x8x3_t ret;
18046 __builtin_aarch64_simd_ci __o;
18047 __o = __builtin_aarch64_ld3v8hf (__a);
18048 ret.val[0] = __builtin_aarch64_get_qregciv8hf (__o, 0);
18049 ret.val[1] = __builtin_aarch64_get_qregciv8hf (__o, 1);
18050 ret.val[2] = __builtin_aarch64_get_qregciv8hf (__o, 2);
18051 return ret;
18054 __extension__ extern __inline float32x4x3_t
18055 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18056 vld3q_f32 (const float32_t * __a)
18058 float32x4x3_t ret;
18059 __builtin_aarch64_simd_ci __o;
18060 __o = __builtin_aarch64_ld3v4sf ((const __builtin_aarch64_simd_sf *) __a);
18061 ret.val[0] = (float32x4_t) __builtin_aarch64_get_qregciv4sf (__o, 0);
18062 ret.val[1] = (float32x4_t) __builtin_aarch64_get_qregciv4sf (__o, 1);
18063 ret.val[2] = (float32x4_t) __builtin_aarch64_get_qregciv4sf (__o, 2);
18064 return ret;
18067 __extension__ extern __inline float64x2x3_t
18068 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18069 vld3q_f64 (const float64_t * __a)
18071 float64x2x3_t ret;
18072 __builtin_aarch64_simd_ci __o;
18073 __o = __builtin_aarch64_ld3v2df ((const __builtin_aarch64_simd_df *) __a);
18074 ret.val[0] = (float64x2_t) __builtin_aarch64_get_qregciv2df (__o, 0);
18075 ret.val[1] = (float64x2_t) __builtin_aarch64_get_qregciv2df (__o, 1);
18076 ret.val[2] = (float64x2_t) __builtin_aarch64_get_qregciv2df (__o, 2);
18077 return ret;
18080 __extension__ extern __inline poly64x2x3_t
18081 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18082 vld3q_p64 (const poly64_t * __a)
18084 poly64x2x3_t ret;
18085 __builtin_aarch64_simd_ci __o;
18086 __o = __builtin_aarch64_ld3v2di ((const __builtin_aarch64_simd_di *) __a);
18087 ret.val[0] = (poly64x2_t) __builtin_aarch64_get_qregciv2di_pss (__o, 0);
18088 ret.val[1] = (poly64x2_t) __builtin_aarch64_get_qregciv2di_pss (__o, 1);
18089 ret.val[2] = (poly64x2_t) __builtin_aarch64_get_qregciv2di_pss (__o, 2);
18090 return ret;
18093 __extension__ extern __inline int64x1x4_t
18094 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18095 vld4_s64 (const int64_t * __a)
18097 int64x1x4_t ret;
18098 __builtin_aarch64_simd_xi __o;
18099 __o = __builtin_aarch64_ld4di ((const __builtin_aarch64_simd_di *) __a);
18100 ret.val[0] = (int64x1_t) __builtin_aarch64_get_dregxidi (__o, 0);
18101 ret.val[1] = (int64x1_t) __builtin_aarch64_get_dregxidi (__o, 1);
18102 ret.val[2] = (int64x1_t) __builtin_aarch64_get_dregxidi (__o, 2);
18103 ret.val[3] = (int64x1_t) __builtin_aarch64_get_dregxidi (__o, 3);
18104 return ret;
18107 __extension__ extern __inline uint64x1x4_t
18108 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18109 vld4_u64 (const uint64_t * __a)
18111 uint64x1x4_t ret;
18112 __builtin_aarch64_simd_xi __o;
18113 __o = __builtin_aarch64_ld4di ((const __builtin_aarch64_simd_di *) __a);
18114 ret.val[0] = (uint64x1_t) __builtin_aarch64_get_dregxidi (__o, 0);
18115 ret.val[1] = (uint64x1_t) __builtin_aarch64_get_dregxidi (__o, 1);
18116 ret.val[2] = (uint64x1_t) __builtin_aarch64_get_dregxidi (__o, 2);
18117 ret.val[3] = (uint64x1_t) __builtin_aarch64_get_dregxidi (__o, 3);
18118 return ret;
18121 __extension__ extern __inline float64x1x4_t
18122 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18123 vld4_f64 (const float64_t * __a)
18125 float64x1x4_t ret;
18126 __builtin_aarch64_simd_xi __o;
18127 __o = __builtin_aarch64_ld4df ((const __builtin_aarch64_simd_df *) __a);
18128 ret.val[0] = (float64x1_t) {__builtin_aarch64_get_dregxidf (__o, 0)};
18129 ret.val[1] = (float64x1_t) {__builtin_aarch64_get_dregxidf (__o, 1)};
18130 ret.val[2] = (float64x1_t) {__builtin_aarch64_get_dregxidf (__o, 2)};
18131 ret.val[3] = (float64x1_t) {__builtin_aarch64_get_dregxidf (__o, 3)};
18132 return ret;
18135 __extension__ extern __inline int8x8x4_t
18136 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18137 vld4_s8 (const int8_t * __a)
18139 int8x8x4_t ret;
18140 __builtin_aarch64_simd_xi __o;
18141 __o = __builtin_aarch64_ld4v8qi ((const __builtin_aarch64_simd_qi *) __a);
18142 ret.val[0] = (int8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 0);
18143 ret.val[1] = (int8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 1);
18144 ret.val[2] = (int8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 2);
18145 ret.val[3] = (int8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 3);
18146 return ret;
18149 __extension__ extern __inline poly8x8x4_t
18150 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18151 vld4_p8 (const poly8_t * __a)
18153 poly8x8x4_t ret;
18154 __builtin_aarch64_simd_xi __o;
18155 __o = __builtin_aarch64_ld4v8qi ((const __builtin_aarch64_simd_qi *) __a);
18156 ret.val[0] = (poly8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 0);
18157 ret.val[1] = (poly8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 1);
18158 ret.val[2] = (poly8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 2);
18159 ret.val[3] = (poly8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 3);
18160 return ret;
18163 __extension__ extern __inline int16x4x4_t
18164 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18165 vld4_s16 (const int16_t * __a)
18167 int16x4x4_t ret;
18168 __builtin_aarch64_simd_xi __o;
18169 __o = __builtin_aarch64_ld4v4hi ((const __builtin_aarch64_simd_hi *) __a);
18170 ret.val[0] = (int16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 0);
18171 ret.val[1] = (int16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 1);
18172 ret.val[2] = (int16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 2);
18173 ret.val[3] = (int16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 3);
18174 return ret;
18177 __extension__ extern __inline poly16x4x4_t
18178 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18179 vld4_p16 (const poly16_t * __a)
18181 poly16x4x4_t ret;
18182 __builtin_aarch64_simd_xi __o;
18183 __o = __builtin_aarch64_ld4v4hi ((const __builtin_aarch64_simd_hi *) __a);
18184 ret.val[0] = (poly16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 0);
18185 ret.val[1] = (poly16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 1);
18186 ret.val[2] = (poly16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 2);
18187 ret.val[3] = (poly16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 3);
18188 return ret;
18191 __extension__ extern __inline int32x2x4_t
18192 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18193 vld4_s32 (const int32_t * __a)
18195 int32x2x4_t ret;
18196 __builtin_aarch64_simd_xi __o;
18197 __o = __builtin_aarch64_ld4v2si ((const __builtin_aarch64_simd_si *) __a);
18198 ret.val[0] = (int32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 0);
18199 ret.val[1] = (int32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 1);
18200 ret.val[2] = (int32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 2);
18201 ret.val[3] = (int32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 3);
18202 return ret;
18205 __extension__ extern __inline uint8x8x4_t
18206 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18207 vld4_u8 (const uint8_t * __a)
18209 uint8x8x4_t ret;
18210 __builtin_aarch64_simd_xi __o;
18211 __o = __builtin_aarch64_ld4v8qi ((const __builtin_aarch64_simd_qi *) __a);
18212 ret.val[0] = (uint8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 0);
18213 ret.val[1] = (uint8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 1);
18214 ret.val[2] = (uint8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 2);
18215 ret.val[3] = (uint8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 3);
18216 return ret;
18219 __extension__ extern __inline uint16x4x4_t
18220 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18221 vld4_u16 (const uint16_t * __a)
18223 uint16x4x4_t ret;
18224 __builtin_aarch64_simd_xi __o;
18225 __o = __builtin_aarch64_ld4v4hi ((const __builtin_aarch64_simd_hi *) __a);
18226 ret.val[0] = (uint16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 0);
18227 ret.val[1] = (uint16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 1);
18228 ret.val[2] = (uint16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 2);
18229 ret.val[3] = (uint16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 3);
18230 return ret;
18233 __extension__ extern __inline uint32x2x4_t
18234 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18235 vld4_u32 (const uint32_t * __a)
18237 uint32x2x4_t ret;
18238 __builtin_aarch64_simd_xi __o;
18239 __o = __builtin_aarch64_ld4v2si ((const __builtin_aarch64_simd_si *) __a);
18240 ret.val[0] = (uint32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 0);
18241 ret.val[1] = (uint32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 1);
18242 ret.val[2] = (uint32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 2);
18243 ret.val[3] = (uint32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 3);
18244 return ret;
18247 __extension__ extern __inline float16x4x4_t
18248 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18249 vld4_f16 (const float16_t * __a)
18251 float16x4x4_t ret;
18252 __builtin_aarch64_simd_xi __o;
18253 __o = __builtin_aarch64_ld4v4hf (__a);
18254 ret.val[0] = __builtin_aarch64_get_dregxiv4hf (__o, 0);
18255 ret.val[1] = __builtin_aarch64_get_dregxiv4hf (__o, 1);
18256 ret.val[2] = __builtin_aarch64_get_dregxiv4hf (__o, 2);
18257 ret.val[3] = __builtin_aarch64_get_dregxiv4hf (__o, 3);
18258 return ret;
18261 __extension__ extern __inline float32x2x4_t
18262 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18263 vld4_f32 (const float32_t * __a)
18265 float32x2x4_t ret;
18266 __builtin_aarch64_simd_xi __o;
18267 __o = __builtin_aarch64_ld4v2sf ((const __builtin_aarch64_simd_sf *) __a);
18268 ret.val[0] = (float32x2_t) __builtin_aarch64_get_dregxiv2sf (__o, 0);
18269 ret.val[1] = (float32x2_t) __builtin_aarch64_get_dregxiv2sf (__o, 1);
18270 ret.val[2] = (float32x2_t) __builtin_aarch64_get_dregxiv2sf (__o, 2);
18271 ret.val[3] = (float32x2_t) __builtin_aarch64_get_dregxiv2sf (__o, 3);
18272 return ret;
18275 __extension__ extern __inline poly64x1x4_t
18276 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18277 vld4_p64 (const poly64_t * __a)
18279 poly64x1x4_t ret;
18280 __builtin_aarch64_simd_xi __o;
18281 __o = __builtin_aarch64_ld4di ((const __builtin_aarch64_simd_di *) __a);
18282 ret.val[0] = (poly64x1_t) __builtin_aarch64_get_dregxidi_pss (__o, 0);
18283 ret.val[1] = (poly64x1_t) __builtin_aarch64_get_dregxidi_pss (__o, 1);
18284 ret.val[2] = (poly64x1_t) __builtin_aarch64_get_dregxidi_pss (__o, 2);
18285 ret.val[3] = (poly64x1_t) __builtin_aarch64_get_dregxidi_pss (__o, 3);
18286 return ret;
18289 __extension__ extern __inline int8x16x4_t
18290 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18291 vld4q_s8 (const int8_t * __a)
18293 int8x16x4_t ret;
18294 __builtin_aarch64_simd_xi __o;
18295 __o = __builtin_aarch64_ld4v16qi ((const __builtin_aarch64_simd_qi *) __a);
18296 ret.val[0] = (int8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 0);
18297 ret.val[1] = (int8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 1);
18298 ret.val[2] = (int8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 2);
18299 ret.val[3] = (int8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 3);
18300 return ret;
18303 __extension__ extern __inline poly8x16x4_t
18304 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18305 vld4q_p8 (const poly8_t * __a)
18307 poly8x16x4_t ret;
18308 __builtin_aarch64_simd_xi __o;
18309 __o = __builtin_aarch64_ld4v16qi ((const __builtin_aarch64_simd_qi *) __a);
18310 ret.val[0] = (poly8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 0);
18311 ret.val[1] = (poly8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 1);
18312 ret.val[2] = (poly8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 2);
18313 ret.val[3] = (poly8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 3);
18314 return ret;
18317 __extension__ extern __inline int16x8x4_t
18318 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18319 vld4q_s16 (const int16_t * __a)
18321 int16x8x4_t ret;
18322 __builtin_aarch64_simd_xi __o;
18323 __o = __builtin_aarch64_ld4v8hi ((const __builtin_aarch64_simd_hi *) __a);
18324 ret.val[0] = (int16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 0);
18325 ret.val[1] = (int16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 1);
18326 ret.val[2] = (int16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 2);
18327 ret.val[3] = (int16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 3);
18328 return ret;
18331 __extension__ extern __inline poly16x8x4_t
18332 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18333 vld4q_p16 (const poly16_t * __a)
18335 poly16x8x4_t ret;
18336 __builtin_aarch64_simd_xi __o;
18337 __o = __builtin_aarch64_ld4v8hi ((const __builtin_aarch64_simd_hi *) __a);
18338 ret.val[0] = (poly16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 0);
18339 ret.val[1] = (poly16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 1);
18340 ret.val[2] = (poly16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 2);
18341 ret.val[3] = (poly16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 3);
18342 return ret;
18345 __extension__ extern __inline int32x4x4_t
18346 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18347 vld4q_s32 (const int32_t * __a)
18349 int32x4x4_t ret;
18350 __builtin_aarch64_simd_xi __o;
18351 __o = __builtin_aarch64_ld4v4si ((const __builtin_aarch64_simd_si *) __a);
18352 ret.val[0] = (int32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 0);
18353 ret.val[1] = (int32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 1);
18354 ret.val[2] = (int32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 2);
18355 ret.val[3] = (int32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 3);
18356 return ret;
18359 __extension__ extern __inline int64x2x4_t
18360 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18361 vld4q_s64 (const int64_t * __a)
18363 int64x2x4_t ret;
18364 __builtin_aarch64_simd_xi __o;
18365 __o = __builtin_aarch64_ld4v2di ((const __builtin_aarch64_simd_di *) __a);
18366 ret.val[0] = (int64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 0);
18367 ret.val[1] = (int64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 1);
18368 ret.val[2] = (int64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 2);
18369 ret.val[3] = (int64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 3);
18370 return ret;
18373 __extension__ extern __inline uint8x16x4_t
18374 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18375 vld4q_u8 (const uint8_t * __a)
18377 uint8x16x4_t ret;
18378 __builtin_aarch64_simd_xi __o;
18379 __o = __builtin_aarch64_ld4v16qi ((const __builtin_aarch64_simd_qi *) __a);
18380 ret.val[0] = (uint8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 0);
18381 ret.val[1] = (uint8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 1);
18382 ret.val[2] = (uint8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 2);
18383 ret.val[3] = (uint8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 3);
18384 return ret;
18387 __extension__ extern __inline uint16x8x4_t
18388 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18389 vld4q_u16 (const uint16_t * __a)
18391 uint16x8x4_t ret;
18392 __builtin_aarch64_simd_xi __o;
18393 __o = __builtin_aarch64_ld4v8hi ((const __builtin_aarch64_simd_hi *) __a);
18394 ret.val[0] = (uint16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 0);
18395 ret.val[1] = (uint16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 1);
18396 ret.val[2] = (uint16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 2);
18397 ret.val[3] = (uint16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 3);
18398 return ret;
18401 __extension__ extern __inline uint32x4x4_t
18402 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18403 vld4q_u32 (const uint32_t * __a)
18405 uint32x4x4_t ret;
18406 __builtin_aarch64_simd_xi __o;
18407 __o = __builtin_aarch64_ld4v4si ((const __builtin_aarch64_simd_si *) __a);
18408 ret.val[0] = (uint32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 0);
18409 ret.val[1] = (uint32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 1);
18410 ret.val[2] = (uint32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 2);
18411 ret.val[3] = (uint32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 3);
18412 return ret;
18415 __extension__ extern __inline uint64x2x4_t
18416 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18417 vld4q_u64 (const uint64_t * __a)
18419 uint64x2x4_t ret;
18420 __builtin_aarch64_simd_xi __o;
18421 __o = __builtin_aarch64_ld4v2di ((const __builtin_aarch64_simd_di *) __a);
18422 ret.val[0] = (uint64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 0);
18423 ret.val[1] = (uint64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 1);
18424 ret.val[2] = (uint64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 2);
18425 ret.val[3] = (uint64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 3);
18426 return ret;
18429 __extension__ extern __inline float16x8x4_t
18430 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18431 vld4q_f16 (const float16_t * __a)
18433 float16x8x4_t ret;
18434 __builtin_aarch64_simd_xi __o;
18435 __o = __builtin_aarch64_ld4v8hf (__a);
18436 ret.val[0] = __builtin_aarch64_get_qregxiv8hf (__o, 0);
18437 ret.val[1] = __builtin_aarch64_get_qregxiv8hf (__o, 1);
18438 ret.val[2] = __builtin_aarch64_get_qregxiv8hf (__o, 2);
18439 ret.val[3] = __builtin_aarch64_get_qregxiv8hf (__o, 3);
18440 return ret;
18443 __extension__ extern __inline float32x4x4_t
18444 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18445 vld4q_f32 (const float32_t * __a)
18447 float32x4x4_t ret;
18448 __builtin_aarch64_simd_xi __o;
18449 __o = __builtin_aarch64_ld4v4sf ((const __builtin_aarch64_simd_sf *) __a);
18450 ret.val[0] = (float32x4_t) __builtin_aarch64_get_qregxiv4sf (__o, 0);
18451 ret.val[1] = (float32x4_t) __builtin_aarch64_get_qregxiv4sf (__o, 1);
18452 ret.val[2] = (float32x4_t) __builtin_aarch64_get_qregxiv4sf (__o, 2);
18453 ret.val[3] = (float32x4_t) __builtin_aarch64_get_qregxiv4sf (__o, 3);
18454 return ret;
18457 __extension__ extern __inline float64x2x4_t
18458 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18459 vld4q_f64 (const float64_t * __a)
18461 float64x2x4_t ret;
18462 __builtin_aarch64_simd_xi __o;
18463 __o = __builtin_aarch64_ld4v2df ((const __builtin_aarch64_simd_df *) __a);
18464 ret.val[0] = (float64x2_t) __builtin_aarch64_get_qregxiv2df (__o, 0);
18465 ret.val[1] = (float64x2_t) __builtin_aarch64_get_qregxiv2df (__o, 1);
18466 ret.val[2] = (float64x2_t) __builtin_aarch64_get_qregxiv2df (__o, 2);
18467 ret.val[3] = (float64x2_t) __builtin_aarch64_get_qregxiv2df (__o, 3);
18468 return ret;
18471 __extension__ extern __inline poly64x2x4_t
18472 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18473 vld4q_p64 (const poly64_t * __a)
18475 poly64x2x4_t ret;
18476 __builtin_aarch64_simd_xi __o;
18477 __o = __builtin_aarch64_ld4v2di ((const __builtin_aarch64_simd_di *) __a);
18478 ret.val[0] = (poly64x2_t) __builtin_aarch64_get_qregxiv2di_pss (__o, 0);
18479 ret.val[1] = (poly64x2_t) __builtin_aarch64_get_qregxiv2di_pss (__o, 1);
18480 ret.val[2] = (poly64x2_t) __builtin_aarch64_get_qregxiv2di_pss (__o, 2);
18481 ret.val[3] = (poly64x2_t) __builtin_aarch64_get_qregxiv2di_pss (__o, 3);
18482 return ret;
18485 /* vldn_dup */
18487 __extension__ extern __inline int8x8x2_t
18488 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18489 vld2_dup_s8 (const int8_t * __a)
18491 int8x8x2_t ret;
18492 __builtin_aarch64_simd_oi __o;
18493 __o = __builtin_aarch64_ld2rv8qi ((const __builtin_aarch64_simd_qi *) __a);
18494 ret.val[0] = (int8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 0);
18495 ret.val[1] = (int8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 1);
18496 return ret;
18499 __extension__ extern __inline int16x4x2_t
18500 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18501 vld2_dup_s16 (const int16_t * __a)
18503 int16x4x2_t ret;
18504 __builtin_aarch64_simd_oi __o;
18505 __o = __builtin_aarch64_ld2rv4hi ((const __builtin_aarch64_simd_hi *) __a);
18506 ret.val[0] = (int16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 0);
18507 ret.val[1] = (int16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 1);
18508 return ret;
18511 __extension__ extern __inline int32x2x2_t
18512 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18513 vld2_dup_s32 (const int32_t * __a)
18515 int32x2x2_t ret;
18516 __builtin_aarch64_simd_oi __o;
18517 __o = __builtin_aarch64_ld2rv2si ((const __builtin_aarch64_simd_si *) __a);
18518 ret.val[0] = (int32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 0);
18519 ret.val[1] = (int32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 1);
18520 return ret;
18523 __extension__ extern __inline float16x4x2_t
18524 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18525 vld2_dup_f16 (const float16_t * __a)
18527 float16x4x2_t ret;
18528 __builtin_aarch64_simd_oi __o;
18529 __o = __builtin_aarch64_ld2rv4hf ((const __builtin_aarch64_simd_hf *) __a);
18530 ret.val[0] = __builtin_aarch64_get_dregoiv4hf (__o, 0);
18531 ret.val[1] = (float16x4_t) __builtin_aarch64_get_dregoiv4hf (__o, 1);
18532 return ret;
18535 __extension__ extern __inline float32x2x2_t
18536 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18537 vld2_dup_f32 (const float32_t * __a)
18539 float32x2x2_t ret;
18540 __builtin_aarch64_simd_oi __o;
18541 __o = __builtin_aarch64_ld2rv2sf ((const __builtin_aarch64_simd_sf *) __a);
18542 ret.val[0] = (float32x2_t) __builtin_aarch64_get_dregoiv2sf (__o, 0);
18543 ret.val[1] = (float32x2_t) __builtin_aarch64_get_dregoiv2sf (__o, 1);
18544 return ret;
18547 __extension__ extern __inline float64x1x2_t
18548 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18549 vld2_dup_f64 (const float64_t * __a)
18551 float64x1x2_t ret;
18552 __builtin_aarch64_simd_oi __o;
18553 __o = __builtin_aarch64_ld2rdf ((const __builtin_aarch64_simd_df *) __a);
18554 ret.val[0] = (float64x1_t) {__builtin_aarch64_get_dregoidf (__o, 0)};
18555 ret.val[1] = (float64x1_t) {__builtin_aarch64_get_dregoidf (__o, 1)};
18556 return ret;
18559 __extension__ extern __inline uint8x8x2_t
18560 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18561 vld2_dup_u8 (const uint8_t * __a)
18563 uint8x8x2_t ret;
18564 __builtin_aarch64_simd_oi __o;
18565 __o = __builtin_aarch64_ld2rv8qi ((const __builtin_aarch64_simd_qi *) __a);
18566 ret.val[0] = (uint8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 0);
18567 ret.val[1] = (uint8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 1);
18568 return ret;
18571 __extension__ extern __inline uint16x4x2_t
18572 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18573 vld2_dup_u16 (const uint16_t * __a)
18575 uint16x4x2_t ret;
18576 __builtin_aarch64_simd_oi __o;
18577 __o = __builtin_aarch64_ld2rv4hi ((const __builtin_aarch64_simd_hi *) __a);
18578 ret.val[0] = (uint16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 0);
18579 ret.val[1] = (uint16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 1);
18580 return ret;
18583 __extension__ extern __inline uint32x2x2_t
18584 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18585 vld2_dup_u32 (const uint32_t * __a)
18587 uint32x2x2_t ret;
18588 __builtin_aarch64_simd_oi __o;
18589 __o = __builtin_aarch64_ld2rv2si ((const __builtin_aarch64_simd_si *) __a);
18590 ret.val[0] = (uint32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 0);
18591 ret.val[1] = (uint32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 1);
18592 return ret;
18595 __extension__ extern __inline poly8x8x2_t
18596 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18597 vld2_dup_p8 (const poly8_t * __a)
18599 poly8x8x2_t ret;
18600 __builtin_aarch64_simd_oi __o;
18601 __o = __builtin_aarch64_ld2rv8qi ((const __builtin_aarch64_simd_qi *) __a);
18602 ret.val[0] = (poly8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 0);
18603 ret.val[1] = (poly8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 1);
18604 return ret;
18607 __extension__ extern __inline poly16x4x2_t
18608 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18609 vld2_dup_p16 (const poly16_t * __a)
18611 poly16x4x2_t ret;
18612 __builtin_aarch64_simd_oi __o;
18613 __o = __builtin_aarch64_ld2rv4hi ((const __builtin_aarch64_simd_hi *) __a);
18614 ret.val[0] = (poly16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 0);
18615 ret.val[1] = (poly16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 1);
18616 return ret;
18619 __extension__ extern __inline poly64x1x2_t
18620 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18621 vld2_dup_p64 (const poly64_t * __a)
18623 poly64x1x2_t ret;
18624 __builtin_aarch64_simd_oi __o;
18625 __o = __builtin_aarch64_ld2rv2di ((const __builtin_aarch64_simd_di *) __a);
18626 ret.val[0] = (poly64x1_t) __builtin_aarch64_get_dregoidi_pss (__o, 0);
18627 ret.val[1] = (poly64x1_t) __builtin_aarch64_get_dregoidi_pss (__o, 1);
18628 return ret;
18632 __extension__ extern __inline int64x1x2_t
18633 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18634 vld2_dup_s64 (const int64_t * __a)
18636 int64x1x2_t ret;
18637 __builtin_aarch64_simd_oi __o;
18638 __o = __builtin_aarch64_ld2rdi ((const __builtin_aarch64_simd_di *) __a);
18639 ret.val[0] = (int64x1_t) __builtin_aarch64_get_dregoidi (__o, 0);
18640 ret.val[1] = (int64x1_t) __builtin_aarch64_get_dregoidi (__o, 1);
18641 return ret;
18644 __extension__ extern __inline uint64x1x2_t
18645 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18646 vld2_dup_u64 (const uint64_t * __a)
18648 uint64x1x2_t ret;
18649 __builtin_aarch64_simd_oi __o;
18650 __o = __builtin_aarch64_ld2rdi ((const __builtin_aarch64_simd_di *) __a);
18651 ret.val[0] = (uint64x1_t) __builtin_aarch64_get_dregoidi (__o, 0);
18652 ret.val[1] = (uint64x1_t) __builtin_aarch64_get_dregoidi (__o, 1);
18653 return ret;
18656 __extension__ extern __inline int8x16x2_t
18657 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18658 vld2q_dup_s8 (const int8_t * __a)
18660 int8x16x2_t ret;
18661 __builtin_aarch64_simd_oi __o;
18662 __o = __builtin_aarch64_ld2rv16qi ((const __builtin_aarch64_simd_qi *) __a);
18663 ret.val[0] = (int8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 0);
18664 ret.val[1] = (int8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 1);
18665 return ret;
18668 __extension__ extern __inline poly8x16x2_t
18669 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18670 vld2q_dup_p8 (const poly8_t * __a)
18672 poly8x16x2_t ret;
18673 __builtin_aarch64_simd_oi __o;
18674 __o = __builtin_aarch64_ld2rv16qi ((const __builtin_aarch64_simd_qi *) __a);
18675 ret.val[0] = (poly8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 0);
18676 ret.val[1] = (poly8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 1);
18677 return ret;
18680 __extension__ extern __inline int16x8x2_t
18681 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18682 vld2q_dup_s16 (const int16_t * __a)
18684 int16x8x2_t ret;
18685 __builtin_aarch64_simd_oi __o;
18686 __o = __builtin_aarch64_ld2rv8hi ((const __builtin_aarch64_simd_hi *) __a);
18687 ret.val[0] = (int16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 0);
18688 ret.val[1] = (int16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 1);
18689 return ret;
18692 __extension__ extern __inline poly16x8x2_t
18693 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18694 vld2q_dup_p16 (const poly16_t * __a)
18696 poly16x8x2_t ret;
18697 __builtin_aarch64_simd_oi __o;
18698 __o = __builtin_aarch64_ld2rv8hi ((const __builtin_aarch64_simd_hi *) __a);
18699 ret.val[0] = (poly16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 0);
18700 ret.val[1] = (poly16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 1);
18701 return ret;
18704 __extension__ extern __inline int32x4x2_t
18705 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18706 vld2q_dup_s32 (const int32_t * __a)
18708 int32x4x2_t ret;
18709 __builtin_aarch64_simd_oi __o;
18710 __o = __builtin_aarch64_ld2rv4si ((const __builtin_aarch64_simd_si *) __a);
18711 ret.val[0] = (int32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 0);
18712 ret.val[1] = (int32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 1);
18713 return ret;
18716 __extension__ extern __inline int64x2x2_t
18717 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18718 vld2q_dup_s64 (const int64_t * __a)
18720 int64x2x2_t ret;
18721 __builtin_aarch64_simd_oi __o;
18722 __o = __builtin_aarch64_ld2rv2di ((const __builtin_aarch64_simd_di *) __a);
18723 ret.val[0] = (int64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 0);
18724 ret.val[1] = (int64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 1);
18725 return ret;
18728 __extension__ extern __inline uint8x16x2_t
18729 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18730 vld2q_dup_u8 (const uint8_t * __a)
18732 uint8x16x2_t ret;
18733 __builtin_aarch64_simd_oi __o;
18734 __o = __builtin_aarch64_ld2rv16qi ((const __builtin_aarch64_simd_qi *) __a);
18735 ret.val[0] = (uint8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 0);
18736 ret.val[1] = (uint8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 1);
18737 return ret;
18740 __extension__ extern __inline uint16x8x2_t
18741 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18742 vld2q_dup_u16 (const uint16_t * __a)
18744 uint16x8x2_t ret;
18745 __builtin_aarch64_simd_oi __o;
18746 __o = __builtin_aarch64_ld2rv8hi ((const __builtin_aarch64_simd_hi *) __a);
18747 ret.val[0] = (uint16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 0);
18748 ret.val[1] = (uint16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 1);
18749 return ret;
18752 __extension__ extern __inline uint32x4x2_t
18753 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18754 vld2q_dup_u32 (const uint32_t * __a)
18756 uint32x4x2_t ret;
18757 __builtin_aarch64_simd_oi __o;
18758 __o = __builtin_aarch64_ld2rv4si ((const __builtin_aarch64_simd_si *) __a);
18759 ret.val[0] = (uint32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 0);
18760 ret.val[1] = (uint32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 1);
18761 return ret;
18764 __extension__ extern __inline uint64x2x2_t
18765 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18766 vld2q_dup_u64 (const uint64_t * __a)
18768 uint64x2x2_t ret;
18769 __builtin_aarch64_simd_oi __o;
18770 __o = __builtin_aarch64_ld2rv2di ((const __builtin_aarch64_simd_di *) __a);
18771 ret.val[0] = (uint64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 0);
18772 ret.val[1] = (uint64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 1);
18773 return ret;
18776 __extension__ extern __inline float16x8x2_t
18777 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18778 vld2q_dup_f16 (const float16_t * __a)
18780 float16x8x2_t ret;
18781 __builtin_aarch64_simd_oi __o;
18782 __o = __builtin_aarch64_ld2rv8hf ((const __builtin_aarch64_simd_hf *) __a);
18783 ret.val[0] = (float16x8_t) __builtin_aarch64_get_qregoiv8hf (__o, 0);
18784 ret.val[1] = __builtin_aarch64_get_qregoiv8hf (__o, 1);
18785 return ret;
18788 __extension__ extern __inline float32x4x2_t
18789 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18790 vld2q_dup_f32 (const float32_t * __a)
18792 float32x4x2_t ret;
18793 __builtin_aarch64_simd_oi __o;
18794 __o = __builtin_aarch64_ld2rv4sf ((const __builtin_aarch64_simd_sf *) __a);
18795 ret.val[0] = (float32x4_t) __builtin_aarch64_get_qregoiv4sf (__o, 0);
18796 ret.val[1] = (float32x4_t) __builtin_aarch64_get_qregoiv4sf (__o, 1);
18797 return ret;
18800 __extension__ extern __inline float64x2x2_t
18801 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18802 vld2q_dup_f64 (const float64_t * __a)
18804 float64x2x2_t ret;
18805 __builtin_aarch64_simd_oi __o;
18806 __o = __builtin_aarch64_ld2rv2df ((const __builtin_aarch64_simd_df *) __a);
18807 ret.val[0] = (float64x2_t) __builtin_aarch64_get_qregoiv2df (__o, 0);
18808 ret.val[1] = (float64x2_t) __builtin_aarch64_get_qregoiv2df (__o, 1);
18809 return ret;
18812 __extension__ extern __inline poly64x2x2_t
18813 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18814 vld2q_dup_p64 (const poly64_t * __a)
18816 poly64x2x2_t ret;
18817 __builtin_aarch64_simd_oi __o;
18818 __o = __builtin_aarch64_ld2rv2di ((const __builtin_aarch64_simd_di *) __a);
18819 ret.val[0] = (poly64x2_t) __builtin_aarch64_get_qregoiv2di_pss (__o, 0);
18820 ret.val[1] = (poly64x2_t) __builtin_aarch64_get_qregoiv2di_pss (__o, 1);
18821 return ret;
18824 __extension__ extern __inline int64x1x3_t
18825 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18826 vld3_dup_s64 (const int64_t * __a)
18828 int64x1x3_t ret;
18829 __builtin_aarch64_simd_ci __o;
18830 __o = __builtin_aarch64_ld3rdi ((const __builtin_aarch64_simd_di *) __a);
18831 ret.val[0] = (int64x1_t) __builtin_aarch64_get_dregcidi (__o, 0);
18832 ret.val[1] = (int64x1_t) __builtin_aarch64_get_dregcidi (__o, 1);
18833 ret.val[2] = (int64x1_t) __builtin_aarch64_get_dregcidi (__o, 2);
18834 return ret;
18837 __extension__ extern __inline uint64x1x3_t
18838 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18839 vld3_dup_u64 (const uint64_t * __a)
18841 uint64x1x3_t ret;
18842 __builtin_aarch64_simd_ci __o;
18843 __o = __builtin_aarch64_ld3rdi ((const __builtin_aarch64_simd_di *) __a);
18844 ret.val[0] = (uint64x1_t) __builtin_aarch64_get_dregcidi (__o, 0);
18845 ret.val[1] = (uint64x1_t) __builtin_aarch64_get_dregcidi (__o, 1);
18846 ret.val[2] = (uint64x1_t) __builtin_aarch64_get_dregcidi (__o, 2);
18847 return ret;
18850 __extension__ extern __inline float64x1x3_t
18851 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18852 vld3_dup_f64 (const float64_t * __a)
18854 float64x1x3_t ret;
18855 __builtin_aarch64_simd_ci __o;
18856 __o = __builtin_aarch64_ld3rdf ((const __builtin_aarch64_simd_df *) __a);
18857 ret.val[0] = (float64x1_t) {__builtin_aarch64_get_dregcidf (__o, 0)};
18858 ret.val[1] = (float64x1_t) {__builtin_aarch64_get_dregcidf (__o, 1)};
18859 ret.val[2] = (float64x1_t) {__builtin_aarch64_get_dregcidf (__o, 2)};
18860 return ret;
18863 __extension__ extern __inline int8x8x3_t
18864 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18865 vld3_dup_s8 (const int8_t * __a)
18867 int8x8x3_t ret;
18868 __builtin_aarch64_simd_ci __o;
18869 __o = __builtin_aarch64_ld3rv8qi ((const __builtin_aarch64_simd_qi *) __a);
18870 ret.val[0] = (int8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 0);
18871 ret.val[1] = (int8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 1);
18872 ret.val[2] = (int8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 2);
18873 return ret;
18876 __extension__ extern __inline poly8x8x3_t
18877 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18878 vld3_dup_p8 (const poly8_t * __a)
18880 poly8x8x3_t ret;
18881 __builtin_aarch64_simd_ci __o;
18882 __o = __builtin_aarch64_ld3rv8qi ((const __builtin_aarch64_simd_qi *) __a);
18883 ret.val[0] = (poly8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 0);
18884 ret.val[1] = (poly8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 1);
18885 ret.val[2] = (poly8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 2);
18886 return ret;
18889 __extension__ extern __inline int16x4x3_t
18890 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18891 vld3_dup_s16 (const int16_t * __a)
18893 int16x4x3_t ret;
18894 __builtin_aarch64_simd_ci __o;
18895 __o = __builtin_aarch64_ld3rv4hi ((const __builtin_aarch64_simd_hi *) __a);
18896 ret.val[0] = (int16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 0);
18897 ret.val[1] = (int16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 1);
18898 ret.val[2] = (int16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 2);
18899 return ret;
18902 __extension__ extern __inline poly16x4x3_t
18903 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18904 vld3_dup_p16 (const poly16_t * __a)
18906 poly16x4x3_t ret;
18907 __builtin_aarch64_simd_ci __o;
18908 __o = __builtin_aarch64_ld3rv4hi ((const __builtin_aarch64_simd_hi *) __a);
18909 ret.val[0] = (poly16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 0);
18910 ret.val[1] = (poly16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 1);
18911 ret.val[2] = (poly16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 2);
18912 return ret;
18915 __extension__ extern __inline int32x2x3_t
18916 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18917 vld3_dup_s32 (const int32_t * __a)
18919 int32x2x3_t ret;
18920 __builtin_aarch64_simd_ci __o;
18921 __o = __builtin_aarch64_ld3rv2si ((const __builtin_aarch64_simd_si *) __a);
18922 ret.val[0] = (int32x2_t) __builtin_aarch64_get_dregciv2si (__o, 0);
18923 ret.val[1] = (int32x2_t) __builtin_aarch64_get_dregciv2si (__o, 1);
18924 ret.val[2] = (int32x2_t) __builtin_aarch64_get_dregciv2si (__o, 2);
18925 return ret;
18928 __extension__ extern __inline uint8x8x3_t
18929 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18930 vld3_dup_u8 (const uint8_t * __a)
18932 uint8x8x3_t ret;
18933 __builtin_aarch64_simd_ci __o;
18934 __o = __builtin_aarch64_ld3rv8qi ((const __builtin_aarch64_simd_qi *) __a);
18935 ret.val[0] = (uint8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 0);
18936 ret.val[1] = (uint8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 1);
18937 ret.val[2] = (uint8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 2);
18938 return ret;
18941 __extension__ extern __inline uint16x4x3_t
18942 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18943 vld3_dup_u16 (const uint16_t * __a)
18945 uint16x4x3_t ret;
18946 __builtin_aarch64_simd_ci __o;
18947 __o = __builtin_aarch64_ld3rv4hi ((const __builtin_aarch64_simd_hi *) __a);
18948 ret.val[0] = (uint16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 0);
18949 ret.val[1] = (uint16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 1);
18950 ret.val[2] = (uint16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 2);
18951 return ret;
18954 __extension__ extern __inline uint32x2x3_t
18955 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18956 vld3_dup_u32 (const uint32_t * __a)
18958 uint32x2x3_t ret;
18959 __builtin_aarch64_simd_ci __o;
18960 __o = __builtin_aarch64_ld3rv2si ((const __builtin_aarch64_simd_si *) __a);
18961 ret.val[0] = (uint32x2_t) __builtin_aarch64_get_dregciv2si (__o, 0);
18962 ret.val[1] = (uint32x2_t) __builtin_aarch64_get_dregciv2si (__o, 1);
18963 ret.val[2] = (uint32x2_t) __builtin_aarch64_get_dregciv2si (__o, 2);
18964 return ret;
18967 __extension__ extern __inline float16x4x3_t
18968 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18969 vld3_dup_f16 (const float16_t * __a)
18971 float16x4x3_t ret;
18972 __builtin_aarch64_simd_ci __o;
18973 __o = __builtin_aarch64_ld3rv4hf ((const __builtin_aarch64_simd_hf *) __a);
18974 ret.val[0] = (float16x4_t) __builtin_aarch64_get_dregciv4hf (__o, 0);
18975 ret.val[1] = (float16x4_t) __builtin_aarch64_get_dregciv4hf (__o, 1);
18976 ret.val[2] = (float16x4_t) __builtin_aarch64_get_dregciv4hf (__o, 2);
18977 return ret;
18980 __extension__ extern __inline float32x2x3_t
18981 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18982 vld3_dup_f32 (const float32_t * __a)
18984 float32x2x3_t ret;
18985 __builtin_aarch64_simd_ci __o;
18986 __o = __builtin_aarch64_ld3rv2sf ((const __builtin_aarch64_simd_sf *) __a);
18987 ret.val[0] = (float32x2_t) __builtin_aarch64_get_dregciv2sf (__o, 0);
18988 ret.val[1] = (float32x2_t) __builtin_aarch64_get_dregciv2sf (__o, 1);
18989 ret.val[2] = (float32x2_t) __builtin_aarch64_get_dregciv2sf (__o, 2);
18990 return ret;
18993 __extension__ extern __inline poly64x1x3_t
18994 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18995 vld3_dup_p64 (const poly64_t * __a)
18997 poly64x1x3_t ret;
18998 __builtin_aarch64_simd_ci __o;
18999 __o = __builtin_aarch64_ld3rv2di ((const __builtin_aarch64_simd_di *) __a);
19000 ret.val[0] = (poly64x1_t) __builtin_aarch64_get_dregcidi_pss (__o, 0);
19001 ret.val[1] = (poly64x1_t) __builtin_aarch64_get_dregcidi_pss (__o, 1);
19002 ret.val[2] = (poly64x1_t) __builtin_aarch64_get_dregcidi_pss (__o, 2);
19003 return ret;
19006 __extension__ extern __inline int8x16x3_t
19007 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19008 vld3q_dup_s8 (const int8_t * __a)
19010 int8x16x3_t ret;
19011 __builtin_aarch64_simd_ci __o;
19012 __o = __builtin_aarch64_ld3rv16qi ((const __builtin_aarch64_simd_qi *) __a);
19013 ret.val[0] = (int8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 0);
19014 ret.val[1] = (int8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 1);
19015 ret.val[2] = (int8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 2);
19016 return ret;
19019 __extension__ extern __inline poly8x16x3_t
19020 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19021 vld3q_dup_p8 (const poly8_t * __a)
19023 poly8x16x3_t ret;
19024 __builtin_aarch64_simd_ci __o;
19025 __o = __builtin_aarch64_ld3rv16qi ((const __builtin_aarch64_simd_qi *) __a);
19026 ret.val[0] = (poly8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 0);
19027 ret.val[1] = (poly8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 1);
19028 ret.val[2] = (poly8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 2);
19029 return ret;
19032 __extension__ extern __inline int16x8x3_t
19033 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19034 vld3q_dup_s16 (const int16_t * __a)
19036 int16x8x3_t ret;
19037 __builtin_aarch64_simd_ci __o;
19038 __o = __builtin_aarch64_ld3rv8hi ((const __builtin_aarch64_simd_hi *) __a);
19039 ret.val[0] = (int16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 0);
19040 ret.val[1] = (int16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 1);
19041 ret.val[2] = (int16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 2);
19042 return ret;
19045 __extension__ extern __inline poly16x8x3_t
19046 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19047 vld3q_dup_p16 (const poly16_t * __a)
19049 poly16x8x3_t ret;
19050 __builtin_aarch64_simd_ci __o;
19051 __o = __builtin_aarch64_ld3rv8hi ((const __builtin_aarch64_simd_hi *) __a);
19052 ret.val[0] = (poly16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 0);
19053 ret.val[1] = (poly16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 1);
19054 ret.val[2] = (poly16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 2);
19055 return ret;
19058 __extension__ extern __inline int32x4x3_t
19059 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19060 vld3q_dup_s32 (const int32_t * __a)
19062 int32x4x3_t ret;
19063 __builtin_aarch64_simd_ci __o;
19064 __o = __builtin_aarch64_ld3rv4si ((const __builtin_aarch64_simd_si *) __a);
19065 ret.val[0] = (int32x4_t) __builtin_aarch64_get_qregciv4si (__o, 0);
19066 ret.val[1] = (int32x4_t) __builtin_aarch64_get_qregciv4si (__o, 1);
19067 ret.val[2] = (int32x4_t) __builtin_aarch64_get_qregciv4si (__o, 2);
19068 return ret;
19071 __extension__ extern __inline int64x2x3_t
19072 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19073 vld3q_dup_s64 (const int64_t * __a)
19075 int64x2x3_t ret;
19076 __builtin_aarch64_simd_ci __o;
19077 __o = __builtin_aarch64_ld3rv2di ((const __builtin_aarch64_simd_di *) __a);
19078 ret.val[0] = (int64x2_t) __builtin_aarch64_get_qregciv2di (__o, 0);
19079 ret.val[1] = (int64x2_t) __builtin_aarch64_get_qregciv2di (__o, 1);
19080 ret.val[2] = (int64x2_t) __builtin_aarch64_get_qregciv2di (__o, 2);
19081 return ret;
19084 __extension__ extern __inline uint8x16x3_t
19085 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19086 vld3q_dup_u8 (const uint8_t * __a)
19088 uint8x16x3_t ret;
19089 __builtin_aarch64_simd_ci __o;
19090 __o = __builtin_aarch64_ld3rv16qi ((const __builtin_aarch64_simd_qi *) __a);
19091 ret.val[0] = (uint8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 0);
19092 ret.val[1] = (uint8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 1);
19093 ret.val[2] = (uint8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 2);
19094 return ret;
19097 __extension__ extern __inline uint16x8x3_t
19098 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19099 vld3q_dup_u16 (const uint16_t * __a)
19101 uint16x8x3_t ret;
19102 __builtin_aarch64_simd_ci __o;
19103 __o = __builtin_aarch64_ld3rv8hi ((const __builtin_aarch64_simd_hi *) __a);
19104 ret.val[0] = (uint16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 0);
19105 ret.val[1] = (uint16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 1);
19106 ret.val[2] = (uint16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 2);
19107 return ret;
19110 __extension__ extern __inline uint32x4x3_t
19111 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19112 vld3q_dup_u32 (const uint32_t * __a)
19114 uint32x4x3_t ret;
19115 __builtin_aarch64_simd_ci __o;
19116 __o = __builtin_aarch64_ld3rv4si ((const __builtin_aarch64_simd_si *) __a);
19117 ret.val[0] = (uint32x4_t) __builtin_aarch64_get_qregciv4si (__o, 0);
19118 ret.val[1] = (uint32x4_t) __builtin_aarch64_get_qregciv4si (__o, 1);
19119 ret.val[2] = (uint32x4_t) __builtin_aarch64_get_qregciv4si (__o, 2);
19120 return ret;
19123 __extension__ extern __inline uint64x2x3_t
19124 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19125 vld3q_dup_u64 (const uint64_t * __a)
19127 uint64x2x3_t ret;
19128 __builtin_aarch64_simd_ci __o;
19129 __o = __builtin_aarch64_ld3rv2di ((const __builtin_aarch64_simd_di *) __a);
19130 ret.val[0] = (uint64x2_t) __builtin_aarch64_get_qregciv2di (__o, 0);
19131 ret.val[1] = (uint64x2_t) __builtin_aarch64_get_qregciv2di (__o, 1);
19132 ret.val[2] = (uint64x2_t) __builtin_aarch64_get_qregciv2di (__o, 2);
19133 return ret;
19136 __extension__ extern __inline float16x8x3_t
19137 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19138 vld3q_dup_f16 (const float16_t * __a)
19140 float16x8x3_t ret;
19141 __builtin_aarch64_simd_ci __o;
19142 __o = __builtin_aarch64_ld3rv8hf ((const __builtin_aarch64_simd_hf *) __a);
19143 ret.val[0] = (float16x8_t) __builtin_aarch64_get_qregciv8hf (__o, 0);
19144 ret.val[1] = (float16x8_t) __builtin_aarch64_get_qregciv8hf (__o, 1);
19145 ret.val[2] = (float16x8_t) __builtin_aarch64_get_qregciv8hf (__o, 2);
19146 return ret;
19149 __extension__ extern __inline float32x4x3_t
19150 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19151 vld3q_dup_f32 (const float32_t * __a)
19153 float32x4x3_t ret;
19154 __builtin_aarch64_simd_ci __o;
19155 __o = __builtin_aarch64_ld3rv4sf ((const __builtin_aarch64_simd_sf *) __a);
19156 ret.val[0] = (float32x4_t) __builtin_aarch64_get_qregciv4sf (__o, 0);
19157 ret.val[1] = (float32x4_t) __builtin_aarch64_get_qregciv4sf (__o, 1);
19158 ret.val[2] = (float32x4_t) __builtin_aarch64_get_qregciv4sf (__o, 2);
19159 return ret;
19162 __extension__ extern __inline float64x2x3_t
19163 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19164 vld3q_dup_f64 (const float64_t * __a)
19166 float64x2x3_t ret;
19167 __builtin_aarch64_simd_ci __o;
19168 __o = __builtin_aarch64_ld3rv2df ((const __builtin_aarch64_simd_df *) __a);
19169 ret.val[0] = (float64x2_t) __builtin_aarch64_get_qregciv2df (__o, 0);
19170 ret.val[1] = (float64x2_t) __builtin_aarch64_get_qregciv2df (__o, 1);
19171 ret.val[2] = (float64x2_t) __builtin_aarch64_get_qregciv2df (__o, 2);
19172 return ret;
19175 __extension__ extern __inline poly64x2x3_t
19176 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19177 vld3q_dup_p64 (const poly64_t * __a)
19179 poly64x2x3_t ret;
19180 __builtin_aarch64_simd_ci __o;
19181 __o = __builtin_aarch64_ld3rv2di ((const __builtin_aarch64_simd_di *) __a);
19182 ret.val[0] = (poly64x2_t) __builtin_aarch64_get_qregciv2di_pss (__o, 0);
19183 ret.val[1] = (poly64x2_t) __builtin_aarch64_get_qregciv2di_pss (__o, 1);
19184 ret.val[2] = (poly64x2_t) __builtin_aarch64_get_qregciv2di_pss (__o, 2);
19185 return ret;
19188 __extension__ extern __inline int64x1x4_t
19189 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19190 vld4_dup_s64 (const int64_t * __a)
19192 int64x1x4_t ret;
19193 __builtin_aarch64_simd_xi __o;
19194 __o = __builtin_aarch64_ld4rdi ((const __builtin_aarch64_simd_di *) __a);
19195 ret.val[0] = (int64x1_t) __builtin_aarch64_get_dregxidi (__o, 0);
19196 ret.val[1] = (int64x1_t) __builtin_aarch64_get_dregxidi (__o, 1);
19197 ret.val[2] = (int64x1_t) __builtin_aarch64_get_dregxidi (__o, 2);
19198 ret.val[3] = (int64x1_t) __builtin_aarch64_get_dregxidi (__o, 3);
19199 return ret;
19202 __extension__ extern __inline uint64x1x4_t
19203 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19204 vld4_dup_u64 (const uint64_t * __a)
19206 uint64x1x4_t ret;
19207 __builtin_aarch64_simd_xi __o;
19208 __o = __builtin_aarch64_ld4rdi ((const __builtin_aarch64_simd_di *) __a);
19209 ret.val[0] = (uint64x1_t) __builtin_aarch64_get_dregxidi (__o, 0);
19210 ret.val[1] = (uint64x1_t) __builtin_aarch64_get_dregxidi (__o, 1);
19211 ret.val[2] = (uint64x1_t) __builtin_aarch64_get_dregxidi (__o, 2);
19212 ret.val[3] = (uint64x1_t) __builtin_aarch64_get_dregxidi (__o, 3);
19213 return ret;
19216 __extension__ extern __inline float64x1x4_t
19217 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19218 vld4_dup_f64 (const float64_t * __a)
19220 float64x1x4_t ret;
19221 __builtin_aarch64_simd_xi __o;
19222 __o = __builtin_aarch64_ld4rdf ((const __builtin_aarch64_simd_df *) __a);
19223 ret.val[0] = (float64x1_t) {__builtin_aarch64_get_dregxidf (__o, 0)};
19224 ret.val[1] = (float64x1_t) {__builtin_aarch64_get_dregxidf (__o, 1)};
19225 ret.val[2] = (float64x1_t) {__builtin_aarch64_get_dregxidf (__o, 2)};
19226 ret.val[3] = (float64x1_t) {__builtin_aarch64_get_dregxidf (__o, 3)};
19227 return ret;
19230 __extension__ extern __inline int8x8x4_t
19231 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19232 vld4_dup_s8 (const int8_t * __a)
19234 int8x8x4_t ret;
19235 __builtin_aarch64_simd_xi __o;
19236 __o = __builtin_aarch64_ld4rv8qi ((const __builtin_aarch64_simd_qi *) __a);
19237 ret.val[0] = (int8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 0);
19238 ret.val[1] = (int8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 1);
19239 ret.val[2] = (int8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 2);
19240 ret.val[3] = (int8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 3);
19241 return ret;
19244 __extension__ extern __inline poly8x8x4_t
19245 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19246 vld4_dup_p8 (const poly8_t * __a)
19248 poly8x8x4_t ret;
19249 __builtin_aarch64_simd_xi __o;
19250 __o = __builtin_aarch64_ld4rv8qi ((const __builtin_aarch64_simd_qi *) __a);
19251 ret.val[0] = (poly8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 0);
19252 ret.val[1] = (poly8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 1);
19253 ret.val[2] = (poly8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 2);
19254 ret.val[3] = (poly8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 3);
19255 return ret;
19258 __extension__ extern __inline int16x4x4_t
19259 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19260 vld4_dup_s16 (const int16_t * __a)
19262 int16x4x4_t ret;
19263 __builtin_aarch64_simd_xi __o;
19264 __o = __builtin_aarch64_ld4rv4hi ((const __builtin_aarch64_simd_hi *) __a);
19265 ret.val[0] = (int16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 0);
19266 ret.val[1] = (int16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 1);
19267 ret.val[2] = (int16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 2);
19268 ret.val[3] = (int16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 3);
19269 return ret;
19272 __extension__ extern __inline poly16x4x4_t
19273 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19274 vld4_dup_p16 (const poly16_t * __a)
19276 poly16x4x4_t ret;
19277 __builtin_aarch64_simd_xi __o;
19278 __o = __builtin_aarch64_ld4rv4hi ((const __builtin_aarch64_simd_hi *) __a);
19279 ret.val[0] = (poly16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 0);
19280 ret.val[1] = (poly16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 1);
19281 ret.val[2] = (poly16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 2);
19282 ret.val[3] = (poly16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 3);
19283 return ret;
19286 __extension__ extern __inline int32x2x4_t
19287 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19288 vld4_dup_s32 (const int32_t * __a)
19290 int32x2x4_t ret;
19291 __builtin_aarch64_simd_xi __o;
19292 __o = __builtin_aarch64_ld4rv2si ((const __builtin_aarch64_simd_si *) __a);
19293 ret.val[0] = (int32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 0);
19294 ret.val[1] = (int32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 1);
19295 ret.val[2] = (int32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 2);
19296 ret.val[3] = (int32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 3);
19297 return ret;
19300 __extension__ extern __inline uint8x8x4_t
19301 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19302 vld4_dup_u8 (const uint8_t * __a)
19304 uint8x8x4_t ret;
19305 __builtin_aarch64_simd_xi __o;
19306 __o = __builtin_aarch64_ld4rv8qi ((const __builtin_aarch64_simd_qi *) __a);
19307 ret.val[0] = (uint8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 0);
19308 ret.val[1] = (uint8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 1);
19309 ret.val[2] = (uint8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 2);
19310 ret.val[3] = (uint8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 3);
19311 return ret;
19314 __extension__ extern __inline uint16x4x4_t
19315 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19316 vld4_dup_u16 (const uint16_t * __a)
19318 uint16x4x4_t ret;
19319 __builtin_aarch64_simd_xi __o;
19320 __o = __builtin_aarch64_ld4rv4hi ((const __builtin_aarch64_simd_hi *) __a);
19321 ret.val[0] = (uint16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 0);
19322 ret.val[1] = (uint16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 1);
19323 ret.val[2] = (uint16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 2);
19324 ret.val[3] = (uint16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 3);
19325 return ret;
19328 __extension__ extern __inline uint32x2x4_t
19329 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19330 vld4_dup_u32 (const uint32_t * __a)
19332 uint32x2x4_t ret;
19333 __builtin_aarch64_simd_xi __o;
19334 __o = __builtin_aarch64_ld4rv2si ((const __builtin_aarch64_simd_si *) __a);
19335 ret.val[0] = (uint32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 0);
19336 ret.val[1] = (uint32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 1);
19337 ret.val[2] = (uint32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 2);
19338 ret.val[3] = (uint32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 3);
19339 return ret;
19342 __extension__ extern __inline float16x4x4_t
19343 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19344 vld4_dup_f16 (const float16_t * __a)
19346 float16x4x4_t ret;
19347 __builtin_aarch64_simd_xi __o;
19348 __o = __builtin_aarch64_ld4rv4hf ((const __builtin_aarch64_simd_hf *) __a);
19349 ret.val[0] = (float16x4_t) __builtin_aarch64_get_dregxiv4hf (__o, 0);
19350 ret.val[1] = (float16x4_t) __builtin_aarch64_get_dregxiv4hf (__o, 1);
19351 ret.val[2] = (float16x4_t) __builtin_aarch64_get_dregxiv4hf (__o, 2);
19352 ret.val[3] = (float16x4_t) __builtin_aarch64_get_dregxiv4hf (__o, 3);
19353 return ret;
19356 __extension__ extern __inline float32x2x4_t
19357 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19358 vld4_dup_f32 (const float32_t * __a)
19360 float32x2x4_t ret;
19361 __builtin_aarch64_simd_xi __o;
19362 __o = __builtin_aarch64_ld4rv2sf ((const __builtin_aarch64_simd_sf *) __a);
19363 ret.val[0] = (float32x2_t) __builtin_aarch64_get_dregxiv2sf (__o, 0);
19364 ret.val[1] = (float32x2_t) __builtin_aarch64_get_dregxiv2sf (__o, 1);
19365 ret.val[2] = (float32x2_t) __builtin_aarch64_get_dregxiv2sf (__o, 2);
19366 ret.val[3] = (float32x2_t) __builtin_aarch64_get_dregxiv2sf (__o, 3);
19367 return ret;
19370 __extension__ extern __inline poly64x1x4_t
19371 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19372 vld4_dup_p64 (const poly64_t * __a)
19374 poly64x1x4_t ret;
19375 __builtin_aarch64_simd_xi __o;
19376 __o = __builtin_aarch64_ld4rv2di ((const __builtin_aarch64_simd_di *) __a);
19377 ret.val[0] = (poly64x1_t) __builtin_aarch64_get_dregxidi_pss (__o, 0);
19378 ret.val[1] = (poly64x1_t) __builtin_aarch64_get_dregxidi_pss (__o, 1);
19379 ret.val[2] = (poly64x1_t) __builtin_aarch64_get_dregxidi_pss (__o, 2);
19380 ret.val[3] = (poly64x1_t) __builtin_aarch64_get_dregxidi_pss (__o, 3);
19381 return ret;
19384 __extension__ extern __inline int8x16x4_t
19385 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19386 vld4q_dup_s8 (const int8_t * __a)
19388 int8x16x4_t ret;
19389 __builtin_aarch64_simd_xi __o;
19390 __o = __builtin_aarch64_ld4rv16qi ((const __builtin_aarch64_simd_qi *) __a);
19391 ret.val[0] = (int8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 0);
19392 ret.val[1] = (int8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 1);
19393 ret.val[2] = (int8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 2);
19394 ret.val[3] = (int8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 3);
19395 return ret;
19398 __extension__ extern __inline poly8x16x4_t
19399 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19400 vld4q_dup_p8 (const poly8_t * __a)
19402 poly8x16x4_t ret;
19403 __builtin_aarch64_simd_xi __o;
19404 __o = __builtin_aarch64_ld4rv16qi ((const __builtin_aarch64_simd_qi *) __a);
19405 ret.val[0] = (poly8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 0);
19406 ret.val[1] = (poly8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 1);
19407 ret.val[2] = (poly8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 2);
19408 ret.val[3] = (poly8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 3);
19409 return ret;
19412 __extension__ extern __inline int16x8x4_t
19413 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19414 vld4q_dup_s16 (const int16_t * __a)
19416 int16x8x4_t ret;
19417 __builtin_aarch64_simd_xi __o;
19418 __o = __builtin_aarch64_ld4rv8hi ((const __builtin_aarch64_simd_hi *) __a);
19419 ret.val[0] = (int16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 0);
19420 ret.val[1] = (int16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 1);
19421 ret.val[2] = (int16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 2);
19422 ret.val[3] = (int16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 3);
19423 return ret;
19426 __extension__ extern __inline poly16x8x4_t
19427 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19428 vld4q_dup_p16 (const poly16_t * __a)
19430 poly16x8x4_t ret;
19431 __builtin_aarch64_simd_xi __o;
19432 __o = __builtin_aarch64_ld4rv8hi ((const __builtin_aarch64_simd_hi *) __a);
19433 ret.val[0] = (poly16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 0);
19434 ret.val[1] = (poly16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 1);
19435 ret.val[2] = (poly16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 2);
19436 ret.val[3] = (poly16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 3);
19437 return ret;
19440 __extension__ extern __inline int32x4x4_t
19441 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19442 vld4q_dup_s32 (const int32_t * __a)
19444 int32x4x4_t ret;
19445 __builtin_aarch64_simd_xi __o;
19446 __o = __builtin_aarch64_ld4rv4si ((const __builtin_aarch64_simd_si *) __a);
19447 ret.val[0] = (int32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 0);
19448 ret.val[1] = (int32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 1);
19449 ret.val[2] = (int32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 2);
19450 ret.val[3] = (int32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 3);
19451 return ret;
19454 __extension__ extern __inline int64x2x4_t
19455 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19456 vld4q_dup_s64 (const int64_t * __a)
19458 int64x2x4_t ret;
19459 __builtin_aarch64_simd_xi __o;
19460 __o = __builtin_aarch64_ld4rv2di ((const __builtin_aarch64_simd_di *) __a);
19461 ret.val[0] = (int64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 0);
19462 ret.val[1] = (int64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 1);
19463 ret.val[2] = (int64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 2);
19464 ret.val[3] = (int64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 3);
19465 return ret;
19468 __extension__ extern __inline uint8x16x4_t
19469 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19470 vld4q_dup_u8 (const uint8_t * __a)
19472 uint8x16x4_t ret;
19473 __builtin_aarch64_simd_xi __o;
19474 __o = __builtin_aarch64_ld4rv16qi ((const __builtin_aarch64_simd_qi *) __a);
19475 ret.val[0] = (uint8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 0);
19476 ret.val[1] = (uint8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 1);
19477 ret.val[2] = (uint8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 2);
19478 ret.val[3] = (uint8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 3);
19479 return ret;
19482 __extension__ extern __inline uint16x8x4_t
19483 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19484 vld4q_dup_u16 (const uint16_t * __a)
19486 uint16x8x4_t ret;
19487 __builtin_aarch64_simd_xi __o;
19488 __o = __builtin_aarch64_ld4rv8hi ((const __builtin_aarch64_simd_hi *) __a);
19489 ret.val[0] = (uint16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 0);
19490 ret.val[1] = (uint16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 1);
19491 ret.val[2] = (uint16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 2);
19492 ret.val[3] = (uint16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 3);
19493 return ret;
19496 __extension__ extern __inline uint32x4x4_t
19497 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19498 vld4q_dup_u32 (const uint32_t * __a)
19500 uint32x4x4_t ret;
19501 __builtin_aarch64_simd_xi __o;
19502 __o = __builtin_aarch64_ld4rv4si ((const __builtin_aarch64_simd_si *) __a);
19503 ret.val[0] = (uint32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 0);
19504 ret.val[1] = (uint32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 1);
19505 ret.val[2] = (uint32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 2);
19506 ret.val[3] = (uint32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 3);
19507 return ret;
19510 __extension__ extern __inline uint64x2x4_t
19511 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19512 vld4q_dup_u64 (const uint64_t * __a)
19514 uint64x2x4_t ret;
19515 __builtin_aarch64_simd_xi __o;
19516 __o = __builtin_aarch64_ld4rv2di ((const __builtin_aarch64_simd_di *) __a);
19517 ret.val[0] = (uint64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 0);
19518 ret.val[1] = (uint64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 1);
19519 ret.val[2] = (uint64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 2);
19520 ret.val[3] = (uint64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 3);
19521 return ret;
19524 __extension__ extern __inline float16x8x4_t
19525 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19526 vld4q_dup_f16 (const float16_t * __a)
19528 float16x8x4_t ret;
19529 __builtin_aarch64_simd_xi __o;
19530 __o = __builtin_aarch64_ld4rv8hf ((const __builtin_aarch64_simd_hf *) __a);
19531 ret.val[0] = (float16x8_t) __builtin_aarch64_get_qregxiv8hf (__o, 0);
19532 ret.val[1] = (float16x8_t) __builtin_aarch64_get_qregxiv8hf (__o, 1);
19533 ret.val[2] = (float16x8_t) __builtin_aarch64_get_qregxiv8hf (__o, 2);
19534 ret.val[3] = (float16x8_t) __builtin_aarch64_get_qregxiv8hf (__o, 3);
19535 return ret;
19538 __extension__ extern __inline float32x4x4_t
19539 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19540 vld4q_dup_f32 (const float32_t * __a)
19542 float32x4x4_t ret;
19543 __builtin_aarch64_simd_xi __o;
19544 __o = __builtin_aarch64_ld4rv4sf ((const __builtin_aarch64_simd_sf *) __a);
19545 ret.val[0] = (float32x4_t) __builtin_aarch64_get_qregxiv4sf (__o, 0);
19546 ret.val[1] = (float32x4_t) __builtin_aarch64_get_qregxiv4sf (__o, 1);
19547 ret.val[2] = (float32x4_t) __builtin_aarch64_get_qregxiv4sf (__o, 2);
19548 ret.val[3] = (float32x4_t) __builtin_aarch64_get_qregxiv4sf (__o, 3);
19549 return ret;
19552 __extension__ extern __inline float64x2x4_t
19553 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19554 vld4q_dup_f64 (const float64_t * __a)
19556 float64x2x4_t ret;
19557 __builtin_aarch64_simd_xi __o;
19558 __o = __builtin_aarch64_ld4rv2df ((const __builtin_aarch64_simd_df *) __a);
19559 ret.val[0] = (float64x2_t) __builtin_aarch64_get_qregxiv2df (__o, 0);
19560 ret.val[1] = (float64x2_t) __builtin_aarch64_get_qregxiv2df (__o, 1);
19561 ret.val[2] = (float64x2_t) __builtin_aarch64_get_qregxiv2df (__o, 2);
19562 ret.val[3] = (float64x2_t) __builtin_aarch64_get_qregxiv2df (__o, 3);
19563 return ret;
19566 __extension__ extern __inline poly64x2x4_t
19567 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19568 vld4q_dup_p64 (const poly64_t * __a)
19570 poly64x2x4_t ret;
19571 __builtin_aarch64_simd_xi __o;
19572 __o = __builtin_aarch64_ld4rv2di ((const __builtin_aarch64_simd_di *) __a);
19573 ret.val[0] = (poly64x2_t) __builtin_aarch64_get_qregxiv2di_pss (__o, 0);
19574 ret.val[1] = (poly64x2_t) __builtin_aarch64_get_qregxiv2di_pss (__o, 1);
19575 ret.val[2] = (poly64x2_t) __builtin_aarch64_get_qregxiv2di_pss (__o, 2);
19576 ret.val[3] = (poly64x2_t) __builtin_aarch64_get_qregxiv2di_pss (__o, 3);
19577 return ret;
19580 /* vld2_lane */
19582 #define __LD2_LANE_FUNC(intype, vectype, largetype, ptrtype, mode, \
19583 qmode, ptrmode, funcsuffix, signedtype) \
19584 __extension__ extern __inline intype \
19585 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__)) \
19586 vld2_lane_##funcsuffix (const ptrtype * __ptr, intype __b, const int __c) \
19588 __builtin_aarch64_simd_oi __o; \
19589 largetype __temp; \
19590 __temp.val[0] = \
19591 vcombine_##funcsuffix (__b.val[0], vcreate_##funcsuffix (0)); \
19592 __temp.val[1] = \
19593 vcombine_##funcsuffix (__b.val[1], vcreate_##funcsuffix (0)); \
19594 __o = __builtin_aarch64_set_qregoi##qmode (__o, \
19595 (signedtype) __temp.val[0], \
19596 0); \
19597 __o = __builtin_aarch64_set_qregoi##qmode (__o, \
19598 (signedtype) __temp.val[1], \
19599 1); \
19600 __o = __builtin_aarch64_ld2_lane##mode ( \
19601 (__builtin_aarch64_simd_##ptrmode *) __ptr, __o, __c); \
19602 __b.val[0] = (vectype) __builtin_aarch64_get_dregoidi (__o, 0); \
19603 __b.val[1] = (vectype) __builtin_aarch64_get_dregoidi (__o, 1); \
19604 return __b; \
19607 __LD2_LANE_FUNC (float16x4x2_t, float16x4_t, float16x8x2_t, float16_t, v4hf,
19608 v8hf, hf, f16, float16x8_t)
19609 __LD2_LANE_FUNC (float32x2x2_t, float32x2_t, float32x4x2_t, float32_t, v2sf, v4sf,
19610 sf, f32, float32x4_t)
19611 __LD2_LANE_FUNC (float64x1x2_t, float64x1_t, float64x2x2_t, float64_t, df, v2df,
19612 df, f64, float64x2_t)
19613 __LD2_LANE_FUNC (poly8x8x2_t, poly8x8_t, poly8x16x2_t, poly8_t, v8qi, v16qi, qi, p8,
19614 int8x16_t)
19615 __LD2_LANE_FUNC (poly16x4x2_t, poly16x4_t, poly16x8x2_t, poly16_t, v4hi, v8hi, hi,
19616 p16, int16x8_t)
19617 __LD2_LANE_FUNC (poly64x1x2_t, poly64x1_t, poly64x2x2_t, poly64_t, di,
19618 v2di_ssps, di, p64, poly64x2_t)
19619 __LD2_LANE_FUNC (int8x8x2_t, int8x8_t, int8x16x2_t, int8_t, v8qi, v16qi, qi, s8,
19620 int8x16_t)
19621 __LD2_LANE_FUNC (int16x4x2_t, int16x4_t, int16x8x2_t, int16_t, v4hi, v8hi, hi, s16,
19622 int16x8_t)
19623 __LD2_LANE_FUNC (int32x2x2_t, int32x2_t, int32x4x2_t, int32_t, v2si, v4si, si, s32,
19624 int32x4_t)
19625 __LD2_LANE_FUNC (int64x1x2_t, int64x1_t, int64x2x2_t, int64_t, di, v2di, di, s64,
19626 int64x2_t)
19627 __LD2_LANE_FUNC (uint8x8x2_t, uint8x8_t, uint8x16x2_t, uint8_t, v8qi, v16qi, qi, u8,
19628 int8x16_t)
19629 __LD2_LANE_FUNC (uint16x4x2_t, uint16x4_t, uint16x8x2_t, uint16_t, v4hi, v8hi, hi,
19630 u16, int16x8_t)
19631 __LD2_LANE_FUNC (uint32x2x2_t, uint32x2_t, uint32x4x2_t, uint32_t, v2si, v4si, si,
19632 u32, int32x4_t)
19633 __LD2_LANE_FUNC (uint64x1x2_t, uint64x1_t, uint64x2x2_t, uint64_t, di, v2di, di,
19634 u64, int64x2_t)
19636 #undef __LD2_LANE_FUNC
19638 /* vld2q_lane */
19640 #define __LD2_LANE_FUNC(intype, vtype, ptrtype, mode, ptrmode, funcsuffix) \
19641 __extension__ extern __inline intype \
19642 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__)) \
19643 vld2q_lane_##funcsuffix (const ptrtype * __ptr, intype __b, const int __c) \
19645 __builtin_aarch64_simd_oi __o; \
19646 intype ret; \
19647 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) __b.val[0], 0); \
19648 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) __b.val[1], 1); \
19649 __o = __builtin_aarch64_ld2_lane##mode ( \
19650 (__builtin_aarch64_simd_##ptrmode *) __ptr, __o, __c); \
19651 ret.val[0] = (vtype) __builtin_aarch64_get_qregoiv4si (__o, 0); \
19652 ret.val[1] = (vtype) __builtin_aarch64_get_qregoiv4si (__o, 1); \
19653 return ret; \
19656 __LD2_LANE_FUNC (float16x8x2_t, float16x8_t, float16_t, v8hf, hf, f16)
19657 __LD2_LANE_FUNC (float32x4x2_t, float32x4_t, float32_t, v4sf, sf, f32)
19658 __LD2_LANE_FUNC (float64x2x2_t, float64x2_t, float64_t, v2df, df, f64)
19659 __LD2_LANE_FUNC (poly8x16x2_t, poly8x16_t, poly8_t, v16qi, qi, p8)
19660 __LD2_LANE_FUNC (poly16x8x2_t, poly16x8_t, poly16_t, v8hi, hi, p16)
19661 __LD2_LANE_FUNC (poly64x2x2_t, poly64x2_t, poly64_t, v2di, di, p64)
19662 __LD2_LANE_FUNC (int8x16x2_t, int8x16_t, int8_t, v16qi, qi, s8)
19663 __LD2_LANE_FUNC (int16x8x2_t, int16x8_t, int16_t, v8hi, hi, s16)
19664 __LD2_LANE_FUNC (int32x4x2_t, int32x4_t, int32_t, v4si, si, s32)
19665 __LD2_LANE_FUNC (int64x2x2_t, int64x2_t, int64_t, v2di, di, s64)
19666 __LD2_LANE_FUNC (uint8x16x2_t, uint8x16_t, uint8_t, v16qi, qi, u8)
19667 __LD2_LANE_FUNC (uint16x8x2_t, uint16x8_t, uint16_t, v8hi, hi, u16)
19668 __LD2_LANE_FUNC (uint32x4x2_t, uint32x4_t, uint32_t, v4si, si, u32)
19669 __LD2_LANE_FUNC (uint64x2x2_t, uint64x2_t, uint64_t, v2di, di, u64)
19671 #undef __LD2_LANE_FUNC
19673 /* vld3_lane */
19675 #define __LD3_LANE_FUNC(intype, vectype, largetype, ptrtype, mode, \
19676 qmode, ptrmode, funcsuffix, signedtype) \
19677 __extension__ extern __inline intype \
19678 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__)) \
19679 vld3_lane_##funcsuffix (const ptrtype * __ptr, intype __b, const int __c) \
19681 __builtin_aarch64_simd_ci __o; \
19682 largetype __temp; \
19683 __temp.val[0] = \
19684 vcombine_##funcsuffix (__b.val[0], vcreate_##funcsuffix (0)); \
19685 __temp.val[1] = \
19686 vcombine_##funcsuffix (__b.val[1], vcreate_##funcsuffix (0)); \
19687 __temp.val[2] = \
19688 vcombine_##funcsuffix (__b.val[2], vcreate_##funcsuffix (0)); \
19689 __o = __builtin_aarch64_set_qregci##qmode (__o, \
19690 (signedtype) __temp.val[0], \
19691 0); \
19692 __o = __builtin_aarch64_set_qregci##qmode (__o, \
19693 (signedtype) __temp.val[1], \
19694 1); \
19695 __o = __builtin_aarch64_set_qregci##qmode (__o, \
19696 (signedtype) __temp.val[2], \
19697 2); \
19698 __o = __builtin_aarch64_ld3_lane##mode ( \
19699 (__builtin_aarch64_simd_##ptrmode *) __ptr, __o, __c); \
19700 __b.val[0] = (vectype) __builtin_aarch64_get_dregcidi (__o, 0); \
19701 __b.val[1] = (vectype) __builtin_aarch64_get_dregcidi (__o, 1); \
19702 __b.val[2] = (vectype) __builtin_aarch64_get_dregcidi (__o, 2); \
19703 return __b; \
19706 __LD3_LANE_FUNC (float16x4x3_t, float16x4_t, float16x8x3_t, float16_t, v4hf,
19707 v8hf, hf, f16, float16x8_t)
19708 __LD3_LANE_FUNC (float32x2x3_t, float32x2_t, float32x4x3_t, float32_t, v2sf, v4sf,
19709 sf, f32, float32x4_t)
19710 __LD3_LANE_FUNC (float64x1x3_t, float64x1_t, float64x2x3_t, float64_t, df, v2df,
19711 df, f64, float64x2_t)
19712 __LD3_LANE_FUNC (poly8x8x3_t, poly8x8_t, poly8x16x3_t, poly8_t, v8qi, v16qi, qi, p8,
19713 int8x16_t)
19714 __LD3_LANE_FUNC (poly16x4x3_t, poly16x4_t, poly16x8x3_t, poly16_t, v4hi, v8hi, hi,
19715 p16, int16x8_t)
19716 __LD3_LANE_FUNC (poly64x1x3_t, poly64x1_t, poly64x2x3_t, poly64_t, di,
19717 v2di_ssps, di, p64, poly64x2_t)
19718 __LD3_LANE_FUNC (int8x8x3_t, int8x8_t, int8x16x3_t, int8_t, v8qi, v16qi, qi, s8,
19719 int8x16_t)
19720 __LD3_LANE_FUNC (int16x4x3_t, int16x4_t, int16x8x3_t, int16_t, v4hi, v8hi, hi, s16,
19721 int16x8_t)
19722 __LD3_LANE_FUNC (int32x2x3_t, int32x2_t, int32x4x3_t, int32_t, v2si, v4si, si, s32,
19723 int32x4_t)
19724 __LD3_LANE_FUNC (int64x1x3_t, int64x1_t, int64x2x3_t, int64_t, di, v2di, di, s64,
19725 int64x2_t)
19726 __LD3_LANE_FUNC (uint8x8x3_t, uint8x8_t, uint8x16x3_t, uint8_t, v8qi, v16qi, qi, u8,
19727 int8x16_t)
19728 __LD3_LANE_FUNC (uint16x4x3_t, uint16x4_t, uint16x8x3_t, uint16_t, v4hi, v8hi, hi,
19729 u16, int16x8_t)
19730 __LD3_LANE_FUNC (uint32x2x3_t, uint32x2_t, uint32x4x3_t, uint32_t, v2si, v4si, si,
19731 u32, int32x4_t)
19732 __LD3_LANE_FUNC (uint64x1x3_t, uint64x1_t, uint64x2x3_t, uint64_t, di, v2di, di,
19733 u64, int64x2_t)
19735 #undef __LD3_LANE_FUNC
19737 /* vld3q_lane */
19739 #define __LD3_LANE_FUNC(intype, vtype, ptrtype, mode, ptrmode, funcsuffix) \
19740 __extension__ extern __inline intype \
19741 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__)) \
19742 vld3q_lane_##funcsuffix (const ptrtype * __ptr, intype __b, const int __c) \
19744 __builtin_aarch64_simd_ci __o; \
19745 intype ret; \
19746 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __b.val[0], 0); \
19747 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __b.val[1], 1); \
19748 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __b.val[2], 2); \
19749 __o = __builtin_aarch64_ld3_lane##mode ( \
19750 (__builtin_aarch64_simd_##ptrmode *) __ptr, __o, __c); \
19751 ret.val[0] = (vtype) __builtin_aarch64_get_qregciv4si (__o, 0); \
19752 ret.val[1] = (vtype) __builtin_aarch64_get_qregciv4si (__o, 1); \
19753 ret.val[2] = (vtype) __builtin_aarch64_get_qregciv4si (__o, 2); \
19754 return ret; \
19757 __LD3_LANE_FUNC (float16x8x3_t, float16x8_t, float16_t, v8hf, hf, f16)
19758 __LD3_LANE_FUNC (float32x4x3_t, float32x4_t, float32_t, v4sf, sf, f32)
19759 __LD3_LANE_FUNC (float64x2x3_t, float64x2_t, float64_t, v2df, df, f64)
19760 __LD3_LANE_FUNC (poly8x16x3_t, poly8x16_t, poly8_t, v16qi, qi, p8)
19761 __LD3_LANE_FUNC (poly16x8x3_t, poly16x8_t, poly16_t, v8hi, hi, p16)
19762 __LD3_LANE_FUNC (poly64x2x3_t, poly64x2_t, poly64_t, v2di, di, p64)
19763 __LD3_LANE_FUNC (int8x16x3_t, int8x16_t, int8_t, v16qi, qi, s8)
19764 __LD3_LANE_FUNC (int16x8x3_t, int16x8_t, int16_t, v8hi, hi, s16)
19765 __LD3_LANE_FUNC (int32x4x3_t, int32x4_t, int32_t, v4si, si, s32)
19766 __LD3_LANE_FUNC (int64x2x3_t, int64x2_t, int64_t, v2di, di, s64)
19767 __LD3_LANE_FUNC (uint8x16x3_t, uint8x16_t, uint8_t, v16qi, qi, u8)
19768 __LD3_LANE_FUNC (uint16x8x3_t, uint16x8_t, uint16_t, v8hi, hi, u16)
19769 __LD3_LANE_FUNC (uint32x4x3_t, uint32x4_t, uint32_t, v4si, si, u32)
19770 __LD3_LANE_FUNC (uint64x2x3_t, uint64x2_t, uint64_t, v2di, di, u64)
19772 #undef __LD3_LANE_FUNC
19774 /* vld4_lane */
19776 #define __LD4_LANE_FUNC(intype, vectype, largetype, ptrtype, mode, \
19777 qmode, ptrmode, funcsuffix, signedtype) \
19778 __extension__ extern __inline intype \
19779 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__)) \
19780 vld4_lane_##funcsuffix (const ptrtype * __ptr, intype __b, const int __c) \
19782 __builtin_aarch64_simd_xi __o; \
19783 largetype __temp; \
19784 __temp.val[0] = \
19785 vcombine_##funcsuffix (__b.val[0], vcreate_##funcsuffix (0)); \
19786 __temp.val[1] = \
19787 vcombine_##funcsuffix (__b.val[1], vcreate_##funcsuffix (0)); \
19788 __temp.val[2] = \
19789 vcombine_##funcsuffix (__b.val[2], vcreate_##funcsuffix (0)); \
19790 __temp.val[3] = \
19791 vcombine_##funcsuffix (__b.val[3], vcreate_##funcsuffix (0)); \
19792 __o = __builtin_aarch64_set_qregxi##qmode (__o, \
19793 (signedtype) __temp.val[0], \
19794 0); \
19795 __o = __builtin_aarch64_set_qregxi##qmode (__o, \
19796 (signedtype) __temp.val[1], \
19797 1); \
19798 __o = __builtin_aarch64_set_qregxi##qmode (__o, \
19799 (signedtype) __temp.val[2], \
19800 2); \
19801 __o = __builtin_aarch64_set_qregxi##qmode (__o, \
19802 (signedtype) __temp.val[3], \
19803 3); \
19804 __o = __builtin_aarch64_ld4_lane##mode ( \
19805 (__builtin_aarch64_simd_##ptrmode *) __ptr, __o, __c); \
19806 __b.val[0] = (vectype) __builtin_aarch64_get_dregxidi (__o, 0); \
19807 __b.val[1] = (vectype) __builtin_aarch64_get_dregxidi (__o, 1); \
19808 __b.val[2] = (vectype) __builtin_aarch64_get_dregxidi (__o, 2); \
19809 __b.val[3] = (vectype) __builtin_aarch64_get_dregxidi (__o, 3); \
19810 return __b; \
19813 /* vld4q_lane */
19815 __LD4_LANE_FUNC (float16x4x4_t, float16x4_t, float16x8x4_t, float16_t, v4hf,
19816 v8hf, hf, f16, float16x8_t)
19817 __LD4_LANE_FUNC (float32x2x4_t, float32x2_t, float32x4x4_t, float32_t, v2sf, v4sf,
19818 sf, f32, float32x4_t)
19819 __LD4_LANE_FUNC (float64x1x4_t, float64x1_t, float64x2x4_t, float64_t, df, v2df,
19820 df, f64, float64x2_t)
19821 __LD4_LANE_FUNC (poly8x8x4_t, poly8x8_t, poly8x16x4_t, poly8_t, v8qi, v16qi, qi, p8,
19822 int8x16_t)
19823 __LD4_LANE_FUNC (poly16x4x4_t, poly16x4_t, poly16x8x4_t, poly16_t, v4hi, v8hi, hi,
19824 p16, int16x8_t)
19825 __LD4_LANE_FUNC (poly64x1x4_t, poly64x1_t, poly64x2x4_t, poly64_t, di,
19826 v2di_ssps, di, p64, poly64x2_t)
19827 __LD4_LANE_FUNC (int8x8x4_t, int8x8_t, int8x16x4_t, int8_t, v8qi, v16qi, qi, s8,
19828 int8x16_t)
19829 __LD4_LANE_FUNC (int16x4x4_t, int16x4_t, int16x8x4_t, int16_t, v4hi, v8hi, hi, s16,
19830 int16x8_t)
19831 __LD4_LANE_FUNC (int32x2x4_t, int32x2_t, int32x4x4_t, int32_t, v2si, v4si, si, s32,
19832 int32x4_t)
19833 __LD4_LANE_FUNC (int64x1x4_t, int64x1_t, int64x2x4_t, int64_t, di, v2di, di, s64,
19834 int64x2_t)
19835 __LD4_LANE_FUNC (uint8x8x4_t, uint8x8_t, uint8x16x4_t, uint8_t, v8qi, v16qi, qi, u8,
19836 int8x16_t)
19837 __LD4_LANE_FUNC (uint16x4x4_t, uint16x4_t, uint16x8x4_t, uint16_t, v4hi, v8hi, hi,
19838 u16, int16x8_t)
19839 __LD4_LANE_FUNC (uint32x2x4_t, uint32x2_t, uint32x4x4_t, uint32_t, v2si, v4si, si,
19840 u32, int32x4_t)
19841 __LD4_LANE_FUNC (uint64x1x4_t, uint64x1_t, uint64x2x4_t, uint64_t, di, v2di, di,
19842 u64, int64x2_t)
19844 #undef __LD4_LANE_FUNC
19846 /* vld4q_lane */
19848 #define __LD4_LANE_FUNC(intype, vtype, ptrtype, mode, ptrmode, funcsuffix) \
19849 __extension__ extern __inline intype \
19850 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__)) \
19851 vld4q_lane_##funcsuffix (const ptrtype * __ptr, intype __b, const int __c) \
19853 __builtin_aarch64_simd_xi __o; \
19854 intype ret; \
19855 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __b.val[0], 0); \
19856 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __b.val[1], 1); \
19857 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __b.val[2], 2); \
19858 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __b.val[3], 3); \
19859 __o = __builtin_aarch64_ld4_lane##mode ( \
19860 (__builtin_aarch64_simd_##ptrmode *) __ptr, __o, __c); \
19861 ret.val[0] = (vtype) __builtin_aarch64_get_qregxiv4si (__o, 0); \
19862 ret.val[1] = (vtype) __builtin_aarch64_get_qregxiv4si (__o, 1); \
19863 ret.val[2] = (vtype) __builtin_aarch64_get_qregxiv4si (__o, 2); \
19864 ret.val[3] = (vtype) __builtin_aarch64_get_qregxiv4si (__o, 3); \
19865 return ret; \
19868 __LD4_LANE_FUNC (float16x8x4_t, float16x8_t, float16_t, v8hf, hf, f16)
19869 __LD4_LANE_FUNC (float32x4x4_t, float32x4_t, float32_t, v4sf, sf, f32)
19870 __LD4_LANE_FUNC (float64x2x4_t, float64x2_t, float64_t, v2df, df, f64)
19871 __LD4_LANE_FUNC (poly8x16x4_t, poly8x16_t, poly8_t, v16qi, qi, p8)
19872 __LD4_LANE_FUNC (poly16x8x4_t, poly16x8_t, poly16_t, v8hi, hi, p16)
19873 __LD4_LANE_FUNC (poly64x2x4_t, poly64x2_t, poly64_t, v2di, di, p64)
19874 __LD4_LANE_FUNC (int8x16x4_t, int8x16_t, int8_t, v16qi, qi, s8)
19875 __LD4_LANE_FUNC (int16x8x4_t, int16x8_t, int16_t, v8hi, hi, s16)
19876 __LD4_LANE_FUNC (int32x4x4_t, int32x4_t, int32_t, v4si, si, s32)
19877 __LD4_LANE_FUNC (int64x2x4_t, int64x2_t, int64_t, v2di, di, s64)
19878 __LD4_LANE_FUNC (uint8x16x4_t, uint8x16_t, uint8_t, v16qi, qi, u8)
19879 __LD4_LANE_FUNC (uint16x8x4_t, uint16x8_t, uint16_t, v8hi, hi, u16)
19880 __LD4_LANE_FUNC (uint32x4x4_t, uint32x4_t, uint32_t, v4si, si, u32)
19881 __LD4_LANE_FUNC (uint64x2x4_t, uint64x2_t, uint64_t, v2di, di, u64)
19883 #undef __LD4_LANE_FUNC
19885 /* vmax */
19887 __extension__ extern __inline float32x2_t
19888 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19889 vmax_f32 (float32x2_t __a, float32x2_t __b)
19891 return __builtin_aarch64_smax_nanv2sf (__a, __b);
19894 __extension__ extern __inline float64x1_t
19895 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19896 vmax_f64 (float64x1_t __a, float64x1_t __b)
19898 return (float64x1_t)
19899 { __builtin_aarch64_smax_nandf (vget_lane_f64 (__a, 0),
19900 vget_lane_f64 (__b, 0)) };
19903 __extension__ extern __inline int8x8_t
19904 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19905 vmax_s8 (int8x8_t __a, int8x8_t __b)
19907 return __builtin_aarch64_smaxv8qi (__a, __b);
19910 __extension__ extern __inline int16x4_t
19911 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19912 vmax_s16 (int16x4_t __a, int16x4_t __b)
19914 return __builtin_aarch64_smaxv4hi (__a, __b);
19917 __extension__ extern __inline int32x2_t
19918 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19919 vmax_s32 (int32x2_t __a, int32x2_t __b)
19921 return __builtin_aarch64_smaxv2si (__a, __b);
19924 __extension__ extern __inline uint8x8_t
19925 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19926 vmax_u8 (uint8x8_t __a, uint8x8_t __b)
19928 return (uint8x8_t) __builtin_aarch64_umaxv8qi ((int8x8_t) __a,
19929 (int8x8_t) __b);
19932 __extension__ extern __inline uint16x4_t
19933 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19934 vmax_u16 (uint16x4_t __a, uint16x4_t __b)
19936 return (uint16x4_t) __builtin_aarch64_umaxv4hi ((int16x4_t) __a,
19937 (int16x4_t) __b);
19940 __extension__ extern __inline uint32x2_t
19941 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19942 vmax_u32 (uint32x2_t __a, uint32x2_t __b)
19944 return (uint32x2_t) __builtin_aarch64_umaxv2si ((int32x2_t) __a,
19945 (int32x2_t) __b);
19948 __extension__ extern __inline float32x4_t
19949 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19950 vmaxq_f32 (float32x4_t __a, float32x4_t __b)
19952 return __builtin_aarch64_smax_nanv4sf (__a, __b);
19955 __extension__ extern __inline float64x2_t
19956 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19957 vmaxq_f64 (float64x2_t __a, float64x2_t __b)
19959 return __builtin_aarch64_smax_nanv2df (__a, __b);
19962 __extension__ extern __inline int8x16_t
19963 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19964 vmaxq_s8 (int8x16_t __a, int8x16_t __b)
19966 return __builtin_aarch64_smaxv16qi (__a, __b);
19969 __extension__ extern __inline int16x8_t
19970 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19971 vmaxq_s16 (int16x8_t __a, int16x8_t __b)
19973 return __builtin_aarch64_smaxv8hi (__a, __b);
19976 __extension__ extern __inline int32x4_t
19977 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19978 vmaxq_s32 (int32x4_t __a, int32x4_t __b)
19980 return __builtin_aarch64_smaxv4si (__a, __b);
19983 __extension__ extern __inline uint8x16_t
19984 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19985 vmaxq_u8 (uint8x16_t __a, uint8x16_t __b)
19987 return (uint8x16_t) __builtin_aarch64_umaxv16qi ((int8x16_t) __a,
19988 (int8x16_t) __b);
19991 __extension__ extern __inline uint16x8_t
19992 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19993 vmaxq_u16 (uint16x8_t __a, uint16x8_t __b)
19995 return (uint16x8_t) __builtin_aarch64_umaxv8hi ((int16x8_t) __a,
19996 (int16x8_t) __b);
19999 __extension__ extern __inline uint32x4_t
20000 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20001 vmaxq_u32 (uint32x4_t __a, uint32x4_t __b)
20003 return (uint32x4_t) __builtin_aarch64_umaxv4si ((int32x4_t) __a,
20004 (int32x4_t) __b);
20006 /* vmulx */
20008 __extension__ extern __inline float32x2_t
20009 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20010 vmulx_f32 (float32x2_t __a, float32x2_t __b)
20012 return __builtin_aarch64_fmulxv2sf (__a, __b);
20015 __extension__ extern __inline float32x4_t
20016 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20017 vmulxq_f32 (float32x4_t __a, float32x4_t __b)
20019 return __builtin_aarch64_fmulxv4sf (__a, __b);
20022 __extension__ extern __inline float64x1_t
20023 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20024 vmulx_f64 (float64x1_t __a, float64x1_t __b)
20026 return (float64x1_t) {__builtin_aarch64_fmulxdf (__a[0], __b[0])};
20029 __extension__ extern __inline float64x2_t
20030 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20031 vmulxq_f64 (float64x2_t __a, float64x2_t __b)
20033 return __builtin_aarch64_fmulxv2df (__a, __b);
20036 __extension__ extern __inline float32_t
20037 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20038 vmulxs_f32 (float32_t __a, float32_t __b)
20040 return __builtin_aarch64_fmulxsf (__a, __b);
20043 __extension__ extern __inline float64_t
20044 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20045 vmulxd_f64 (float64_t __a, float64_t __b)
20047 return __builtin_aarch64_fmulxdf (__a, __b);
20050 __extension__ extern __inline float32x2_t
20051 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20052 vmulx_lane_f32 (float32x2_t __a, float32x2_t __v, const int __lane)
20054 return vmulx_f32 (__a, __aarch64_vdup_lane_f32 (__v, __lane));
20057 __extension__ extern __inline float64x1_t
20058 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20059 vmulx_lane_f64 (float64x1_t __a, float64x1_t __v, const int __lane)
20061 return vmulx_f64 (__a, __aarch64_vdup_lane_f64 (__v, __lane));
20064 __extension__ extern __inline float32x4_t
20065 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20066 vmulxq_lane_f32 (float32x4_t __a, float32x2_t __v, const int __lane)
20068 return vmulxq_f32 (__a, __aarch64_vdupq_lane_f32 (__v, __lane));
20071 __extension__ extern __inline float64x2_t
20072 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20073 vmulxq_lane_f64 (float64x2_t __a, float64x1_t __v, const int __lane)
20075 return vmulxq_f64 (__a, __aarch64_vdupq_lane_f64 (__v, __lane));
20078 __extension__ extern __inline float32x2_t
20079 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20080 vmulx_laneq_f32 (float32x2_t __a, float32x4_t __v, const int __lane)
20082 return vmulx_f32 (__a, __aarch64_vdup_laneq_f32 (__v, __lane));
20085 __extension__ extern __inline float64x1_t
20086 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20087 vmulx_laneq_f64 (float64x1_t __a, float64x2_t __v, const int __lane)
20089 return vmulx_f64 (__a, __aarch64_vdup_laneq_f64 (__v, __lane));
20092 __extension__ extern __inline float32x4_t
20093 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20094 vmulxq_laneq_f32 (float32x4_t __a, float32x4_t __v, const int __lane)
20096 return vmulxq_f32 (__a, __aarch64_vdupq_laneq_f32 (__v, __lane));
20099 __extension__ extern __inline float64x2_t
20100 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20101 vmulxq_laneq_f64 (float64x2_t __a, float64x2_t __v, const int __lane)
20103 return vmulxq_f64 (__a, __aarch64_vdupq_laneq_f64 (__v, __lane));
20106 __extension__ extern __inline float32_t
20107 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20108 vmulxs_lane_f32 (float32_t __a, float32x2_t __v, const int __lane)
20110 return vmulxs_f32 (__a, __aarch64_vget_lane_any (__v, __lane));
20113 __extension__ extern __inline float32_t
20114 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20115 vmulxs_laneq_f32 (float32_t __a, float32x4_t __v, const int __lane)
20117 return vmulxs_f32 (__a, __aarch64_vget_lane_any (__v, __lane));
20120 __extension__ extern __inline float64_t
20121 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20122 vmulxd_lane_f64 (float64_t __a, float64x1_t __v, const int __lane)
20124 return vmulxd_f64 (__a, __aarch64_vget_lane_any (__v, __lane));
20127 __extension__ extern __inline float64_t
20128 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20129 vmulxd_laneq_f64 (float64_t __a, float64x2_t __v, const int __lane)
20131 return vmulxd_f64 (__a, __aarch64_vget_lane_any (__v, __lane));
20134 /* vpmax */
20136 __extension__ extern __inline int8x8_t
20137 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20138 vpmax_s8 (int8x8_t a, int8x8_t b)
20140 return __builtin_aarch64_smaxpv8qi (a, b);
20143 __extension__ extern __inline int16x4_t
20144 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20145 vpmax_s16 (int16x4_t a, int16x4_t b)
20147 return __builtin_aarch64_smaxpv4hi (a, b);
20150 __extension__ extern __inline int32x2_t
20151 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20152 vpmax_s32 (int32x2_t a, int32x2_t b)
20154 return __builtin_aarch64_smaxpv2si (a, b);
20157 __extension__ extern __inline uint8x8_t
20158 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20159 vpmax_u8 (uint8x8_t a, uint8x8_t b)
20161 return (uint8x8_t) __builtin_aarch64_umaxpv8qi ((int8x8_t) a,
20162 (int8x8_t) b);
20165 __extension__ extern __inline uint16x4_t
20166 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20167 vpmax_u16 (uint16x4_t a, uint16x4_t b)
20169 return (uint16x4_t) __builtin_aarch64_umaxpv4hi ((int16x4_t) a,
20170 (int16x4_t) b);
20173 __extension__ extern __inline uint32x2_t
20174 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20175 vpmax_u32 (uint32x2_t a, uint32x2_t b)
20177 return (uint32x2_t) __builtin_aarch64_umaxpv2si ((int32x2_t) a,
20178 (int32x2_t) b);
20181 __extension__ extern __inline int8x16_t
20182 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20183 vpmaxq_s8 (int8x16_t a, int8x16_t b)
20185 return __builtin_aarch64_smaxpv16qi (a, b);
20188 __extension__ extern __inline int16x8_t
20189 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20190 vpmaxq_s16 (int16x8_t a, int16x8_t b)
20192 return __builtin_aarch64_smaxpv8hi (a, b);
20195 __extension__ extern __inline int32x4_t
20196 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20197 vpmaxq_s32 (int32x4_t a, int32x4_t b)
20199 return __builtin_aarch64_smaxpv4si (a, b);
20202 __extension__ extern __inline uint8x16_t
20203 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20204 vpmaxq_u8 (uint8x16_t a, uint8x16_t b)
20206 return (uint8x16_t) __builtin_aarch64_umaxpv16qi ((int8x16_t) a,
20207 (int8x16_t) b);
20210 __extension__ extern __inline uint16x8_t
20211 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20212 vpmaxq_u16 (uint16x8_t a, uint16x8_t b)
20214 return (uint16x8_t) __builtin_aarch64_umaxpv8hi ((int16x8_t) a,
20215 (int16x8_t) b);
20218 __extension__ extern __inline uint32x4_t
20219 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20220 vpmaxq_u32 (uint32x4_t a, uint32x4_t b)
20222 return (uint32x4_t) __builtin_aarch64_umaxpv4si ((int32x4_t) a,
20223 (int32x4_t) b);
20226 __extension__ extern __inline float32x2_t
20227 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20228 vpmax_f32 (float32x2_t a, float32x2_t b)
20230 return __builtin_aarch64_smax_nanpv2sf (a, b);
20233 __extension__ extern __inline float32x4_t
20234 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20235 vpmaxq_f32 (float32x4_t a, float32x4_t b)
20237 return __builtin_aarch64_smax_nanpv4sf (a, b);
20240 __extension__ extern __inline float64x2_t
20241 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20242 vpmaxq_f64 (float64x2_t a, float64x2_t b)
20244 return __builtin_aarch64_smax_nanpv2df (a, b);
20247 __extension__ extern __inline float64_t
20248 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20249 vpmaxqd_f64 (float64x2_t a)
20251 return __builtin_aarch64_reduc_smax_nan_scal_v2df (a);
20254 __extension__ extern __inline float32_t
20255 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20256 vpmaxs_f32 (float32x2_t a)
20258 return __builtin_aarch64_reduc_smax_nan_scal_v2sf (a);
20261 /* vpmaxnm */
20263 __extension__ extern __inline float32x2_t
20264 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20265 vpmaxnm_f32 (float32x2_t a, float32x2_t b)
20267 return __builtin_aarch64_smaxpv2sf (a, b);
20270 __extension__ extern __inline float32x4_t
20271 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20272 vpmaxnmq_f32 (float32x4_t a, float32x4_t b)
20274 return __builtin_aarch64_smaxpv4sf (a, b);
20277 __extension__ extern __inline float64x2_t
20278 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20279 vpmaxnmq_f64 (float64x2_t a, float64x2_t b)
20281 return __builtin_aarch64_smaxpv2df (a, b);
20284 __extension__ extern __inline float64_t
20285 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20286 vpmaxnmqd_f64 (float64x2_t a)
20288 return __builtin_aarch64_reduc_smax_scal_v2df (a);
20291 __extension__ extern __inline float32_t
20292 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20293 vpmaxnms_f32 (float32x2_t a)
20295 return __builtin_aarch64_reduc_smax_scal_v2sf (a);
20298 /* vpmin */
20300 __extension__ extern __inline int8x8_t
20301 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20302 vpmin_s8 (int8x8_t a, int8x8_t b)
20304 return __builtin_aarch64_sminpv8qi (a, b);
20307 __extension__ extern __inline int16x4_t
20308 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20309 vpmin_s16 (int16x4_t a, int16x4_t b)
20311 return __builtin_aarch64_sminpv4hi (a, b);
20314 __extension__ extern __inline int32x2_t
20315 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20316 vpmin_s32 (int32x2_t a, int32x2_t b)
20318 return __builtin_aarch64_sminpv2si (a, b);
20321 __extension__ extern __inline uint8x8_t
20322 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20323 vpmin_u8 (uint8x8_t a, uint8x8_t b)
20325 return (uint8x8_t) __builtin_aarch64_uminpv8qi ((int8x8_t) a,
20326 (int8x8_t) b);
20329 __extension__ extern __inline uint16x4_t
20330 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20331 vpmin_u16 (uint16x4_t a, uint16x4_t b)
20333 return (uint16x4_t) __builtin_aarch64_uminpv4hi ((int16x4_t) a,
20334 (int16x4_t) b);
20337 __extension__ extern __inline uint32x2_t
20338 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20339 vpmin_u32 (uint32x2_t a, uint32x2_t b)
20341 return (uint32x2_t) __builtin_aarch64_uminpv2si ((int32x2_t) a,
20342 (int32x2_t) b);
20345 __extension__ extern __inline int8x16_t
20346 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20347 vpminq_s8 (int8x16_t a, int8x16_t b)
20349 return __builtin_aarch64_sminpv16qi (a, b);
20352 __extension__ extern __inline int16x8_t
20353 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20354 vpminq_s16 (int16x8_t a, int16x8_t b)
20356 return __builtin_aarch64_sminpv8hi (a, b);
20359 __extension__ extern __inline int32x4_t
20360 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20361 vpminq_s32 (int32x4_t a, int32x4_t b)
20363 return __builtin_aarch64_sminpv4si (a, b);
20366 __extension__ extern __inline uint8x16_t
20367 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20368 vpminq_u8 (uint8x16_t a, uint8x16_t b)
20370 return (uint8x16_t) __builtin_aarch64_uminpv16qi ((int8x16_t) a,
20371 (int8x16_t) b);
20374 __extension__ extern __inline uint16x8_t
20375 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20376 vpminq_u16 (uint16x8_t a, uint16x8_t b)
20378 return (uint16x8_t) __builtin_aarch64_uminpv8hi ((int16x8_t) a,
20379 (int16x8_t) b);
20382 __extension__ extern __inline uint32x4_t
20383 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20384 vpminq_u32 (uint32x4_t a, uint32x4_t b)
20386 return (uint32x4_t) __builtin_aarch64_uminpv4si ((int32x4_t) a,
20387 (int32x4_t) b);
20390 __extension__ extern __inline float32x2_t
20391 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20392 vpmin_f32 (float32x2_t a, float32x2_t b)
20394 return __builtin_aarch64_smin_nanpv2sf (a, b);
20397 __extension__ extern __inline float32x4_t
20398 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20399 vpminq_f32 (float32x4_t a, float32x4_t b)
20401 return __builtin_aarch64_smin_nanpv4sf (a, b);
20404 __extension__ extern __inline float64x2_t
20405 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20406 vpminq_f64 (float64x2_t a, float64x2_t b)
20408 return __builtin_aarch64_smin_nanpv2df (a, b);
20411 __extension__ extern __inline float64_t
20412 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20413 vpminqd_f64 (float64x2_t a)
20415 return __builtin_aarch64_reduc_smin_nan_scal_v2df (a);
20418 __extension__ extern __inline float32_t
20419 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20420 vpmins_f32 (float32x2_t a)
20422 return __builtin_aarch64_reduc_smin_nan_scal_v2sf (a);
20425 /* vpminnm */
20427 __extension__ extern __inline float32x2_t
20428 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20429 vpminnm_f32 (float32x2_t a, float32x2_t b)
20431 return __builtin_aarch64_sminpv2sf (a, b);
20434 __extension__ extern __inline float32x4_t
20435 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20436 vpminnmq_f32 (float32x4_t a, float32x4_t b)
20438 return __builtin_aarch64_sminpv4sf (a, b);
20441 __extension__ extern __inline float64x2_t
20442 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20443 vpminnmq_f64 (float64x2_t a, float64x2_t b)
20445 return __builtin_aarch64_sminpv2df (a, b);
20448 __extension__ extern __inline float64_t
20449 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20450 vpminnmqd_f64 (float64x2_t a)
20452 return __builtin_aarch64_reduc_smin_scal_v2df (a);
20455 __extension__ extern __inline float32_t
20456 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20457 vpminnms_f32 (float32x2_t a)
20459 return __builtin_aarch64_reduc_smin_scal_v2sf (a);
20462 /* vmaxnm */
20464 __extension__ extern __inline float32x2_t
20465 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20466 vmaxnm_f32 (float32x2_t __a, float32x2_t __b)
20468 return __builtin_aarch64_fmaxv2sf (__a, __b);
20471 __extension__ extern __inline float64x1_t
20472 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20473 vmaxnm_f64 (float64x1_t __a, float64x1_t __b)
20475 return (float64x1_t)
20476 { __builtin_aarch64_fmaxdf (vget_lane_f64 (__a, 0),
20477 vget_lane_f64 (__b, 0)) };
20480 __extension__ extern __inline float32x4_t
20481 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20482 vmaxnmq_f32 (float32x4_t __a, float32x4_t __b)
20484 return __builtin_aarch64_fmaxv4sf (__a, __b);
20487 __extension__ extern __inline float64x2_t
20488 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20489 vmaxnmq_f64 (float64x2_t __a, float64x2_t __b)
20491 return __builtin_aarch64_fmaxv2df (__a, __b);
20494 /* vmaxv */
20496 __extension__ extern __inline float32_t
20497 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20498 vmaxv_f32 (float32x2_t __a)
20500 return __builtin_aarch64_reduc_smax_nan_scal_v2sf (__a);
20503 __extension__ extern __inline int8_t
20504 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20505 vmaxv_s8 (int8x8_t __a)
20507 return __builtin_aarch64_reduc_smax_scal_v8qi (__a);
20510 __extension__ extern __inline int16_t
20511 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20512 vmaxv_s16 (int16x4_t __a)
20514 return __builtin_aarch64_reduc_smax_scal_v4hi (__a);
20517 __extension__ extern __inline int32_t
20518 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20519 vmaxv_s32 (int32x2_t __a)
20521 return __builtin_aarch64_reduc_smax_scal_v2si (__a);
20524 __extension__ extern __inline uint8_t
20525 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20526 vmaxv_u8 (uint8x8_t __a)
20528 return __builtin_aarch64_reduc_umax_scal_v8qi_uu (__a);
20531 __extension__ extern __inline uint16_t
20532 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20533 vmaxv_u16 (uint16x4_t __a)
20535 return __builtin_aarch64_reduc_umax_scal_v4hi_uu (__a);
20538 __extension__ extern __inline uint32_t
20539 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20540 vmaxv_u32 (uint32x2_t __a)
20542 return __builtin_aarch64_reduc_umax_scal_v2si_uu (__a);
20545 __extension__ extern __inline float32_t
20546 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20547 vmaxvq_f32 (float32x4_t __a)
20549 return __builtin_aarch64_reduc_smax_nan_scal_v4sf (__a);
20552 __extension__ extern __inline float64_t
20553 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20554 vmaxvq_f64 (float64x2_t __a)
20556 return __builtin_aarch64_reduc_smax_nan_scal_v2df (__a);
20559 __extension__ extern __inline int8_t
20560 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20561 vmaxvq_s8 (int8x16_t __a)
20563 return __builtin_aarch64_reduc_smax_scal_v16qi (__a);
20566 __extension__ extern __inline int16_t
20567 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20568 vmaxvq_s16 (int16x8_t __a)
20570 return __builtin_aarch64_reduc_smax_scal_v8hi (__a);
20573 __extension__ extern __inline int32_t
20574 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20575 vmaxvq_s32 (int32x4_t __a)
20577 return __builtin_aarch64_reduc_smax_scal_v4si (__a);
20580 __extension__ extern __inline uint8_t
20581 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20582 vmaxvq_u8 (uint8x16_t __a)
20584 return __builtin_aarch64_reduc_umax_scal_v16qi_uu (__a);
20587 __extension__ extern __inline uint16_t
20588 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20589 vmaxvq_u16 (uint16x8_t __a)
20591 return __builtin_aarch64_reduc_umax_scal_v8hi_uu (__a);
20594 __extension__ extern __inline uint32_t
20595 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20596 vmaxvq_u32 (uint32x4_t __a)
20598 return __builtin_aarch64_reduc_umax_scal_v4si_uu (__a);
20601 /* vmaxnmv */
20603 __extension__ extern __inline float32_t
20604 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20605 vmaxnmv_f32 (float32x2_t __a)
20607 return __builtin_aarch64_reduc_smax_scal_v2sf (__a);
20610 __extension__ extern __inline float32_t
20611 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20612 vmaxnmvq_f32 (float32x4_t __a)
20614 return __builtin_aarch64_reduc_smax_scal_v4sf (__a);
20617 __extension__ extern __inline float64_t
20618 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20619 vmaxnmvq_f64 (float64x2_t __a)
20621 return __builtin_aarch64_reduc_smax_scal_v2df (__a);
20624 /* vmin */
20626 __extension__ extern __inline float32x2_t
20627 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20628 vmin_f32 (float32x2_t __a, float32x2_t __b)
20630 return __builtin_aarch64_smin_nanv2sf (__a, __b);
20633 __extension__ extern __inline float64x1_t
20634 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20635 vmin_f64 (float64x1_t __a, float64x1_t __b)
20637 return (float64x1_t)
20638 { __builtin_aarch64_smin_nandf (vget_lane_f64 (__a, 0),
20639 vget_lane_f64 (__b, 0)) };
20642 __extension__ extern __inline int8x8_t
20643 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20644 vmin_s8 (int8x8_t __a, int8x8_t __b)
20646 return __builtin_aarch64_sminv8qi (__a, __b);
20649 __extension__ extern __inline int16x4_t
20650 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20651 vmin_s16 (int16x4_t __a, int16x4_t __b)
20653 return __builtin_aarch64_sminv4hi (__a, __b);
20656 __extension__ extern __inline int32x2_t
20657 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20658 vmin_s32 (int32x2_t __a, int32x2_t __b)
20660 return __builtin_aarch64_sminv2si (__a, __b);
20663 __extension__ extern __inline uint8x8_t
20664 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20665 vmin_u8 (uint8x8_t __a, uint8x8_t __b)
20667 return (uint8x8_t) __builtin_aarch64_uminv8qi ((int8x8_t) __a,
20668 (int8x8_t) __b);
20671 __extension__ extern __inline uint16x4_t
20672 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20673 vmin_u16 (uint16x4_t __a, uint16x4_t __b)
20675 return (uint16x4_t) __builtin_aarch64_uminv4hi ((int16x4_t) __a,
20676 (int16x4_t) __b);
20679 __extension__ extern __inline uint32x2_t
20680 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20681 vmin_u32 (uint32x2_t __a, uint32x2_t __b)
20683 return (uint32x2_t) __builtin_aarch64_uminv2si ((int32x2_t) __a,
20684 (int32x2_t) __b);
20687 __extension__ extern __inline float32x4_t
20688 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20689 vminq_f32 (float32x4_t __a, float32x4_t __b)
20691 return __builtin_aarch64_smin_nanv4sf (__a, __b);
20694 __extension__ extern __inline float64x2_t
20695 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20696 vminq_f64 (float64x2_t __a, float64x2_t __b)
20698 return __builtin_aarch64_smin_nanv2df (__a, __b);
20701 __extension__ extern __inline int8x16_t
20702 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20703 vminq_s8 (int8x16_t __a, int8x16_t __b)
20705 return __builtin_aarch64_sminv16qi (__a, __b);
20708 __extension__ extern __inline int16x8_t
20709 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20710 vminq_s16 (int16x8_t __a, int16x8_t __b)
20712 return __builtin_aarch64_sminv8hi (__a, __b);
20715 __extension__ extern __inline int32x4_t
20716 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20717 vminq_s32 (int32x4_t __a, int32x4_t __b)
20719 return __builtin_aarch64_sminv4si (__a, __b);
20722 __extension__ extern __inline uint8x16_t
20723 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20724 vminq_u8 (uint8x16_t __a, uint8x16_t __b)
20726 return (uint8x16_t) __builtin_aarch64_uminv16qi ((int8x16_t) __a,
20727 (int8x16_t) __b);
20730 __extension__ extern __inline uint16x8_t
20731 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20732 vminq_u16 (uint16x8_t __a, uint16x8_t __b)
20734 return (uint16x8_t) __builtin_aarch64_uminv8hi ((int16x8_t) __a,
20735 (int16x8_t) __b);
20738 __extension__ extern __inline uint32x4_t
20739 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20740 vminq_u32 (uint32x4_t __a, uint32x4_t __b)
20742 return (uint32x4_t) __builtin_aarch64_uminv4si ((int32x4_t) __a,
20743 (int32x4_t) __b);
20746 /* vminnm */
20748 __extension__ extern __inline float32x2_t
20749 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20750 vminnm_f32 (float32x2_t __a, float32x2_t __b)
20752 return __builtin_aarch64_fminv2sf (__a, __b);
20755 __extension__ extern __inline float64x1_t
20756 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20757 vminnm_f64 (float64x1_t __a, float64x1_t __b)
20759 return (float64x1_t)
20760 { __builtin_aarch64_fmindf (vget_lane_f64 (__a, 0),
20761 vget_lane_f64 (__b, 0)) };
20764 __extension__ extern __inline float32x4_t
20765 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20766 vminnmq_f32 (float32x4_t __a, float32x4_t __b)
20768 return __builtin_aarch64_fminv4sf (__a, __b);
20771 __extension__ extern __inline float64x2_t
20772 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20773 vminnmq_f64 (float64x2_t __a, float64x2_t __b)
20775 return __builtin_aarch64_fminv2df (__a, __b);
20778 /* vminv */
20780 __extension__ extern __inline float32_t
20781 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20782 vminv_f32 (float32x2_t __a)
20784 return __builtin_aarch64_reduc_smin_nan_scal_v2sf (__a);
20787 __extension__ extern __inline int8_t
20788 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20789 vminv_s8 (int8x8_t __a)
20791 return __builtin_aarch64_reduc_smin_scal_v8qi (__a);
20794 __extension__ extern __inline int16_t
20795 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20796 vminv_s16 (int16x4_t __a)
20798 return __builtin_aarch64_reduc_smin_scal_v4hi (__a);
20801 __extension__ extern __inline int32_t
20802 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20803 vminv_s32 (int32x2_t __a)
20805 return __builtin_aarch64_reduc_smin_scal_v2si (__a);
20808 __extension__ extern __inline uint8_t
20809 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20810 vminv_u8 (uint8x8_t __a)
20812 return __builtin_aarch64_reduc_umin_scal_v8qi_uu (__a);
20815 __extension__ extern __inline uint16_t
20816 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20817 vminv_u16 (uint16x4_t __a)
20819 return __builtin_aarch64_reduc_umin_scal_v4hi_uu (__a);
20822 __extension__ extern __inline uint32_t
20823 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20824 vminv_u32 (uint32x2_t __a)
20826 return __builtin_aarch64_reduc_umin_scal_v2si_uu (__a);
20829 __extension__ extern __inline float32_t
20830 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20831 vminvq_f32 (float32x4_t __a)
20833 return __builtin_aarch64_reduc_smin_nan_scal_v4sf (__a);
20836 __extension__ extern __inline float64_t
20837 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20838 vminvq_f64 (float64x2_t __a)
20840 return __builtin_aarch64_reduc_smin_nan_scal_v2df (__a);
20843 __extension__ extern __inline int8_t
20844 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20845 vminvq_s8 (int8x16_t __a)
20847 return __builtin_aarch64_reduc_smin_scal_v16qi (__a);
20850 __extension__ extern __inline int16_t
20851 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20852 vminvq_s16 (int16x8_t __a)
20854 return __builtin_aarch64_reduc_smin_scal_v8hi (__a);
20857 __extension__ extern __inline int32_t
20858 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20859 vminvq_s32 (int32x4_t __a)
20861 return __builtin_aarch64_reduc_smin_scal_v4si (__a);
20864 __extension__ extern __inline uint8_t
20865 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20866 vminvq_u8 (uint8x16_t __a)
20868 return __builtin_aarch64_reduc_umin_scal_v16qi_uu (__a);
20871 __extension__ extern __inline uint16_t
20872 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20873 vminvq_u16 (uint16x8_t __a)
20875 return __builtin_aarch64_reduc_umin_scal_v8hi_uu (__a);
20878 __extension__ extern __inline uint32_t
20879 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20880 vminvq_u32 (uint32x4_t __a)
20882 return __builtin_aarch64_reduc_umin_scal_v4si_uu (__a);
20885 /* vminnmv */
20887 __extension__ extern __inline float32_t
20888 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20889 vminnmv_f32 (float32x2_t __a)
20891 return __builtin_aarch64_reduc_smin_scal_v2sf (__a);
20894 __extension__ extern __inline float32_t
20895 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20896 vminnmvq_f32 (float32x4_t __a)
20898 return __builtin_aarch64_reduc_smin_scal_v4sf (__a);
20901 __extension__ extern __inline float64_t
20902 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20903 vminnmvq_f64 (float64x2_t __a)
20905 return __builtin_aarch64_reduc_smin_scal_v2df (__a);
20908 /* vmla */
20910 __extension__ extern __inline float32x2_t
20911 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20912 vmla_f32 (float32x2_t a, float32x2_t b, float32x2_t c)
20914 return a + b * c;
20917 __extension__ extern __inline float64x1_t
20918 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20919 vmla_f64 (float64x1_t __a, float64x1_t __b, float64x1_t __c)
20921 return __a + __b * __c;
20924 __extension__ extern __inline float32x4_t
20925 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20926 vmlaq_f32 (float32x4_t a, float32x4_t b, float32x4_t c)
20928 return a + b * c;
20931 __extension__ extern __inline float64x2_t
20932 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20933 vmlaq_f64 (float64x2_t a, float64x2_t b, float64x2_t c)
20935 return a + b * c;
20938 /* vmla_lane */
20940 __extension__ extern __inline float32x2_t
20941 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20942 vmla_lane_f32 (float32x2_t __a, float32x2_t __b,
20943 float32x2_t __c, const int __lane)
20945 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
20948 __extension__ extern __inline int16x4_t
20949 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20950 vmla_lane_s16 (int16x4_t __a, int16x4_t __b,
20951 int16x4_t __c, const int __lane)
20953 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
20956 __extension__ extern __inline int32x2_t
20957 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20958 vmla_lane_s32 (int32x2_t __a, int32x2_t __b,
20959 int32x2_t __c, const int __lane)
20961 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
20964 __extension__ extern __inline uint16x4_t
20965 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20966 vmla_lane_u16 (uint16x4_t __a, uint16x4_t __b,
20967 uint16x4_t __c, const int __lane)
20969 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
20972 __extension__ extern __inline uint32x2_t
20973 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20974 vmla_lane_u32 (uint32x2_t __a, uint32x2_t __b,
20975 uint32x2_t __c, const int __lane)
20977 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
20980 /* vmla_laneq */
20982 __extension__ extern __inline float32x2_t
20983 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20984 vmla_laneq_f32 (float32x2_t __a, float32x2_t __b,
20985 float32x4_t __c, const int __lane)
20987 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
20990 __extension__ extern __inline int16x4_t
20991 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20992 vmla_laneq_s16 (int16x4_t __a, int16x4_t __b,
20993 int16x8_t __c, const int __lane)
20995 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
20998 __extension__ extern __inline int32x2_t
20999 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21000 vmla_laneq_s32 (int32x2_t __a, int32x2_t __b,
21001 int32x4_t __c, const int __lane)
21003 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21006 __extension__ extern __inline uint16x4_t
21007 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21008 vmla_laneq_u16 (uint16x4_t __a, uint16x4_t __b,
21009 uint16x8_t __c, const int __lane)
21011 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21014 __extension__ extern __inline uint32x2_t
21015 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21016 vmla_laneq_u32 (uint32x2_t __a, uint32x2_t __b,
21017 uint32x4_t __c, const int __lane)
21019 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21022 /* vmlaq_lane */
21024 __extension__ extern __inline float32x4_t
21025 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21026 vmlaq_lane_f32 (float32x4_t __a, float32x4_t __b,
21027 float32x2_t __c, const int __lane)
21029 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21032 __extension__ extern __inline int16x8_t
21033 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21034 vmlaq_lane_s16 (int16x8_t __a, int16x8_t __b,
21035 int16x4_t __c, const int __lane)
21037 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21040 __extension__ extern __inline int32x4_t
21041 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21042 vmlaq_lane_s32 (int32x4_t __a, int32x4_t __b,
21043 int32x2_t __c, const int __lane)
21045 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21048 __extension__ extern __inline uint16x8_t
21049 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21050 vmlaq_lane_u16 (uint16x8_t __a, uint16x8_t __b,
21051 uint16x4_t __c, const int __lane)
21053 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21056 __extension__ extern __inline uint32x4_t
21057 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21058 vmlaq_lane_u32 (uint32x4_t __a, uint32x4_t __b,
21059 uint32x2_t __c, const int __lane)
21061 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21064 /* vmlaq_laneq */
21066 __extension__ extern __inline float32x4_t
21067 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21068 vmlaq_laneq_f32 (float32x4_t __a, float32x4_t __b,
21069 float32x4_t __c, const int __lane)
21071 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21074 __extension__ extern __inline int16x8_t
21075 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21076 vmlaq_laneq_s16 (int16x8_t __a, int16x8_t __b,
21077 int16x8_t __c, const int __lane)
21079 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21082 __extension__ extern __inline int32x4_t
21083 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21084 vmlaq_laneq_s32 (int32x4_t __a, int32x4_t __b,
21085 int32x4_t __c, const int __lane)
21087 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21090 __extension__ extern __inline uint16x8_t
21091 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21092 vmlaq_laneq_u16 (uint16x8_t __a, uint16x8_t __b,
21093 uint16x8_t __c, const int __lane)
21095 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21098 __extension__ extern __inline uint32x4_t
21099 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21100 vmlaq_laneq_u32 (uint32x4_t __a, uint32x4_t __b,
21101 uint32x4_t __c, const int __lane)
21103 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21106 /* vmls */
21108 __extension__ extern __inline float32x2_t
21109 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21110 vmls_f32 (float32x2_t a, float32x2_t b, float32x2_t c)
21112 return a - b * c;
21115 __extension__ extern __inline float64x1_t
21116 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21117 vmls_f64 (float64x1_t __a, float64x1_t __b, float64x1_t __c)
21119 return __a - __b * __c;
21122 __extension__ extern __inline float32x4_t
21123 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21124 vmlsq_f32 (float32x4_t a, float32x4_t b, float32x4_t c)
21126 return a - b * c;
21129 __extension__ extern __inline float64x2_t
21130 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21131 vmlsq_f64 (float64x2_t a, float64x2_t b, float64x2_t c)
21133 return a - b * c;
21136 /* vmls_lane */
21138 __extension__ extern __inline float32x2_t
21139 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21140 vmls_lane_f32 (float32x2_t __a, float32x2_t __b,
21141 float32x2_t __c, const int __lane)
21143 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21146 __extension__ extern __inline int16x4_t
21147 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21148 vmls_lane_s16 (int16x4_t __a, int16x4_t __b,
21149 int16x4_t __c, const int __lane)
21151 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21154 __extension__ extern __inline int32x2_t
21155 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21156 vmls_lane_s32 (int32x2_t __a, int32x2_t __b,
21157 int32x2_t __c, const int __lane)
21159 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21162 __extension__ extern __inline uint16x4_t
21163 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21164 vmls_lane_u16 (uint16x4_t __a, uint16x4_t __b,
21165 uint16x4_t __c, const int __lane)
21167 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21170 __extension__ extern __inline uint32x2_t
21171 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21172 vmls_lane_u32 (uint32x2_t __a, uint32x2_t __b,
21173 uint32x2_t __c, const int __lane)
21175 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21178 /* vmls_laneq */
21180 __extension__ extern __inline float32x2_t
21181 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21182 vmls_laneq_f32 (float32x2_t __a, float32x2_t __b,
21183 float32x4_t __c, const int __lane)
21185 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21188 __extension__ extern __inline int16x4_t
21189 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21190 vmls_laneq_s16 (int16x4_t __a, int16x4_t __b,
21191 int16x8_t __c, const int __lane)
21193 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21196 __extension__ extern __inline int32x2_t
21197 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21198 vmls_laneq_s32 (int32x2_t __a, int32x2_t __b,
21199 int32x4_t __c, const int __lane)
21201 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21204 __extension__ extern __inline uint16x4_t
21205 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21206 vmls_laneq_u16 (uint16x4_t __a, uint16x4_t __b,
21207 uint16x8_t __c, const int __lane)
21209 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21212 __extension__ extern __inline uint32x2_t
21213 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21214 vmls_laneq_u32 (uint32x2_t __a, uint32x2_t __b,
21215 uint32x4_t __c, const int __lane)
21217 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21220 /* vmlsq_lane */
21222 __extension__ extern __inline float32x4_t
21223 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21224 vmlsq_lane_f32 (float32x4_t __a, float32x4_t __b,
21225 float32x2_t __c, const int __lane)
21227 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21230 __extension__ extern __inline int16x8_t
21231 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21232 vmlsq_lane_s16 (int16x8_t __a, int16x8_t __b,
21233 int16x4_t __c, const int __lane)
21235 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21238 __extension__ extern __inline int32x4_t
21239 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21240 vmlsq_lane_s32 (int32x4_t __a, int32x4_t __b,
21241 int32x2_t __c, const int __lane)
21243 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21246 __extension__ extern __inline uint16x8_t
21247 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21248 vmlsq_lane_u16 (uint16x8_t __a, uint16x8_t __b,
21249 uint16x4_t __c, const int __lane)
21251 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21254 __extension__ extern __inline uint32x4_t
21255 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21256 vmlsq_lane_u32 (uint32x4_t __a, uint32x4_t __b,
21257 uint32x2_t __c, const int __lane)
21259 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21262 /* vmlsq_laneq */
21264 __extension__ extern __inline float32x4_t
21265 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21266 vmlsq_laneq_f32 (float32x4_t __a, float32x4_t __b,
21267 float32x4_t __c, const int __lane)
21269 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21272 __extension__ extern __inline int16x8_t
21273 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21274 vmlsq_laneq_s16 (int16x8_t __a, int16x8_t __b,
21275 int16x8_t __c, const int __lane)
21277 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21280 __extension__ extern __inline int32x4_t
21281 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21282 vmlsq_laneq_s32 (int32x4_t __a, int32x4_t __b,
21283 int32x4_t __c, const int __lane)
21285 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21287 __extension__ extern __inline uint16x8_t
21288 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21289 vmlsq_laneq_u16 (uint16x8_t __a, uint16x8_t __b,
21290 uint16x8_t __c, const int __lane)
21292 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21295 __extension__ extern __inline uint32x4_t
21296 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21297 vmlsq_laneq_u32 (uint32x4_t __a, uint32x4_t __b,
21298 uint32x4_t __c, const int __lane)
21300 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21303 /* vmov_n_ */
21305 __extension__ extern __inline float16x4_t
21306 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21307 vmov_n_f16 (float16_t __a)
21309 return vdup_n_f16 (__a);
21312 __extension__ extern __inline float32x2_t
21313 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21314 vmov_n_f32 (float32_t __a)
21316 return vdup_n_f32 (__a);
21319 __extension__ extern __inline float64x1_t
21320 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21321 vmov_n_f64 (float64_t __a)
21323 return (float64x1_t) {__a};
21326 __extension__ extern __inline poly8x8_t
21327 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21328 vmov_n_p8 (poly8_t __a)
21330 return vdup_n_p8 (__a);
21333 __extension__ extern __inline poly16x4_t
21334 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21335 vmov_n_p16 (poly16_t __a)
21337 return vdup_n_p16 (__a);
21340 __extension__ extern __inline poly64x1_t
21341 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21342 vmov_n_p64 (poly64_t __a)
21344 return vdup_n_p64 (__a);
21347 __extension__ extern __inline int8x8_t
21348 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21349 vmov_n_s8 (int8_t __a)
21351 return vdup_n_s8 (__a);
21354 __extension__ extern __inline int16x4_t
21355 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21356 vmov_n_s16 (int16_t __a)
21358 return vdup_n_s16 (__a);
21361 __extension__ extern __inline int32x2_t
21362 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21363 vmov_n_s32 (int32_t __a)
21365 return vdup_n_s32 (__a);
21368 __extension__ extern __inline int64x1_t
21369 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21370 vmov_n_s64 (int64_t __a)
21372 return (int64x1_t) {__a};
21375 __extension__ extern __inline uint8x8_t
21376 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21377 vmov_n_u8 (uint8_t __a)
21379 return vdup_n_u8 (__a);
21382 __extension__ extern __inline uint16x4_t
21383 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21384 vmov_n_u16 (uint16_t __a)
21386 return vdup_n_u16 (__a);
21389 __extension__ extern __inline uint32x2_t
21390 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21391 vmov_n_u32 (uint32_t __a)
21393 return vdup_n_u32 (__a);
21396 __extension__ extern __inline uint64x1_t
21397 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21398 vmov_n_u64 (uint64_t __a)
21400 return (uint64x1_t) {__a};
21403 __extension__ extern __inline float16x8_t
21404 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21405 vmovq_n_f16 (float16_t __a)
21407 return vdupq_n_f16 (__a);
21410 __extension__ extern __inline float32x4_t
21411 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21412 vmovq_n_f32 (float32_t __a)
21414 return vdupq_n_f32 (__a);
21417 __extension__ extern __inline float64x2_t
21418 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21419 vmovq_n_f64 (float64_t __a)
21421 return vdupq_n_f64 (__a);
21424 __extension__ extern __inline poly8x16_t
21425 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21426 vmovq_n_p8 (poly8_t __a)
21428 return vdupq_n_p8 (__a);
21431 __extension__ extern __inline poly16x8_t
21432 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21433 vmovq_n_p16 (poly16_t __a)
21435 return vdupq_n_p16 (__a);
21438 __extension__ extern __inline poly64x2_t
21439 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21440 vmovq_n_p64 (poly64_t __a)
21442 return vdupq_n_p64 (__a);
21445 __extension__ extern __inline int8x16_t
21446 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21447 vmovq_n_s8 (int8_t __a)
21449 return vdupq_n_s8 (__a);
21452 __extension__ extern __inline int16x8_t
21453 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21454 vmovq_n_s16 (int16_t __a)
21456 return vdupq_n_s16 (__a);
21459 __extension__ extern __inline int32x4_t
21460 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21461 vmovq_n_s32 (int32_t __a)
21463 return vdupq_n_s32 (__a);
21466 __extension__ extern __inline int64x2_t
21467 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21468 vmovq_n_s64 (int64_t __a)
21470 return vdupq_n_s64 (__a);
21473 __extension__ extern __inline uint8x16_t
21474 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21475 vmovq_n_u8 (uint8_t __a)
21477 return vdupq_n_u8 (__a);
21480 __extension__ extern __inline uint16x8_t
21481 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21482 vmovq_n_u16 (uint16_t __a)
21484 return vdupq_n_u16 (__a);
21487 __extension__ extern __inline uint32x4_t
21488 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21489 vmovq_n_u32 (uint32_t __a)
21491 return vdupq_n_u32 (__a);
21494 __extension__ extern __inline uint64x2_t
21495 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21496 vmovq_n_u64 (uint64_t __a)
21498 return vdupq_n_u64 (__a);
21501 /* vmul_lane */
21503 __extension__ extern __inline float32x2_t
21504 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21505 vmul_lane_f32 (float32x2_t __a, float32x2_t __b, const int __lane)
21507 return __a * __aarch64_vget_lane_any (__b, __lane);
21510 __extension__ extern __inline float64x1_t
21511 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21512 vmul_lane_f64 (float64x1_t __a, float64x1_t __b, const int __lane)
21514 return __a * __b;
21517 __extension__ extern __inline int16x4_t
21518 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21519 vmul_lane_s16 (int16x4_t __a, int16x4_t __b, const int __lane)
21521 return __a * __aarch64_vget_lane_any (__b, __lane);
21524 __extension__ extern __inline int32x2_t
21525 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21526 vmul_lane_s32 (int32x2_t __a, int32x2_t __b, const int __lane)
21528 return __a * __aarch64_vget_lane_any (__b, __lane);
21531 __extension__ extern __inline uint16x4_t
21532 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21533 vmul_lane_u16 (uint16x4_t __a, uint16x4_t __b, const int __lane)
21535 return __a * __aarch64_vget_lane_any (__b, __lane);
21538 __extension__ extern __inline uint32x2_t
21539 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21540 vmul_lane_u32 (uint32x2_t __a, uint32x2_t __b, const int __lane)
21542 return __a * __aarch64_vget_lane_any (__b, __lane);
21545 /* vmuld_lane */
21547 __extension__ extern __inline float64_t
21548 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21549 vmuld_lane_f64 (float64_t __a, float64x1_t __b, const int __lane)
21551 return __a * __aarch64_vget_lane_any (__b, __lane);
21554 __extension__ extern __inline float64_t
21555 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21556 vmuld_laneq_f64 (float64_t __a, float64x2_t __b, const int __lane)
21558 return __a * __aarch64_vget_lane_any (__b, __lane);
21561 /* vmuls_lane */
21563 __extension__ extern __inline float32_t
21564 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21565 vmuls_lane_f32 (float32_t __a, float32x2_t __b, const int __lane)
21567 return __a * __aarch64_vget_lane_any (__b, __lane);
21570 __extension__ extern __inline float32_t
21571 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21572 vmuls_laneq_f32 (float32_t __a, float32x4_t __b, const int __lane)
21574 return __a * __aarch64_vget_lane_any (__b, __lane);
21577 /* vmul_laneq */
21579 __extension__ extern __inline float32x2_t
21580 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21581 vmul_laneq_f32 (float32x2_t __a, float32x4_t __b, const int __lane)
21583 return __a * __aarch64_vget_lane_any (__b, __lane);
21586 __extension__ extern __inline float64x1_t
21587 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21588 vmul_laneq_f64 (float64x1_t __a, float64x2_t __b, const int __lane)
21590 return __a * __aarch64_vget_lane_any (__b, __lane);
21593 __extension__ extern __inline int16x4_t
21594 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21595 vmul_laneq_s16 (int16x4_t __a, int16x8_t __b, const int __lane)
21597 return __a * __aarch64_vget_lane_any (__b, __lane);
21600 __extension__ extern __inline int32x2_t
21601 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21602 vmul_laneq_s32 (int32x2_t __a, int32x4_t __b, const int __lane)
21604 return __a * __aarch64_vget_lane_any (__b, __lane);
21607 __extension__ extern __inline uint16x4_t
21608 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21609 vmul_laneq_u16 (uint16x4_t __a, uint16x8_t __b, const int __lane)
21611 return __a * __aarch64_vget_lane_any (__b, __lane);
21614 __extension__ extern __inline uint32x2_t
21615 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21616 vmul_laneq_u32 (uint32x2_t __a, uint32x4_t __b, const int __lane)
21618 return __a * __aarch64_vget_lane_any (__b, __lane);
21621 /* vmul_n */
21623 __extension__ extern __inline float64x1_t
21624 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21625 vmul_n_f64 (float64x1_t __a, float64_t __b)
21627 return (float64x1_t) { vget_lane_f64 (__a, 0) * __b };
21630 /* vmulq_lane */
21632 __extension__ extern __inline float32x4_t
21633 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21634 vmulq_lane_f32 (float32x4_t __a, float32x2_t __b, const int __lane)
21636 return __a * __aarch64_vget_lane_any (__b, __lane);
21639 __extension__ extern __inline float64x2_t
21640 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21641 vmulq_lane_f64 (float64x2_t __a, float64x1_t __b, const int __lane)
21643 __AARCH64_LANE_CHECK (__a, __lane);
21644 return __a * __b[0];
21647 __extension__ extern __inline int16x8_t
21648 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21649 vmulq_lane_s16 (int16x8_t __a, int16x4_t __b, const int __lane)
21651 return __a * __aarch64_vget_lane_any (__b, __lane);
21654 __extension__ extern __inline int32x4_t
21655 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21656 vmulq_lane_s32 (int32x4_t __a, int32x2_t __b, const int __lane)
21658 return __a * __aarch64_vget_lane_any (__b, __lane);
21661 __extension__ extern __inline uint16x8_t
21662 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21663 vmulq_lane_u16 (uint16x8_t __a, uint16x4_t __b, const int __lane)
21665 return __a * __aarch64_vget_lane_any (__b, __lane);
21668 __extension__ extern __inline uint32x4_t
21669 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21670 vmulq_lane_u32 (uint32x4_t __a, uint32x2_t __b, const int __lane)
21672 return __a * __aarch64_vget_lane_any (__b, __lane);
21675 /* vmulq_laneq */
21677 __extension__ extern __inline float32x4_t
21678 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21679 vmulq_laneq_f32 (float32x4_t __a, float32x4_t __b, const int __lane)
21681 return __a * __aarch64_vget_lane_any (__b, __lane);
21684 __extension__ extern __inline float64x2_t
21685 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21686 vmulq_laneq_f64 (float64x2_t __a, float64x2_t __b, const int __lane)
21688 return __a * __aarch64_vget_lane_any (__b, __lane);
21691 __extension__ extern __inline int16x8_t
21692 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21693 vmulq_laneq_s16 (int16x8_t __a, int16x8_t __b, const int __lane)
21695 return __a * __aarch64_vget_lane_any (__b, __lane);
21698 __extension__ extern __inline int32x4_t
21699 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21700 vmulq_laneq_s32 (int32x4_t __a, int32x4_t __b, const int __lane)
21702 return __a * __aarch64_vget_lane_any (__b, __lane);
21705 __extension__ extern __inline uint16x8_t
21706 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21707 vmulq_laneq_u16 (uint16x8_t __a, uint16x8_t __b, const int __lane)
21709 return __a * __aarch64_vget_lane_any (__b, __lane);
21712 __extension__ extern __inline uint32x4_t
21713 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21714 vmulq_laneq_u32 (uint32x4_t __a, uint32x4_t __b, const int __lane)
21716 return __a * __aarch64_vget_lane_any (__b, __lane);
21719 /* vmul_n. */
21721 __extension__ extern __inline float32x2_t
21722 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21723 vmul_n_f32 (float32x2_t __a, float32_t __b)
21725 return __a * __b;
21728 __extension__ extern __inline float32x4_t
21729 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21730 vmulq_n_f32 (float32x4_t __a, float32_t __b)
21732 return __a * __b;
21735 __extension__ extern __inline float64x2_t
21736 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21737 vmulq_n_f64 (float64x2_t __a, float64_t __b)
21739 return __a * __b;
21742 __extension__ extern __inline int16x4_t
21743 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21744 vmul_n_s16 (int16x4_t __a, int16_t __b)
21746 return __a * __b;
21749 __extension__ extern __inline int16x8_t
21750 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21751 vmulq_n_s16 (int16x8_t __a, int16_t __b)
21753 return __a * __b;
21756 __extension__ extern __inline int32x2_t
21757 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21758 vmul_n_s32 (int32x2_t __a, int32_t __b)
21760 return __a * __b;
21763 __extension__ extern __inline int32x4_t
21764 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21765 vmulq_n_s32 (int32x4_t __a, int32_t __b)
21767 return __a * __b;
21770 __extension__ extern __inline uint16x4_t
21771 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21772 vmul_n_u16 (uint16x4_t __a, uint16_t __b)
21774 return __a * __b;
21777 __extension__ extern __inline uint16x8_t
21778 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21779 vmulq_n_u16 (uint16x8_t __a, uint16_t __b)
21781 return __a * __b;
21784 __extension__ extern __inline uint32x2_t
21785 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21786 vmul_n_u32 (uint32x2_t __a, uint32_t __b)
21788 return __a * __b;
21791 __extension__ extern __inline uint32x4_t
21792 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21793 vmulq_n_u32 (uint32x4_t __a, uint32_t __b)
21795 return __a * __b;
21798 /* vmvn */
21800 __extension__ extern __inline poly8x8_t
21801 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21802 vmvn_p8 (poly8x8_t __a)
21804 return (poly8x8_t) ~((int8x8_t) __a);
21807 __extension__ extern __inline int8x8_t
21808 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21809 vmvn_s8 (int8x8_t __a)
21811 return ~__a;
21814 __extension__ extern __inline int16x4_t
21815 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21816 vmvn_s16 (int16x4_t __a)
21818 return ~__a;
21821 __extension__ extern __inline int32x2_t
21822 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21823 vmvn_s32 (int32x2_t __a)
21825 return ~__a;
21828 __extension__ extern __inline uint8x8_t
21829 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21830 vmvn_u8 (uint8x8_t __a)
21832 return ~__a;
21835 __extension__ extern __inline uint16x4_t
21836 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21837 vmvn_u16 (uint16x4_t __a)
21839 return ~__a;
21842 __extension__ extern __inline uint32x2_t
21843 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21844 vmvn_u32 (uint32x2_t __a)
21846 return ~__a;
21849 __extension__ extern __inline poly8x16_t
21850 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21851 vmvnq_p8 (poly8x16_t __a)
21853 return (poly8x16_t) ~((int8x16_t) __a);
21856 __extension__ extern __inline int8x16_t
21857 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21858 vmvnq_s8 (int8x16_t __a)
21860 return ~__a;
21863 __extension__ extern __inline int16x8_t
21864 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21865 vmvnq_s16 (int16x8_t __a)
21867 return ~__a;
21870 __extension__ extern __inline int32x4_t
21871 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21872 vmvnq_s32 (int32x4_t __a)
21874 return ~__a;
21877 __extension__ extern __inline uint8x16_t
21878 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21879 vmvnq_u8 (uint8x16_t __a)
21881 return ~__a;
21884 __extension__ extern __inline uint16x8_t
21885 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21886 vmvnq_u16 (uint16x8_t __a)
21888 return ~__a;
21891 __extension__ extern __inline uint32x4_t
21892 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21893 vmvnq_u32 (uint32x4_t __a)
21895 return ~__a;
21898 /* vneg */
21900 __extension__ extern __inline float32x2_t
21901 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21902 vneg_f32 (float32x2_t __a)
21904 return -__a;
21907 __extension__ extern __inline float64x1_t
21908 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21909 vneg_f64 (float64x1_t __a)
21911 return -__a;
21914 __extension__ extern __inline int8x8_t
21915 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21916 vneg_s8 (int8x8_t __a)
21918 return -__a;
21921 __extension__ extern __inline int16x4_t
21922 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21923 vneg_s16 (int16x4_t __a)
21925 return -__a;
21928 __extension__ extern __inline int32x2_t
21929 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21930 vneg_s32 (int32x2_t __a)
21932 return -__a;
21935 __extension__ extern __inline int64x1_t
21936 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21937 vneg_s64 (int64x1_t __a)
21939 return -__a;
21942 __extension__ extern __inline float32x4_t
21943 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21944 vnegq_f32 (float32x4_t __a)
21946 return -__a;
21949 __extension__ extern __inline float64x2_t
21950 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21951 vnegq_f64 (float64x2_t __a)
21953 return -__a;
21956 __extension__ extern __inline int8x16_t
21957 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21958 vnegq_s8 (int8x16_t __a)
21960 return -__a;
21963 __extension__ extern __inline int16x8_t
21964 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21965 vnegq_s16 (int16x8_t __a)
21967 return -__a;
21970 __extension__ extern __inline int32x4_t
21971 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21972 vnegq_s32 (int32x4_t __a)
21974 return -__a;
21977 __extension__ extern __inline int64x2_t
21978 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21979 vnegq_s64 (int64x2_t __a)
21981 return -__a;
21984 /* vpadd */
21986 __extension__ extern __inline float32x2_t
21987 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21988 vpadd_f32 (float32x2_t __a, float32x2_t __b)
21990 return __builtin_aarch64_faddpv2sf (__a, __b);
21993 __extension__ extern __inline float32x4_t
21994 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21995 vpaddq_f32 (float32x4_t __a, float32x4_t __b)
21997 return __builtin_aarch64_faddpv4sf (__a, __b);
22000 __extension__ extern __inline float64x2_t
22001 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22002 vpaddq_f64 (float64x2_t __a, float64x2_t __b)
22004 return __builtin_aarch64_faddpv2df (__a, __b);
22007 __extension__ extern __inline int8x8_t
22008 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22009 vpadd_s8 (int8x8_t __a, int8x8_t __b)
22011 return __builtin_aarch64_addpv8qi (__a, __b);
22014 __extension__ extern __inline int16x4_t
22015 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22016 vpadd_s16 (int16x4_t __a, int16x4_t __b)
22018 return __builtin_aarch64_addpv4hi (__a, __b);
22021 __extension__ extern __inline int32x2_t
22022 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22023 vpadd_s32 (int32x2_t __a, int32x2_t __b)
22025 return __builtin_aarch64_addpv2si (__a, __b);
22028 __extension__ extern __inline uint8x8_t
22029 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22030 vpadd_u8 (uint8x8_t __a, uint8x8_t __b)
22032 return (uint8x8_t) __builtin_aarch64_addpv8qi ((int8x8_t) __a,
22033 (int8x8_t) __b);
22036 __extension__ extern __inline uint16x4_t
22037 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22038 vpadd_u16 (uint16x4_t __a, uint16x4_t __b)
22040 return (uint16x4_t) __builtin_aarch64_addpv4hi ((int16x4_t) __a,
22041 (int16x4_t) __b);
22044 __extension__ extern __inline uint32x2_t
22045 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22046 vpadd_u32 (uint32x2_t __a, uint32x2_t __b)
22048 return (uint32x2_t) __builtin_aarch64_addpv2si ((int32x2_t) __a,
22049 (int32x2_t) __b);
22052 __extension__ extern __inline float32_t
22053 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22054 vpadds_f32 (float32x2_t __a)
22056 return __builtin_aarch64_reduc_plus_scal_v2sf (__a);
22059 __extension__ extern __inline float64_t
22060 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22061 vpaddd_f64 (float64x2_t __a)
22063 return __builtin_aarch64_reduc_plus_scal_v2df (__a);
22066 __extension__ extern __inline int64_t
22067 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22068 vpaddd_s64 (int64x2_t __a)
22070 return __builtin_aarch64_addpdi (__a);
22073 __extension__ extern __inline uint64_t
22074 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22075 vpaddd_u64 (uint64x2_t __a)
22077 return __builtin_aarch64_addpdi ((int64x2_t) __a);
22080 /* vqabs */
22082 __extension__ extern __inline int64x2_t
22083 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22084 vqabsq_s64 (int64x2_t __a)
22086 return (int64x2_t) __builtin_aarch64_sqabsv2di (__a);
22089 __extension__ extern __inline int8_t
22090 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22091 vqabsb_s8 (int8_t __a)
22093 return (int8_t) __builtin_aarch64_sqabsqi (__a);
22096 __extension__ extern __inline int16_t
22097 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22098 vqabsh_s16 (int16_t __a)
22100 return (int16_t) __builtin_aarch64_sqabshi (__a);
22103 __extension__ extern __inline int32_t
22104 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22105 vqabss_s32 (int32_t __a)
22107 return (int32_t) __builtin_aarch64_sqabssi (__a);
22110 __extension__ extern __inline int64_t
22111 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22112 vqabsd_s64 (int64_t __a)
22114 return __builtin_aarch64_sqabsdi (__a);
22117 /* vqadd */
22119 __extension__ extern __inline int8_t
22120 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22121 vqaddb_s8 (int8_t __a, int8_t __b)
22123 return (int8_t) __builtin_aarch64_sqaddqi (__a, __b);
22126 __extension__ extern __inline int16_t
22127 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22128 vqaddh_s16 (int16_t __a, int16_t __b)
22130 return (int16_t) __builtin_aarch64_sqaddhi (__a, __b);
22133 __extension__ extern __inline int32_t
22134 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22135 vqadds_s32 (int32_t __a, int32_t __b)
22137 return (int32_t) __builtin_aarch64_sqaddsi (__a, __b);
22140 __extension__ extern __inline int64_t
22141 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22142 vqaddd_s64 (int64_t __a, int64_t __b)
22144 return __builtin_aarch64_sqadddi (__a, __b);
22147 __extension__ extern __inline uint8_t
22148 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22149 vqaddb_u8 (uint8_t __a, uint8_t __b)
22151 return (uint8_t) __builtin_aarch64_uqaddqi_uuu (__a, __b);
22154 __extension__ extern __inline uint16_t
22155 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22156 vqaddh_u16 (uint16_t __a, uint16_t __b)
22158 return (uint16_t) __builtin_aarch64_uqaddhi_uuu (__a, __b);
22161 __extension__ extern __inline uint32_t
22162 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22163 vqadds_u32 (uint32_t __a, uint32_t __b)
22165 return (uint32_t) __builtin_aarch64_uqaddsi_uuu (__a, __b);
22168 __extension__ extern __inline uint64_t
22169 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22170 vqaddd_u64 (uint64_t __a, uint64_t __b)
22172 return __builtin_aarch64_uqadddi_uuu (__a, __b);
22175 /* vqdmlal */
22177 __extension__ extern __inline int32x4_t
22178 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22179 vqdmlal_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
22181 return __builtin_aarch64_sqdmlalv4hi (__a, __b, __c);
22184 __extension__ extern __inline int32x4_t
22185 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22186 vqdmlal_high_s16 (int32x4_t __a, int16x8_t __b, int16x8_t __c)
22188 return __builtin_aarch64_sqdmlal2v8hi (__a, __b, __c);
22191 __extension__ extern __inline int32x4_t
22192 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22193 vqdmlal_high_lane_s16 (int32x4_t __a, int16x8_t __b, int16x4_t __c,
22194 int const __d)
22196 return __builtin_aarch64_sqdmlal2_lanev8hi (__a, __b, __c, __d);
22199 __extension__ extern __inline int32x4_t
22200 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22201 vqdmlal_high_laneq_s16 (int32x4_t __a, int16x8_t __b, int16x8_t __c,
22202 int const __d)
22204 return __builtin_aarch64_sqdmlal2_laneqv8hi (__a, __b, __c, __d);
22207 __extension__ extern __inline int32x4_t
22208 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22209 vqdmlal_high_n_s16 (int32x4_t __a, int16x8_t __b, int16_t __c)
22211 return __builtin_aarch64_sqdmlal2_nv8hi (__a, __b, __c);
22214 __extension__ extern __inline int32x4_t
22215 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22216 vqdmlal_lane_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c, int const __d)
22218 return __builtin_aarch64_sqdmlal_lanev4hi (__a, __b, __c, __d);
22221 __extension__ extern __inline int32x4_t
22222 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22223 vqdmlal_laneq_s16 (int32x4_t __a, int16x4_t __b, int16x8_t __c, int const __d)
22225 return __builtin_aarch64_sqdmlal_laneqv4hi (__a, __b, __c, __d);
22228 __extension__ extern __inline int32x4_t
22229 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22230 vqdmlal_n_s16 (int32x4_t __a, int16x4_t __b, int16_t __c)
22232 return __builtin_aarch64_sqdmlal_nv4hi (__a, __b, __c);
22235 __extension__ extern __inline int64x2_t
22236 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22237 vqdmlal_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
22239 return __builtin_aarch64_sqdmlalv2si (__a, __b, __c);
22242 __extension__ extern __inline int64x2_t
22243 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22244 vqdmlal_high_s32 (int64x2_t __a, int32x4_t __b, int32x4_t __c)
22246 return __builtin_aarch64_sqdmlal2v4si (__a, __b, __c);
22249 __extension__ extern __inline int64x2_t
22250 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22251 vqdmlal_high_lane_s32 (int64x2_t __a, int32x4_t __b, int32x2_t __c,
22252 int const __d)
22254 return __builtin_aarch64_sqdmlal2_lanev4si (__a, __b, __c, __d);
22257 __extension__ extern __inline int64x2_t
22258 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22259 vqdmlal_high_laneq_s32 (int64x2_t __a, int32x4_t __b, int32x4_t __c,
22260 int const __d)
22262 return __builtin_aarch64_sqdmlal2_laneqv4si (__a, __b, __c, __d);
22265 __extension__ extern __inline int64x2_t
22266 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22267 vqdmlal_high_n_s32 (int64x2_t __a, int32x4_t __b, int32_t __c)
22269 return __builtin_aarch64_sqdmlal2_nv4si (__a, __b, __c);
22272 __extension__ extern __inline int64x2_t
22273 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22274 vqdmlal_lane_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c, int const __d)
22276 return __builtin_aarch64_sqdmlal_lanev2si (__a, __b, __c, __d);
22279 __extension__ extern __inline int64x2_t
22280 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22281 vqdmlal_laneq_s32 (int64x2_t __a, int32x2_t __b, int32x4_t __c, int const __d)
22283 return __builtin_aarch64_sqdmlal_laneqv2si (__a, __b, __c, __d);
22286 __extension__ extern __inline int64x2_t
22287 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22288 vqdmlal_n_s32 (int64x2_t __a, int32x2_t __b, int32_t __c)
22290 return __builtin_aarch64_sqdmlal_nv2si (__a, __b, __c);
22293 __extension__ extern __inline int32_t
22294 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22295 vqdmlalh_s16 (int32_t __a, int16_t __b, int16_t __c)
22297 return __builtin_aarch64_sqdmlalhi (__a, __b, __c);
22300 __extension__ extern __inline int32_t
22301 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22302 vqdmlalh_lane_s16 (int32_t __a, int16_t __b, int16x4_t __c, const int __d)
22304 return __builtin_aarch64_sqdmlal_lanehi (__a, __b, __c, __d);
22307 __extension__ extern __inline int32_t
22308 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22309 vqdmlalh_laneq_s16 (int32_t __a, int16_t __b, int16x8_t __c, const int __d)
22311 return __builtin_aarch64_sqdmlal_laneqhi (__a, __b, __c, __d);
22314 __extension__ extern __inline int64_t
22315 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22316 vqdmlals_s32 (int64_t __a, int32_t __b, int32_t __c)
22318 return __builtin_aarch64_sqdmlalsi (__a, __b, __c);
22321 __extension__ extern __inline int64_t
22322 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22323 vqdmlals_lane_s32 (int64_t __a, int32_t __b, int32x2_t __c, const int __d)
22325 return __builtin_aarch64_sqdmlal_lanesi (__a, __b, __c, __d);
22328 __extension__ extern __inline int64_t
22329 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22330 vqdmlals_laneq_s32 (int64_t __a, int32_t __b, int32x4_t __c, const int __d)
22332 return __builtin_aarch64_sqdmlal_laneqsi (__a, __b, __c, __d);
22335 /* vqdmlsl */
22337 __extension__ extern __inline int32x4_t
22338 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22339 vqdmlsl_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
22341 return __builtin_aarch64_sqdmlslv4hi (__a, __b, __c);
22344 __extension__ extern __inline int32x4_t
22345 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22346 vqdmlsl_high_s16 (int32x4_t __a, int16x8_t __b, int16x8_t __c)
22348 return __builtin_aarch64_sqdmlsl2v8hi (__a, __b, __c);
22351 __extension__ extern __inline int32x4_t
22352 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22353 vqdmlsl_high_lane_s16 (int32x4_t __a, int16x8_t __b, int16x4_t __c,
22354 int const __d)
22356 return __builtin_aarch64_sqdmlsl2_lanev8hi (__a, __b, __c, __d);
22359 __extension__ extern __inline int32x4_t
22360 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22361 vqdmlsl_high_laneq_s16 (int32x4_t __a, int16x8_t __b, int16x8_t __c,
22362 int const __d)
22364 return __builtin_aarch64_sqdmlsl2_laneqv8hi (__a, __b, __c, __d);
22367 __extension__ extern __inline int32x4_t
22368 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22369 vqdmlsl_high_n_s16 (int32x4_t __a, int16x8_t __b, int16_t __c)
22371 return __builtin_aarch64_sqdmlsl2_nv8hi (__a, __b, __c);
22374 __extension__ extern __inline int32x4_t
22375 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22376 vqdmlsl_lane_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c, int const __d)
22378 return __builtin_aarch64_sqdmlsl_lanev4hi (__a, __b, __c, __d);
22381 __extension__ extern __inline int32x4_t
22382 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22383 vqdmlsl_laneq_s16 (int32x4_t __a, int16x4_t __b, int16x8_t __c, int const __d)
22385 return __builtin_aarch64_sqdmlsl_laneqv4hi (__a, __b, __c, __d);
22388 __extension__ extern __inline int32x4_t
22389 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22390 vqdmlsl_n_s16 (int32x4_t __a, int16x4_t __b, int16_t __c)
22392 return __builtin_aarch64_sqdmlsl_nv4hi (__a, __b, __c);
22395 __extension__ extern __inline int64x2_t
22396 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22397 vqdmlsl_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
22399 return __builtin_aarch64_sqdmlslv2si (__a, __b, __c);
22402 __extension__ extern __inline int64x2_t
22403 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22404 vqdmlsl_high_s32 (int64x2_t __a, int32x4_t __b, int32x4_t __c)
22406 return __builtin_aarch64_sqdmlsl2v4si (__a, __b, __c);
22409 __extension__ extern __inline int64x2_t
22410 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22411 vqdmlsl_high_lane_s32 (int64x2_t __a, int32x4_t __b, int32x2_t __c,
22412 int const __d)
22414 return __builtin_aarch64_sqdmlsl2_lanev4si (__a, __b, __c, __d);
22417 __extension__ extern __inline int64x2_t
22418 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22419 vqdmlsl_high_laneq_s32 (int64x2_t __a, int32x4_t __b, int32x4_t __c,
22420 int const __d)
22422 return __builtin_aarch64_sqdmlsl2_laneqv4si (__a, __b, __c, __d);
22425 __extension__ extern __inline int64x2_t
22426 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22427 vqdmlsl_high_n_s32 (int64x2_t __a, int32x4_t __b, int32_t __c)
22429 return __builtin_aarch64_sqdmlsl2_nv4si (__a, __b, __c);
22432 __extension__ extern __inline int64x2_t
22433 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22434 vqdmlsl_lane_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c, int const __d)
22436 return __builtin_aarch64_sqdmlsl_lanev2si (__a, __b, __c, __d);
22439 __extension__ extern __inline int64x2_t
22440 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22441 vqdmlsl_laneq_s32 (int64x2_t __a, int32x2_t __b, int32x4_t __c, int const __d)
22443 return __builtin_aarch64_sqdmlsl_laneqv2si (__a, __b, __c, __d);
22446 __extension__ extern __inline int64x2_t
22447 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22448 vqdmlsl_n_s32 (int64x2_t __a, int32x2_t __b, int32_t __c)
22450 return __builtin_aarch64_sqdmlsl_nv2si (__a, __b, __c);
22453 __extension__ extern __inline int32_t
22454 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22455 vqdmlslh_s16 (int32_t __a, int16_t __b, int16_t __c)
22457 return __builtin_aarch64_sqdmlslhi (__a, __b, __c);
22460 __extension__ extern __inline int32_t
22461 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22462 vqdmlslh_lane_s16 (int32_t __a, int16_t __b, int16x4_t __c, const int __d)
22464 return __builtin_aarch64_sqdmlsl_lanehi (__a, __b, __c, __d);
22467 __extension__ extern __inline int32_t
22468 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22469 vqdmlslh_laneq_s16 (int32_t __a, int16_t __b, int16x8_t __c, const int __d)
22471 return __builtin_aarch64_sqdmlsl_laneqhi (__a, __b, __c, __d);
22474 __extension__ extern __inline int64_t
22475 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22476 vqdmlsls_s32 (int64_t __a, int32_t __b, int32_t __c)
22478 return __builtin_aarch64_sqdmlslsi (__a, __b, __c);
22481 __extension__ extern __inline int64_t
22482 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22483 vqdmlsls_lane_s32 (int64_t __a, int32_t __b, int32x2_t __c, const int __d)
22485 return __builtin_aarch64_sqdmlsl_lanesi (__a, __b, __c, __d);
22488 __extension__ extern __inline int64_t
22489 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22490 vqdmlsls_laneq_s32 (int64_t __a, int32_t __b, int32x4_t __c, const int __d)
22492 return __builtin_aarch64_sqdmlsl_laneqsi (__a, __b, __c, __d);
22495 /* vqdmulh */
22497 __extension__ extern __inline int16x4_t
22498 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22499 vqdmulh_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c)
22501 return __builtin_aarch64_sqdmulh_lanev4hi (__a, __b, __c);
22504 __extension__ extern __inline int32x2_t
22505 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22506 vqdmulh_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c)
22508 return __builtin_aarch64_sqdmulh_lanev2si (__a, __b, __c);
22511 __extension__ extern __inline int16x8_t
22512 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22513 vqdmulhq_lane_s16 (int16x8_t __a, int16x4_t __b, const int __c)
22515 return __builtin_aarch64_sqdmulh_lanev8hi (__a, __b, __c);
22518 __extension__ extern __inline int32x4_t
22519 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22520 vqdmulhq_lane_s32 (int32x4_t __a, int32x2_t __b, const int __c)
22522 return __builtin_aarch64_sqdmulh_lanev4si (__a, __b, __c);
22525 __extension__ extern __inline int16_t
22526 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22527 vqdmulhh_s16 (int16_t __a, int16_t __b)
22529 return (int16_t) __builtin_aarch64_sqdmulhhi (__a, __b);
22532 __extension__ extern __inline int16_t
22533 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22534 vqdmulhh_lane_s16 (int16_t __a, int16x4_t __b, const int __c)
22536 return __builtin_aarch64_sqdmulh_lanehi (__a, __b, __c);
22539 __extension__ extern __inline int16_t
22540 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22541 vqdmulhh_laneq_s16 (int16_t __a, int16x8_t __b, const int __c)
22543 return __builtin_aarch64_sqdmulh_laneqhi (__a, __b, __c);
22546 __extension__ extern __inline int32_t
22547 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22548 vqdmulhs_s32 (int32_t __a, int32_t __b)
22550 return (int32_t) __builtin_aarch64_sqdmulhsi (__a, __b);
22553 __extension__ extern __inline int32_t
22554 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22555 vqdmulhs_lane_s32 (int32_t __a, int32x2_t __b, const int __c)
22557 return __builtin_aarch64_sqdmulh_lanesi (__a, __b, __c);
22560 __extension__ extern __inline int32_t
22561 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22562 vqdmulhs_laneq_s32 (int32_t __a, int32x4_t __b, const int __c)
22564 return __builtin_aarch64_sqdmulh_laneqsi (__a, __b, __c);
22567 /* vqdmull */
22569 __extension__ extern __inline int32x4_t
22570 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22571 vqdmull_s16 (int16x4_t __a, int16x4_t __b)
22573 return __builtin_aarch64_sqdmullv4hi (__a, __b);
22576 __extension__ extern __inline int32x4_t
22577 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22578 vqdmull_high_s16 (int16x8_t __a, int16x8_t __b)
22580 return __builtin_aarch64_sqdmull2v8hi (__a, __b);
22583 __extension__ extern __inline int32x4_t
22584 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22585 vqdmull_high_lane_s16 (int16x8_t __a, int16x4_t __b, int const __c)
22587 return __builtin_aarch64_sqdmull2_lanev8hi (__a, __b,__c);
22590 __extension__ extern __inline int32x4_t
22591 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22592 vqdmull_high_laneq_s16 (int16x8_t __a, int16x8_t __b, int const __c)
22594 return __builtin_aarch64_sqdmull2_laneqv8hi (__a, __b,__c);
22597 __extension__ extern __inline int32x4_t
22598 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22599 vqdmull_high_n_s16 (int16x8_t __a, int16_t __b)
22601 return __builtin_aarch64_sqdmull2_nv8hi (__a, __b);
22604 __extension__ extern __inline int32x4_t
22605 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22606 vqdmull_lane_s16 (int16x4_t __a, int16x4_t __b, int const __c)
22608 return __builtin_aarch64_sqdmull_lanev4hi (__a, __b, __c);
22611 __extension__ extern __inline int32x4_t
22612 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22613 vqdmull_laneq_s16 (int16x4_t __a, int16x8_t __b, int const __c)
22615 return __builtin_aarch64_sqdmull_laneqv4hi (__a, __b, __c);
22618 __extension__ extern __inline int32x4_t
22619 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22620 vqdmull_n_s16 (int16x4_t __a, int16_t __b)
22622 return __builtin_aarch64_sqdmull_nv4hi (__a, __b);
22625 __extension__ extern __inline int64x2_t
22626 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22627 vqdmull_s32 (int32x2_t __a, int32x2_t __b)
22629 return __builtin_aarch64_sqdmullv2si (__a, __b);
22632 __extension__ extern __inline int64x2_t
22633 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22634 vqdmull_high_s32 (int32x4_t __a, int32x4_t __b)
22636 return __builtin_aarch64_sqdmull2v4si (__a, __b);
22639 __extension__ extern __inline int64x2_t
22640 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22641 vqdmull_high_lane_s32 (int32x4_t __a, int32x2_t __b, int const __c)
22643 return __builtin_aarch64_sqdmull2_lanev4si (__a, __b, __c);
22646 __extension__ extern __inline int64x2_t
22647 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22648 vqdmull_high_laneq_s32 (int32x4_t __a, int32x4_t __b, int const __c)
22650 return __builtin_aarch64_sqdmull2_laneqv4si (__a, __b, __c);
22653 __extension__ extern __inline int64x2_t
22654 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22655 vqdmull_high_n_s32 (int32x4_t __a, int32_t __b)
22657 return __builtin_aarch64_sqdmull2_nv4si (__a, __b);
22660 __extension__ extern __inline int64x2_t
22661 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22662 vqdmull_lane_s32 (int32x2_t __a, int32x2_t __b, int const __c)
22664 return __builtin_aarch64_sqdmull_lanev2si (__a, __b, __c);
22667 __extension__ extern __inline int64x2_t
22668 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22669 vqdmull_laneq_s32 (int32x2_t __a, int32x4_t __b, int const __c)
22671 return __builtin_aarch64_sqdmull_laneqv2si (__a, __b, __c);
22674 __extension__ extern __inline int64x2_t
22675 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22676 vqdmull_n_s32 (int32x2_t __a, int32_t __b)
22678 return __builtin_aarch64_sqdmull_nv2si (__a, __b);
22681 __extension__ extern __inline int32_t
22682 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22683 vqdmullh_s16 (int16_t __a, int16_t __b)
22685 return (int32_t) __builtin_aarch64_sqdmullhi (__a, __b);
22688 __extension__ extern __inline int32_t
22689 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22690 vqdmullh_lane_s16 (int16_t __a, int16x4_t __b, const int __c)
22692 return __builtin_aarch64_sqdmull_lanehi (__a, __b, __c);
22695 __extension__ extern __inline int32_t
22696 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22697 vqdmullh_laneq_s16 (int16_t __a, int16x8_t __b, const int __c)
22699 return __builtin_aarch64_sqdmull_laneqhi (__a, __b, __c);
22702 __extension__ extern __inline int64_t
22703 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22704 vqdmulls_s32 (int32_t __a, int32_t __b)
22706 return __builtin_aarch64_sqdmullsi (__a, __b);
22709 __extension__ extern __inline int64_t
22710 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22711 vqdmulls_lane_s32 (int32_t __a, int32x2_t __b, const int __c)
22713 return __builtin_aarch64_sqdmull_lanesi (__a, __b, __c);
22716 __extension__ extern __inline int64_t
22717 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22718 vqdmulls_laneq_s32 (int32_t __a, int32x4_t __b, const int __c)
22720 return __builtin_aarch64_sqdmull_laneqsi (__a, __b, __c);
22723 /* vqmovn */
22725 __extension__ extern __inline int8x8_t
22726 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22727 vqmovn_s16 (int16x8_t __a)
22729 return (int8x8_t) __builtin_aarch64_sqmovnv8hi (__a);
22732 __extension__ extern __inline int16x4_t
22733 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22734 vqmovn_s32 (int32x4_t __a)
22736 return (int16x4_t) __builtin_aarch64_sqmovnv4si (__a);
22739 __extension__ extern __inline int32x2_t
22740 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22741 vqmovn_s64 (int64x2_t __a)
22743 return (int32x2_t) __builtin_aarch64_sqmovnv2di (__a);
22746 __extension__ extern __inline uint8x8_t
22747 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22748 vqmovn_u16 (uint16x8_t __a)
22750 return (uint8x8_t) __builtin_aarch64_uqmovnv8hi ((int16x8_t) __a);
22753 __extension__ extern __inline uint16x4_t
22754 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22755 vqmovn_u32 (uint32x4_t __a)
22757 return (uint16x4_t) __builtin_aarch64_uqmovnv4si ((int32x4_t) __a);
22760 __extension__ extern __inline uint32x2_t
22761 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22762 vqmovn_u64 (uint64x2_t __a)
22764 return (uint32x2_t) __builtin_aarch64_uqmovnv2di ((int64x2_t) __a);
22767 __extension__ extern __inline int8_t
22768 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22769 vqmovnh_s16 (int16_t __a)
22771 return (int8_t) __builtin_aarch64_sqmovnhi (__a);
22774 __extension__ extern __inline int16_t
22775 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22776 vqmovns_s32 (int32_t __a)
22778 return (int16_t) __builtin_aarch64_sqmovnsi (__a);
22781 __extension__ extern __inline int32_t
22782 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22783 vqmovnd_s64 (int64_t __a)
22785 return (int32_t) __builtin_aarch64_sqmovndi (__a);
22788 __extension__ extern __inline uint8_t
22789 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22790 vqmovnh_u16 (uint16_t __a)
22792 return (uint8_t) __builtin_aarch64_uqmovnhi (__a);
22795 __extension__ extern __inline uint16_t
22796 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22797 vqmovns_u32 (uint32_t __a)
22799 return (uint16_t) __builtin_aarch64_uqmovnsi (__a);
22802 __extension__ extern __inline uint32_t
22803 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22804 vqmovnd_u64 (uint64_t __a)
22806 return (uint32_t) __builtin_aarch64_uqmovndi (__a);
22809 /* vqmovun */
22811 __extension__ extern __inline uint8x8_t
22812 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22813 vqmovun_s16 (int16x8_t __a)
22815 return (uint8x8_t) __builtin_aarch64_sqmovunv8hi (__a);
22818 __extension__ extern __inline uint16x4_t
22819 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22820 vqmovun_s32 (int32x4_t __a)
22822 return (uint16x4_t) __builtin_aarch64_sqmovunv4si (__a);
22825 __extension__ extern __inline uint32x2_t
22826 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22827 vqmovun_s64 (int64x2_t __a)
22829 return (uint32x2_t) __builtin_aarch64_sqmovunv2di (__a);
22832 __extension__ extern __inline int8_t
22833 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22834 vqmovunh_s16 (int16_t __a)
22836 return (int8_t) __builtin_aarch64_sqmovunhi (__a);
22839 __extension__ extern __inline int16_t
22840 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22841 vqmovuns_s32 (int32_t __a)
22843 return (int16_t) __builtin_aarch64_sqmovunsi (__a);
22846 __extension__ extern __inline int32_t
22847 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22848 vqmovund_s64 (int64_t __a)
22850 return (int32_t) __builtin_aarch64_sqmovundi (__a);
22853 /* vqneg */
22855 __extension__ extern __inline int64x2_t
22856 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22857 vqnegq_s64 (int64x2_t __a)
22859 return (int64x2_t) __builtin_aarch64_sqnegv2di (__a);
22862 __extension__ extern __inline int8_t
22863 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22864 vqnegb_s8 (int8_t __a)
22866 return (int8_t) __builtin_aarch64_sqnegqi (__a);
22869 __extension__ extern __inline int16_t
22870 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22871 vqnegh_s16 (int16_t __a)
22873 return (int16_t) __builtin_aarch64_sqneghi (__a);
22876 __extension__ extern __inline int32_t
22877 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22878 vqnegs_s32 (int32_t __a)
22880 return (int32_t) __builtin_aarch64_sqnegsi (__a);
22883 __extension__ extern __inline int64_t
22884 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22885 vqnegd_s64 (int64_t __a)
22887 return __builtin_aarch64_sqnegdi (__a);
22890 /* vqrdmulh */
22892 __extension__ extern __inline int16x4_t
22893 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22894 vqrdmulh_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c)
22896 return __builtin_aarch64_sqrdmulh_lanev4hi (__a, __b, __c);
22899 __extension__ extern __inline int32x2_t
22900 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22901 vqrdmulh_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c)
22903 return __builtin_aarch64_sqrdmulh_lanev2si (__a, __b, __c);
22906 __extension__ extern __inline int16x8_t
22907 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22908 vqrdmulhq_lane_s16 (int16x8_t __a, int16x4_t __b, const int __c)
22910 return __builtin_aarch64_sqrdmulh_lanev8hi (__a, __b, __c);
22913 __extension__ extern __inline int32x4_t
22914 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22915 vqrdmulhq_lane_s32 (int32x4_t __a, int32x2_t __b, const int __c)
22917 return __builtin_aarch64_sqrdmulh_lanev4si (__a, __b, __c);
22920 __extension__ extern __inline int16_t
22921 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22922 vqrdmulhh_s16 (int16_t __a, int16_t __b)
22924 return (int16_t) __builtin_aarch64_sqrdmulhhi (__a, __b);
22927 __extension__ extern __inline int16_t
22928 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22929 vqrdmulhh_lane_s16 (int16_t __a, int16x4_t __b, const int __c)
22931 return __builtin_aarch64_sqrdmulh_lanehi (__a, __b, __c);
22934 __extension__ extern __inline int16_t
22935 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22936 vqrdmulhh_laneq_s16 (int16_t __a, int16x8_t __b, const int __c)
22938 return __builtin_aarch64_sqrdmulh_laneqhi (__a, __b, __c);
22941 __extension__ extern __inline int32_t
22942 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22943 vqrdmulhs_s32 (int32_t __a, int32_t __b)
22945 return (int32_t) __builtin_aarch64_sqrdmulhsi (__a, __b);
22948 __extension__ extern __inline int32_t
22949 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22950 vqrdmulhs_lane_s32 (int32_t __a, int32x2_t __b, const int __c)
22952 return __builtin_aarch64_sqrdmulh_lanesi (__a, __b, __c);
22955 __extension__ extern __inline int32_t
22956 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22957 vqrdmulhs_laneq_s32 (int32_t __a, int32x4_t __b, const int __c)
22959 return __builtin_aarch64_sqrdmulh_laneqsi (__a, __b, __c);
22962 /* vqrshl */
22964 __extension__ extern __inline int8x8_t
22965 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22966 vqrshl_s8 (int8x8_t __a, int8x8_t __b)
22968 return __builtin_aarch64_sqrshlv8qi (__a, __b);
22971 __extension__ extern __inline int16x4_t
22972 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22973 vqrshl_s16 (int16x4_t __a, int16x4_t __b)
22975 return __builtin_aarch64_sqrshlv4hi (__a, __b);
22978 __extension__ extern __inline int32x2_t
22979 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22980 vqrshl_s32 (int32x2_t __a, int32x2_t __b)
22982 return __builtin_aarch64_sqrshlv2si (__a, __b);
22985 __extension__ extern __inline int64x1_t
22986 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22987 vqrshl_s64 (int64x1_t __a, int64x1_t __b)
22989 return (int64x1_t) {__builtin_aarch64_sqrshldi (__a[0], __b[0])};
22992 __extension__ extern __inline uint8x8_t
22993 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22994 vqrshl_u8 (uint8x8_t __a, int8x8_t __b)
22996 return __builtin_aarch64_uqrshlv8qi_uus ( __a, __b);
22999 __extension__ extern __inline uint16x4_t
23000 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23001 vqrshl_u16 (uint16x4_t __a, int16x4_t __b)
23003 return __builtin_aarch64_uqrshlv4hi_uus ( __a, __b);
23006 __extension__ extern __inline uint32x2_t
23007 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23008 vqrshl_u32 (uint32x2_t __a, int32x2_t __b)
23010 return __builtin_aarch64_uqrshlv2si_uus ( __a, __b);
23013 __extension__ extern __inline uint64x1_t
23014 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23015 vqrshl_u64 (uint64x1_t __a, int64x1_t __b)
23017 return (uint64x1_t) {__builtin_aarch64_uqrshldi_uus (__a[0], __b[0])};
23020 __extension__ extern __inline int8x16_t
23021 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23022 vqrshlq_s8 (int8x16_t __a, int8x16_t __b)
23024 return __builtin_aarch64_sqrshlv16qi (__a, __b);
23027 __extension__ extern __inline int16x8_t
23028 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23029 vqrshlq_s16 (int16x8_t __a, int16x8_t __b)
23031 return __builtin_aarch64_sqrshlv8hi (__a, __b);
23034 __extension__ extern __inline int32x4_t
23035 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23036 vqrshlq_s32 (int32x4_t __a, int32x4_t __b)
23038 return __builtin_aarch64_sqrshlv4si (__a, __b);
23041 __extension__ extern __inline int64x2_t
23042 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23043 vqrshlq_s64 (int64x2_t __a, int64x2_t __b)
23045 return __builtin_aarch64_sqrshlv2di (__a, __b);
23048 __extension__ extern __inline uint8x16_t
23049 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23050 vqrshlq_u8 (uint8x16_t __a, int8x16_t __b)
23052 return __builtin_aarch64_uqrshlv16qi_uus ( __a, __b);
23055 __extension__ extern __inline uint16x8_t
23056 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23057 vqrshlq_u16 (uint16x8_t __a, int16x8_t __b)
23059 return __builtin_aarch64_uqrshlv8hi_uus ( __a, __b);
23062 __extension__ extern __inline uint32x4_t
23063 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23064 vqrshlq_u32 (uint32x4_t __a, int32x4_t __b)
23066 return __builtin_aarch64_uqrshlv4si_uus ( __a, __b);
23069 __extension__ extern __inline uint64x2_t
23070 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23071 vqrshlq_u64 (uint64x2_t __a, int64x2_t __b)
23073 return __builtin_aarch64_uqrshlv2di_uus ( __a, __b);
23076 __extension__ extern __inline int8_t
23077 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23078 vqrshlb_s8 (int8_t __a, int8_t __b)
23080 return __builtin_aarch64_sqrshlqi (__a, __b);
23083 __extension__ extern __inline int16_t
23084 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23085 vqrshlh_s16 (int16_t __a, int16_t __b)
23087 return __builtin_aarch64_sqrshlhi (__a, __b);
23090 __extension__ extern __inline int32_t
23091 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23092 vqrshls_s32 (int32_t __a, int32_t __b)
23094 return __builtin_aarch64_sqrshlsi (__a, __b);
23097 __extension__ extern __inline int64_t
23098 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23099 vqrshld_s64 (int64_t __a, int64_t __b)
23101 return __builtin_aarch64_sqrshldi (__a, __b);
23104 __extension__ extern __inline uint8_t
23105 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23106 vqrshlb_u8 (uint8_t __a, uint8_t __b)
23108 return __builtin_aarch64_uqrshlqi_uus (__a, __b);
23111 __extension__ extern __inline uint16_t
23112 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23113 vqrshlh_u16 (uint16_t __a, uint16_t __b)
23115 return __builtin_aarch64_uqrshlhi_uus (__a, __b);
23118 __extension__ extern __inline uint32_t
23119 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23120 vqrshls_u32 (uint32_t __a, uint32_t __b)
23122 return __builtin_aarch64_uqrshlsi_uus (__a, __b);
23125 __extension__ extern __inline uint64_t
23126 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23127 vqrshld_u64 (uint64_t __a, uint64_t __b)
23129 return __builtin_aarch64_uqrshldi_uus (__a, __b);
23132 /* vqrshrn */
23134 __extension__ extern __inline int8x8_t
23135 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23136 vqrshrn_n_s16 (int16x8_t __a, const int __b)
23138 return (int8x8_t) __builtin_aarch64_sqrshrn_nv8hi (__a, __b);
23141 __extension__ extern __inline int16x4_t
23142 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23143 vqrshrn_n_s32 (int32x4_t __a, const int __b)
23145 return (int16x4_t) __builtin_aarch64_sqrshrn_nv4si (__a, __b);
23148 __extension__ extern __inline int32x2_t
23149 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23150 vqrshrn_n_s64 (int64x2_t __a, const int __b)
23152 return (int32x2_t) __builtin_aarch64_sqrshrn_nv2di (__a, __b);
23155 __extension__ extern __inline uint8x8_t
23156 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23157 vqrshrn_n_u16 (uint16x8_t __a, const int __b)
23159 return __builtin_aarch64_uqrshrn_nv8hi_uus ( __a, __b);
23162 __extension__ extern __inline uint16x4_t
23163 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23164 vqrshrn_n_u32 (uint32x4_t __a, const int __b)
23166 return __builtin_aarch64_uqrshrn_nv4si_uus ( __a, __b);
23169 __extension__ extern __inline uint32x2_t
23170 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23171 vqrshrn_n_u64 (uint64x2_t __a, const int __b)
23173 return __builtin_aarch64_uqrshrn_nv2di_uus ( __a, __b);
23176 __extension__ extern __inline int8_t
23177 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23178 vqrshrnh_n_s16 (int16_t __a, const int __b)
23180 return (int8_t) __builtin_aarch64_sqrshrn_nhi (__a, __b);
23183 __extension__ extern __inline int16_t
23184 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23185 vqrshrns_n_s32 (int32_t __a, const int __b)
23187 return (int16_t) __builtin_aarch64_sqrshrn_nsi (__a, __b);
23190 __extension__ extern __inline int32_t
23191 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23192 vqrshrnd_n_s64 (int64_t __a, const int __b)
23194 return (int32_t) __builtin_aarch64_sqrshrn_ndi (__a, __b);
23197 __extension__ extern __inline uint8_t
23198 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23199 vqrshrnh_n_u16 (uint16_t __a, const int __b)
23201 return __builtin_aarch64_uqrshrn_nhi_uus (__a, __b);
23204 __extension__ extern __inline uint16_t
23205 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23206 vqrshrns_n_u32 (uint32_t __a, const int __b)
23208 return __builtin_aarch64_uqrshrn_nsi_uus (__a, __b);
23211 __extension__ extern __inline uint32_t
23212 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23213 vqrshrnd_n_u64 (uint64_t __a, const int __b)
23215 return __builtin_aarch64_uqrshrn_ndi_uus (__a, __b);
23218 /* vqrshrun */
23220 __extension__ extern __inline uint8x8_t
23221 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23222 vqrshrun_n_s16 (int16x8_t __a, const int __b)
23224 return (uint8x8_t) __builtin_aarch64_sqrshrun_nv8hi (__a, __b);
23227 __extension__ extern __inline uint16x4_t
23228 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23229 vqrshrun_n_s32 (int32x4_t __a, const int __b)
23231 return (uint16x4_t) __builtin_aarch64_sqrshrun_nv4si (__a, __b);
23234 __extension__ extern __inline uint32x2_t
23235 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23236 vqrshrun_n_s64 (int64x2_t __a, const int __b)
23238 return (uint32x2_t) __builtin_aarch64_sqrshrun_nv2di (__a, __b);
23241 __extension__ extern __inline int8_t
23242 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23243 vqrshrunh_n_s16 (int16_t __a, const int __b)
23245 return (int8_t) __builtin_aarch64_sqrshrun_nhi (__a, __b);
23248 __extension__ extern __inline int16_t
23249 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23250 vqrshruns_n_s32 (int32_t __a, const int __b)
23252 return (int16_t) __builtin_aarch64_sqrshrun_nsi (__a, __b);
23255 __extension__ extern __inline int32_t
23256 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23257 vqrshrund_n_s64 (int64_t __a, const int __b)
23259 return (int32_t) __builtin_aarch64_sqrshrun_ndi (__a, __b);
23262 /* vqshl */
23264 __extension__ extern __inline int8x8_t
23265 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23266 vqshl_s8 (int8x8_t __a, int8x8_t __b)
23268 return __builtin_aarch64_sqshlv8qi (__a, __b);
23271 __extension__ extern __inline int16x4_t
23272 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23273 vqshl_s16 (int16x4_t __a, int16x4_t __b)
23275 return __builtin_aarch64_sqshlv4hi (__a, __b);
23278 __extension__ extern __inline int32x2_t
23279 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23280 vqshl_s32 (int32x2_t __a, int32x2_t __b)
23282 return __builtin_aarch64_sqshlv2si (__a, __b);
23285 __extension__ extern __inline int64x1_t
23286 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23287 vqshl_s64 (int64x1_t __a, int64x1_t __b)
23289 return (int64x1_t) {__builtin_aarch64_sqshldi (__a[0], __b[0])};
23292 __extension__ extern __inline uint8x8_t
23293 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23294 vqshl_u8 (uint8x8_t __a, int8x8_t __b)
23296 return __builtin_aarch64_uqshlv8qi_uus ( __a, __b);
23299 __extension__ extern __inline uint16x4_t
23300 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23301 vqshl_u16 (uint16x4_t __a, int16x4_t __b)
23303 return __builtin_aarch64_uqshlv4hi_uus ( __a, __b);
23306 __extension__ extern __inline uint32x2_t
23307 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23308 vqshl_u32 (uint32x2_t __a, int32x2_t __b)
23310 return __builtin_aarch64_uqshlv2si_uus ( __a, __b);
23313 __extension__ extern __inline uint64x1_t
23314 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23315 vqshl_u64 (uint64x1_t __a, int64x1_t __b)
23317 return (uint64x1_t) {__builtin_aarch64_uqshldi_uus (__a[0], __b[0])};
23320 __extension__ extern __inline int8x16_t
23321 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23322 vqshlq_s8 (int8x16_t __a, int8x16_t __b)
23324 return __builtin_aarch64_sqshlv16qi (__a, __b);
23327 __extension__ extern __inline int16x8_t
23328 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23329 vqshlq_s16 (int16x8_t __a, int16x8_t __b)
23331 return __builtin_aarch64_sqshlv8hi (__a, __b);
23334 __extension__ extern __inline int32x4_t
23335 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23336 vqshlq_s32 (int32x4_t __a, int32x4_t __b)
23338 return __builtin_aarch64_sqshlv4si (__a, __b);
23341 __extension__ extern __inline int64x2_t
23342 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23343 vqshlq_s64 (int64x2_t __a, int64x2_t __b)
23345 return __builtin_aarch64_sqshlv2di (__a, __b);
23348 __extension__ extern __inline uint8x16_t
23349 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23350 vqshlq_u8 (uint8x16_t __a, int8x16_t __b)
23352 return __builtin_aarch64_uqshlv16qi_uus ( __a, __b);
23355 __extension__ extern __inline uint16x8_t
23356 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23357 vqshlq_u16 (uint16x8_t __a, int16x8_t __b)
23359 return __builtin_aarch64_uqshlv8hi_uus ( __a, __b);
23362 __extension__ extern __inline uint32x4_t
23363 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23364 vqshlq_u32 (uint32x4_t __a, int32x4_t __b)
23366 return __builtin_aarch64_uqshlv4si_uus ( __a, __b);
23369 __extension__ extern __inline uint64x2_t
23370 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23371 vqshlq_u64 (uint64x2_t __a, int64x2_t __b)
23373 return __builtin_aarch64_uqshlv2di_uus ( __a, __b);
23376 __extension__ extern __inline int8_t
23377 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23378 vqshlb_s8 (int8_t __a, int8_t __b)
23380 return __builtin_aarch64_sqshlqi (__a, __b);
23383 __extension__ extern __inline int16_t
23384 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23385 vqshlh_s16 (int16_t __a, int16_t __b)
23387 return __builtin_aarch64_sqshlhi (__a, __b);
23390 __extension__ extern __inline int32_t
23391 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23392 vqshls_s32 (int32_t __a, int32_t __b)
23394 return __builtin_aarch64_sqshlsi (__a, __b);
23397 __extension__ extern __inline int64_t
23398 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23399 vqshld_s64 (int64_t __a, int64_t __b)
23401 return __builtin_aarch64_sqshldi (__a, __b);
23404 __extension__ extern __inline uint8_t
23405 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23406 vqshlb_u8 (uint8_t __a, uint8_t __b)
23408 return __builtin_aarch64_uqshlqi_uus (__a, __b);
23411 __extension__ extern __inline uint16_t
23412 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23413 vqshlh_u16 (uint16_t __a, uint16_t __b)
23415 return __builtin_aarch64_uqshlhi_uus (__a, __b);
23418 __extension__ extern __inline uint32_t
23419 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23420 vqshls_u32 (uint32_t __a, uint32_t __b)
23422 return __builtin_aarch64_uqshlsi_uus (__a, __b);
23425 __extension__ extern __inline uint64_t
23426 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23427 vqshld_u64 (uint64_t __a, uint64_t __b)
23429 return __builtin_aarch64_uqshldi_uus (__a, __b);
23432 __extension__ extern __inline int8x8_t
23433 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23434 vqshl_n_s8 (int8x8_t __a, const int __b)
23436 return (int8x8_t) __builtin_aarch64_sqshl_nv8qi (__a, __b);
23439 __extension__ extern __inline int16x4_t
23440 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23441 vqshl_n_s16 (int16x4_t __a, const int __b)
23443 return (int16x4_t) __builtin_aarch64_sqshl_nv4hi (__a, __b);
23446 __extension__ extern __inline int32x2_t
23447 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23448 vqshl_n_s32 (int32x2_t __a, const int __b)
23450 return (int32x2_t) __builtin_aarch64_sqshl_nv2si (__a, __b);
23453 __extension__ extern __inline int64x1_t
23454 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23455 vqshl_n_s64 (int64x1_t __a, const int __b)
23457 return (int64x1_t) {__builtin_aarch64_sqshl_ndi (__a[0], __b)};
23460 __extension__ extern __inline uint8x8_t
23461 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23462 vqshl_n_u8 (uint8x8_t __a, const int __b)
23464 return __builtin_aarch64_uqshl_nv8qi_uus (__a, __b);
23467 __extension__ extern __inline uint16x4_t
23468 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23469 vqshl_n_u16 (uint16x4_t __a, const int __b)
23471 return __builtin_aarch64_uqshl_nv4hi_uus (__a, __b);
23474 __extension__ extern __inline uint32x2_t
23475 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23476 vqshl_n_u32 (uint32x2_t __a, const int __b)
23478 return __builtin_aarch64_uqshl_nv2si_uus (__a, __b);
23481 __extension__ extern __inline uint64x1_t
23482 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23483 vqshl_n_u64 (uint64x1_t __a, const int __b)
23485 return (uint64x1_t) {__builtin_aarch64_uqshl_ndi_uus (__a[0], __b)};
23488 __extension__ extern __inline int8x16_t
23489 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23490 vqshlq_n_s8 (int8x16_t __a, const int __b)
23492 return (int8x16_t) __builtin_aarch64_sqshl_nv16qi (__a, __b);
23495 __extension__ extern __inline int16x8_t
23496 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23497 vqshlq_n_s16 (int16x8_t __a, const int __b)
23499 return (int16x8_t) __builtin_aarch64_sqshl_nv8hi (__a, __b);
23502 __extension__ extern __inline int32x4_t
23503 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23504 vqshlq_n_s32 (int32x4_t __a, const int __b)
23506 return (int32x4_t) __builtin_aarch64_sqshl_nv4si (__a, __b);
23509 __extension__ extern __inline int64x2_t
23510 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23511 vqshlq_n_s64 (int64x2_t __a, const int __b)
23513 return (int64x2_t) __builtin_aarch64_sqshl_nv2di (__a, __b);
23516 __extension__ extern __inline uint8x16_t
23517 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23518 vqshlq_n_u8 (uint8x16_t __a, const int __b)
23520 return __builtin_aarch64_uqshl_nv16qi_uus (__a, __b);
23523 __extension__ extern __inline uint16x8_t
23524 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23525 vqshlq_n_u16 (uint16x8_t __a, const int __b)
23527 return __builtin_aarch64_uqshl_nv8hi_uus (__a, __b);
23530 __extension__ extern __inline uint32x4_t
23531 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23532 vqshlq_n_u32 (uint32x4_t __a, const int __b)
23534 return __builtin_aarch64_uqshl_nv4si_uus (__a, __b);
23537 __extension__ extern __inline uint64x2_t
23538 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23539 vqshlq_n_u64 (uint64x2_t __a, const int __b)
23541 return __builtin_aarch64_uqshl_nv2di_uus (__a, __b);
23544 __extension__ extern __inline int8_t
23545 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23546 vqshlb_n_s8 (int8_t __a, const int __b)
23548 return (int8_t) __builtin_aarch64_sqshl_nqi (__a, __b);
23551 __extension__ extern __inline int16_t
23552 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23553 vqshlh_n_s16 (int16_t __a, const int __b)
23555 return (int16_t) __builtin_aarch64_sqshl_nhi (__a, __b);
23558 __extension__ extern __inline int32_t
23559 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23560 vqshls_n_s32 (int32_t __a, const int __b)
23562 return (int32_t) __builtin_aarch64_sqshl_nsi (__a, __b);
23565 __extension__ extern __inline int64_t
23566 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23567 vqshld_n_s64 (int64_t __a, const int __b)
23569 return __builtin_aarch64_sqshl_ndi (__a, __b);
23572 __extension__ extern __inline uint8_t
23573 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23574 vqshlb_n_u8 (uint8_t __a, const int __b)
23576 return __builtin_aarch64_uqshl_nqi_uus (__a, __b);
23579 __extension__ extern __inline uint16_t
23580 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23581 vqshlh_n_u16 (uint16_t __a, const int __b)
23583 return __builtin_aarch64_uqshl_nhi_uus (__a, __b);
23586 __extension__ extern __inline uint32_t
23587 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23588 vqshls_n_u32 (uint32_t __a, const int __b)
23590 return __builtin_aarch64_uqshl_nsi_uus (__a, __b);
23593 __extension__ extern __inline uint64_t
23594 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23595 vqshld_n_u64 (uint64_t __a, const int __b)
23597 return __builtin_aarch64_uqshl_ndi_uus (__a, __b);
23600 /* vqshlu */
23602 __extension__ extern __inline uint8x8_t
23603 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23604 vqshlu_n_s8 (int8x8_t __a, const int __b)
23606 return __builtin_aarch64_sqshlu_nv8qi_uss (__a, __b);
23609 __extension__ extern __inline uint16x4_t
23610 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23611 vqshlu_n_s16 (int16x4_t __a, const int __b)
23613 return __builtin_aarch64_sqshlu_nv4hi_uss (__a, __b);
23616 __extension__ extern __inline uint32x2_t
23617 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23618 vqshlu_n_s32 (int32x2_t __a, const int __b)
23620 return __builtin_aarch64_sqshlu_nv2si_uss (__a, __b);
23623 __extension__ extern __inline uint64x1_t
23624 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23625 vqshlu_n_s64 (int64x1_t __a, const int __b)
23627 return (uint64x1_t) {__builtin_aarch64_sqshlu_ndi_uss (__a[0], __b)};
23630 __extension__ extern __inline uint8x16_t
23631 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23632 vqshluq_n_s8 (int8x16_t __a, const int __b)
23634 return __builtin_aarch64_sqshlu_nv16qi_uss (__a, __b);
23637 __extension__ extern __inline uint16x8_t
23638 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23639 vqshluq_n_s16 (int16x8_t __a, const int __b)
23641 return __builtin_aarch64_sqshlu_nv8hi_uss (__a, __b);
23644 __extension__ extern __inline uint32x4_t
23645 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23646 vqshluq_n_s32 (int32x4_t __a, const int __b)
23648 return __builtin_aarch64_sqshlu_nv4si_uss (__a, __b);
23651 __extension__ extern __inline uint64x2_t
23652 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23653 vqshluq_n_s64 (int64x2_t __a, const int __b)
23655 return __builtin_aarch64_sqshlu_nv2di_uss (__a, __b);
23658 __extension__ extern __inline int8_t
23659 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23660 vqshlub_n_s8 (int8_t __a, const int __b)
23662 return (int8_t) __builtin_aarch64_sqshlu_nqi_uss (__a, __b);
23665 __extension__ extern __inline int16_t
23666 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23667 vqshluh_n_s16 (int16_t __a, const int __b)
23669 return (int16_t) __builtin_aarch64_sqshlu_nhi_uss (__a, __b);
23672 __extension__ extern __inline int32_t
23673 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23674 vqshlus_n_s32 (int32_t __a, const int __b)
23676 return (int32_t) __builtin_aarch64_sqshlu_nsi_uss (__a, __b);
23679 __extension__ extern __inline uint64_t
23680 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23681 vqshlud_n_s64 (int64_t __a, const int __b)
23683 return __builtin_aarch64_sqshlu_ndi_uss (__a, __b);
23686 /* vqshrn */
23688 __extension__ extern __inline int8x8_t
23689 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23690 vqshrn_n_s16 (int16x8_t __a, const int __b)
23692 return (int8x8_t) __builtin_aarch64_sqshrn_nv8hi (__a, __b);
23695 __extension__ extern __inline int16x4_t
23696 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23697 vqshrn_n_s32 (int32x4_t __a, const int __b)
23699 return (int16x4_t) __builtin_aarch64_sqshrn_nv4si (__a, __b);
23702 __extension__ extern __inline int32x2_t
23703 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23704 vqshrn_n_s64 (int64x2_t __a, const int __b)
23706 return (int32x2_t) __builtin_aarch64_sqshrn_nv2di (__a, __b);
23709 __extension__ extern __inline uint8x8_t
23710 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23711 vqshrn_n_u16 (uint16x8_t __a, const int __b)
23713 return __builtin_aarch64_uqshrn_nv8hi_uus ( __a, __b);
23716 __extension__ extern __inline uint16x4_t
23717 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23718 vqshrn_n_u32 (uint32x4_t __a, const int __b)
23720 return __builtin_aarch64_uqshrn_nv4si_uus ( __a, __b);
23723 __extension__ extern __inline uint32x2_t
23724 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23725 vqshrn_n_u64 (uint64x2_t __a, const int __b)
23727 return __builtin_aarch64_uqshrn_nv2di_uus ( __a, __b);
23730 __extension__ extern __inline int8_t
23731 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23732 vqshrnh_n_s16 (int16_t __a, const int __b)
23734 return (int8_t) __builtin_aarch64_sqshrn_nhi (__a, __b);
23737 __extension__ extern __inline int16_t
23738 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23739 vqshrns_n_s32 (int32_t __a, const int __b)
23741 return (int16_t) __builtin_aarch64_sqshrn_nsi (__a, __b);
23744 __extension__ extern __inline int32_t
23745 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23746 vqshrnd_n_s64 (int64_t __a, const int __b)
23748 return (int32_t) __builtin_aarch64_sqshrn_ndi (__a, __b);
23751 __extension__ extern __inline uint8_t
23752 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23753 vqshrnh_n_u16 (uint16_t __a, const int __b)
23755 return __builtin_aarch64_uqshrn_nhi_uus (__a, __b);
23758 __extension__ extern __inline uint16_t
23759 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23760 vqshrns_n_u32 (uint32_t __a, const int __b)
23762 return __builtin_aarch64_uqshrn_nsi_uus (__a, __b);
23765 __extension__ extern __inline uint32_t
23766 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23767 vqshrnd_n_u64 (uint64_t __a, const int __b)
23769 return __builtin_aarch64_uqshrn_ndi_uus (__a, __b);
23772 /* vqshrun */
23774 __extension__ extern __inline uint8x8_t
23775 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23776 vqshrun_n_s16 (int16x8_t __a, const int __b)
23778 return (uint8x8_t) __builtin_aarch64_sqshrun_nv8hi (__a, __b);
23781 __extension__ extern __inline uint16x4_t
23782 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23783 vqshrun_n_s32 (int32x4_t __a, const int __b)
23785 return (uint16x4_t) __builtin_aarch64_sqshrun_nv4si (__a, __b);
23788 __extension__ extern __inline uint32x2_t
23789 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23790 vqshrun_n_s64 (int64x2_t __a, const int __b)
23792 return (uint32x2_t) __builtin_aarch64_sqshrun_nv2di (__a, __b);
23795 __extension__ extern __inline int8_t
23796 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23797 vqshrunh_n_s16 (int16_t __a, const int __b)
23799 return (int8_t) __builtin_aarch64_sqshrun_nhi (__a, __b);
23802 __extension__ extern __inline int16_t
23803 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23804 vqshruns_n_s32 (int32_t __a, const int __b)
23806 return (int16_t) __builtin_aarch64_sqshrun_nsi (__a, __b);
23809 __extension__ extern __inline int32_t
23810 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23811 vqshrund_n_s64 (int64_t __a, const int __b)
23813 return (int32_t) __builtin_aarch64_sqshrun_ndi (__a, __b);
23816 /* vqsub */
23818 __extension__ extern __inline int8_t
23819 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23820 vqsubb_s8 (int8_t __a, int8_t __b)
23822 return (int8_t) __builtin_aarch64_sqsubqi (__a, __b);
23825 __extension__ extern __inline int16_t
23826 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23827 vqsubh_s16 (int16_t __a, int16_t __b)
23829 return (int16_t) __builtin_aarch64_sqsubhi (__a, __b);
23832 __extension__ extern __inline int32_t
23833 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23834 vqsubs_s32 (int32_t __a, int32_t __b)
23836 return (int32_t) __builtin_aarch64_sqsubsi (__a, __b);
23839 __extension__ extern __inline int64_t
23840 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23841 vqsubd_s64 (int64_t __a, int64_t __b)
23843 return __builtin_aarch64_sqsubdi (__a, __b);
23846 __extension__ extern __inline uint8_t
23847 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23848 vqsubb_u8 (uint8_t __a, uint8_t __b)
23850 return (uint8_t) __builtin_aarch64_uqsubqi_uuu (__a, __b);
23853 __extension__ extern __inline uint16_t
23854 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23855 vqsubh_u16 (uint16_t __a, uint16_t __b)
23857 return (uint16_t) __builtin_aarch64_uqsubhi_uuu (__a, __b);
23860 __extension__ extern __inline uint32_t
23861 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23862 vqsubs_u32 (uint32_t __a, uint32_t __b)
23864 return (uint32_t) __builtin_aarch64_uqsubsi_uuu (__a, __b);
23867 __extension__ extern __inline uint64_t
23868 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23869 vqsubd_u64 (uint64_t __a, uint64_t __b)
23871 return __builtin_aarch64_uqsubdi_uuu (__a, __b);
23874 /* vqtbl2 */
23876 __extension__ extern __inline int8x8_t
23877 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23878 vqtbl2_s8 (int8x16x2_t tab, uint8x8_t idx)
23880 __builtin_aarch64_simd_oi __o;
23881 __o = __builtin_aarch64_set_qregoiv16qi (__o, tab.val[0], 0);
23882 __o = __builtin_aarch64_set_qregoiv16qi (__o, tab.val[1], 1);
23883 return __builtin_aarch64_tbl3v8qi (__o, (int8x8_t)idx);
23886 __extension__ extern __inline uint8x8_t
23887 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23888 vqtbl2_u8 (uint8x16x2_t tab, uint8x8_t idx)
23890 __builtin_aarch64_simd_oi __o;
23891 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[0], 0);
23892 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[1], 1);
23893 return (uint8x8_t)__builtin_aarch64_tbl3v8qi (__o, (int8x8_t)idx);
23896 __extension__ extern __inline poly8x8_t
23897 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23898 vqtbl2_p8 (poly8x16x2_t tab, uint8x8_t idx)
23900 __builtin_aarch64_simd_oi __o;
23901 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[0], 0);
23902 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[1], 1);
23903 return (poly8x8_t)__builtin_aarch64_tbl3v8qi (__o, (int8x8_t)idx);
23906 __extension__ extern __inline int8x16_t
23907 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23908 vqtbl2q_s8 (int8x16x2_t tab, uint8x16_t idx)
23910 __builtin_aarch64_simd_oi __o;
23911 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[0], 0);
23912 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[1], 1);
23913 return __builtin_aarch64_tbl3v16qi (__o, (int8x16_t)idx);
23916 __extension__ extern __inline uint8x16_t
23917 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23918 vqtbl2q_u8 (uint8x16x2_t tab, uint8x16_t idx)
23920 __builtin_aarch64_simd_oi __o;
23921 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[0], 0);
23922 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[1], 1);
23923 return (uint8x16_t)__builtin_aarch64_tbl3v16qi (__o, (int8x16_t)idx);
23926 __extension__ extern __inline poly8x16_t
23927 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23928 vqtbl2q_p8 (poly8x16x2_t tab, uint8x16_t idx)
23930 __builtin_aarch64_simd_oi __o;
23931 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[0], 0);
23932 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[1], 1);
23933 return (poly8x16_t)__builtin_aarch64_tbl3v16qi (__o, (int8x16_t)idx);
23936 /* vqtbl3 */
23938 __extension__ extern __inline int8x8_t
23939 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23940 vqtbl3_s8 (int8x16x3_t tab, uint8x8_t idx)
23942 __builtin_aarch64_simd_ci __o;
23943 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[0], 0);
23944 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[1], 1);
23945 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[2], 2);
23946 return __builtin_aarch64_qtbl3v8qi (__o, (int8x8_t)idx);
23949 __extension__ extern __inline uint8x8_t
23950 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23951 vqtbl3_u8 (uint8x16x3_t tab, uint8x8_t idx)
23953 __builtin_aarch64_simd_ci __o;
23954 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[0], 0);
23955 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[1], 1);
23956 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[2], 2);
23957 return (uint8x8_t)__builtin_aarch64_qtbl3v8qi (__o, (int8x8_t)idx);
23960 __extension__ extern __inline poly8x8_t
23961 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23962 vqtbl3_p8 (poly8x16x3_t tab, uint8x8_t idx)
23964 __builtin_aarch64_simd_ci __o;
23965 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[0], 0);
23966 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[1], 1);
23967 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[2], 2);
23968 return (poly8x8_t)__builtin_aarch64_qtbl3v8qi (__o, (int8x8_t)idx);
23971 __extension__ extern __inline int8x16_t
23972 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23973 vqtbl3q_s8 (int8x16x3_t tab, uint8x16_t idx)
23975 __builtin_aarch64_simd_ci __o;
23976 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[0], 0);
23977 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[1], 1);
23978 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[2], 2);
23979 return __builtin_aarch64_qtbl3v16qi (__o, (int8x16_t)idx);
23982 __extension__ extern __inline uint8x16_t
23983 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23984 vqtbl3q_u8 (uint8x16x3_t tab, uint8x16_t idx)
23986 __builtin_aarch64_simd_ci __o;
23987 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[0], 0);
23988 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[1], 1);
23989 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[2], 2);
23990 return (uint8x16_t)__builtin_aarch64_qtbl3v16qi (__o, (int8x16_t)idx);
23993 __extension__ extern __inline poly8x16_t
23994 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23995 vqtbl3q_p8 (poly8x16x3_t tab, uint8x16_t idx)
23997 __builtin_aarch64_simd_ci __o;
23998 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[0], 0);
23999 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[1], 1);
24000 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[2], 2);
24001 return (poly8x16_t)__builtin_aarch64_qtbl3v16qi (__o, (int8x16_t)idx);
24004 /* vqtbl4 */
24006 __extension__ extern __inline int8x8_t
24007 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24008 vqtbl4_s8 (int8x16x4_t tab, uint8x8_t idx)
24010 __builtin_aarch64_simd_xi __o;
24011 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[0], 0);
24012 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[1], 1);
24013 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[2], 2);
24014 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[3], 3);
24015 return __builtin_aarch64_qtbl4v8qi (__o, (int8x8_t)idx);
24018 __extension__ extern __inline uint8x8_t
24019 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24020 vqtbl4_u8 (uint8x16x4_t tab, uint8x8_t idx)
24022 __builtin_aarch64_simd_xi __o;
24023 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[0], 0);
24024 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[1], 1);
24025 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[2], 2);
24026 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[3], 3);
24027 return (uint8x8_t)__builtin_aarch64_qtbl4v8qi (__o, (int8x8_t)idx);
24030 __extension__ extern __inline poly8x8_t
24031 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24032 vqtbl4_p8 (poly8x16x4_t tab, uint8x8_t idx)
24034 __builtin_aarch64_simd_xi __o;
24035 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[0], 0);
24036 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[1], 1);
24037 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[2], 2);
24038 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[3], 3);
24039 return (poly8x8_t)__builtin_aarch64_qtbl4v8qi (__o, (int8x8_t)idx);
24042 __extension__ extern __inline int8x16_t
24043 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24044 vqtbl4q_s8 (int8x16x4_t tab, uint8x16_t idx)
24046 __builtin_aarch64_simd_xi __o;
24047 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[0], 0);
24048 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[1], 1);
24049 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[2], 2);
24050 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[3], 3);
24051 return __builtin_aarch64_qtbl4v16qi (__o, (int8x16_t)idx);
24054 __extension__ extern __inline uint8x16_t
24055 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24056 vqtbl4q_u8 (uint8x16x4_t tab, uint8x16_t idx)
24058 __builtin_aarch64_simd_xi __o;
24059 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[0], 0);
24060 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[1], 1);
24061 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[2], 2);
24062 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[3], 3);
24063 return (uint8x16_t)__builtin_aarch64_qtbl4v16qi (__o, (int8x16_t)idx);
24066 __extension__ extern __inline poly8x16_t
24067 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24068 vqtbl4q_p8 (poly8x16x4_t tab, uint8x16_t idx)
24070 __builtin_aarch64_simd_xi __o;
24071 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[0], 0);
24072 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[1], 1);
24073 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[2], 2);
24074 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[3], 3);
24075 return (poly8x16_t)__builtin_aarch64_qtbl4v16qi (__o, (int8x16_t)idx);
24079 /* vqtbx2 */
24080 __extension__ extern __inline int8x8_t
24081 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24082 vqtbx2_s8 (int8x8_t r, int8x16x2_t tab, uint8x8_t idx)
24084 __builtin_aarch64_simd_oi __o;
24085 __o = __builtin_aarch64_set_qregoiv16qi (__o, tab.val[0], 0);
24086 __o = __builtin_aarch64_set_qregoiv16qi (__o, tab.val[1], 1);
24087 return __builtin_aarch64_tbx4v8qi (r, __o, (int8x8_t)idx);
24090 __extension__ extern __inline uint8x8_t
24091 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24092 vqtbx2_u8 (uint8x8_t r, uint8x16x2_t tab, uint8x8_t idx)
24094 __builtin_aarch64_simd_oi __o;
24095 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[0], 0);
24096 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[1], 1);
24097 return (uint8x8_t)__builtin_aarch64_tbx4v8qi ((int8x8_t)r, __o,
24098 (int8x8_t)idx);
24101 __extension__ extern __inline poly8x8_t
24102 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24103 vqtbx2_p8 (poly8x8_t r, poly8x16x2_t tab, uint8x8_t idx)
24105 __builtin_aarch64_simd_oi __o;
24106 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[0], 0);
24107 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[1], 1);
24108 return (poly8x8_t)__builtin_aarch64_tbx4v8qi ((int8x8_t)r, __o,
24109 (int8x8_t)idx);
24112 __extension__ extern __inline int8x16_t
24113 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24114 vqtbx2q_s8 (int8x16_t r, int8x16x2_t tab, uint8x16_t idx)
24116 __builtin_aarch64_simd_oi __o;
24117 __o = __builtin_aarch64_set_qregoiv16qi (__o, tab.val[0], 0);
24118 __o = __builtin_aarch64_set_qregoiv16qi (__o, tab.val[1], 1);
24119 return __builtin_aarch64_tbx4v16qi (r, __o, (int8x16_t)idx);
24122 __extension__ extern __inline uint8x16_t
24123 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24124 vqtbx2q_u8 (uint8x16_t r, uint8x16x2_t tab, uint8x16_t idx)
24126 __builtin_aarch64_simd_oi __o;
24127 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[0], 0);
24128 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[1], 1);
24129 return (uint8x16_t)__builtin_aarch64_tbx4v16qi ((int8x16_t)r, __o,
24130 (int8x16_t)idx);
24133 __extension__ extern __inline poly8x16_t
24134 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24135 vqtbx2q_p8 (poly8x16_t r, poly8x16x2_t tab, uint8x16_t idx)
24137 __builtin_aarch64_simd_oi __o;
24138 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[0], 0);
24139 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[1], 1);
24140 return (poly8x16_t)__builtin_aarch64_tbx4v16qi ((int8x16_t)r, __o,
24141 (int8x16_t)idx);
24144 /* vqtbx3 */
24145 __extension__ extern __inline int8x8_t
24146 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24147 vqtbx3_s8 (int8x8_t r, int8x16x3_t tab, uint8x8_t idx)
24149 __builtin_aarch64_simd_ci __o;
24150 __o = __builtin_aarch64_set_qregciv16qi (__o, tab.val[0], 0);
24151 __o = __builtin_aarch64_set_qregciv16qi (__o, tab.val[1], 1);
24152 __o = __builtin_aarch64_set_qregciv16qi (__o, tab.val[2], 2);
24153 return __builtin_aarch64_qtbx3v8qi (r, __o, (int8x8_t)idx);
24156 __extension__ extern __inline uint8x8_t
24157 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24158 vqtbx3_u8 (uint8x8_t r, uint8x16x3_t tab, uint8x8_t idx)
24160 __builtin_aarch64_simd_ci __o;
24161 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[0], 0);
24162 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[1], 1);
24163 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[2], 2);
24164 return (uint8x8_t)__builtin_aarch64_qtbx3v8qi ((int8x8_t)r, __o,
24165 (int8x8_t)idx);
24168 __extension__ extern __inline poly8x8_t
24169 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24170 vqtbx3_p8 (poly8x8_t r, poly8x16x3_t tab, uint8x8_t idx)
24172 __builtin_aarch64_simd_ci __o;
24173 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[0], 0);
24174 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[1], 1);
24175 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[2], 2);
24176 return (poly8x8_t)__builtin_aarch64_qtbx3v8qi ((int8x8_t)r, __o,
24177 (int8x8_t)idx);
24180 __extension__ extern __inline int8x16_t
24181 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24182 vqtbx3q_s8 (int8x16_t r, int8x16x3_t tab, uint8x16_t idx)
24184 __builtin_aarch64_simd_ci __o;
24185 __o = __builtin_aarch64_set_qregciv16qi (__o, tab.val[0], 0);
24186 __o = __builtin_aarch64_set_qregciv16qi (__o, tab.val[1], 1);
24187 __o = __builtin_aarch64_set_qregciv16qi (__o, tab.val[2], 2);
24188 return __builtin_aarch64_qtbx3v16qi (r, __o, (int8x16_t)idx);
24191 __extension__ extern __inline uint8x16_t
24192 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24193 vqtbx3q_u8 (uint8x16_t r, uint8x16x3_t tab, uint8x16_t idx)
24195 __builtin_aarch64_simd_ci __o;
24196 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[0], 0);
24197 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[1], 1);
24198 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[2], 2);
24199 return (uint8x16_t)__builtin_aarch64_qtbx3v16qi ((int8x16_t)r, __o,
24200 (int8x16_t)idx);
24203 __extension__ extern __inline poly8x16_t
24204 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24205 vqtbx3q_p8 (poly8x16_t r, poly8x16x3_t tab, uint8x16_t idx)
24207 __builtin_aarch64_simd_ci __o;
24208 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[0], 0);
24209 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[1], 1);
24210 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[2], 2);
24211 return (poly8x16_t)__builtin_aarch64_qtbx3v16qi ((int8x16_t)r, __o,
24212 (int8x16_t)idx);
24215 /* vqtbx4 */
24217 __extension__ extern __inline int8x8_t
24218 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24219 vqtbx4_s8 (int8x8_t r, int8x16x4_t tab, uint8x8_t idx)
24221 __builtin_aarch64_simd_xi __o;
24222 __o = __builtin_aarch64_set_qregxiv16qi (__o, tab.val[0], 0);
24223 __o = __builtin_aarch64_set_qregxiv16qi (__o, tab.val[1], 1);
24224 __o = __builtin_aarch64_set_qregxiv16qi (__o, tab.val[2], 2);
24225 __o = __builtin_aarch64_set_qregxiv16qi (__o, tab.val[3], 3);
24226 return __builtin_aarch64_qtbx4v8qi (r, __o, (int8x8_t)idx);
24229 __extension__ extern __inline uint8x8_t
24230 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24231 vqtbx4_u8 (uint8x8_t r, uint8x16x4_t tab, uint8x8_t idx)
24233 __builtin_aarch64_simd_xi __o;
24234 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[0], 0);
24235 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[1], 1);
24236 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[2], 2);
24237 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[3], 3);
24238 return (uint8x8_t)__builtin_aarch64_qtbx4v8qi ((int8x8_t)r, __o,
24239 (int8x8_t)idx);
24242 __extension__ extern __inline poly8x8_t
24243 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24244 vqtbx4_p8 (poly8x8_t r, poly8x16x4_t tab, uint8x8_t idx)
24246 __builtin_aarch64_simd_xi __o;
24247 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[0], 0);
24248 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[1], 1);
24249 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[2], 2);
24250 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[3], 3);
24251 return (poly8x8_t)__builtin_aarch64_qtbx4v8qi ((int8x8_t)r, __o,
24252 (int8x8_t)idx);
24255 __extension__ extern __inline int8x16_t
24256 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24257 vqtbx4q_s8 (int8x16_t r, int8x16x4_t tab, uint8x16_t idx)
24259 __builtin_aarch64_simd_xi __o;
24260 __o = __builtin_aarch64_set_qregxiv16qi (__o, tab.val[0], 0);
24261 __o = __builtin_aarch64_set_qregxiv16qi (__o, tab.val[1], 1);
24262 __o = __builtin_aarch64_set_qregxiv16qi (__o, tab.val[2], 2);
24263 __o = __builtin_aarch64_set_qregxiv16qi (__o, tab.val[3], 3);
24264 return __builtin_aarch64_qtbx4v16qi (r, __o, (int8x16_t)idx);
24267 __extension__ extern __inline uint8x16_t
24268 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24269 vqtbx4q_u8 (uint8x16_t r, uint8x16x4_t tab, uint8x16_t idx)
24271 __builtin_aarch64_simd_xi __o;
24272 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[0], 0);
24273 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[1], 1);
24274 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[2], 2);
24275 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[3], 3);
24276 return (uint8x16_t)__builtin_aarch64_qtbx4v16qi ((int8x16_t)r, __o,
24277 (int8x16_t)idx);
24280 __extension__ extern __inline poly8x16_t
24281 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24282 vqtbx4q_p8 (poly8x16_t r, poly8x16x4_t tab, uint8x16_t idx)
24284 __builtin_aarch64_simd_xi __o;
24285 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[0], 0);
24286 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[1], 1);
24287 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[2], 2);
24288 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[3], 3);
24289 return (poly8x16_t)__builtin_aarch64_qtbx4v16qi ((int8x16_t)r, __o,
24290 (int8x16_t)idx);
24293 /* vrbit */
24295 __extension__ extern __inline poly8x8_t
24296 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24297 vrbit_p8 (poly8x8_t __a)
24299 return (poly8x8_t) __builtin_aarch64_rbitv8qi ((int8x8_t) __a);
24302 __extension__ extern __inline int8x8_t
24303 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24304 vrbit_s8 (int8x8_t __a)
24306 return __builtin_aarch64_rbitv8qi (__a);
24309 __extension__ extern __inline uint8x8_t
24310 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24311 vrbit_u8 (uint8x8_t __a)
24313 return (uint8x8_t) __builtin_aarch64_rbitv8qi ((int8x8_t) __a);
24316 __extension__ extern __inline poly8x16_t
24317 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24318 vrbitq_p8 (poly8x16_t __a)
24320 return (poly8x16_t) __builtin_aarch64_rbitv16qi ((int8x16_t)__a);
24323 __extension__ extern __inline int8x16_t
24324 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24325 vrbitq_s8 (int8x16_t __a)
24327 return __builtin_aarch64_rbitv16qi (__a);
24330 __extension__ extern __inline uint8x16_t
24331 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24332 vrbitq_u8 (uint8x16_t __a)
24334 return (uint8x16_t) __builtin_aarch64_rbitv16qi ((int8x16_t) __a);
24337 /* vrecpe */
24339 __extension__ extern __inline uint32x2_t
24340 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24341 vrecpe_u32 (uint32x2_t __a)
24343 return (uint32x2_t) __builtin_aarch64_urecpev2si ((int32x2_t) __a);
24346 __extension__ extern __inline uint32x4_t
24347 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24348 vrecpeq_u32 (uint32x4_t __a)
24350 return (uint32x4_t) __builtin_aarch64_urecpev4si ((int32x4_t) __a);
24353 __extension__ extern __inline float32_t
24354 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24355 vrecpes_f32 (float32_t __a)
24357 return __builtin_aarch64_frecpesf (__a);
24360 __extension__ extern __inline float64_t
24361 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24362 vrecped_f64 (float64_t __a)
24364 return __builtin_aarch64_frecpedf (__a);
24367 __extension__ extern __inline float32x2_t
24368 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24369 vrecpe_f32 (float32x2_t __a)
24371 return __builtin_aarch64_frecpev2sf (__a);
24374 __extension__ extern __inline float64x1_t
24375 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24376 vrecpe_f64 (float64x1_t __a)
24378 return (float64x1_t) { vrecped_f64 (vget_lane_f64 (__a, 0)) };
24381 __extension__ extern __inline float32x4_t
24382 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24383 vrecpeq_f32 (float32x4_t __a)
24385 return __builtin_aarch64_frecpev4sf (__a);
24388 __extension__ extern __inline float64x2_t
24389 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24390 vrecpeq_f64 (float64x2_t __a)
24392 return __builtin_aarch64_frecpev2df (__a);
24395 /* vrecps */
24397 __extension__ extern __inline float32_t
24398 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24399 vrecpss_f32 (float32_t __a, float32_t __b)
24401 return __builtin_aarch64_frecpssf (__a, __b);
24404 __extension__ extern __inline float64_t
24405 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24406 vrecpsd_f64 (float64_t __a, float64_t __b)
24408 return __builtin_aarch64_frecpsdf (__a, __b);
24411 __extension__ extern __inline float32x2_t
24412 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24413 vrecps_f32 (float32x2_t __a, float32x2_t __b)
24415 return __builtin_aarch64_frecpsv2sf (__a, __b);
24418 __extension__ extern __inline float64x1_t
24419 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24420 vrecps_f64 (float64x1_t __a, float64x1_t __b)
24422 return (float64x1_t) { vrecpsd_f64 (vget_lane_f64 (__a, 0),
24423 vget_lane_f64 (__b, 0)) };
24426 __extension__ extern __inline float32x4_t
24427 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24428 vrecpsq_f32 (float32x4_t __a, float32x4_t __b)
24430 return __builtin_aarch64_frecpsv4sf (__a, __b);
24433 __extension__ extern __inline float64x2_t
24434 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24435 vrecpsq_f64 (float64x2_t __a, float64x2_t __b)
24437 return __builtin_aarch64_frecpsv2df (__a, __b);
24440 /* vrecpx */
24442 __extension__ extern __inline float32_t
24443 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24444 vrecpxs_f32 (float32_t __a)
24446 return __builtin_aarch64_frecpxsf (__a);
24449 __extension__ extern __inline float64_t
24450 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24451 vrecpxd_f64 (float64_t __a)
24453 return __builtin_aarch64_frecpxdf (__a);
24457 /* vrev */
24459 __extension__ extern __inline poly8x8_t
24460 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24461 vrev16_p8 (poly8x8_t a)
24463 return __builtin_shuffle (a, (uint8x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
24466 __extension__ extern __inline int8x8_t
24467 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24468 vrev16_s8 (int8x8_t a)
24470 return __builtin_shuffle (a, (uint8x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
24473 __extension__ extern __inline uint8x8_t
24474 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24475 vrev16_u8 (uint8x8_t a)
24477 return __builtin_shuffle (a, (uint8x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
24480 __extension__ extern __inline poly8x16_t
24481 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24482 vrev16q_p8 (poly8x16_t a)
24484 return __builtin_shuffle (a,
24485 (uint8x16_t) { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 });
24488 __extension__ extern __inline int8x16_t
24489 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24490 vrev16q_s8 (int8x16_t a)
24492 return __builtin_shuffle (a,
24493 (uint8x16_t) { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 });
24496 __extension__ extern __inline uint8x16_t
24497 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24498 vrev16q_u8 (uint8x16_t a)
24500 return __builtin_shuffle (a,
24501 (uint8x16_t) { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 });
24504 __extension__ extern __inline poly8x8_t
24505 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24506 vrev32_p8 (poly8x8_t a)
24508 return __builtin_shuffle (a, (uint8x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
24511 __extension__ extern __inline poly16x4_t
24512 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24513 vrev32_p16 (poly16x4_t a)
24515 return __builtin_shuffle (a, (uint16x4_t) { 1, 0, 3, 2 });
24518 __extension__ extern __inline int8x8_t
24519 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24520 vrev32_s8 (int8x8_t a)
24522 return __builtin_shuffle (a, (uint8x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
24525 __extension__ extern __inline int16x4_t
24526 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24527 vrev32_s16 (int16x4_t a)
24529 return __builtin_shuffle (a, (uint16x4_t) { 1, 0, 3, 2 });
24532 __extension__ extern __inline uint8x8_t
24533 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24534 vrev32_u8 (uint8x8_t a)
24536 return __builtin_shuffle (a, (uint8x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
24539 __extension__ extern __inline uint16x4_t
24540 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24541 vrev32_u16 (uint16x4_t a)
24543 return __builtin_shuffle (a, (uint16x4_t) { 1, 0, 3, 2 });
24546 __extension__ extern __inline poly8x16_t
24547 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24548 vrev32q_p8 (poly8x16_t a)
24550 return __builtin_shuffle (a,
24551 (uint8x16_t) { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 });
24554 __extension__ extern __inline poly16x8_t
24555 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24556 vrev32q_p16 (poly16x8_t a)
24558 return __builtin_shuffle (a, (uint16x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
24561 __extension__ extern __inline int8x16_t
24562 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24563 vrev32q_s8 (int8x16_t a)
24565 return __builtin_shuffle (a,
24566 (uint8x16_t) { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 });
24569 __extension__ extern __inline int16x8_t
24570 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24571 vrev32q_s16 (int16x8_t a)
24573 return __builtin_shuffle (a, (uint16x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
24576 __extension__ extern __inline uint8x16_t
24577 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24578 vrev32q_u8 (uint8x16_t a)
24580 return __builtin_shuffle (a,
24581 (uint8x16_t) { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 });
24584 __extension__ extern __inline uint16x8_t
24585 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24586 vrev32q_u16 (uint16x8_t a)
24588 return __builtin_shuffle (a, (uint16x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
24591 __extension__ extern __inline float16x4_t
24592 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24593 vrev64_f16 (float16x4_t __a)
24595 return __builtin_shuffle (__a, (uint16x4_t) { 3, 2, 1, 0 });
24598 __extension__ extern __inline float32x2_t
24599 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24600 vrev64_f32 (float32x2_t a)
24602 return __builtin_shuffle (a, (uint32x2_t) { 1, 0 });
24605 __extension__ extern __inline poly8x8_t
24606 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24607 vrev64_p8 (poly8x8_t a)
24609 return __builtin_shuffle (a, (uint8x8_t) { 7, 6, 5, 4, 3, 2, 1, 0 });
24612 __extension__ extern __inline poly16x4_t
24613 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24614 vrev64_p16 (poly16x4_t a)
24616 return __builtin_shuffle (a, (uint16x4_t) { 3, 2, 1, 0 });
24619 __extension__ extern __inline int8x8_t
24620 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24621 vrev64_s8 (int8x8_t a)
24623 return __builtin_shuffle (a, (uint8x8_t) { 7, 6, 5, 4, 3, 2, 1, 0 });
24626 __extension__ extern __inline int16x4_t
24627 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24628 vrev64_s16 (int16x4_t a)
24630 return __builtin_shuffle (a, (uint16x4_t) { 3, 2, 1, 0 });
24633 __extension__ extern __inline int32x2_t
24634 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24635 vrev64_s32 (int32x2_t a)
24637 return __builtin_shuffle (a, (uint32x2_t) { 1, 0 });
24640 __extension__ extern __inline uint8x8_t
24641 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24642 vrev64_u8 (uint8x8_t a)
24644 return __builtin_shuffle (a, (uint8x8_t) { 7, 6, 5, 4, 3, 2, 1, 0 });
24647 __extension__ extern __inline uint16x4_t
24648 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24649 vrev64_u16 (uint16x4_t a)
24651 return __builtin_shuffle (a, (uint16x4_t) { 3, 2, 1, 0 });
24654 __extension__ extern __inline uint32x2_t
24655 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24656 vrev64_u32 (uint32x2_t a)
24658 return __builtin_shuffle (a, (uint32x2_t) { 1, 0 });
24661 __extension__ extern __inline float16x8_t
24662 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24663 vrev64q_f16 (float16x8_t __a)
24665 return __builtin_shuffle (__a, (uint16x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
24668 __extension__ extern __inline float32x4_t
24669 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24670 vrev64q_f32 (float32x4_t a)
24672 return __builtin_shuffle (a, (uint32x4_t) { 1, 0, 3, 2 });
24675 __extension__ extern __inline poly8x16_t
24676 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24677 vrev64q_p8 (poly8x16_t a)
24679 return __builtin_shuffle (a,
24680 (uint8x16_t) { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 });
24683 __extension__ extern __inline poly16x8_t
24684 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24685 vrev64q_p16 (poly16x8_t a)
24687 return __builtin_shuffle (a, (uint16x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
24690 __extension__ extern __inline int8x16_t
24691 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24692 vrev64q_s8 (int8x16_t a)
24694 return __builtin_shuffle (a,
24695 (uint8x16_t) { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 });
24698 __extension__ extern __inline int16x8_t
24699 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24700 vrev64q_s16 (int16x8_t a)
24702 return __builtin_shuffle (a, (uint16x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
24705 __extension__ extern __inline int32x4_t
24706 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24707 vrev64q_s32 (int32x4_t a)
24709 return __builtin_shuffle (a, (uint32x4_t) { 1, 0, 3, 2 });
24712 __extension__ extern __inline uint8x16_t
24713 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24714 vrev64q_u8 (uint8x16_t a)
24716 return __builtin_shuffle (a,
24717 (uint8x16_t) { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 });
24720 __extension__ extern __inline uint16x8_t
24721 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24722 vrev64q_u16 (uint16x8_t a)
24724 return __builtin_shuffle (a, (uint16x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
24727 __extension__ extern __inline uint32x4_t
24728 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24729 vrev64q_u32 (uint32x4_t a)
24731 return __builtin_shuffle (a, (uint32x4_t) { 1, 0, 3, 2 });
24734 /* vrnd */
24736 __extension__ extern __inline float32x2_t
24737 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24738 vrnd_f32 (float32x2_t __a)
24740 return __builtin_aarch64_btruncv2sf (__a);
24743 __extension__ extern __inline float64x1_t
24744 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24745 vrnd_f64 (float64x1_t __a)
24747 return vset_lane_f64 (__builtin_trunc (vget_lane_f64 (__a, 0)), __a, 0);
24750 __extension__ extern __inline float32x4_t
24751 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24752 vrndq_f32 (float32x4_t __a)
24754 return __builtin_aarch64_btruncv4sf (__a);
24757 __extension__ extern __inline float64x2_t
24758 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24759 vrndq_f64 (float64x2_t __a)
24761 return __builtin_aarch64_btruncv2df (__a);
24764 /* vrnda */
24766 __extension__ extern __inline float32x2_t
24767 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24768 vrnda_f32 (float32x2_t __a)
24770 return __builtin_aarch64_roundv2sf (__a);
24773 __extension__ extern __inline float64x1_t
24774 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24775 vrnda_f64 (float64x1_t __a)
24777 return vset_lane_f64 (__builtin_round (vget_lane_f64 (__a, 0)), __a, 0);
24780 __extension__ extern __inline float32x4_t
24781 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24782 vrndaq_f32 (float32x4_t __a)
24784 return __builtin_aarch64_roundv4sf (__a);
24787 __extension__ extern __inline float64x2_t
24788 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24789 vrndaq_f64 (float64x2_t __a)
24791 return __builtin_aarch64_roundv2df (__a);
24794 /* vrndi */
24796 __extension__ extern __inline float32x2_t
24797 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24798 vrndi_f32 (float32x2_t __a)
24800 return __builtin_aarch64_nearbyintv2sf (__a);
24803 __extension__ extern __inline float64x1_t
24804 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24805 vrndi_f64 (float64x1_t __a)
24807 return vset_lane_f64 (__builtin_nearbyint (vget_lane_f64 (__a, 0)), __a, 0);
24810 __extension__ extern __inline float32x4_t
24811 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24812 vrndiq_f32 (float32x4_t __a)
24814 return __builtin_aarch64_nearbyintv4sf (__a);
24817 __extension__ extern __inline float64x2_t
24818 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24819 vrndiq_f64 (float64x2_t __a)
24821 return __builtin_aarch64_nearbyintv2df (__a);
24824 /* vrndm */
24826 __extension__ extern __inline float32x2_t
24827 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24828 vrndm_f32 (float32x2_t __a)
24830 return __builtin_aarch64_floorv2sf (__a);
24833 __extension__ extern __inline float64x1_t
24834 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24835 vrndm_f64 (float64x1_t __a)
24837 return vset_lane_f64 (__builtin_floor (vget_lane_f64 (__a, 0)), __a, 0);
24840 __extension__ extern __inline float32x4_t
24841 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24842 vrndmq_f32 (float32x4_t __a)
24844 return __builtin_aarch64_floorv4sf (__a);
24847 __extension__ extern __inline float64x2_t
24848 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24849 vrndmq_f64 (float64x2_t __a)
24851 return __builtin_aarch64_floorv2df (__a);
24854 /* vrndn */
24856 __extension__ extern __inline float32x2_t
24857 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24858 vrndn_f32 (float32x2_t __a)
24860 return __builtin_aarch64_frintnv2sf (__a);
24863 __extension__ extern __inline float64x1_t
24864 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24865 vrndn_f64 (float64x1_t __a)
24867 return (float64x1_t) {__builtin_aarch64_frintndf (__a[0])};
24870 __extension__ extern __inline float32x4_t
24871 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24872 vrndnq_f32 (float32x4_t __a)
24874 return __builtin_aarch64_frintnv4sf (__a);
24877 __extension__ extern __inline float64x2_t
24878 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24879 vrndnq_f64 (float64x2_t __a)
24881 return __builtin_aarch64_frintnv2df (__a);
24884 /* vrndp */
24886 __extension__ extern __inline float32x2_t
24887 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24888 vrndp_f32 (float32x2_t __a)
24890 return __builtin_aarch64_ceilv2sf (__a);
24893 __extension__ extern __inline float64x1_t
24894 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24895 vrndp_f64 (float64x1_t __a)
24897 return vset_lane_f64 (__builtin_ceil (vget_lane_f64 (__a, 0)), __a, 0);
24900 __extension__ extern __inline float32x4_t
24901 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24902 vrndpq_f32 (float32x4_t __a)
24904 return __builtin_aarch64_ceilv4sf (__a);
24907 __extension__ extern __inline float64x2_t
24908 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24909 vrndpq_f64 (float64x2_t __a)
24911 return __builtin_aarch64_ceilv2df (__a);
24914 /* vrndx */
24916 __extension__ extern __inline float32x2_t
24917 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24918 vrndx_f32 (float32x2_t __a)
24920 return __builtin_aarch64_rintv2sf (__a);
24923 __extension__ extern __inline float64x1_t
24924 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24925 vrndx_f64 (float64x1_t __a)
24927 return vset_lane_f64 (__builtin_rint (vget_lane_f64 (__a, 0)), __a, 0);
24930 __extension__ extern __inline float32x4_t
24931 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24932 vrndxq_f32 (float32x4_t __a)
24934 return __builtin_aarch64_rintv4sf (__a);
24937 __extension__ extern __inline float64x2_t
24938 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24939 vrndxq_f64 (float64x2_t __a)
24941 return __builtin_aarch64_rintv2df (__a);
24944 /* vrshl */
24946 __extension__ extern __inline int8x8_t
24947 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24948 vrshl_s8 (int8x8_t __a, int8x8_t __b)
24950 return (int8x8_t) __builtin_aarch64_srshlv8qi (__a, __b);
24953 __extension__ extern __inline int16x4_t
24954 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24955 vrshl_s16 (int16x4_t __a, int16x4_t __b)
24957 return (int16x4_t) __builtin_aarch64_srshlv4hi (__a, __b);
24960 __extension__ extern __inline int32x2_t
24961 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24962 vrshl_s32 (int32x2_t __a, int32x2_t __b)
24964 return (int32x2_t) __builtin_aarch64_srshlv2si (__a, __b);
24967 __extension__ extern __inline int64x1_t
24968 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24969 vrshl_s64 (int64x1_t __a, int64x1_t __b)
24971 return (int64x1_t) {__builtin_aarch64_srshldi (__a[0], __b[0])};
24974 __extension__ extern __inline uint8x8_t
24975 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24976 vrshl_u8 (uint8x8_t __a, int8x8_t __b)
24978 return __builtin_aarch64_urshlv8qi_uus (__a, __b);
24981 __extension__ extern __inline uint16x4_t
24982 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24983 vrshl_u16 (uint16x4_t __a, int16x4_t __b)
24985 return __builtin_aarch64_urshlv4hi_uus (__a, __b);
24988 __extension__ extern __inline uint32x2_t
24989 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24990 vrshl_u32 (uint32x2_t __a, int32x2_t __b)
24992 return __builtin_aarch64_urshlv2si_uus (__a, __b);
24995 __extension__ extern __inline uint64x1_t
24996 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24997 vrshl_u64 (uint64x1_t __a, int64x1_t __b)
24999 return (uint64x1_t) {__builtin_aarch64_urshldi_uus (__a[0], __b[0])};
25002 __extension__ extern __inline int8x16_t
25003 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25004 vrshlq_s8 (int8x16_t __a, int8x16_t __b)
25006 return (int8x16_t) __builtin_aarch64_srshlv16qi (__a, __b);
25009 __extension__ extern __inline int16x8_t
25010 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25011 vrshlq_s16 (int16x8_t __a, int16x8_t __b)
25013 return (int16x8_t) __builtin_aarch64_srshlv8hi (__a, __b);
25016 __extension__ extern __inline int32x4_t
25017 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25018 vrshlq_s32 (int32x4_t __a, int32x4_t __b)
25020 return (int32x4_t) __builtin_aarch64_srshlv4si (__a, __b);
25023 __extension__ extern __inline int64x2_t
25024 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25025 vrshlq_s64 (int64x2_t __a, int64x2_t __b)
25027 return (int64x2_t) __builtin_aarch64_srshlv2di (__a, __b);
25030 __extension__ extern __inline uint8x16_t
25031 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25032 vrshlq_u8 (uint8x16_t __a, int8x16_t __b)
25034 return __builtin_aarch64_urshlv16qi_uus (__a, __b);
25037 __extension__ extern __inline uint16x8_t
25038 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25039 vrshlq_u16 (uint16x8_t __a, int16x8_t __b)
25041 return __builtin_aarch64_urshlv8hi_uus (__a, __b);
25044 __extension__ extern __inline uint32x4_t
25045 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25046 vrshlq_u32 (uint32x4_t __a, int32x4_t __b)
25048 return __builtin_aarch64_urshlv4si_uus (__a, __b);
25051 __extension__ extern __inline uint64x2_t
25052 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25053 vrshlq_u64 (uint64x2_t __a, int64x2_t __b)
25055 return __builtin_aarch64_urshlv2di_uus (__a, __b);
25058 __extension__ extern __inline int64_t
25059 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25060 vrshld_s64 (int64_t __a, int64_t __b)
25062 return __builtin_aarch64_srshldi (__a, __b);
25065 __extension__ extern __inline uint64_t
25066 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25067 vrshld_u64 (uint64_t __a, int64_t __b)
25069 return __builtin_aarch64_urshldi_uus (__a, __b);
25072 /* vrshr */
25074 __extension__ extern __inline int8x8_t
25075 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25076 vrshr_n_s8 (int8x8_t __a, const int __b)
25078 return (int8x8_t) __builtin_aarch64_srshr_nv8qi (__a, __b);
25081 __extension__ extern __inline int16x4_t
25082 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25083 vrshr_n_s16 (int16x4_t __a, const int __b)
25085 return (int16x4_t) __builtin_aarch64_srshr_nv4hi (__a, __b);
25088 __extension__ extern __inline int32x2_t
25089 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25090 vrshr_n_s32 (int32x2_t __a, const int __b)
25092 return (int32x2_t) __builtin_aarch64_srshr_nv2si (__a, __b);
25095 __extension__ extern __inline int64x1_t
25096 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25097 vrshr_n_s64 (int64x1_t __a, const int __b)
25099 return (int64x1_t) {__builtin_aarch64_srshr_ndi (__a[0], __b)};
25102 __extension__ extern __inline uint8x8_t
25103 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25104 vrshr_n_u8 (uint8x8_t __a, const int __b)
25106 return __builtin_aarch64_urshr_nv8qi_uus (__a, __b);
25109 __extension__ extern __inline uint16x4_t
25110 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25111 vrshr_n_u16 (uint16x4_t __a, const int __b)
25113 return __builtin_aarch64_urshr_nv4hi_uus (__a, __b);
25116 __extension__ extern __inline uint32x2_t
25117 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25118 vrshr_n_u32 (uint32x2_t __a, const int __b)
25120 return __builtin_aarch64_urshr_nv2si_uus (__a, __b);
25123 __extension__ extern __inline uint64x1_t
25124 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25125 vrshr_n_u64 (uint64x1_t __a, const int __b)
25127 return (uint64x1_t) {__builtin_aarch64_urshr_ndi_uus (__a[0], __b)};
25130 __extension__ extern __inline int8x16_t
25131 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25132 vrshrq_n_s8 (int8x16_t __a, const int __b)
25134 return (int8x16_t) __builtin_aarch64_srshr_nv16qi (__a, __b);
25137 __extension__ extern __inline int16x8_t
25138 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25139 vrshrq_n_s16 (int16x8_t __a, const int __b)
25141 return (int16x8_t) __builtin_aarch64_srshr_nv8hi (__a, __b);
25144 __extension__ extern __inline int32x4_t
25145 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25146 vrshrq_n_s32 (int32x4_t __a, const int __b)
25148 return (int32x4_t) __builtin_aarch64_srshr_nv4si (__a, __b);
25151 __extension__ extern __inline int64x2_t
25152 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25153 vrshrq_n_s64 (int64x2_t __a, const int __b)
25155 return (int64x2_t) __builtin_aarch64_srshr_nv2di (__a, __b);
25158 __extension__ extern __inline uint8x16_t
25159 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25160 vrshrq_n_u8 (uint8x16_t __a, const int __b)
25162 return __builtin_aarch64_urshr_nv16qi_uus (__a, __b);
25165 __extension__ extern __inline uint16x8_t
25166 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25167 vrshrq_n_u16 (uint16x8_t __a, const int __b)
25169 return __builtin_aarch64_urshr_nv8hi_uus (__a, __b);
25172 __extension__ extern __inline uint32x4_t
25173 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25174 vrshrq_n_u32 (uint32x4_t __a, const int __b)
25176 return __builtin_aarch64_urshr_nv4si_uus (__a, __b);
25179 __extension__ extern __inline uint64x2_t
25180 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25181 vrshrq_n_u64 (uint64x2_t __a, const int __b)
25183 return __builtin_aarch64_urshr_nv2di_uus (__a, __b);
25186 __extension__ extern __inline int64_t
25187 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25188 vrshrd_n_s64 (int64_t __a, const int __b)
25190 return __builtin_aarch64_srshr_ndi (__a, __b);
25193 __extension__ extern __inline uint64_t
25194 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25195 vrshrd_n_u64 (uint64_t __a, const int __b)
25197 return __builtin_aarch64_urshr_ndi_uus (__a, __b);
25200 /* vrsqrte. */
25202 __extension__ extern __inline float32_t
25203 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25204 vrsqrtes_f32 (float32_t __a)
25206 return __builtin_aarch64_rsqrtesf (__a);
25209 __extension__ extern __inline float64_t
25210 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25211 vrsqrted_f64 (float64_t __a)
25213 return __builtin_aarch64_rsqrtedf (__a);
25216 __extension__ extern __inline float32x2_t
25217 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25218 vrsqrte_f32 (float32x2_t __a)
25220 return __builtin_aarch64_rsqrtev2sf (__a);
25223 __extension__ extern __inline float64x1_t
25224 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25225 vrsqrte_f64 (float64x1_t __a)
25227 return (float64x1_t) {vrsqrted_f64 (vget_lane_f64 (__a, 0))};
25230 __extension__ extern __inline float32x4_t
25231 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25232 vrsqrteq_f32 (float32x4_t __a)
25234 return __builtin_aarch64_rsqrtev4sf (__a);
25237 __extension__ extern __inline float64x2_t
25238 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25239 vrsqrteq_f64 (float64x2_t __a)
25241 return __builtin_aarch64_rsqrtev2df (__a);
25244 /* vrsqrts. */
25246 __extension__ extern __inline float32_t
25247 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25248 vrsqrtss_f32 (float32_t __a, float32_t __b)
25250 return __builtin_aarch64_rsqrtssf (__a, __b);
25253 __extension__ extern __inline float64_t
25254 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25255 vrsqrtsd_f64 (float64_t __a, float64_t __b)
25257 return __builtin_aarch64_rsqrtsdf (__a, __b);
25260 __extension__ extern __inline float32x2_t
25261 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25262 vrsqrts_f32 (float32x2_t __a, float32x2_t __b)
25264 return __builtin_aarch64_rsqrtsv2sf (__a, __b);
25267 __extension__ extern __inline float64x1_t
25268 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25269 vrsqrts_f64 (float64x1_t __a, float64x1_t __b)
25271 return (float64x1_t) {vrsqrtsd_f64 (vget_lane_f64 (__a, 0),
25272 vget_lane_f64 (__b, 0))};
25275 __extension__ extern __inline float32x4_t
25276 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25277 vrsqrtsq_f32 (float32x4_t __a, float32x4_t __b)
25279 return __builtin_aarch64_rsqrtsv4sf (__a, __b);
25282 __extension__ extern __inline float64x2_t
25283 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25284 vrsqrtsq_f64 (float64x2_t __a, float64x2_t __b)
25286 return __builtin_aarch64_rsqrtsv2df (__a, __b);
25289 /* vrsra */
25291 __extension__ extern __inline int8x8_t
25292 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25293 vrsra_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
25295 return (int8x8_t) __builtin_aarch64_srsra_nv8qi (__a, __b, __c);
25298 __extension__ extern __inline int16x4_t
25299 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25300 vrsra_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
25302 return (int16x4_t) __builtin_aarch64_srsra_nv4hi (__a, __b, __c);
25305 __extension__ extern __inline int32x2_t
25306 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25307 vrsra_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
25309 return (int32x2_t) __builtin_aarch64_srsra_nv2si (__a, __b, __c);
25312 __extension__ extern __inline int64x1_t
25313 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25314 vrsra_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
25316 return (int64x1_t) {__builtin_aarch64_srsra_ndi (__a[0], __b[0], __c)};
25319 __extension__ extern __inline uint8x8_t
25320 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25321 vrsra_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
25323 return __builtin_aarch64_ursra_nv8qi_uuus (__a, __b, __c);
25326 __extension__ extern __inline uint16x4_t
25327 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25328 vrsra_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
25330 return __builtin_aarch64_ursra_nv4hi_uuus (__a, __b, __c);
25333 __extension__ extern __inline uint32x2_t
25334 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25335 vrsra_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
25337 return __builtin_aarch64_ursra_nv2si_uuus (__a, __b, __c);
25340 __extension__ extern __inline uint64x1_t
25341 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25342 vrsra_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
25344 return (uint64x1_t) {__builtin_aarch64_ursra_ndi_uuus (__a[0], __b[0], __c)};
25347 __extension__ extern __inline int8x16_t
25348 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25349 vrsraq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
25351 return (int8x16_t) __builtin_aarch64_srsra_nv16qi (__a, __b, __c);
25354 __extension__ extern __inline int16x8_t
25355 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25356 vrsraq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
25358 return (int16x8_t) __builtin_aarch64_srsra_nv8hi (__a, __b, __c);
25361 __extension__ extern __inline int32x4_t
25362 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25363 vrsraq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
25365 return (int32x4_t) __builtin_aarch64_srsra_nv4si (__a, __b, __c);
25368 __extension__ extern __inline int64x2_t
25369 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25370 vrsraq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
25372 return (int64x2_t) __builtin_aarch64_srsra_nv2di (__a, __b, __c);
25375 __extension__ extern __inline uint8x16_t
25376 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25377 vrsraq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
25379 return __builtin_aarch64_ursra_nv16qi_uuus (__a, __b, __c);
25382 __extension__ extern __inline uint16x8_t
25383 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25384 vrsraq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
25386 return __builtin_aarch64_ursra_nv8hi_uuus (__a, __b, __c);
25389 __extension__ extern __inline uint32x4_t
25390 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25391 vrsraq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
25393 return __builtin_aarch64_ursra_nv4si_uuus (__a, __b, __c);
25396 __extension__ extern __inline uint64x2_t
25397 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25398 vrsraq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
25400 return __builtin_aarch64_ursra_nv2di_uuus (__a, __b, __c);
25403 __extension__ extern __inline int64_t
25404 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25405 vrsrad_n_s64 (int64_t __a, int64_t __b, const int __c)
25407 return __builtin_aarch64_srsra_ndi (__a, __b, __c);
25410 __extension__ extern __inline uint64_t
25411 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25412 vrsrad_n_u64 (uint64_t __a, uint64_t __b, const int __c)
25414 return __builtin_aarch64_ursra_ndi_uuus (__a, __b, __c);
25417 #pragma GCC push_options
25418 #pragma GCC target ("+nothing+crypto")
25420 /* vsha1 */
25422 __extension__ extern __inline uint32x4_t
25423 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25424 vsha1cq_u32 (uint32x4_t hash_abcd, uint32_t hash_e, uint32x4_t wk)
25426 return __builtin_aarch64_crypto_sha1cv4si_uuuu (hash_abcd, hash_e, wk);
25429 __extension__ extern __inline uint32x4_t
25430 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25431 vsha1mq_u32 (uint32x4_t hash_abcd, uint32_t hash_e, uint32x4_t wk)
25433 return __builtin_aarch64_crypto_sha1mv4si_uuuu (hash_abcd, hash_e, wk);
25436 __extension__ extern __inline uint32x4_t
25437 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25438 vsha1pq_u32 (uint32x4_t hash_abcd, uint32_t hash_e, uint32x4_t wk)
25440 return __builtin_aarch64_crypto_sha1pv4si_uuuu (hash_abcd, hash_e, wk);
25443 __extension__ extern __inline uint32_t
25444 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25445 vsha1h_u32 (uint32_t hash_e)
25447 return __builtin_aarch64_crypto_sha1hsi_uu (hash_e);
25450 __extension__ extern __inline uint32x4_t
25451 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25452 vsha1su0q_u32 (uint32x4_t w0_3, uint32x4_t w4_7, uint32x4_t w8_11)
25454 return __builtin_aarch64_crypto_sha1su0v4si_uuuu (w0_3, w4_7, w8_11);
25457 __extension__ extern __inline uint32x4_t
25458 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25459 vsha1su1q_u32 (uint32x4_t tw0_3, uint32x4_t w12_15)
25461 return __builtin_aarch64_crypto_sha1su1v4si_uuu (tw0_3, w12_15);
25464 __extension__ extern __inline uint32x4_t
25465 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25466 vsha256hq_u32 (uint32x4_t hash_abcd, uint32x4_t hash_efgh, uint32x4_t wk)
25468 return __builtin_aarch64_crypto_sha256hv4si_uuuu (hash_abcd, hash_efgh, wk);
25471 __extension__ extern __inline uint32x4_t
25472 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25473 vsha256h2q_u32 (uint32x4_t hash_efgh, uint32x4_t hash_abcd, uint32x4_t wk)
25475 return __builtin_aarch64_crypto_sha256h2v4si_uuuu (hash_efgh, hash_abcd, wk);
25478 __extension__ extern __inline uint32x4_t
25479 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25480 vsha256su0q_u32 (uint32x4_t w0_3, uint32x4_t w4_7)
25482 return __builtin_aarch64_crypto_sha256su0v4si_uuu (w0_3, w4_7);
25485 __extension__ extern __inline uint32x4_t
25486 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25487 vsha256su1q_u32 (uint32x4_t tw0_3, uint32x4_t w8_11, uint32x4_t w12_15)
25489 return __builtin_aarch64_crypto_sha256su1v4si_uuuu (tw0_3, w8_11, w12_15);
25492 __extension__ extern __inline poly128_t
25493 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25494 vmull_p64 (poly64_t a, poly64_t b)
25496 return
25497 __builtin_aarch64_crypto_pmulldi_ppp (a, b);
25500 __extension__ extern __inline poly128_t
25501 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25502 vmull_high_p64 (poly64x2_t a, poly64x2_t b)
25504 return __builtin_aarch64_crypto_pmullv2di_ppp (a, b);
25507 #pragma GCC pop_options
25509 /* vshl */
25511 __extension__ extern __inline int8x8_t
25512 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25513 vshl_n_s8 (int8x8_t __a, const int __b)
25515 return (int8x8_t) __builtin_aarch64_ashlv8qi (__a, __b);
25518 __extension__ extern __inline int16x4_t
25519 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25520 vshl_n_s16 (int16x4_t __a, const int __b)
25522 return (int16x4_t) __builtin_aarch64_ashlv4hi (__a, __b);
25525 __extension__ extern __inline int32x2_t
25526 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25527 vshl_n_s32 (int32x2_t __a, const int __b)
25529 return (int32x2_t) __builtin_aarch64_ashlv2si (__a, __b);
25532 __extension__ extern __inline int64x1_t
25533 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25534 vshl_n_s64 (int64x1_t __a, const int __b)
25536 return (int64x1_t) {__builtin_aarch64_ashldi (__a[0], __b)};
25539 __extension__ extern __inline uint8x8_t
25540 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25541 vshl_n_u8 (uint8x8_t __a, const int __b)
25543 return (uint8x8_t) __builtin_aarch64_ashlv8qi ((int8x8_t) __a, __b);
25546 __extension__ extern __inline uint16x4_t
25547 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25548 vshl_n_u16 (uint16x4_t __a, const int __b)
25550 return (uint16x4_t) __builtin_aarch64_ashlv4hi ((int16x4_t) __a, __b);
25553 __extension__ extern __inline uint32x2_t
25554 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25555 vshl_n_u32 (uint32x2_t __a, const int __b)
25557 return (uint32x2_t) __builtin_aarch64_ashlv2si ((int32x2_t) __a, __b);
25560 __extension__ extern __inline uint64x1_t
25561 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25562 vshl_n_u64 (uint64x1_t __a, const int __b)
25564 return (uint64x1_t) {__builtin_aarch64_ashldi ((int64_t) __a[0], __b)};
25567 __extension__ extern __inline int8x16_t
25568 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25569 vshlq_n_s8 (int8x16_t __a, const int __b)
25571 return (int8x16_t) __builtin_aarch64_ashlv16qi (__a, __b);
25574 __extension__ extern __inline int16x8_t
25575 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25576 vshlq_n_s16 (int16x8_t __a, const int __b)
25578 return (int16x8_t) __builtin_aarch64_ashlv8hi (__a, __b);
25581 __extension__ extern __inline int32x4_t
25582 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25583 vshlq_n_s32 (int32x4_t __a, const int __b)
25585 return (int32x4_t) __builtin_aarch64_ashlv4si (__a, __b);
25588 __extension__ extern __inline int64x2_t
25589 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25590 vshlq_n_s64 (int64x2_t __a, const int __b)
25592 return (int64x2_t) __builtin_aarch64_ashlv2di (__a, __b);
25595 __extension__ extern __inline uint8x16_t
25596 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25597 vshlq_n_u8 (uint8x16_t __a, const int __b)
25599 return (uint8x16_t) __builtin_aarch64_ashlv16qi ((int8x16_t) __a, __b);
25602 __extension__ extern __inline uint16x8_t
25603 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25604 vshlq_n_u16 (uint16x8_t __a, const int __b)
25606 return (uint16x8_t) __builtin_aarch64_ashlv8hi ((int16x8_t) __a, __b);
25609 __extension__ extern __inline uint32x4_t
25610 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25611 vshlq_n_u32 (uint32x4_t __a, const int __b)
25613 return (uint32x4_t) __builtin_aarch64_ashlv4si ((int32x4_t) __a, __b);
25616 __extension__ extern __inline uint64x2_t
25617 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25618 vshlq_n_u64 (uint64x2_t __a, const int __b)
25620 return (uint64x2_t) __builtin_aarch64_ashlv2di ((int64x2_t) __a, __b);
25623 __extension__ extern __inline int64_t
25624 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25625 vshld_n_s64 (int64_t __a, const int __b)
25627 return __builtin_aarch64_ashldi (__a, __b);
25630 __extension__ extern __inline uint64_t
25631 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25632 vshld_n_u64 (uint64_t __a, const int __b)
25634 return (uint64_t) __builtin_aarch64_ashldi (__a, __b);
25637 __extension__ extern __inline int8x8_t
25638 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25639 vshl_s8 (int8x8_t __a, int8x8_t __b)
25641 return __builtin_aarch64_sshlv8qi (__a, __b);
25644 __extension__ extern __inline int16x4_t
25645 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25646 vshl_s16 (int16x4_t __a, int16x4_t __b)
25648 return __builtin_aarch64_sshlv4hi (__a, __b);
25651 __extension__ extern __inline int32x2_t
25652 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25653 vshl_s32 (int32x2_t __a, int32x2_t __b)
25655 return __builtin_aarch64_sshlv2si (__a, __b);
25658 __extension__ extern __inline int64x1_t
25659 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25660 vshl_s64 (int64x1_t __a, int64x1_t __b)
25662 return (int64x1_t) {__builtin_aarch64_sshldi (__a[0], __b[0])};
25665 __extension__ extern __inline uint8x8_t
25666 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25667 vshl_u8 (uint8x8_t __a, int8x8_t __b)
25669 return __builtin_aarch64_ushlv8qi_uus (__a, __b);
25672 __extension__ extern __inline uint16x4_t
25673 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25674 vshl_u16 (uint16x4_t __a, int16x4_t __b)
25676 return __builtin_aarch64_ushlv4hi_uus (__a, __b);
25679 __extension__ extern __inline uint32x2_t
25680 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25681 vshl_u32 (uint32x2_t __a, int32x2_t __b)
25683 return __builtin_aarch64_ushlv2si_uus (__a, __b);
25686 __extension__ extern __inline uint64x1_t
25687 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25688 vshl_u64 (uint64x1_t __a, int64x1_t __b)
25690 return (uint64x1_t) {__builtin_aarch64_ushldi_uus (__a[0], __b[0])};
25693 __extension__ extern __inline int8x16_t
25694 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25695 vshlq_s8 (int8x16_t __a, int8x16_t __b)
25697 return __builtin_aarch64_sshlv16qi (__a, __b);
25700 __extension__ extern __inline int16x8_t
25701 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25702 vshlq_s16 (int16x8_t __a, int16x8_t __b)
25704 return __builtin_aarch64_sshlv8hi (__a, __b);
25707 __extension__ extern __inline int32x4_t
25708 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25709 vshlq_s32 (int32x4_t __a, int32x4_t __b)
25711 return __builtin_aarch64_sshlv4si (__a, __b);
25714 __extension__ extern __inline int64x2_t
25715 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25716 vshlq_s64 (int64x2_t __a, int64x2_t __b)
25718 return __builtin_aarch64_sshlv2di (__a, __b);
25721 __extension__ extern __inline uint8x16_t
25722 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25723 vshlq_u8 (uint8x16_t __a, int8x16_t __b)
25725 return __builtin_aarch64_ushlv16qi_uus (__a, __b);
25728 __extension__ extern __inline uint16x8_t
25729 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25730 vshlq_u16 (uint16x8_t __a, int16x8_t __b)
25732 return __builtin_aarch64_ushlv8hi_uus (__a, __b);
25735 __extension__ extern __inline uint32x4_t
25736 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25737 vshlq_u32 (uint32x4_t __a, int32x4_t __b)
25739 return __builtin_aarch64_ushlv4si_uus (__a, __b);
25742 __extension__ extern __inline uint64x2_t
25743 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25744 vshlq_u64 (uint64x2_t __a, int64x2_t __b)
25746 return __builtin_aarch64_ushlv2di_uus (__a, __b);
25749 __extension__ extern __inline int64_t
25750 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25751 vshld_s64 (int64_t __a, int64_t __b)
25753 return __builtin_aarch64_sshldi (__a, __b);
25756 __extension__ extern __inline uint64_t
25757 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25758 vshld_u64 (uint64_t __a, uint64_t __b)
25760 return __builtin_aarch64_ushldi_uus (__a, __b);
25763 __extension__ extern __inline int16x8_t
25764 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25765 vshll_high_n_s8 (int8x16_t __a, const int __b)
25767 return __builtin_aarch64_sshll2_nv16qi (__a, __b);
25770 __extension__ extern __inline int32x4_t
25771 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25772 vshll_high_n_s16 (int16x8_t __a, const int __b)
25774 return __builtin_aarch64_sshll2_nv8hi (__a, __b);
25777 __extension__ extern __inline int64x2_t
25778 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25779 vshll_high_n_s32 (int32x4_t __a, const int __b)
25781 return __builtin_aarch64_sshll2_nv4si (__a, __b);
25784 __extension__ extern __inline uint16x8_t
25785 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25786 vshll_high_n_u8 (uint8x16_t __a, const int __b)
25788 return (uint16x8_t) __builtin_aarch64_ushll2_nv16qi ((int8x16_t) __a, __b);
25791 __extension__ extern __inline uint32x4_t
25792 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25793 vshll_high_n_u16 (uint16x8_t __a, const int __b)
25795 return (uint32x4_t) __builtin_aarch64_ushll2_nv8hi ((int16x8_t) __a, __b);
25798 __extension__ extern __inline uint64x2_t
25799 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25800 vshll_high_n_u32 (uint32x4_t __a, const int __b)
25802 return (uint64x2_t) __builtin_aarch64_ushll2_nv4si ((int32x4_t) __a, __b);
25805 __extension__ extern __inline int16x8_t
25806 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25807 vshll_n_s8 (int8x8_t __a, const int __b)
25809 return __builtin_aarch64_sshll_nv8qi (__a, __b);
25812 __extension__ extern __inline int32x4_t
25813 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25814 vshll_n_s16 (int16x4_t __a, const int __b)
25816 return __builtin_aarch64_sshll_nv4hi (__a, __b);
25819 __extension__ extern __inline int64x2_t
25820 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25821 vshll_n_s32 (int32x2_t __a, const int __b)
25823 return __builtin_aarch64_sshll_nv2si (__a, __b);
25826 __extension__ extern __inline uint16x8_t
25827 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25828 vshll_n_u8 (uint8x8_t __a, const int __b)
25830 return __builtin_aarch64_ushll_nv8qi_uus (__a, __b);
25833 __extension__ extern __inline uint32x4_t
25834 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25835 vshll_n_u16 (uint16x4_t __a, const int __b)
25837 return __builtin_aarch64_ushll_nv4hi_uus (__a, __b);
25840 __extension__ extern __inline uint64x2_t
25841 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25842 vshll_n_u32 (uint32x2_t __a, const int __b)
25844 return __builtin_aarch64_ushll_nv2si_uus (__a, __b);
25847 /* vshr */
25849 __extension__ extern __inline int8x8_t
25850 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25851 vshr_n_s8 (int8x8_t __a, const int __b)
25853 return (int8x8_t) __builtin_aarch64_ashrv8qi (__a, __b);
25856 __extension__ extern __inline int16x4_t
25857 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25858 vshr_n_s16 (int16x4_t __a, const int __b)
25860 return (int16x4_t) __builtin_aarch64_ashrv4hi (__a, __b);
25863 __extension__ extern __inline int32x2_t
25864 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25865 vshr_n_s32 (int32x2_t __a, const int __b)
25867 return (int32x2_t) __builtin_aarch64_ashrv2si (__a, __b);
25870 __extension__ extern __inline int64x1_t
25871 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25872 vshr_n_s64 (int64x1_t __a, const int __b)
25874 return (int64x1_t) {__builtin_aarch64_ashr_simddi (__a[0], __b)};
25877 __extension__ extern __inline uint8x8_t
25878 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25879 vshr_n_u8 (uint8x8_t __a, const int __b)
25881 return (uint8x8_t) __builtin_aarch64_lshrv8qi ((int8x8_t) __a, __b);
25884 __extension__ extern __inline uint16x4_t
25885 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25886 vshr_n_u16 (uint16x4_t __a, const int __b)
25888 return (uint16x4_t) __builtin_aarch64_lshrv4hi ((int16x4_t) __a, __b);
25891 __extension__ extern __inline uint32x2_t
25892 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25893 vshr_n_u32 (uint32x2_t __a, const int __b)
25895 return (uint32x2_t) __builtin_aarch64_lshrv2si ((int32x2_t) __a, __b);
25898 __extension__ extern __inline uint64x1_t
25899 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25900 vshr_n_u64 (uint64x1_t __a, const int __b)
25902 return (uint64x1_t) {__builtin_aarch64_lshr_simddi_uus ( __a[0], __b)};
25905 __extension__ extern __inline int8x16_t
25906 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25907 vshrq_n_s8 (int8x16_t __a, const int __b)
25909 return (int8x16_t) __builtin_aarch64_ashrv16qi (__a, __b);
25912 __extension__ extern __inline int16x8_t
25913 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25914 vshrq_n_s16 (int16x8_t __a, const int __b)
25916 return (int16x8_t) __builtin_aarch64_ashrv8hi (__a, __b);
25919 __extension__ extern __inline int32x4_t
25920 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25921 vshrq_n_s32 (int32x4_t __a, const int __b)
25923 return (int32x4_t) __builtin_aarch64_ashrv4si (__a, __b);
25926 __extension__ extern __inline int64x2_t
25927 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25928 vshrq_n_s64 (int64x2_t __a, const int __b)
25930 return (int64x2_t) __builtin_aarch64_ashrv2di (__a, __b);
25933 __extension__ extern __inline uint8x16_t
25934 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25935 vshrq_n_u8 (uint8x16_t __a, const int __b)
25937 return (uint8x16_t) __builtin_aarch64_lshrv16qi ((int8x16_t) __a, __b);
25940 __extension__ extern __inline uint16x8_t
25941 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25942 vshrq_n_u16 (uint16x8_t __a, const int __b)
25944 return (uint16x8_t) __builtin_aarch64_lshrv8hi ((int16x8_t) __a, __b);
25947 __extension__ extern __inline uint32x4_t
25948 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25949 vshrq_n_u32 (uint32x4_t __a, const int __b)
25951 return (uint32x4_t) __builtin_aarch64_lshrv4si ((int32x4_t) __a, __b);
25954 __extension__ extern __inline uint64x2_t
25955 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25956 vshrq_n_u64 (uint64x2_t __a, const int __b)
25958 return (uint64x2_t) __builtin_aarch64_lshrv2di ((int64x2_t) __a, __b);
25961 __extension__ extern __inline int64_t
25962 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25963 vshrd_n_s64 (int64_t __a, const int __b)
25965 return __builtin_aarch64_ashr_simddi (__a, __b);
25968 __extension__ extern __inline uint64_t
25969 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25970 vshrd_n_u64 (uint64_t __a, const int __b)
25972 return __builtin_aarch64_lshr_simddi_uus (__a, __b);
25975 /* vsli */
25977 __extension__ extern __inline int8x8_t
25978 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25979 vsli_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
25981 return (int8x8_t) __builtin_aarch64_ssli_nv8qi (__a, __b, __c);
25984 __extension__ extern __inline int16x4_t
25985 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25986 vsli_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
25988 return (int16x4_t) __builtin_aarch64_ssli_nv4hi (__a, __b, __c);
25991 __extension__ extern __inline int32x2_t
25992 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25993 vsli_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
25995 return (int32x2_t) __builtin_aarch64_ssli_nv2si (__a, __b, __c);
25998 __extension__ extern __inline int64x1_t
25999 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26000 vsli_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
26002 return (int64x1_t) {__builtin_aarch64_ssli_ndi (__a[0], __b[0], __c)};
26005 __extension__ extern __inline uint8x8_t
26006 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26007 vsli_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
26009 return __builtin_aarch64_usli_nv8qi_uuus (__a, __b, __c);
26012 __extension__ extern __inline uint16x4_t
26013 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26014 vsli_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
26016 return __builtin_aarch64_usli_nv4hi_uuus (__a, __b, __c);
26019 __extension__ extern __inline uint32x2_t
26020 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26021 vsli_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
26023 return __builtin_aarch64_usli_nv2si_uuus (__a, __b, __c);
26026 __extension__ extern __inline uint64x1_t
26027 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26028 vsli_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
26030 return (uint64x1_t) {__builtin_aarch64_usli_ndi_uuus (__a[0], __b[0], __c)};
26033 __extension__ extern __inline poly64x1_t
26034 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26035 vsli_n_p64 (poly64x1_t __a, poly64x1_t __b, const int __c)
26037 return (poly64x1_t) {__builtin_aarch64_ssli_ndi_ppps (__a[0], __b[0], __c)};
26040 __extension__ extern __inline int8x16_t
26041 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26042 vsliq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
26044 return (int8x16_t) __builtin_aarch64_ssli_nv16qi (__a, __b, __c);
26047 __extension__ extern __inline int16x8_t
26048 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26049 vsliq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
26051 return (int16x8_t) __builtin_aarch64_ssli_nv8hi (__a, __b, __c);
26054 __extension__ extern __inline int32x4_t
26055 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26056 vsliq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
26058 return (int32x4_t) __builtin_aarch64_ssli_nv4si (__a, __b, __c);
26061 __extension__ extern __inline int64x2_t
26062 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26063 vsliq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
26065 return (int64x2_t) __builtin_aarch64_ssli_nv2di (__a, __b, __c);
26068 __extension__ extern __inline uint8x16_t
26069 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26070 vsliq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
26072 return __builtin_aarch64_usli_nv16qi_uuus (__a, __b, __c);
26075 __extension__ extern __inline uint16x8_t
26076 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26077 vsliq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
26079 return __builtin_aarch64_usli_nv8hi_uuus (__a, __b, __c);
26082 __extension__ extern __inline uint32x4_t
26083 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26084 vsliq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
26086 return __builtin_aarch64_usli_nv4si_uuus (__a, __b, __c);
26089 __extension__ extern __inline uint64x2_t
26090 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26091 vsliq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
26093 return __builtin_aarch64_usli_nv2di_uuus (__a, __b, __c);
26096 __extension__ extern __inline poly64x2_t
26097 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26098 vsliq_n_p64 (poly64x2_t __a, poly64x2_t __b, const int __c)
26100 return __builtin_aarch64_ssli_nv2di_ppps (__a, __b, __c);
26103 __extension__ extern __inline int64_t
26104 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26105 vslid_n_s64 (int64_t __a, int64_t __b, const int __c)
26107 return __builtin_aarch64_ssli_ndi (__a, __b, __c);
26110 __extension__ extern __inline uint64_t
26111 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26112 vslid_n_u64 (uint64_t __a, uint64_t __b, const int __c)
26114 return __builtin_aarch64_usli_ndi_uuus (__a, __b, __c);
26117 /* vsqadd */
26119 __extension__ extern __inline uint8x8_t
26120 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26121 vsqadd_u8 (uint8x8_t __a, int8x8_t __b)
26123 return __builtin_aarch64_usqaddv8qi_uus (__a, __b);
26126 __extension__ extern __inline uint16x4_t
26127 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26128 vsqadd_u16 (uint16x4_t __a, int16x4_t __b)
26130 return __builtin_aarch64_usqaddv4hi_uus (__a, __b);
26133 __extension__ extern __inline uint32x2_t
26134 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26135 vsqadd_u32 (uint32x2_t __a, int32x2_t __b)
26137 return __builtin_aarch64_usqaddv2si_uus (__a, __b);
26140 __extension__ extern __inline uint64x1_t
26141 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26142 vsqadd_u64 (uint64x1_t __a, int64x1_t __b)
26144 return (uint64x1_t) {__builtin_aarch64_usqadddi_uus (__a[0], __b[0])};
26147 __extension__ extern __inline uint8x16_t
26148 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26149 vsqaddq_u8 (uint8x16_t __a, int8x16_t __b)
26151 return __builtin_aarch64_usqaddv16qi_uus (__a, __b);
26154 __extension__ extern __inline uint16x8_t
26155 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26156 vsqaddq_u16 (uint16x8_t __a, int16x8_t __b)
26158 return __builtin_aarch64_usqaddv8hi_uus (__a, __b);
26161 __extension__ extern __inline uint32x4_t
26162 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26163 vsqaddq_u32 (uint32x4_t __a, int32x4_t __b)
26165 return __builtin_aarch64_usqaddv4si_uus (__a, __b);
26168 __extension__ extern __inline uint64x2_t
26169 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26170 vsqaddq_u64 (uint64x2_t __a, int64x2_t __b)
26172 return __builtin_aarch64_usqaddv2di_uus (__a, __b);
26175 __extension__ extern __inline uint8_t
26176 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26177 vsqaddb_u8 (uint8_t __a, int8_t __b)
26179 return __builtin_aarch64_usqaddqi_uus (__a, __b);
26182 __extension__ extern __inline uint16_t
26183 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26184 vsqaddh_u16 (uint16_t __a, int16_t __b)
26186 return __builtin_aarch64_usqaddhi_uus (__a, __b);
26189 __extension__ extern __inline uint32_t
26190 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26191 vsqadds_u32 (uint32_t __a, int32_t __b)
26193 return __builtin_aarch64_usqaddsi_uus (__a, __b);
26196 __extension__ extern __inline uint64_t
26197 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26198 vsqaddd_u64 (uint64_t __a, int64_t __b)
26200 return __builtin_aarch64_usqadddi_uus (__a, __b);
26203 /* vsqrt */
26204 __extension__ extern __inline float32x2_t
26205 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26206 vsqrt_f32 (float32x2_t a)
26208 return __builtin_aarch64_sqrtv2sf (a);
26211 __extension__ extern __inline float32x4_t
26212 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26213 vsqrtq_f32 (float32x4_t a)
26215 return __builtin_aarch64_sqrtv4sf (a);
26218 __extension__ extern __inline float64x1_t
26219 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26220 vsqrt_f64 (float64x1_t a)
26222 return (float64x1_t) { __builtin_aarch64_sqrtdf (a[0]) };
26225 __extension__ extern __inline float64x2_t
26226 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26227 vsqrtq_f64 (float64x2_t a)
26229 return __builtin_aarch64_sqrtv2df (a);
26232 /* vsra */
26234 __extension__ extern __inline int8x8_t
26235 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26236 vsra_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
26238 return (int8x8_t) __builtin_aarch64_ssra_nv8qi (__a, __b, __c);
26241 __extension__ extern __inline int16x4_t
26242 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26243 vsra_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
26245 return (int16x4_t) __builtin_aarch64_ssra_nv4hi (__a, __b, __c);
26248 __extension__ extern __inline int32x2_t
26249 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26250 vsra_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
26252 return (int32x2_t) __builtin_aarch64_ssra_nv2si (__a, __b, __c);
26255 __extension__ extern __inline int64x1_t
26256 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26257 vsra_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
26259 return (int64x1_t) {__builtin_aarch64_ssra_ndi (__a[0], __b[0], __c)};
26262 __extension__ extern __inline uint8x8_t
26263 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26264 vsra_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
26266 return __builtin_aarch64_usra_nv8qi_uuus (__a, __b, __c);
26269 __extension__ extern __inline uint16x4_t
26270 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26271 vsra_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
26273 return __builtin_aarch64_usra_nv4hi_uuus (__a, __b, __c);
26276 __extension__ extern __inline uint32x2_t
26277 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26278 vsra_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
26280 return __builtin_aarch64_usra_nv2si_uuus (__a, __b, __c);
26283 __extension__ extern __inline uint64x1_t
26284 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26285 vsra_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
26287 return (uint64x1_t) {__builtin_aarch64_usra_ndi_uuus (__a[0], __b[0], __c)};
26290 __extension__ extern __inline int8x16_t
26291 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26292 vsraq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
26294 return (int8x16_t) __builtin_aarch64_ssra_nv16qi (__a, __b, __c);
26297 __extension__ extern __inline int16x8_t
26298 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26299 vsraq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
26301 return (int16x8_t) __builtin_aarch64_ssra_nv8hi (__a, __b, __c);
26304 __extension__ extern __inline int32x4_t
26305 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26306 vsraq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
26308 return (int32x4_t) __builtin_aarch64_ssra_nv4si (__a, __b, __c);
26311 __extension__ extern __inline int64x2_t
26312 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26313 vsraq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
26315 return (int64x2_t) __builtin_aarch64_ssra_nv2di (__a, __b, __c);
26318 __extension__ extern __inline uint8x16_t
26319 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26320 vsraq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
26322 return __builtin_aarch64_usra_nv16qi_uuus (__a, __b, __c);
26325 __extension__ extern __inline uint16x8_t
26326 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26327 vsraq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
26329 return __builtin_aarch64_usra_nv8hi_uuus (__a, __b, __c);
26332 __extension__ extern __inline uint32x4_t
26333 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26334 vsraq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
26336 return __builtin_aarch64_usra_nv4si_uuus (__a, __b, __c);
26339 __extension__ extern __inline uint64x2_t
26340 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26341 vsraq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
26343 return __builtin_aarch64_usra_nv2di_uuus (__a, __b, __c);
26346 __extension__ extern __inline int64_t
26347 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26348 vsrad_n_s64 (int64_t __a, int64_t __b, const int __c)
26350 return __builtin_aarch64_ssra_ndi (__a, __b, __c);
26353 __extension__ extern __inline uint64_t
26354 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26355 vsrad_n_u64 (uint64_t __a, uint64_t __b, const int __c)
26357 return __builtin_aarch64_usra_ndi_uuus (__a, __b, __c);
26360 /* vsri */
26362 __extension__ extern __inline int8x8_t
26363 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26364 vsri_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
26366 return (int8x8_t) __builtin_aarch64_ssri_nv8qi (__a, __b, __c);
26369 __extension__ extern __inline int16x4_t
26370 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26371 vsri_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
26373 return (int16x4_t) __builtin_aarch64_ssri_nv4hi (__a, __b, __c);
26376 __extension__ extern __inline int32x2_t
26377 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26378 vsri_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
26380 return (int32x2_t) __builtin_aarch64_ssri_nv2si (__a, __b, __c);
26383 __extension__ extern __inline int64x1_t
26384 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26385 vsri_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
26387 return (int64x1_t) {__builtin_aarch64_ssri_ndi (__a[0], __b[0], __c)};
26390 __extension__ extern __inline uint8x8_t
26391 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26392 vsri_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
26394 return __builtin_aarch64_usri_nv8qi_uuus (__a, __b, __c);
26397 __extension__ extern __inline uint16x4_t
26398 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26399 vsri_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
26401 return __builtin_aarch64_usri_nv4hi_uuus (__a, __b, __c);
26404 __extension__ extern __inline uint32x2_t
26405 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26406 vsri_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
26408 return __builtin_aarch64_usri_nv2si_uuus (__a, __b, __c);
26411 __extension__ extern __inline uint64x1_t
26412 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26413 vsri_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
26415 return (uint64x1_t) {__builtin_aarch64_usri_ndi_uuus (__a[0], __b[0], __c)};
26418 __extension__ extern __inline int8x16_t
26419 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26420 vsriq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
26422 return (int8x16_t) __builtin_aarch64_ssri_nv16qi (__a, __b, __c);
26425 __extension__ extern __inline int16x8_t
26426 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26427 vsriq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
26429 return (int16x8_t) __builtin_aarch64_ssri_nv8hi (__a, __b, __c);
26432 __extension__ extern __inline int32x4_t
26433 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26434 vsriq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
26436 return (int32x4_t) __builtin_aarch64_ssri_nv4si (__a, __b, __c);
26439 __extension__ extern __inline int64x2_t
26440 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26441 vsriq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
26443 return (int64x2_t) __builtin_aarch64_ssri_nv2di (__a, __b, __c);
26446 __extension__ extern __inline uint8x16_t
26447 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26448 vsriq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
26450 return __builtin_aarch64_usri_nv16qi_uuus (__a, __b, __c);
26453 __extension__ extern __inline uint16x8_t
26454 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26455 vsriq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
26457 return __builtin_aarch64_usri_nv8hi_uuus (__a, __b, __c);
26460 __extension__ extern __inline uint32x4_t
26461 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26462 vsriq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
26464 return __builtin_aarch64_usri_nv4si_uuus (__a, __b, __c);
26467 __extension__ extern __inline uint64x2_t
26468 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26469 vsriq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
26471 return __builtin_aarch64_usri_nv2di_uuus (__a, __b, __c);
26474 __extension__ extern __inline int64_t
26475 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26476 vsrid_n_s64 (int64_t __a, int64_t __b, const int __c)
26478 return __builtin_aarch64_ssri_ndi (__a, __b, __c);
26481 __extension__ extern __inline uint64_t
26482 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26483 vsrid_n_u64 (uint64_t __a, uint64_t __b, const int __c)
26485 return __builtin_aarch64_usri_ndi_uuus (__a, __b, __c);
26488 /* vst1 */
26490 __extension__ extern __inline void
26491 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26492 vst1_f16 (float16_t *__a, float16x4_t __b)
26494 __builtin_aarch64_st1v4hf (__a, __b);
26497 __extension__ extern __inline void
26498 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26499 vst1_f32 (float32_t *a, float32x2_t b)
26501 __builtin_aarch64_st1v2sf ((__builtin_aarch64_simd_sf *) a, b);
26504 __extension__ extern __inline void
26505 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26506 vst1_f64 (float64_t *a, float64x1_t b)
26508 *a = b[0];
26511 __extension__ extern __inline void
26512 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26513 vst1_p8 (poly8_t *a, poly8x8_t b)
26515 __builtin_aarch64_st1v8qi ((__builtin_aarch64_simd_qi *) a,
26516 (int8x8_t) b);
26519 __extension__ extern __inline void
26520 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26521 vst1_p16 (poly16_t *a, poly16x4_t b)
26523 __builtin_aarch64_st1v4hi ((__builtin_aarch64_simd_hi *) a,
26524 (int16x4_t) b);
26527 __extension__ extern __inline void
26528 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26529 vst1_p64 (poly64_t *a, poly64x1_t b)
26531 *a = b[0];
26534 __extension__ extern __inline void
26535 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26536 vst1_s8 (int8_t *a, int8x8_t b)
26538 __builtin_aarch64_st1v8qi ((__builtin_aarch64_simd_qi *) a, b);
26541 __extension__ extern __inline void
26542 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26543 vst1_s16 (int16_t *a, int16x4_t b)
26545 __builtin_aarch64_st1v4hi ((__builtin_aarch64_simd_hi *) a, b);
26548 __extension__ extern __inline void
26549 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26550 vst1_s32 (int32_t *a, int32x2_t b)
26552 __builtin_aarch64_st1v2si ((__builtin_aarch64_simd_si *) a, b);
26555 __extension__ extern __inline void
26556 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26557 vst1_s64 (int64_t *a, int64x1_t b)
26559 *a = b[0];
26562 __extension__ extern __inline void
26563 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26564 vst1_u8 (uint8_t *a, uint8x8_t b)
26566 __builtin_aarch64_st1v8qi ((__builtin_aarch64_simd_qi *) a,
26567 (int8x8_t) b);
26570 __extension__ extern __inline void
26571 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26572 vst1_u16 (uint16_t *a, uint16x4_t b)
26574 __builtin_aarch64_st1v4hi ((__builtin_aarch64_simd_hi *) a,
26575 (int16x4_t) b);
26578 __extension__ extern __inline void
26579 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26580 vst1_u32 (uint32_t *a, uint32x2_t b)
26582 __builtin_aarch64_st1v2si ((__builtin_aarch64_simd_si *) a,
26583 (int32x2_t) b);
26586 __extension__ extern __inline void
26587 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26588 vst1_u64 (uint64_t *a, uint64x1_t b)
26590 *a = b[0];
26593 /* vst1q */
26595 __extension__ extern __inline void
26596 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26597 vst1q_f16 (float16_t *__a, float16x8_t __b)
26599 __builtin_aarch64_st1v8hf (__a, __b);
26602 __extension__ extern __inline void
26603 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26604 vst1q_f32 (float32_t *a, float32x4_t b)
26606 __builtin_aarch64_st1v4sf ((__builtin_aarch64_simd_sf *) a, b);
26609 __extension__ extern __inline void
26610 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26611 vst1q_f64 (float64_t *a, float64x2_t b)
26613 __builtin_aarch64_st1v2df ((__builtin_aarch64_simd_df *) a, b);
26616 __extension__ extern __inline void
26617 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26618 vst1q_p8 (poly8_t *a, poly8x16_t b)
26620 __builtin_aarch64_st1v16qi ((__builtin_aarch64_simd_qi *) a,
26621 (int8x16_t) b);
26624 __extension__ extern __inline void
26625 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26626 vst1q_p16 (poly16_t *a, poly16x8_t b)
26628 __builtin_aarch64_st1v8hi ((__builtin_aarch64_simd_hi *) a,
26629 (int16x8_t) b);
26632 __extension__ extern __inline void
26633 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26634 vst1q_p64 (poly64_t *a, poly64x2_t b)
26636 __builtin_aarch64_st1v2di_sp ((__builtin_aarch64_simd_di *) a,
26637 (poly64x2_t) b);
26640 __extension__ extern __inline void
26641 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26642 vst1q_s8 (int8_t *a, int8x16_t b)
26644 __builtin_aarch64_st1v16qi ((__builtin_aarch64_simd_qi *) a, b);
26647 __extension__ extern __inline void
26648 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26649 vst1q_s16 (int16_t *a, int16x8_t b)
26651 __builtin_aarch64_st1v8hi ((__builtin_aarch64_simd_hi *) a, b);
26654 __extension__ extern __inline void
26655 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26656 vst1q_s32 (int32_t *a, int32x4_t b)
26658 __builtin_aarch64_st1v4si ((__builtin_aarch64_simd_si *) a, b);
26661 __extension__ extern __inline void
26662 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26663 vst1q_s64 (int64_t *a, int64x2_t b)
26665 __builtin_aarch64_st1v2di ((__builtin_aarch64_simd_di *) a, b);
26668 __extension__ extern __inline void
26669 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26670 vst1q_u8 (uint8_t *a, uint8x16_t b)
26672 __builtin_aarch64_st1v16qi ((__builtin_aarch64_simd_qi *) a,
26673 (int8x16_t) b);
26676 __extension__ extern __inline void
26677 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26678 vst1q_u16 (uint16_t *a, uint16x8_t b)
26680 __builtin_aarch64_st1v8hi ((__builtin_aarch64_simd_hi *) a,
26681 (int16x8_t) b);
26684 __extension__ extern __inline void
26685 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26686 vst1q_u32 (uint32_t *a, uint32x4_t b)
26688 __builtin_aarch64_st1v4si ((__builtin_aarch64_simd_si *) a,
26689 (int32x4_t) b);
26692 __extension__ extern __inline void
26693 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26694 vst1q_u64 (uint64_t *a, uint64x2_t b)
26696 __builtin_aarch64_st1v2di ((__builtin_aarch64_simd_di *) a,
26697 (int64x2_t) b);
26700 /* vst1_lane */
26702 __extension__ extern __inline void
26703 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26704 vst1_lane_f16 (float16_t *__a, float16x4_t __b, const int __lane)
26706 *__a = __aarch64_vget_lane_any (__b, __lane);
26709 __extension__ extern __inline void
26710 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26711 vst1_lane_f32 (float32_t *__a, float32x2_t __b, const int __lane)
26713 *__a = __aarch64_vget_lane_any (__b, __lane);
26716 __extension__ extern __inline void
26717 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26718 vst1_lane_f64 (float64_t *__a, float64x1_t __b, const int __lane)
26720 *__a = __aarch64_vget_lane_any (__b, __lane);
26723 __extension__ extern __inline void
26724 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26725 vst1_lane_p8 (poly8_t *__a, poly8x8_t __b, const int __lane)
26727 *__a = __aarch64_vget_lane_any (__b, __lane);
26730 __extension__ extern __inline void
26731 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26732 vst1_lane_p16 (poly16_t *__a, poly16x4_t __b, const int __lane)
26734 *__a = __aarch64_vget_lane_any (__b, __lane);
26737 __extension__ extern __inline void
26738 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26739 vst1_lane_p64 (poly64_t *__a, poly64x1_t __b, const int __lane)
26741 *__a = __aarch64_vget_lane_any (__b, __lane);
26744 __extension__ extern __inline void
26745 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26746 vst1_lane_s8 (int8_t *__a, int8x8_t __b, const int __lane)
26748 *__a = __aarch64_vget_lane_any (__b, __lane);
26751 __extension__ extern __inline void
26752 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26753 vst1_lane_s16 (int16_t *__a, int16x4_t __b, const int __lane)
26755 *__a = __aarch64_vget_lane_any (__b, __lane);
26758 __extension__ extern __inline void
26759 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26760 vst1_lane_s32 (int32_t *__a, int32x2_t __b, const int __lane)
26762 *__a = __aarch64_vget_lane_any (__b, __lane);
26765 __extension__ extern __inline void
26766 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26767 vst1_lane_s64 (int64_t *__a, int64x1_t __b, const int __lane)
26769 *__a = __aarch64_vget_lane_any (__b, __lane);
26772 __extension__ extern __inline void
26773 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26774 vst1_lane_u8 (uint8_t *__a, uint8x8_t __b, const int __lane)
26776 *__a = __aarch64_vget_lane_any (__b, __lane);
26779 __extension__ extern __inline void
26780 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26781 vst1_lane_u16 (uint16_t *__a, uint16x4_t __b, const int __lane)
26783 *__a = __aarch64_vget_lane_any (__b, __lane);
26786 __extension__ extern __inline void
26787 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26788 vst1_lane_u32 (uint32_t *__a, uint32x2_t __b, const int __lane)
26790 *__a = __aarch64_vget_lane_any (__b, __lane);
26793 __extension__ extern __inline void
26794 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26795 vst1_lane_u64 (uint64_t *__a, uint64x1_t __b, const int __lane)
26797 *__a = __aarch64_vget_lane_any (__b, __lane);
26800 /* vst1q_lane */
26802 __extension__ extern __inline void
26803 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26804 vst1q_lane_f16 (float16_t *__a, float16x8_t __b, const int __lane)
26806 *__a = __aarch64_vget_lane_any (__b, __lane);
26809 __extension__ extern __inline void
26810 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26811 vst1q_lane_f32 (float32_t *__a, float32x4_t __b, const int __lane)
26813 *__a = __aarch64_vget_lane_any (__b, __lane);
26816 __extension__ extern __inline void
26817 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26818 vst1q_lane_f64 (float64_t *__a, float64x2_t __b, const int __lane)
26820 *__a = __aarch64_vget_lane_any (__b, __lane);
26823 __extension__ extern __inline void
26824 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26825 vst1q_lane_p8 (poly8_t *__a, poly8x16_t __b, const int __lane)
26827 *__a = __aarch64_vget_lane_any (__b, __lane);
26830 __extension__ extern __inline void
26831 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26832 vst1q_lane_p16 (poly16_t *__a, poly16x8_t __b, const int __lane)
26834 *__a = __aarch64_vget_lane_any (__b, __lane);
26837 __extension__ extern __inline void
26838 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26839 vst1q_lane_p64 (poly64_t *__a, poly64x2_t __b, const int __lane)
26841 *__a = __aarch64_vget_lane_any (__b, __lane);
26844 __extension__ extern __inline void
26845 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26846 vst1q_lane_s8 (int8_t *__a, int8x16_t __b, const int __lane)
26848 *__a = __aarch64_vget_lane_any (__b, __lane);
26851 __extension__ extern __inline void
26852 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26853 vst1q_lane_s16 (int16_t *__a, int16x8_t __b, const int __lane)
26855 *__a = __aarch64_vget_lane_any (__b, __lane);
26858 __extension__ extern __inline void
26859 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26860 vst1q_lane_s32 (int32_t *__a, int32x4_t __b, const int __lane)
26862 *__a = __aarch64_vget_lane_any (__b, __lane);
26865 __extension__ extern __inline void
26866 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26867 vst1q_lane_s64 (int64_t *__a, int64x2_t __b, const int __lane)
26869 *__a = __aarch64_vget_lane_any (__b, __lane);
26872 __extension__ extern __inline void
26873 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26874 vst1q_lane_u8 (uint8_t *__a, uint8x16_t __b, const int __lane)
26876 *__a = __aarch64_vget_lane_any (__b, __lane);
26879 __extension__ extern __inline void
26880 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26881 vst1q_lane_u16 (uint16_t *__a, uint16x8_t __b, const int __lane)
26883 *__a = __aarch64_vget_lane_any (__b, __lane);
26886 __extension__ extern __inline void
26887 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26888 vst1q_lane_u32 (uint32_t *__a, uint32x4_t __b, const int __lane)
26890 *__a = __aarch64_vget_lane_any (__b, __lane);
26893 __extension__ extern __inline void
26894 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26895 vst1q_lane_u64 (uint64_t *__a, uint64x2_t __b, const int __lane)
26897 *__a = __aarch64_vget_lane_any (__b, __lane);
26900 /* vstn */
26902 __extension__ extern __inline void
26903 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26904 vst2_s64 (int64_t * __a, int64x1x2_t val)
26906 __builtin_aarch64_simd_oi __o;
26907 int64x2x2_t temp;
26908 temp.val[0] = vcombine_s64 (val.val[0], vcreate_s64 (__AARCH64_INT64_C (0)));
26909 temp.val[1] = vcombine_s64 (val.val[1], vcreate_s64 (__AARCH64_INT64_C (0)));
26910 __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) temp.val[0], 0);
26911 __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) temp.val[1], 1);
26912 __builtin_aarch64_st2di ((__builtin_aarch64_simd_di *) __a, __o);
26915 __extension__ extern __inline void
26916 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26917 vst2_u64 (uint64_t * __a, uint64x1x2_t val)
26919 __builtin_aarch64_simd_oi __o;
26920 uint64x2x2_t temp;
26921 temp.val[0] = vcombine_u64 (val.val[0], vcreate_u64 (__AARCH64_UINT64_C (0)));
26922 temp.val[1] = vcombine_u64 (val.val[1], vcreate_u64 (__AARCH64_UINT64_C (0)));
26923 __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) temp.val[0], 0);
26924 __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) temp.val[1], 1);
26925 __builtin_aarch64_st2di ((__builtin_aarch64_simd_di *) __a, __o);
26928 __extension__ extern __inline void
26929 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26930 vst2_f64 (float64_t * __a, float64x1x2_t val)
26932 __builtin_aarch64_simd_oi __o;
26933 float64x2x2_t temp;
26934 temp.val[0] = vcombine_f64 (val.val[0], vcreate_f64 (__AARCH64_UINT64_C (0)));
26935 temp.val[1] = vcombine_f64 (val.val[1], vcreate_f64 (__AARCH64_UINT64_C (0)));
26936 __o = __builtin_aarch64_set_qregoiv2df (__o, (float64x2_t) temp.val[0], 0);
26937 __o = __builtin_aarch64_set_qregoiv2df (__o, (float64x2_t) temp.val[1], 1);
26938 __builtin_aarch64_st2df ((__builtin_aarch64_simd_df *) __a, __o);
26941 __extension__ extern __inline void
26942 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26943 vst2_s8 (int8_t * __a, int8x8x2_t val)
26945 __builtin_aarch64_simd_oi __o;
26946 int8x16x2_t temp;
26947 temp.val[0] = vcombine_s8 (val.val[0], vcreate_s8 (__AARCH64_INT64_C (0)));
26948 temp.val[1] = vcombine_s8 (val.val[1], vcreate_s8 (__AARCH64_INT64_C (0)));
26949 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) temp.val[0], 0);
26950 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) temp.val[1], 1);
26951 __builtin_aarch64_st2v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
26954 __extension__ extern __inline void
26955 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26956 vst2_p8 (poly8_t * __a, poly8x8x2_t val)
26958 __builtin_aarch64_simd_oi __o;
26959 poly8x16x2_t temp;
26960 temp.val[0] = vcombine_p8 (val.val[0], vcreate_p8 (__AARCH64_UINT64_C (0)));
26961 temp.val[1] = vcombine_p8 (val.val[1], vcreate_p8 (__AARCH64_UINT64_C (0)));
26962 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) temp.val[0], 0);
26963 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) temp.val[1], 1);
26964 __builtin_aarch64_st2v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
26967 __extension__ extern __inline void
26968 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26969 vst2_s16 (int16_t * __a, int16x4x2_t val)
26971 __builtin_aarch64_simd_oi __o;
26972 int16x8x2_t temp;
26973 temp.val[0] = vcombine_s16 (val.val[0], vcreate_s16 (__AARCH64_INT64_C (0)));
26974 temp.val[1] = vcombine_s16 (val.val[1], vcreate_s16 (__AARCH64_INT64_C (0)));
26975 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) temp.val[0], 0);
26976 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) temp.val[1], 1);
26977 __builtin_aarch64_st2v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
26980 __extension__ extern __inline void
26981 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26982 vst2_p16 (poly16_t * __a, poly16x4x2_t val)
26984 __builtin_aarch64_simd_oi __o;
26985 poly16x8x2_t temp;
26986 temp.val[0] = vcombine_p16 (val.val[0], vcreate_p16 (__AARCH64_UINT64_C (0)));
26987 temp.val[1] = vcombine_p16 (val.val[1], vcreate_p16 (__AARCH64_UINT64_C (0)));
26988 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) temp.val[0], 0);
26989 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) temp.val[1], 1);
26990 __builtin_aarch64_st2v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
26993 __extension__ extern __inline void
26994 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26995 vst2_s32 (int32_t * __a, int32x2x2_t val)
26997 __builtin_aarch64_simd_oi __o;
26998 int32x4x2_t temp;
26999 temp.val[0] = vcombine_s32 (val.val[0], vcreate_s32 (__AARCH64_INT64_C (0)));
27000 temp.val[1] = vcombine_s32 (val.val[1], vcreate_s32 (__AARCH64_INT64_C (0)));
27001 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) temp.val[0], 0);
27002 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) temp.val[1], 1);
27003 __builtin_aarch64_st2v2si ((__builtin_aarch64_simd_si *) __a, __o);
27006 __extension__ extern __inline void
27007 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27008 vst2_u8 (uint8_t * __a, uint8x8x2_t val)
27010 __builtin_aarch64_simd_oi __o;
27011 uint8x16x2_t temp;
27012 temp.val[0] = vcombine_u8 (val.val[0], vcreate_u8 (__AARCH64_UINT64_C (0)));
27013 temp.val[1] = vcombine_u8 (val.val[1], vcreate_u8 (__AARCH64_UINT64_C (0)));
27014 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) temp.val[0], 0);
27015 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) temp.val[1], 1);
27016 __builtin_aarch64_st2v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
27019 __extension__ extern __inline void
27020 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27021 vst2_u16 (uint16_t * __a, uint16x4x2_t val)
27023 __builtin_aarch64_simd_oi __o;
27024 uint16x8x2_t temp;
27025 temp.val[0] = vcombine_u16 (val.val[0], vcreate_u16 (__AARCH64_UINT64_C (0)));
27026 temp.val[1] = vcombine_u16 (val.val[1], vcreate_u16 (__AARCH64_UINT64_C (0)));
27027 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) temp.val[0], 0);
27028 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) temp.val[1], 1);
27029 __builtin_aarch64_st2v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
27032 __extension__ extern __inline void
27033 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27034 vst2_u32 (uint32_t * __a, uint32x2x2_t val)
27036 __builtin_aarch64_simd_oi __o;
27037 uint32x4x2_t temp;
27038 temp.val[0] = vcombine_u32 (val.val[0], vcreate_u32 (__AARCH64_UINT64_C (0)));
27039 temp.val[1] = vcombine_u32 (val.val[1], vcreate_u32 (__AARCH64_UINT64_C (0)));
27040 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) temp.val[0], 0);
27041 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) temp.val[1], 1);
27042 __builtin_aarch64_st2v2si ((__builtin_aarch64_simd_si *) __a, __o);
27045 __extension__ extern __inline void
27046 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27047 vst2_f16 (float16_t * __a, float16x4x2_t val)
27049 __builtin_aarch64_simd_oi __o;
27050 float16x8x2_t temp;
27051 temp.val[0] = vcombine_f16 (val.val[0], vcreate_f16 (__AARCH64_UINT64_C (0)));
27052 temp.val[1] = vcombine_f16 (val.val[1], vcreate_f16 (__AARCH64_UINT64_C (0)));
27053 __o = __builtin_aarch64_set_qregoiv8hf (__o, temp.val[0], 0);
27054 __o = __builtin_aarch64_set_qregoiv8hf (__o, temp.val[1], 1);
27055 __builtin_aarch64_st2v4hf (__a, __o);
27058 __extension__ extern __inline void
27059 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27060 vst2_f32 (float32_t * __a, float32x2x2_t val)
27062 __builtin_aarch64_simd_oi __o;
27063 float32x4x2_t temp;
27064 temp.val[0] = vcombine_f32 (val.val[0], vcreate_f32 (__AARCH64_UINT64_C (0)));
27065 temp.val[1] = vcombine_f32 (val.val[1], vcreate_f32 (__AARCH64_UINT64_C (0)));
27066 __o = __builtin_aarch64_set_qregoiv4sf (__o, (float32x4_t) temp.val[0], 0);
27067 __o = __builtin_aarch64_set_qregoiv4sf (__o, (float32x4_t) temp.val[1], 1);
27068 __builtin_aarch64_st2v2sf ((__builtin_aarch64_simd_sf *) __a, __o);
27071 __extension__ extern __inline void
27072 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27073 vst2_p64 (poly64_t * __a, poly64x1x2_t val)
27075 __builtin_aarch64_simd_oi __o;
27076 poly64x2x2_t temp;
27077 temp.val[0] = vcombine_p64 (val.val[0], vcreate_p64 (__AARCH64_UINT64_C (0)));
27078 temp.val[1] = vcombine_p64 (val.val[1], vcreate_p64 (__AARCH64_UINT64_C (0)));
27079 __o = __builtin_aarch64_set_qregoiv2di_ssps (__o,
27080 (poly64x2_t) temp.val[0], 0);
27081 __o = __builtin_aarch64_set_qregoiv2di_ssps (__o,
27082 (poly64x2_t) temp.val[1], 1);
27083 __builtin_aarch64_st2di ((__builtin_aarch64_simd_di *) __a, __o);
27086 __extension__ extern __inline void
27087 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27088 vst2q_s8 (int8_t * __a, int8x16x2_t val)
27090 __builtin_aarch64_simd_oi __o;
27091 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) val.val[0], 0);
27092 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) val.val[1], 1);
27093 __builtin_aarch64_st2v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
27096 __extension__ extern __inline void
27097 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27098 vst2q_p8 (poly8_t * __a, poly8x16x2_t val)
27100 __builtin_aarch64_simd_oi __o;
27101 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) val.val[0], 0);
27102 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) val.val[1], 1);
27103 __builtin_aarch64_st2v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
27106 __extension__ extern __inline void
27107 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27108 vst2q_s16 (int16_t * __a, int16x8x2_t val)
27110 __builtin_aarch64_simd_oi __o;
27111 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) val.val[0], 0);
27112 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) val.val[1], 1);
27113 __builtin_aarch64_st2v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
27116 __extension__ extern __inline void
27117 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27118 vst2q_p16 (poly16_t * __a, poly16x8x2_t val)
27120 __builtin_aarch64_simd_oi __o;
27121 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) val.val[0], 0);
27122 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) val.val[1], 1);
27123 __builtin_aarch64_st2v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
27126 __extension__ extern __inline void
27127 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27128 vst2q_s32 (int32_t * __a, int32x4x2_t val)
27130 __builtin_aarch64_simd_oi __o;
27131 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) val.val[0], 0);
27132 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) val.val[1], 1);
27133 __builtin_aarch64_st2v4si ((__builtin_aarch64_simd_si *) __a, __o);
27136 __extension__ extern __inline void
27137 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27138 vst2q_s64 (int64_t * __a, int64x2x2_t val)
27140 __builtin_aarch64_simd_oi __o;
27141 __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) val.val[0], 0);
27142 __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) val.val[1], 1);
27143 __builtin_aarch64_st2v2di ((__builtin_aarch64_simd_di *) __a, __o);
27146 __extension__ extern __inline void
27147 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27148 vst2q_u8 (uint8_t * __a, uint8x16x2_t val)
27150 __builtin_aarch64_simd_oi __o;
27151 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) val.val[0], 0);
27152 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) val.val[1], 1);
27153 __builtin_aarch64_st2v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
27156 __extension__ extern __inline void
27157 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27158 vst2q_u16 (uint16_t * __a, uint16x8x2_t val)
27160 __builtin_aarch64_simd_oi __o;
27161 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) val.val[0], 0);
27162 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) val.val[1], 1);
27163 __builtin_aarch64_st2v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
27166 __extension__ extern __inline void
27167 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27168 vst2q_u32 (uint32_t * __a, uint32x4x2_t val)
27170 __builtin_aarch64_simd_oi __o;
27171 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) val.val[0], 0);
27172 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) val.val[1], 1);
27173 __builtin_aarch64_st2v4si ((__builtin_aarch64_simd_si *) __a, __o);
27176 __extension__ extern __inline void
27177 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27178 vst2q_u64 (uint64_t * __a, uint64x2x2_t val)
27180 __builtin_aarch64_simd_oi __o;
27181 __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) val.val[0], 0);
27182 __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) val.val[1], 1);
27183 __builtin_aarch64_st2v2di ((__builtin_aarch64_simd_di *) __a, __o);
27186 __extension__ extern __inline void
27187 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27188 vst2q_f16 (float16_t * __a, float16x8x2_t val)
27190 __builtin_aarch64_simd_oi __o;
27191 __o = __builtin_aarch64_set_qregoiv8hf (__o, val.val[0], 0);
27192 __o = __builtin_aarch64_set_qregoiv8hf (__o, val.val[1], 1);
27193 __builtin_aarch64_st2v8hf (__a, __o);
27196 __extension__ extern __inline void
27197 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27198 vst2q_f32 (float32_t * __a, float32x4x2_t val)
27200 __builtin_aarch64_simd_oi __o;
27201 __o = __builtin_aarch64_set_qregoiv4sf (__o, (float32x4_t) val.val[0], 0);
27202 __o = __builtin_aarch64_set_qregoiv4sf (__o, (float32x4_t) val.val[1], 1);
27203 __builtin_aarch64_st2v4sf ((__builtin_aarch64_simd_sf *) __a, __o);
27206 __extension__ extern __inline void
27207 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27208 vst2q_f64 (float64_t * __a, float64x2x2_t val)
27210 __builtin_aarch64_simd_oi __o;
27211 __o = __builtin_aarch64_set_qregoiv2df (__o, (float64x2_t) val.val[0], 0);
27212 __o = __builtin_aarch64_set_qregoiv2df (__o, (float64x2_t) val.val[1], 1);
27213 __builtin_aarch64_st2v2df ((__builtin_aarch64_simd_df *) __a, __o);
27216 __extension__ extern __inline void
27217 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27218 vst2q_p64 (poly64_t * __a, poly64x2x2_t val)
27220 __builtin_aarch64_simd_oi __o;
27221 __o = __builtin_aarch64_set_qregoiv2di_ssps (__o,
27222 (poly64x2_t) val.val[0], 0);
27223 __o = __builtin_aarch64_set_qregoiv2di_ssps (__o,
27224 (poly64x2_t) val.val[1], 1);
27225 __builtin_aarch64_st2v2di ((__builtin_aarch64_simd_di *) __a, __o);
27228 __extension__ extern __inline void
27229 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27230 vst3_s64 (int64_t * __a, int64x1x3_t val)
27232 __builtin_aarch64_simd_ci __o;
27233 int64x2x3_t temp;
27234 temp.val[0] = vcombine_s64 (val.val[0], vcreate_s64 (__AARCH64_INT64_C (0)));
27235 temp.val[1] = vcombine_s64 (val.val[1], vcreate_s64 (__AARCH64_INT64_C (0)));
27236 temp.val[2] = vcombine_s64 (val.val[2], vcreate_s64 (__AARCH64_INT64_C (0)));
27237 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) temp.val[0], 0);
27238 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) temp.val[1], 1);
27239 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) temp.val[2], 2);
27240 __builtin_aarch64_st3di ((__builtin_aarch64_simd_di *) __a, __o);
27243 __extension__ extern __inline void
27244 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27245 vst3_u64 (uint64_t * __a, uint64x1x3_t val)
27247 __builtin_aarch64_simd_ci __o;
27248 uint64x2x3_t temp;
27249 temp.val[0] = vcombine_u64 (val.val[0], vcreate_u64 (__AARCH64_UINT64_C (0)));
27250 temp.val[1] = vcombine_u64 (val.val[1], vcreate_u64 (__AARCH64_UINT64_C (0)));
27251 temp.val[2] = vcombine_u64 (val.val[2], vcreate_u64 (__AARCH64_UINT64_C (0)));
27252 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) temp.val[0], 0);
27253 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) temp.val[1], 1);
27254 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) temp.val[2], 2);
27255 __builtin_aarch64_st3di ((__builtin_aarch64_simd_di *) __a, __o);
27258 __extension__ extern __inline void
27259 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27260 vst3_f64 (float64_t * __a, float64x1x3_t val)
27262 __builtin_aarch64_simd_ci __o;
27263 float64x2x3_t temp;
27264 temp.val[0] = vcombine_f64 (val.val[0], vcreate_f64 (__AARCH64_UINT64_C (0)));
27265 temp.val[1] = vcombine_f64 (val.val[1], vcreate_f64 (__AARCH64_UINT64_C (0)));
27266 temp.val[2] = vcombine_f64 (val.val[2], vcreate_f64 (__AARCH64_UINT64_C (0)));
27267 __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) temp.val[0], 0);
27268 __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) temp.val[1], 1);
27269 __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) temp.val[2], 2);
27270 __builtin_aarch64_st3df ((__builtin_aarch64_simd_df *) __a, __o);
27273 __extension__ extern __inline void
27274 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27275 vst3_s8 (int8_t * __a, int8x8x3_t val)
27277 __builtin_aarch64_simd_ci __o;
27278 int8x16x3_t temp;
27279 temp.val[0] = vcombine_s8 (val.val[0], vcreate_s8 (__AARCH64_INT64_C (0)));
27280 temp.val[1] = vcombine_s8 (val.val[1], vcreate_s8 (__AARCH64_INT64_C (0)));
27281 temp.val[2] = vcombine_s8 (val.val[2], vcreate_s8 (__AARCH64_INT64_C (0)));
27282 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[0], 0);
27283 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[1], 1);
27284 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[2], 2);
27285 __builtin_aarch64_st3v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
27288 __extension__ extern __inline void
27289 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27290 vst3_p8 (poly8_t * __a, poly8x8x3_t val)
27292 __builtin_aarch64_simd_ci __o;
27293 poly8x16x3_t temp;
27294 temp.val[0] = vcombine_p8 (val.val[0], vcreate_p8 (__AARCH64_UINT64_C (0)));
27295 temp.val[1] = vcombine_p8 (val.val[1], vcreate_p8 (__AARCH64_UINT64_C (0)));
27296 temp.val[2] = vcombine_p8 (val.val[2], vcreate_p8 (__AARCH64_UINT64_C (0)));
27297 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[0], 0);
27298 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[1], 1);
27299 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[2], 2);
27300 __builtin_aarch64_st3v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
27303 __extension__ extern __inline void
27304 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27305 vst3_s16 (int16_t * __a, int16x4x3_t val)
27307 __builtin_aarch64_simd_ci __o;
27308 int16x8x3_t temp;
27309 temp.val[0] = vcombine_s16 (val.val[0], vcreate_s16 (__AARCH64_INT64_C (0)));
27310 temp.val[1] = vcombine_s16 (val.val[1], vcreate_s16 (__AARCH64_INT64_C (0)));
27311 temp.val[2] = vcombine_s16 (val.val[2], vcreate_s16 (__AARCH64_INT64_C (0)));
27312 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[0], 0);
27313 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[1], 1);
27314 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[2], 2);
27315 __builtin_aarch64_st3v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
27318 __extension__ extern __inline void
27319 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27320 vst3_p16 (poly16_t * __a, poly16x4x3_t val)
27322 __builtin_aarch64_simd_ci __o;
27323 poly16x8x3_t temp;
27324 temp.val[0] = vcombine_p16 (val.val[0], vcreate_p16 (__AARCH64_UINT64_C (0)));
27325 temp.val[1] = vcombine_p16 (val.val[1], vcreate_p16 (__AARCH64_UINT64_C (0)));
27326 temp.val[2] = vcombine_p16 (val.val[2], vcreate_p16 (__AARCH64_UINT64_C (0)));
27327 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[0], 0);
27328 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[1], 1);
27329 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[2], 2);
27330 __builtin_aarch64_st3v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
27333 __extension__ extern __inline void
27334 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27335 vst3_s32 (int32_t * __a, int32x2x3_t val)
27337 __builtin_aarch64_simd_ci __o;
27338 int32x4x3_t temp;
27339 temp.val[0] = vcombine_s32 (val.val[0], vcreate_s32 (__AARCH64_INT64_C (0)));
27340 temp.val[1] = vcombine_s32 (val.val[1], vcreate_s32 (__AARCH64_INT64_C (0)));
27341 temp.val[2] = vcombine_s32 (val.val[2], vcreate_s32 (__AARCH64_INT64_C (0)));
27342 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) temp.val[0], 0);
27343 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) temp.val[1], 1);
27344 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) temp.val[2], 2);
27345 __builtin_aarch64_st3v2si ((__builtin_aarch64_simd_si *) __a, __o);
27348 __extension__ extern __inline void
27349 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27350 vst3_u8 (uint8_t * __a, uint8x8x3_t val)
27352 __builtin_aarch64_simd_ci __o;
27353 uint8x16x3_t temp;
27354 temp.val[0] = vcombine_u8 (val.val[0], vcreate_u8 (__AARCH64_UINT64_C (0)));
27355 temp.val[1] = vcombine_u8 (val.val[1], vcreate_u8 (__AARCH64_UINT64_C (0)));
27356 temp.val[2] = vcombine_u8 (val.val[2], vcreate_u8 (__AARCH64_UINT64_C (0)));
27357 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[0], 0);
27358 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[1], 1);
27359 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[2], 2);
27360 __builtin_aarch64_st3v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
27363 __extension__ extern __inline void
27364 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27365 vst3_u16 (uint16_t * __a, uint16x4x3_t val)
27367 __builtin_aarch64_simd_ci __o;
27368 uint16x8x3_t temp;
27369 temp.val[0] = vcombine_u16 (val.val[0], vcreate_u16 (__AARCH64_UINT64_C (0)));
27370 temp.val[1] = vcombine_u16 (val.val[1], vcreate_u16 (__AARCH64_UINT64_C (0)));
27371 temp.val[2] = vcombine_u16 (val.val[2], vcreate_u16 (__AARCH64_UINT64_C (0)));
27372 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[0], 0);
27373 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[1], 1);
27374 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[2], 2);
27375 __builtin_aarch64_st3v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
27378 __extension__ extern __inline void
27379 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27380 vst3_u32 (uint32_t * __a, uint32x2x3_t val)
27382 __builtin_aarch64_simd_ci __o;
27383 uint32x4x3_t temp;
27384 temp.val[0] = vcombine_u32 (val.val[0], vcreate_u32 (__AARCH64_UINT64_C (0)));
27385 temp.val[1] = vcombine_u32 (val.val[1], vcreate_u32 (__AARCH64_UINT64_C (0)));
27386 temp.val[2] = vcombine_u32 (val.val[2], vcreate_u32 (__AARCH64_UINT64_C (0)));
27387 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) temp.val[0], 0);
27388 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) temp.val[1], 1);
27389 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) temp.val[2], 2);
27390 __builtin_aarch64_st3v2si ((__builtin_aarch64_simd_si *) __a, __o);
27393 __extension__ extern __inline void
27394 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27395 vst3_f16 (float16_t * __a, float16x4x3_t val)
27397 __builtin_aarch64_simd_ci __o;
27398 float16x8x3_t temp;
27399 temp.val[0] = vcombine_f16 (val.val[0], vcreate_f16 (__AARCH64_UINT64_C (0)));
27400 temp.val[1] = vcombine_f16 (val.val[1], vcreate_f16 (__AARCH64_UINT64_C (0)));
27401 temp.val[2] = vcombine_f16 (val.val[2], vcreate_f16 (__AARCH64_UINT64_C (0)));
27402 __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) temp.val[0], 0);
27403 __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) temp.val[1], 1);
27404 __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) temp.val[2], 2);
27405 __builtin_aarch64_st3v4hf ((__builtin_aarch64_simd_hf *) __a, __o);
27408 __extension__ extern __inline void
27409 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27410 vst3_f32 (float32_t * __a, float32x2x3_t val)
27412 __builtin_aarch64_simd_ci __o;
27413 float32x4x3_t temp;
27414 temp.val[0] = vcombine_f32 (val.val[0], vcreate_f32 (__AARCH64_UINT64_C (0)));
27415 temp.val[1] = vcombine_f32 (val.val[1], vcreate_f32 (__AARCH64_UINT64_C (0)));
27416 temp.val[2] = vcombine_f32 (val.val[2], vcreate_f32 (__AARCH64_UINT64_C (0)));
27417 __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) temp.val[0], 0);
27418 __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) temp.val[1], 1);
27419 __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) temp.val[2], 2);
27420 __builtin_aarch64_st3v2sf ((__builtin_aarch64_simd_sf *) __a, __o);
27423 __extension__ extern __inline void
27424 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27425 vst3_p64 (poly64_t * __a, poly64x1x3_t val)
27427 __builtin_aarch64_simd_ci __o;
27428 poly64x2x3_t temp;
27429 temp.val[0] = vcombine_p64 (val.val[0], vcreate_p64 (__AARCH64_UINT64_C (0)));
27430 temp.val[1] = vcombine_p64 (val.val[1], vcreate_p64 (__AARCH64_UINT64_C (0)));
27431 temp.val[2] = vcombine_p64 (val.val[2], vcreate_p64 (__AARCH64_UINT64_C (0)));
27432 __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
27433 (poly64x2_t) temp.val[0], 0);
27434 __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
27435 (poly64x2_t) temp.val[1], 1);
27436 __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
27437 (poly64x2_t) temp.val[2], 2);
27438 __builtin_aarch64_st3di ((__builtin_aarch64_simd_di *) __a, __o);
27441 __extension__ extern __inline void
27442 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27443 vst3q_s8 (int8_t * __a, int8x16x3_t val)
27445 __builtin_aarch64_simd_ci __o;
27446 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[0], 0);
27447 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[1], 1);
27448 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[2], 2);
27449 __builtin_aarch64_st3v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
27452 __extension__ extern __inline void
27453 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27454 vst3q_p8 (poly8_t * __a, poly8x16x3_t val)
27456 __builtin_aarch64_simd_ci __o;
27457 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[0], 0);
27458 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[1], 1);
27459 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[2], 2);
27460 __builtin_aarch64_st3v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
27463 __extension__ extern __inline void
27464 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27465 vst3q_s16 (int16_t * __a, int16x8x3_t val)
27467 __builtin_aarch64_simd_ci __o;
27468 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[0], 0);
27469 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[1], 1);
27470 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[2], 2);
27471 __builtin_aarch64_st3v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
27474 __extension__ extern __inline void
27475 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27476 vst3q_p16 (poly16_t * __a, poly16x8x3_t val)
27478 __builtin_aarch64_simd_ci __o;
27479 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[0], 0);
27480 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[1], 1);
27481 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[2], 2);
27482 __builtin_aarch64_st3v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
27485 __extension__ extern __inline void
27486 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27487 vst3q_s32 (int32_t * __a, int32x4x3_t val)
27489 __builtin_aarch64_simd_ci __o;
27490 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) val.val[0], 0);
27491 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) val.val[1], 1);
27492 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) val.val[2], 2);
27493 __builtin_aarch64_st3v4si ((__builtin_aarch64_simd_si *) __a, __o);
27496 __extension__ extern __inline void
27497 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27498 vst3q_s64 (int64_t * __a, int64x2x3_t val)
27500 __builtin_aarch64_simd_ci __o;
27501 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) val.val[0], 0);
27502 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) val.val[1], 1);
27503 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) val.val[2], 2);
27504 __builtin_aarch64_st3v2di ((__builtin_aarch64_simd_di *) __a, __o);
27507 __extension__ extern __inline void
27508 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27509 vst3q_u8 (uint8_t * __a, uint8x16x3_t val)
27511 __builtin_aarch64_simd_ci __o;
27512 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[0], 0);
27513 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[1], 1);
27514 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[2], 2);
27515 __builtin_aarch64_st3v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
27518 __extension__ extern __inline void
27519 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27520 vst3q_u16 (uint16_t * __a, uint16x8x3_t val)
27522 __builtin_aarch64_simd_ci __o;
27523 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[0], 0);
27524 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[1], 1);
27525 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[2], 2);
27526 __builtin_aarch64_st3v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
27529 __extension__ extern __inline void
27530 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27531 vst3q_u32 (uint32_t * __a, uint32x4x3_t val)
27533 __builtin_aarch64_simd_ci __o;
27534 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) val.val[0], 0);
27535 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) val.val[1], 1);
27536 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) val.val[2], 2);
27537 __builtin_aarch64_st3v4si ((__builtin_aarch64_simd_si *) __a, __o);
27540 __extension__ extern __inline void
27541 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27542 vst3q_u64 (uint64_t * __a, uint64x2x3_t val)
27544 __builtin_aarch64_simd_ci __o;
27545 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) val.val[0], 0);
27546 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) val.val[1], 1);
27547 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) val.val[2], 2);
27548 __builtin_aarch64_st3v2di ((__builtin_aarch64_simd_di *) __a, __o);
27551 __extension__ extern __inline void
27552 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27553 vst3q_f16 (float16_t * __a, float16x8x3_t val)
27555 __builtin_aarch64_simd_ci __o;
27556 __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) val.val[0], 0);
27557 __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) val.val[1], 1);
27558 __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) val.val[2], 2);
27559 __builtin_aarch64_st3v8hf ((__builtin_aarch64_simd_hf *) __a, __o);
27562 __extension__ extern __inline void
27563 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27564 vst3q_f32 (float32_t * __a, float32x4x3_t val)
27566 __builtin_aarch64_simd_ci __o;
27567 __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) val.val[0], 0);
27568 __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) val.val[1], 1);
27569 __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) val.val[2], 2);
27570 __builtin_aarch64_st3v4sf ((__builtin_aarch64_simd_sf *) __a, __o);
27573 __extension__ extern __inline void
27574 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27575 vst3q_f64 (float64_t * __a, float64x2x3_t val)
27577 __builtin_aarch64_simd_ci __o;
27578 __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) val.val[0], 0);
27579 __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) val.val[1], 1);
27580 __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) val.val[2], 2);
27581 __builtin_aarch64_st3v2df ((__builtin_aarch64_simd_df *) __a, __o);
27584 __extension__ extern __inline void
27585 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27586 vst3q_p64 (poly64_t * __a, poly64x2x3_t val)
27588 __builtin_aarch64_simd_ci __o;
27589 __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
27590 (poly64x2_t) val.val[0], 0);
27591 __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
27592 (poly64x2_t) val.val[1], 1);
27593 __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
27594 (poly64x2_t) val.val[2], 2);
27595 __builtin_aarch64_st3v2di ((__builtin_aarch64_simd_di *) __a, __o);
27598 __extension__ extern __inline void
27599 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27600 vst4_s64 (int64_t * __a, int64x1x4_t val)
27602 __builtin_aarch64_simd_xi __o;
27603 int64x2x4_t temp;
27604 temp.val[0] = vcombine_s64 (val.val[0], vcreate_s64 (__AARCH64_INT64_C (0)));
27605 temp.val[1] = vcombine_s64 (val.val[1], vcreate_s64 (__AARCH64_INT64_C (0)));
27606 temp.val[2] = vcombine_s64 (val.val[2], vcreate_s64 (__AARCH64_INT64_C (0)));
27607 temp.val[3] = vcombine_s64 (val.val[3], vcreate_s64 (__AARCH64_INT64_C (0)));
27608 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) temp.val[0], 0);
27609 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) temp.val[1], 1);
27610 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) temp.val[2], 2);
27611 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) temp.val[3], 3);
27612 __builtin_aarch64_st4di ((__builtin_aarch64_simd_di *) __a, __o);
27615 __extension__ extern __inline void
27616 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27617 vst4_u64 (uint64_t * __a, uint64x1x4_t val)
27619 __builtin_aarch64_simd_xi __o;
27620 uint64x2x4_t temp;
27621 temp.val[0] = vcombine_u64 (val.val[0], vcreate_u64 (__AARCH64_UINT64_C (0)));
27622 temp.val[1] = vcombine_u64 (val.val[1], vcreate_u64 (__AARCH64_UINT64_C (0)));
27623 temp.val[2] = vcombine_u64 (val.val[2], vcreate_u64 (__AARCH64_UINT64_C (0)));
27624 temp.val[3] = vcombine_u64 (val.val[3], vcreate_u64 (__AARCH64_UINT64_C (0)));
27625 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) temp.val[0], 0);
27626 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) temp.val[1], 1);
27627 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) temp.val[2], 2);
27628 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) temp.val[3], 3);
27629 __builtin_aarch64_st4di ((__builtin_aarch64_simd_di *) __a, __o);
27632 __extension__ extern __inline void
27633 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27634 vst4_f64 (float64_t * __a, float64x1x4_t val)
27636 __builtin_aarch64_simd_xi __o;
27637 float64x2x4_t temp;
27638 temp.val[0] = vcombine_f64 (val.val[0], vcreate_f64 (__AARCH64_UINT64_C (0)));
27639 temp.val[1] = vcombine_f64 (val.val[1], vcreate_f64 (__AARCH64_UINT64_C (0)));
27640 temp.val[2] = vcombine_f64 (val.val[2], vcreate_f64 (__AARCH64_UINT64_C (0)));
27641 temp.val[3] = vcombine_f64 (val.val[3], vcreate_f64 (__AARCH64_UINT64_C (0)));
27642 __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) temp.val[0], 0);
27643 __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) temp.val[1], 1);
27644 __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) temp.val[2], 2);
27645 __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) temp.val[3], 3);
27646 __builtin_aarch64_st4df ((__builtin_aarch64_simd_df *) __a, __o);
27649 __extension__ extern __inline void
27650 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27651 vst4_s8 (int8_t * __a, int8x8x4_t val)
27653 __builtin_aarch64_simd_xi __o;
27654 int8x16x4_t temp;
27655 temp.val[0] = vcombine_s8 (val.val[0], vcreate_s8 (__AARCH64_INT64_C (0)));
27656 temp.val[1] = vcombine_s8 (val.val[1], vcreate_s8 (__AARCH64_INT64_C (0)));
27657 temp.val[2] = vcombine_s8 (val.val[2], vcreate_s8 (__AARCH64_INT64_C (0)));
27658 temp.val[3] = vcombine_s8 (val.val[3], vcreate_s8 (__AARCH64_INT64_C (0)));
27659 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) temp.val[0], 0);
27660 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) temp.val[1], 1);
27661 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) temp.val[2], 2);
27662 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) temp.val[3], 3);
27663 __builtin_aarch64_st4v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
27666 __extension__ extern __inline void
27667 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27668 vst4_p8 (poly8_t * __a, poly8x8x4_t val)
27670 __builtin_aarch64_simd_xi __o;
27671 poly8x16x4_t temp;
27672 temp.val[0] = vcombine_p8 (val.val[0], vcreate_p8 (__AARCH64_UINT64_C (0)));
27673 temp.val[1] = vcombine_p8 (val.val[1], vcreate_p8 (__AARCH64_UINT64_C (0)));
27674 temp.val[2] = vcombine_p8 (val.val[2], vcreate_p8 (__AARCH64_UINT64_C (0)));
27675 temp.val[3] = vcombine_p8 (val.val[3], vcreate_p8 (__AARCH64_UINT64_C (0)));
27676 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) temp.val[0], 0);
27677 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) temp.val[1], 1);
27678 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) temp.val[2], 2);
27679 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) temp.val[3], 3);
27680 __builtin_aarch64_st4v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
27683 __extension__ extern __inline void
27684 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27685 vst4_s16 (int16_t * __a, int16x4x4_t val)
27687 __builtin_aarch64_simd_xi __o;
27688 int16x8x4_t temp;
27689 temp.val[0] = vcombine_s16 (val.val[0], vcreate_s16 (__AARCH64_INT64_C (0)));
27690 temp.val[1] = vcombine_s16 (val.val[1], vcreate_s16 (__AARCH64_INT64_C (0)));
27691 temp.val[2] = vcombine_s16 (val.val[2], vcreate_s16 (__AARCH64_INT64_C (0)));
27692 temp.val[3] = vcombine_s16 (val.val[3], vcreate_s16 (__AARCH64_INT64_C (0)));
27693 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) temp.val[0], 0);
27694 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) temp.val[1], 1);
27695 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) temp.val[2], 2);
27696 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) temp.val[3], 3);
27697 __builtin_aarch64_st4v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
27700 __extension__ extern __inline void
27701 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27702 vst4_p16 (poly16_t * __a, poly16x4x4_t val)
27704 __builtin_aarch64_simd_xi __o;
27705 poly16x8x4_t temp;
27706 temp.val[0] = vcombine_p16 (val.val[0], vcreate_p16 (__AARCH64_UINT64_C (0)));
27707 temp.val[1] = vcombine_p16 (val.val[1], vcreate_p16 (__AARCH64_UINT64_C (0)));
27708 temp.val[2] = vcombine_p16 (val.val[2], vcreate_p16 (__AARCH64_UINT64_C (0)));
27709 temp.val[3] = vcombine_p16 (val.val[3], vcreate_p16 (__AARCH64_UINT64_C (0)));
27710 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) temp.val[0], 0);
27711 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) temp.val[1], 1);
27712 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) temp.val[2], 2);
27713 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) temp.val[3], 3);
27714 __builtin_aarch64_st4v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
27717 __extension__ extern __inline void
27718 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27719 vst4_s32 (int32_t * __a, int32x2x4_t val)
27721 __builtin_aarch64_simd_xi __o;
27722 int32x4x4_t temp;
27723 temp.val[0] = vcombine_s32 (val.val[0], vcreate_s32 (__AARCH64_INT64_C (0)));
27724 temp.val[1] = vcombine_s32 (val.val[1], vcreate_s32 (__AARCH64_INT64_C (0)));
27725 temp.val[2] = vcombine_s32 (val.val[2], vcreate_s32 (__AARCH64_INT64_C (0)));
27726 temp.val[3] = vcombine_s32 (val.val[3], vcreate_s32 (__AARCH64_INT64_C (0)));
27727 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) temp.val[0], 0);
27728 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) temp.val[1], 1);
27729 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) temp.val[2], 2);
27730 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) temp.val[3], 3);
27731 __builtin_aarch64_st4v2si ((__builtin_aarch64_simd_si *) __a, __o);
27734 __extension__ extern __inline void
27735 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27736 vst4_u8 (uint8_t * __a, uint8x8x4_t val)
27738 __builtin_aarch64_simd_xi __o;
27739 uint8x16x4_t temp;
27740 temp.val[0] = vcombine_u8 (val.val[0], vcreate_u8 (__AARCH64_UINT64_C (0)));
27741 temp.val[1] = vcombine_u8 (val.val[1], vcreate_u8 (__AARCH64_UINT64_C (0)));
27742 temp.val[2] = vcombine_u8 (val.val[2], vcreate_u8 (__AARCH64_UINT64_C (0)));
27743 temp.val[3] = vcombine_u8 (val.val[3], vcreate_u8 (__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_u16 (uint16_t * __a, uint16x4x4_t val)
27755 __builtin_aarch64_simd_xi __o;
27756 uint16x8x4_t temp;
27757 temp.val[0] = vcombine_u16 (val.val[0], vcreate_u16 (__AARCH64_UINT64_C (0)));
27758 temp.val[1] = vcombine_u16 (val.val[1], vcreate_u16 (__AARCH64_UINT64_C (0)));
27759 temp.val[2] = vcombine_u16 (val.val[2], vcreate_u16 (__AARCH64_UINT64_C (0)));
27760 temp.val[3] = vcombine_u16 (val.val[3], vcreate_u16 (__AARCH64_UINT64_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_u32 (uint32_t * __a, uint32x2x4_t val)
27772 __builtin_aarch64_simd_xi __o;
27773 uint32x4x4_t temp;
27774 temp.val[0] = vcombine_u32 (val.val[0], vcreate_u32 (__AARCH64_UINT64_C (0)));
27775 temp.val[1] = vcombine_u32 (val.val[1], vcreate_u32 (__AARCH64_UINT64_C (0)));
27776 temp.val[2] = vcombine_u32 (val.val[2], vcreate_u32 (__AARCH64_UINT64_C (0)));
27777 temp.val[3] = vcombine_u32 (val.val[3], vcreate_u32 (__AARCH64_UINT64_C (0)));
27778 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) temp.val[0], 0);
27779 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) temp.val[1], 1);
27780 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) temp.val[2], 2);
27781 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) temp.val[3], 3);
27782 __builtin_aarch64_st4v2si ((__builtin_aarch64_simd_si *) __a, __o);
27785 __extension__ extern __inline void
27786 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27787 vst4_f16 (float16_t * __a, float16x4x4_t val)
27789 __builtin_aarch64_simd_xi __o;
27790 float16x8x4_t temp;
27791 temp.val[0] = vcombine_f16 (val.val[0], vcreate_f16 (__AARCH64_UINT64_C (0)));
27792 temp.val[1] = vcombine_f16 (val.val[1], vcreate_f16 (__AARCH64_UINT64_C (0)));
27793 temp.val[2] = vcombine_f16 (val.val[2], vcreate_f16 (__AARCH64_UINT64_C (0)));
27794 temp.val[3] = vcombine_f16 (val.val[3], vcreate_f16 (__AARCH64_UINT64_C (0)));
27795 __o = __builtin_aarch64_set_qregxiv8hf (__o, (float16x8_t) temp.val[0], 0);
27796 __o = __builtin_aarch64_set_qregxiv8hf (__o, (float16x8_t) temp.val[1], 1);
27797 __o = __builtin_aarch64_set_qregxiv8hf (__o, (float16x8_t) temp.val[2], 2);
27798 __o = __builtin_aarch64_set_qregxiv8hf (__o, (float16x8_t) temp.val[3], 3);
27799 __builtin_aarch64_st4v4hf ((__builtin_aarch64_simd_hf *) __a, __o);
27802 __extension__ extern __inline void
27803 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27804 vst4_f32 (float32_t * __a, float32x2x4_t val)
27806 __builtin_aarch64_simd_xi __o;
27807 float32x4x4_t temp;
27808 temp.val[0] = vcombine_f32 (val.val[0], vcreate_f32 (__AARCH64_UINT64_C (0)));
27809 temp.val[1] = vcombine_f32 (val.val[1], vcreate_f32 (__AARCH64_UINT64_C (0)));
27810 temp.val[2] = vcombine_f32 (val.val[2], vcreate_f32 (__AARCH64_UINT64_C (0)));
27811 temp.val[3] = vcombine_f32 (val.val[3], vcreate_f32 (__AARCH64_UINT64_C (0)));
27812 __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) temp.val[0], 0);
27813 __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) temp.val[1], 1);
27814 __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) temp.val[2], 2);
27815 __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) temp.val[3], 3);
27816 __builtin_aarch64_st4v2sf ((__builtin_aarch64_simd_sf *) __a, __o);
27819 __extension__ extern __inline void
27820 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27821 vst4_p64 (poly64_t * __a, poly64x1x4_t val)
27823 __builtin_aarch64_simd_xi __o;
27824 poly64x2x4_t temp;
27825 temp.val[0] = vcombine_p64 (val.val[0], vcreate_p64 (__AARCH64_UINT64_C (0)));
27826 temp.val[1] = vcombine_p64 (val.val[1], vcreate_p64 (__AARCH64_UINT64_C (0)));
27827 temp.val[2] = vcombine_p64 (val.val[2], vcreate_p64 (__AARCH64_UINT64_C (0)));
27828 temp.val[3] = vcombine_p64 (val.val[3], vcreate_p64 (__AARCH64_UINT64_C (0)));
27829 __o = __builtin_aarch64_set_qregxiv2di_ssps (__o,
27830 (poly64x2_t) temp.val[0], 0);
27831 __o = __builtin_aarch64_set_qregxiv2di_ssps (__o,
27832 (poly64x2_t) temp.val[1], 1);
27833 __o = __builtin_aarch64_set_qregxiv2di_ssps (__o,
27834 (poly64x2_t) temp.val[2], 2);
27835 __o = __builtin_aarch64_set_qregxiv2di_ssps (__o,
27836 (poly64x2_t) temp.val[3], 3);
27837 __builtin_aarch64_st4di ((__builtin_aarch64_simd_di *) __a, __o);
27840 __extension__ extern __inline void
27841 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27842 vst4q_s8 (int8_t * __a, int8x16x4_t val)
27844 __builtin_aarch64_simd_xi __o;
27845 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[0], 0);
27846 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[1], 1);
27847 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[2], 2);
27848 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[3], 3);
27849 __builtin_aarch64_st4v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
27852 __extension__ extern __inline void
27853 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27854 vst4q_p8 (poly8_t * __a, poly8x16x4_t val)
27856 __builtin_aarch64_simd_xi __o;
27857 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[0], 0);
27858 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[1], 1);
27859 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[2], 2);
27860 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[3], 3);
27861 __builtin_aarch64_st4v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
27864 __extension__ extern __inline void
27865 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27866 vst4q_s16 (int16_t * __a, int16x8x4_t val)
27868 __builtin_aarch64_simd_xi __o;
27869 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[0], 0);
27870 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[1], 1);
27871 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[2], 2);
27872 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[3], 3);
27873 __builtin_aarch64_st4v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
27876 __extension__ extern __inline void
27877 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27878 vst4q_p16 (poly16_t * __a, poly16x8x4_t val)
27880 __builtin_aarch64_simd_xi __o;
27881 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[0], 0);
27882 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[1], 1);
27883 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[2], 2);
27884 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[3], 3);
27885 __builtin_aarch64_st4v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
27888 __extension__ extern __inline void
27889 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27890 vst4q_s32 (int32_t * __a, int32x4x4_t val)
27892 __builtin_aarch64_simd_xi __o;
27893 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) val.val[0], 0);
27894 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) val.val[1], 1);
27895 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) val.val[2], 2);
27896 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) val.val[3], 3);
27897 __builtin_aarch64_st4v4si ((__builtin_aarch64_simd_si *) __a, __o);
27900 __extension__ extern __inline void
27901 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27902 vst4q_s64 (int64_t * __a, int64x2x4_t val)
27904 __builtin_aarch64_simd_xi __o;
27905 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) val.val[0], 0);
27906 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) val.val[1], 1);
27907 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) val.val[2], 2);
27908 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) val.val[3], 3);
27909 __builtin_aarch64_st4v2di ((__builtin_aarch64_simd_di *) __a, __o);
27912 __extension__ extern __inline void
27913 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27914 vst4q_u8 (uint8_t * __a, uint8x16x4_t val)
27916 __builtin_aarch64_simd_xi __o;
27917 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[0], 0);
27918 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[1], 1);
27919 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[2], 2);
27920 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[3], 3);
27921 __builtin_aarch64_st4v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
27924 __extension__ extern __inline void
27925 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27926 vst4q_u16 (uint16_t * __a, uint16x8x4_t val)
27928 __builtin_aarch64_simd_xi __o;
27929 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[0], 0);
27930 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[1], 1);
27931 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[2], 2);
27932 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[3], 3);
27933 __builtin_aarch64_st4v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
27936 __extension__ extern __inline void
27937 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27938 vst4q_u32 (uint32_t * __a, uint32x4x4_t val)
27940 __builtin_aarch64_simd_xi __o;
27941 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) val.val[0], 0);
27942 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) val.val[1], 1);
27943 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) val.val[2], 2);
27944 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) val.val[3], 3);
27945 __builtin_aarch64_st4v4si ((__builtin_aarch64_simd_si *) __a, __o);
27948 __extension__ extern __inline void
27949 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27950 vst4q_u64 (uint64_t * __a, uint64x2x4_t val)
27952 __builtin_aarch64_simd_xi __o;
27953 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) val.val[0], 0);
27954 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) val.val[1], 1);
27955 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) val.val[2], 2);
27956 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) val.val[3], 3);
27957 __builtin_aarch64_st4v2di ((__builtin_aarch64_simd_di *) __a, __o);
27960 __extension__ extern __inline void
27961 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27962 vst4q_f16 (float16_t * __a, float16x8x4_t val)
27964 __builtin_aarch64_simd_xi __o;
27965 __o = __builtin_aarch64_set_qregxiv8hf (__o, (float16x8_t) val.val[0], 0);
27966 __o = __builtin_aarch64_set_qregxiv8hf (__o, (float16x8_t) val.val[1], 1);
27967 __o = __builtin_aarch64_set_qregxiv8hf (__o, (float16x8_t) val.val[2], 2);
27968 __o = __builtin_aarch64_set_qregxiv8hf (__o, (float16x8_t) val.val[3], 3);
27969 __builtin_aarch64_st4v8hf ((__builtin_aarch64_simd_hf *) __a, __o);
27972 __extension__ extern __inline void
27973 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27974 vst4q_f32 (float32_t * __a, float32x4x4_t val)
27976 __builtin_aarch64_simd_xi __o;
27977 __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) val.val[0], 0);
27978 __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) val.val[1], 1);
27979 __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) val.val[2], 2);
27980 __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) val.val[3], 3);
27981 __builtin_aarch64_st4v4sf ((__builtin_aarch64_simd_sf *) __a, __o);
27984 __extension__ extern __inline void
27985 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27986 vst4q_f64 (float64_t * __a, float64x2x4_t val)
27988 __builtin_aarch64_simd_xi __o;
27989 __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) val.val[0], 0);
27990 __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) val.val[1], 1);
27991 __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) val.val[2], 2);
27992 __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) val.val[3], 3);
27993 __builtin_aarch64_st4v2df ((__builtin_aarch64_simd_df *) __a, __o);
27996 __extension__ extern __inline void
27997 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27998 vst4q_p64 (poly64_t * __a, poly64x2x4_t val)
28000 __builtin_aarch64_simd_xi __o;
28001 __o = __builtin_aarch64_set_qregxiv2di_ssps (__o,
28002 (poly64x2_t) val.val[0], 0);
28003 __o = __builtin_aarch64_set_qregxiv2di_ssps (__o,
28004 (poly64x2_t) val.val[1], 1);
28005 __o = __builtin_aarch64_set_qregxiv2di_ssps (__o,
28006 (poly64x2_t) val.val[2], 2);
28007 __o = __builtin_aarch64_set_qregxiv2di_ssps (__o,
28008 (poly64x2_t) val.val[3], 3);
28009 __builtin_aarch64_st4v2di ((__builtin_aarch64_simd_di *) __a, __o);
28012 /* vsub */
28014 __extension__ extern __inline int64_t
28015 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28016 vsubd_s64 (int64_t __a, int64_t __b)
28018 return __a - __b;
28021 __extension__ extern __inline uint64_t
28022 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28023 vsubd_u64 (uint64_t __a, uint64_t __b)
28025 return __a - __b;
28028 /* vtbx1 */
28030 __extension__ extern __inline int8x8_t
28031 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28032 vtbx1_s8 (int8x8_t __r, int8x8_t __tab, int8x8_t __idx)
28034 uint8x8_t __mask = vclt_u8 (vreinterpret_u8_s8 (__idx),
28035 vmov_n_u8 (8));
28036 int8x8_t __tbl = vtbl1_s8 (__tab, __idx);
28038 return vbsl_s8 (__mask, __tbl, __r);
28041 __extension__ extern __inline uint8x8_t
28042 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28043 vtbx1_u8 (uint8x8_t __r, uint8x8_t __tab, uint8x8_t __idx)
28045 uint8x8_t __mask = vclt_u8 (__idx, vmov_n_u8 (8));
28046 uint8x8_t __tbl = vtbl1_u8 (__tab, __idx);
28048 return vbsl_u8 (__mask, __tbl, __r);
28051 __extension__ extern __inline poly8x8_t
28052 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28053 vtbx1_p8 (poly8x8_t __r, poly8x8_t __tab, uint8x8_t __idx)
28055 uint8x8_t __mask = vclt_u8 (__idx, vmov_n_u8 (8));
28056 poly8x8_t __tbl = vtbl1_p8 (__tab, __idx);
28058 return vbsl_p8 (__mask, __tbl, __r);
28061 /* vtbx3 */
28063 __extension__ extern __inline int8x8_t
28064 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28065 vtbx3_s8 (int8x8_t __r, int8x8x3_t __tab, int8x8_t __idx)
28067 uint8x8_t __mask = vclt_u8 (vreinterpret_u8_s8 (__idx),
28068 vmov_n_u8 (24));
28069 int8x8_t __tbl = vtbl3_s8 (__tab, __idx);
28071 return vbsl_s8 (__mask, __tbl, __r);
28074 __extension__ extern __inline uint8x8_t
28075 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28076 vtbx3_u8 (uint8x8_t __r, uint8x8x3_t __tab, uint8x8_t __idx)
28078 uint8x8_t __mask = vclt_u8 (__idx, vmov_n_u8 (24));
28079 uint8x8_t __tbl = vtbl3_u8 (__tab, __idx);
28081 return vbsl_u8 (__mask, __tbl, __r);
28084 __extension__ extern __inline poly8x8_t
28085 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28086 vtbx3_p8 (poly8x8_t __r, poly8x8x3_t __tab, uint8x8_t __idx)
28088 uint8x8_t __mask = vclt_u8 (__idx, vmov_n_u8 (24));
28089 poly8x8_t __tbl = vtbl3_p8 (__tab, __idx);
28091 return vbsl_p8 (__mask, __tbl, __r);
28094 /* vtbx4 */
28096 __extension__ extern __inline int8x8_t
28097 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28098 vtbx4_s8 (int8x8_t __r, int8x8x4_t __tab, int8x8_t __idx)
28100 int8x8_t result;
28101 int8x16x2_t temp;
28102 __builtin_aarch64_simd_oi __o;
28103 temp.val[0] = vcombine_s8 (__tab.val[0], __tab.val[1]);
28104 temp.val[1] = vcombine_s8 (__tab.val[2], __tab.val[3]);
28105 __o = __builtin_aarch64_set_qregoiv16qi (__o,
28106 (int8x16_t) temp.val[0], 0);
28107 __o = __builtin_aarch64_set_qregoiv16qi (__o,
28108 (int8x16_t) temp.val[1], 1);
28109 result = __builtin_aarch64_tbx4v8qi (__r, __o, __idx);
28110 return result;
28113 __extension__ extern __inline uint8x8_t
28114 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28115 vtbx4_u8 (uint8x8_t __r, uint8x8x4_t __tab, uint8x8_t __idx)
28117 uint8x8_t result;
28118 uint8x16x2_t temp;
28119 __builtin_aarch64_simd_oi __o;
28120 temp.val[0] = vcombine_u8 (__tab.val[0], __tab.val[1]);
28121 temp.val[1] = vcombine_u8 (__tab.val[2], __tab.val[3]);
28122 __o = __builtin_aarch64_set_qregoiv16qi (__o,
28123 (int8x16_t) temp.val[0], 0);
28124 __o = __builtin_aarch64_set_qregoiv16qi (__o,
28125 (int8x16_t) temp.val[1], 1);
28126 result = (uint8x8_t)__builtin_aarch64_tbx4v8qi ((int8x8_t)__r, __o,
28127 (int8x8_t)__idx);
28128 return result;
28131 __extension__ extern __inline poly8x8_t
28132 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28133 vtbx4_p8 (poly8x8_t __r, poly8x8x4_t __tab, uint8x8_t __idx)
28135 poly8x8_t result;
28136 poly8x16x2_t temp;
28137 __builtin_aarch64_simd_oi __o;
28138 temp.val[0] = vcombine_p8 (__tab.val[0], __tab.val[1]);
28139 temp.val[1] = vcombine_p8 (__tab.val[2], __tab.val[3]);
28140 __o = __builtin_aarch64_set_qregoiv16qi (__o,
28141 (int8x16_t) temp.val[0], 0);
28142 __o = __builtin_aarch64_set_qregoiv16qi (__o,
28143 (int8x16_t) temp.val[1], 1);
28144 result = (poly8x8_t)__builtin_aarch64_tbx4v8qi ((int8x8_t)__r, __o,
28145 (int8x8_t)__idx);
28146 return result;
28149 /* vtrn */
28151 __extension__ extern __inline float16x4_t
28152 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28153 vtrn1_f16 (float16x4_t __a, float16x4_t __b)
28155 #ifdef __AARCH64EB__
28156 return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 1, 7, 3});
28157 #else
28158 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 2, 6});
28159 #endif
28162 __extension__ extern __inline float32x2_t
28163 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28164 vtrn1_f32 (float32x2_t __a, float32x2_t __b)
28166 #ifdef __AARCH64EB__
28167 return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
28168 #else
28169 return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
28170 #endif
28173 __extension__ extern __inline poly8x8_t
28174 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28175 vtrn1_p8 (poly8x8_t __a, poly8x8_t __b)
28177 #ifdef __AARCH64EB__
28178 return __builtin_shuffle (__a, __b, (uint8x8_t) {9, 1, 11, 3, 13, 5, 15, 7});
28179 #else
28180 return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 8, 2, 10, 4, 12, 6, 14});
28181 #endif
28184 __extension__ extern __inline poly16x4_t
28185 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28186 vtrn1_p16 (poly16x4_t __a, poly16x4_t __b)
28188 #ifdef __AARCH64EB__
28189 return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 1, 7, 3});
28190 #else
28191 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 2, 6});
28192 #endif
28195 __extension__ extern __inline int8x8_t
28196 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28197 vtrn1_s8 (int8x8_t __a, int8x8_t __b)
28199 #ifdef __AARCH64EB__
28200 return __builtin_shuffle (__a, __b, (uint8x8_t) {9, 1, 11, 3, 13, 5, 15, 7});
28201 #else
28202 return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 8, 2, 10, 4, 12, 6, 14});
28203 #endif
28206 __extension__ extern __inline int16x4_t
28207 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28208 vtrn1_s16 (int16x4_t __a, int16x4_t __b)
28210 #ifdef __AARCH64EB__
28211 return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 1, 7, 3});
28212 #else
28213 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 2, 6});
28214 #endif
28217 __extension__ extern __inline int32x2_t
28218 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28219 vtrn1_s32 (int32x2_t __a, int32x2_t __b)
28221 #ifdef __AARCH64EB__
28222 return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
28223 #else
28224 return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
28225 #endif
28228 __extension__ extern __inline uint8x8_t
28229 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28230 vtrn1_u8 (uint8x8_t __a, uint8x8_t __b)
28232 #ifdef __AARCH64EB__
28233 return __builtin_shuffle (__a, __b, (uint8x8_t) {9, 1, 11, 3, 13, 5, 15, 7});
28234 #else
28235 return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 8, 2, 10, 4, 12, 6, 14});
28236 #endif
28239 __extension__ extern __inline uint16x4_t
28240 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28241 vtrn1_u16 (uint16x4_t __a, uint16x4_t __b)
28243 #ifdef __AARCH64EB__
28244 return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 1, 7, 3});
28245 #else
28246 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 2, 6});
28247 #endif
28250 __extension__ extern __inline uint32x2_t
28251 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28252 vtrn1_u32 (uint32x2_t __a, uint32x2_t __b)
28254 #ifdef __AARCH64EB__
28255 return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
28256 #else
28257 return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
28258 #endif
28261 __extension__ extern __inline float16x8_t
28262 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28263 vtrn1q_f16 (float16x8_t __a, float16x8_t __b)
28265 #ifdef __AARCH64EB__
28266 return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 1, 11, 3, 13, 5, 15, 7});
28267 #else
28268 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 8, 2, 10, 4, 12, 6, 14});
28269 #endif
28272 __extension__ extern __inline float32x4_t
28273 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28274 vtrn1q_f32 (float32x4_t __a, float32x4_t __b)
28276 #ifdef __AARCH64EB__
28277 return __builtin_shuffle (__a, __b, (uint32x4_t) {5, 1, 7, 3});
28278 #else
28279 return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 4, 2, 6});
28280 #endif
28283 __extension__ extern __inline float64x2_t
28284 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28285 vtrn1q_f64 (float64x2_t __a, float64x2_t __b)
28287 #ifdef __AARCH64EB__
28288 return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
28289 #else
28290 return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
28291 #endif
28294 __extension__ extern __inline poly8x16_t
28295 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28296 vtrn1q_p8 (poly8x16_t __a, poly8x16_t __b)
28298 #ifdef __AARCH64EB__
28299 return __builtin_shuffle (__a, __b,
28300 (uint8x16_t) {17, 1, 19, 3, 21, 5, 23, 7, 25, 9, 27, 11, 29, 13, 31, 15});
28301 #else
28302 return __builtin_shuffle (__a, __b,
28303 (uint8x16_t) {0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30});
28304 #endif
28307 __extension__ extern __inline poly16x8_t
28308 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28309 vtrn1q_p16 (poly16x8_t __a, poly16x8_t __b)
28311 #ifdef __AARCH64EB__
28312 return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 1, 11, 3, 13, 5, 15, 7});
28313 #else
28314 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 8, 2, 10, 4, 12, 6, 14});
28315 #endif
28318 __extension__ extern __inline int8x16_t
28319 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28320 vtrn1q_s8 (int8x16_t __a, int8x16_t __b)
28322 #ifdef __AARCH64EB__
28323 return __builtin_shuffle (__a, __b,
28324 (uint8x16_t) {17, 1, 19, 3, 21, 5, 23, 7, 25, 9, 27, 11, 29, 13, 31, 15});
28325 #else
28326 return __builtin_shuffle (__a, __b,
28327 (uint8x16_t) {0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30});
28328 #endif
28331 __extension__ extern __inline int16x8_t
28332 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28333 vtrn1q_s16 (int16x8_t __a, int16x8_t __b)
28335 #ifdef __AARCH64EB__
28336 return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 1, 11, 3, 13, 5, 15, 7});
28337 #else
28338 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 8, 2, 10, 4, 12, 6, 14});
28339 #endif
28342 __extension__ extern __inline int32x4_t
28343 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28344 vtrn1q_s32 (int32x4_t __a, int32x4_t __b)
28346 #ifdef __AARCH64EB__
28347 return __builtin_shuffle (__a, __b, (uint32x4_t) {5, 1, 7, 3});
28348 #else
28349 return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 4, 2, 6});
28350 #endif
28353 __extension__ extern __inline int64x2_t
28354 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28355 vtrn1q_s64 (int64x2_t __a, int64x2_t __b)
28357 #ifdef __AARCH64EB__
28358 return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
28359 #else
28360 return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
28361 #endif
28364 __extension__ extern __inline uint8x16_t
28365 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28366 vtrn1q_u8 (uint8x16_t __a, uint8x16_t __b)
28368 #ifdef __AARCH64EB__
28369 return __builtin_shuffle (__a, __b,
28370 (uint8x16_t) {17, 1, 19, 3, 21, 5, 23, 7, 25, 9, 27, 11, 29, 13, 31, 15});
28371 #else
28372 return __builtin_shuffle (__a, __b,
28373 (uint8x16_t) {0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30});
28374 #endif
28377 __extension__ extern __inline uint16x8_t
28378 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28379 vtrn1q_u16 (uint16x8_t __a, uint16x8_t __b)
28381 #ifdef __AARCH64EB__
28382 return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 1, 11, 3, 13, 5, 15, 7});
28383 #else
28384 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 8, 2, 10, 4, 12, 6, 14});
28385 #endif
28388 __extension__ extern __inline uint32x4_t
28389 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28390 vtrn1q_u32 (uint32x4_t __a, uint32x4_t __b)
28392 #ifdef __AARCH64EB__
28393 return __builtin_shuffle (__a, __b, (uint32x4_t) {5, 1, 7, 3});
28394 #else
28395 return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 4, 2, 6});
28396 #endif
28399 __extension__ extern __inline uint64x2_t
28400 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28401 vtrn1q_u64 (uint64x2_t __a, uint64x2_t __b)
28403 #ifdef __AARCH64EB__
28404 return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
28405 #else
28406 return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
28407 #endif
28410 __extension__ extern __inline float16x4_t
28411 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28412 vtrn2_f16 (float16x4_t __a, float16x4_t __b)
28414 #ifdef __AARCH64EB__
28415 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 6, 2});
28416 #else
28417 return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 5, 3, 7});
28418 #endif
28421 __extension__ extern __inline float32x2_t
28422 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28423 vtrn2_f32 (float32x2_t __a, float32x2_t __b)
28425 #ifdef __AARCH64EB__
28426 return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
28427 #else
28428 return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
28429 #endif
28432 __extension__ extern __inline poly8x8_t
28433 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28434 vtrn2_p8 (poly8x8_t __a, poly8x8_t __b)
28436 #ifdef __AARCH64EB__
28437 return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 0, 10, 2, 12, 4, 14, 6});
28438 #else
28439 return __builtin_shuffle (__a, __b, (uint8x8_t) {1, 9, 3, 11, 5, 13, 7, 15});
28440 #endif
28443 __extension__ extern __inline poly16x4_t
28444 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28445 vtrn2_p16 (poly16x4_t __a, poly16x4_t __b)
28447 #ifdef __AARCH64EB__
28448 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 6, 2});
28449 #else
28450 return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 5, 3, 7});
28451 #endif
28454 __extension__ extern __inline int8x8_t
28455 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28456 vtrn2_s8 (int8x8_t __a, int8x8_t __b)
28458 #ifdef __AARCH64EB__
28459 return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 0, 10, 2, 12, 4, 14, 6});
28460 #else
28461 return __builtin_shuffle (__a, __b, (uint8x8_t) {1, 9, 3, 11, 5, 13, 7, 15});
28462 #endif
28465 __extension__ extern __inline int16x4_t
28466 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28467 vtrn2_s16 (int16x4_t __a, int16x4_t __b)
28469 #ifdef __AARCH64EB__
28470 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 6, 2});
28471 #else
28472 return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 5, 3, 7});
28473 #endif
28476 __extension__ extern __inline int32x2_t
28477 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28478 vtrn2_s32 (int32x2_t __a, int32x2_t __b)
28480 #ifdef __AARCH64EB__
28481 return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
28482 #else
28483 return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
28484 #endif
28487 __extension__ extern __inline uint8x8_t
28488 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28489 vtrn2_u8 (uint8x8_t __a, uint8x8_t __b)
28491 #ifdef __AARCH64EB__
28492 return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 0, 10, 2, 12, 4, 14, 6});
28493 #else
28494 return __builtin_shuffle (__a, __b, (uint8x8_t) {1, 9, 3, 11, 5, 13, 7, 15});
28495 #endif
28498 __extension__ extern __inline uint16x4_t
28499 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28500 vtrn2_u16 (uint16x4_t __a, uint16x4_t __b)
28502 #ifdef __AARCH64EB__
28503 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 6, 2});
28504 #else
28505 return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 5, 3, 7});
28506 #endif
28509 __extension__ extern __inline uint32x2_t
28510 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28511 vtrn2_u32 (uint32x2_t __a, uint32x2_t __b)
28513 #ifdef __AARCH64EB__
28514 return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
28515 #else
28516 return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
28517 #endif
28520 __extension__ extern __inline float16x8_t
28521 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28522 vtrn2q_f16 (float16x8_t __a, float16x8_t __b)
28524 #ifdef __AARCH64EB__
28525 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 0, 10, 2, 12, 4, 14, 6});
28526 #else
28527 return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 9, 3, 11, 5, 13, 7, 15});
28528 #endif
28531 __extension__ extern __inline float32x4_t
28532 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28533 vtrn2q_f32 (float32x4_t __a, float32x4_t __b)
28535 #ifdef __AARCH64EB__
28536 return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 0, 6, 2});
28537 #else
28538 return __builtin_shuffle (__a, __b, (uint32x4_t) {1, 5, 3, 7});
28539 #endif
28542 __extension__ extern __inline float64x2_t
28543 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28544 vtrn2q_f64 (float64x2_t __a, float64x2_t __b)
28546 #ifdef __AARCH64EB__
28547 return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
28548 #else
28549 return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
28550 #endif
28553 __extension__ extern __inline poly8x16_t
28554 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28555 vtrn2q_p8 (poly8x16_t __a, poly8x16_t __b)
28557 #ifdef __AARCH64EB__
28558 return __builtin_shuffle (__a, __b,
28559 (uint8x16_t) {16, 0, 18, 2, 20, 4, 22, 6, 24, 8, 26, 10, 28, 12, 30, 14});
28560 #else
28561 return __builtin_shuffle (__a, __b,
28562 (uint8x16_t) {1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31});
28563 #endif
28566 __extension__ extern __inline poly16x8_t
28567 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28568 vtrn2q_p16 (poly16x8_t __a, poly16x8_t __b)
28570 #ifdef __AARCH64EB__
28571 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 0, 10, 2, 12, 4, 14, 6});
28572 #else
28573 return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 9, 3, 11, 5, 13, 7, 15});
28574 #endif
28577 __extension__ extern __inline int8x16_t
28578 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28579 vtrn2q_s8 (int8x16_t __a, int8x16_t __b)
28581 #ifdef __AARCH64EB__
28582 return __builtin_shuffle (__a, __b,
28583 (uint8x16_t) {16, 0, 18, 2, 20, 4, 22, 6, 24, 8, 26, 10, 28, 12, 30, 14});
28584 #else
28585 return __builtin_shuffle (__a, __b,
28586 (uint8x16_t) {1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31});
28587 #endif
28590 __extension__ extern __inline int16x8_t
28591 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28592 vtrn2q_s16 (int16x8_t __a, int16x8_t __b)
28594 #ifdef __AARCH64EB__
28595 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 0, 10, 2, 12, 4, 14, 6});
28596 #else
28597 return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 9, 3, 11, 5, 13, 7, 15});
28598 #endif
28601 __extension__ extern __inline int32x4_t
28602 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28603 vtrn2q_s32 (int32x4_t __a, int32x4_t __b)
28605 #ifdef __AARCH64EB__
28606 return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 0, 6, 2});
28607 #else
28608 return __builtin_shuffle (__a, __b, (uint32x4_t) {1, 5, 3, 7});
28609 #endif
28612 __extension__ extern __inline int64x2_t
28613 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28614 vtrn2q_s64 (int64x2_t __a, int64x2_t __b)
28616 #ifdef __AARCH64EB__
28617 return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
28618 #else
28619 return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
28620 #endif
28623 __extension__ extern __inline uint8x16_t
28624 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28625 vtrn2q_u8 (uint8x16_t __a, uint8x16_t __b)
28627 #ifdef __AARCH64EB__
28628 return __builtin_shuffle (__a, __b,
28629 (uint8x16_t) {16, 0, 18, 2, 20, 4, 22, 6, 24, 8, 26, 10, 28, 12, 30, 14});
28630 #else
28631 return __builtin_shuffle (__a, __b,
28632 (uint8x16_t) {1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31});
28633 #endif
28636 __extension__ extern __inline uint16x8_t
28637 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28638 vtrn2q_u16 (uint16x8_t __a, uint16x8_t __b)
28640 #ifdef __AARCH64EB__
28641 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 0, 10, 2, 12, 4, 14, 6});
28642 #else
28643 return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 9, 3, 11, 5, 13, 7, 15});
28644 #endif
28647 __extension__ extern __inline uint32x4_t
28648 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28649 vtrn2q_u32 (uint32x4_t __a, uint32x4_t __b)
28651 #ifdef __AARCH64EB__
28652 return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 0, 6, 2});
28653 #else
28654 return __builtin_shuffle (__a, __b, (uint32x4_t) {1, 5, 3, 7});
28655 #endif
28658 __extension__ extern __inline uint64x2_t
28659 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28660 vtrn2q_u64 (uint64x2_t __a, uint64x2_t __b)
28662 #ifdef __AARCH64EB__
28663 return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
28664 #else
28665 return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
28666 #endif
28669 __extension__ extern __inline float16x4x2_t
28670 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28671 vtrn_f16 (float16x4_t __a, float16x4_t __b)
28673 return (float16x4x2_t) {vtrn1_f16 (__a, __b), vtrn2_f16 (__a, __b)};
28676 __extension__ extern __inline float32x2x2_t
28677 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28678 vtrn_f32 (float32x2_t a, float32x2_t b)
28680 return (float32x2x2_t) {vtrn1_f32 (a, b), vtrn2_f32 (a, b)};
28683 __extension__ extern __inline poly8x8x2_t
28684 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28685 vtrn_p8 (poly8x8_t a, poly8x8_t b)
28687 return (poly8x8x2_t) {vtrn1_p8 (a, b), vtrn2_p8 (a, b)};
28690 __extension__ extern __inline poly16x4x2_t
28691 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28692 vtrn_p16 (poly16x4_t a, poly16x4_t b)
28694 return (poly16x4x2_t) {vtrn1_p16 (a, b), vtrn2_p16 (a, b)};
28697 __extension__ extern __inline int8x8x2_t
28698 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28699 vtrn_s8 (int8x8_t a, int8x8_t b)
28701 return (int8x8x2_t) {vtrn1_s8 (a, b), vtrn2_s8 (a, b)};
28704 __extension__ extern __inline int16x4x2_t
28705 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28706 vtrn_s16 (int16x4_t a, int16x4_t b)
28708 return (int16x4x2_t) {vtrn1_s16 (a, b), vtrn2_s16 (a, b)};
28711 __extension__ extern __inline int32x2x2_t
28712 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28713 vtrn_s32 (int32x2_t a, int32x2_t b)
28715 return (int32x2x2_t) {vtrn1_s32 (a, b), vtrn2_s32 (a, b)};
28718 __extension__ extern __inline uint8x8x2_t
28719 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28720 vtrn_u8 (uint8x8_t a, uint8x8_t b)
28722 return (uint8x8x2_t) {vtrn1_u8 (a, b), vtrn2_u8 (a, b)};
28725 __extension__ extern __inline uint16x4x2_t
28726 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28727 vtrn_u16 (uint16x4_t a, uint16x4_t b)
28729 return (uint16x4x2_t) {vtrn1_u16 (a, b), vtrn2_u16 (a, b)};
28732 __extension__ extern __inline uint32x2x2_t
28733 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28734 vtrn_u32 (uint32x2_t a, uint32x2_t b)
28736 return (uint32x2x2_t) {vtrn1_u32 (a, b), vtrn2_u32 (a, b)};
28739 __extension__ extern __inline float16x8x2_t
28740 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28741 vtrnq_f16 (float16x8_t __a, float16x8_t __b)
28743 return (float16x8x2_t) {vtrn1q_f16 (__a, __b), vtrn2q_f16 (__a, __b)};
28746 __extension__ extern __inline float32x4x2_t
28747 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28748 vtrnq_f32 (float32x4_t a, float32x4_t b)
28750 return (float32x4x2_t) {vtrn1q_f32 (a, b), vtrn2q_f32 (a, b)};
28753 __extension__ extern __inline poly8x16x2_t
28754 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28755 vtrnq_p8 (poly8x16_t a, poly8x16_t b)
28757 return (poly8x16x2_t) {vtrn1q_p8 (a, b), vtrn2q_p8 (a, b)};
28760 __extension__ extern __inline poly16x8x2_t
28761 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28762 vtrnq_p16 (poly16x8_t a, poly16x8_t b)
28764 return (poly16x8x2_t) {vtrn1q_p16 (a, b), vtrn2q_p16 (a, b)};
28767 __extension__ extern __inline int8x16x2_t
28768 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28769 vtrnq_s8 (int8x16_t a, int8x16_t b)
28771 return (int8x16x2_t) {vtrn1q_s8 (a, b), vtrn2q_s8 (a, b)};
28774 __extension__ extern __inline int16x8x2_t
28775 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28776 vtrnq_s16 (int16x8_t a, int16x8_t b)
28778 return (int16x8x2_t) {vtrn1q_s16 (a, b), vtrn2q_s16 (a, b)};
28781 __extension__ extern __inline int32x4x2_t
28782 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28783 vtrnq_s32 (int32x4_t a, int32x4_t b)
28785 return (int32x4x2_t) {vtrn1q_s32 (a, b), vtrn2q_s32 (a, b)};
28788 __extension__ extern __inline uint8x16x2_t
28789 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28790 vtrnq_u8 (uint8x16_t a, uint8x16_t b)
28792 return (uint8x16x2_t) {vtrn1q_u8 (a, b), vtrn2q_u8 (a, b)};
28795 __extension__ extern __inline uint16x8x2_t
28796 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28797 vtrnq_u16 (uint16x8_t a, uint16x8_t b)
28799 return (uint16x8x2_t) {vtrn1q_u16 (a, b), vtrn2q_u16 (a, b)};
28802 __extension__ extern __inline uint32x4x2_t
28803 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28804 vtrnq_u32 (uint32x4_t a, uint32x4_t b)
28806 return (uint32x4x2_t) {vtrn1q_u32 (a, b), vtrn2q_u32 (a, b)};
28809 /* vtst */
28811 __extension__ extern __inline uint8x8_t
28812 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28813 vtst_s8 (int8x8_t __a, int8x8_t __b)
28815 return (uint8x8_t) ((__a & __b) != 0);
28818 __extension__ extern __inline uint16x4_t
28819 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28820 vtst_s16 (int16x4_t __a, int16x4_t __b)
28822 return (uint16x4_t) ((__a & __b) != 0);
28825 __extension__ extern __inline uint32x2_t
28826 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28827 vtst_s32 (int32x2_t __a, int32x2_t __b)
28829 return (uint32x2_t) ((__a & __b) != 0);
28832 __extension__ extern __inline uint64x1_t
28833 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28834 vtst_s64 (int64x1_t __a, int64x1_t __b)
28836 return (uint64x1_t) ((__a & __b) != __AARCH64_INT64_C (0));
28839 __extension__ extern __inline uint8x8_t
28840 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28841 vtst_u8 (uint8x8_t __a, uint8x8_t __b)
28843 return ((__a & __b) != 0);
28846 __extension__ extern __inline uint16x4_t
28847 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28848 vtst_u16 (uint16x4_t __a, uint16x4_t __b)
28850 return ((__a & __b) != 0);
28853 __extension__ extern __inline uint32x2_t
28854 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28855 vtst_u32 (uint32x2_t __a, uint32x2_t __b)
28857 return ((__a & __b) != 0);
28860 __extension__ extern __inline uint64x1_t
28861 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28862 vtst_u64 (uint64x1_t __a, uint64x1_t __b)
28864 return ((__a & __b) != __AARCH64_UINT64_C (0));
28867 __extension__ extern __inline uint8x16_t
28868 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28869 vtstq_s8 (int8x16_t __a, int8x16_t __b)
28871 return (uint8x16_t) ((__a & __b) != 0);
28874 __extension__ extern __inline uint16x8_t
28875 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28876 vtstq_s16 (int16x8_t __a, int16x8_t __b)
28878 return (uint16x8_t) ((__a & __b) != 0);
28881 __extension__ extern __inline uint32x4_t
28882 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28883 vtstq_s32 (int32x4_t __a, int32x4_t __b)
28885 return (uint32x4_t) ((__a & __b) != 0);
28888 __extension__ extern __inline uint64x2_t
28889 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28890 vtstq_s64 (int64x2_t __a, int64x2_t __b)
28892 return (uint64x2_t) ((__a & __b) != __AARCH64_INT64_C (0));
28895 __extension__ extern __inline uint8x16_t
28896 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28897 vtstq_u8 (uint8x16_t __a, uint8x16_t __b)
28899 return ((__a & __b) != 0);
28902 __extension__ extern __inline uint16x8_t
28903 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28904 vtstq_u16 (uint16x8_t __a, uint16x8_t __b)
28906 return ((__a & __b) != 0);
28909 __extension__ extern __inline uint32x4_t
28910 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28911 vtstq_u32 (uint32x4_t __a, uint32x4_t __b)
28913 return ((__a & __b) != 0);
28916 __extension__ extern __inline uint64x2_t
28917 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28918 vtstq_u64 (uint64x2_t __a, uint64x2_t __b)
28920 return ((__a & __b) != __AARCH64_UINT64_C (0));
28923 __extension__ extern __inline uint64_t
28924 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28925 vtstd_s64 (int64_t __a, int64_t __b)
28927 return (__a & __b) ? -1ll : 0ll;
28930 __extension__ extern __inline uint64_t
28931 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28932 vtstd_u64 (uint64_t __a, uint64_t __b)
28934 return (__a & __b) ? -1ll : 0ll;
28937 /* vuqadd */
28939 __extension__ extern __inline int8x8_t
28940 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28941 vuqadd_s8 (int8x8_t __a, uint8x8_t __b)
28943 return __builtin_aarch64_suqaddv8qi_ssu (__a, __b);
28946 __extension__ extern __inline int16x4_t
28947 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28948 vuqadd_s16 (int16x4_t __a, uint16x4_t __b)
28950 return __builtin_aarch64_suqaddv4hi_ssu (__a, __b);
28953 __extension__ extern __inline int32x2_t
28954 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28955 vuqadd_s32 (int32x2_t __a, uint32x2_t __b)
28957 return __builtin_aarch64_suqaddv2si_ssu (__a, __b);
28960 __extension__ extern __inline int64x1_t
28961 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28962 vuqadd_s64 (int64x1_t __a, uint64x1_t __b)
28964 return (int64x1_t) {__builtin_aarch64_suqadddi_ssu (__a[0], __b[0])};
28967 __extension__ extern __inline int8x16_t
28968 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28969 vuqaddq_s8 (int8x16_t __a, uint8x16_t __b)
28971 return __builtin_aarch64_suqaddv16qi_ssu (__a, __b);
28974 __extension__ extern __inline int16x8_t
28975 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28976 vuqaddq_s16 (int16x8_t __a, uint16x8_t __b)
28978 return __builtin_aarch64_suqaddv8hi_ssu (__a, __b);
28981 __extension__ extern __inline int32x4_t
28982 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28983 vuqaddq_s32 (int32x4_t __a, uint32x4_t __b)
28985 return __builtin_aarch64_suqaddv4si_ssu (__a, __b);
28988 __extension__ extern __inline int64x2_t
28989 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28990 vuqaddq_s64 (int64x2_t __a, uint64x2_t __b)
28992 return __builtin_aarch64_suqaddv2di_ssu (__a, __b);
28995 __extension__ extern __inline int8_t
28996 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28997 vuqaddb_s8 (int8_t __a, uint8_t __b)
28999 return __builtin_aarch64_suqaddqi_ssu (__a, __b);
29002 __extension__ extern __inline int16_t
29003 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29004 vuqaddh_s16 (int16_t __a, uint16_t __b)
29006 return __builtin_aarch64_suqaddhi_ssu (__a, __b);
29009 __extension__ extern __inline int32_t
29010 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29011 vuqadds_s32 (int32_t __a, uint32_t __b)
29013 return __builtin_aarch64_suqaddsi_ssu (__a, __b);
29016 __extension__ extern __inline int64_t
29017 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29018 vuqaddd_s64 (int64_t __a, uint64_t __b)
29020 return __builtin_aarch64_suqadddi_ssu (__a, __b);
29023 #define __DEFINTERLEAVE(op, rettype, intype, funcsuffix, Q) \
29024 __extension__ extern __inline rettype \
29025 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) \
29026 v ## op ## Q ## _ ## funcsuffix (intype a, intype b) \
29028 return (rettype) {v ## op ## 1 ## Q ## _ ## funcsuffix (a, b), \
29029 v ## op ## 2 ## Q ## _ ## funcsuffix (a, b)}; \
29032 #define __INTERLEAVE_LIST(op) \
29033 __DEFINTERLEAVE (op, float16x4x2_t, float16x4_t, f16,) \
29034 __DEFINTERLEAVE (op, float32x2x2_t, float32x2_t, f32,) \
29035 __DEFINTERLEAVE (op, poly8x8x2_t, poly8x8_t, p8,) \
29036 __DEFINTERLEAVE (op, poly16x4x2_t, poly16x4_t, p16,) \
29037 __DEFINTERLEAVE (op, int8x8x2_t, int8x8_t, s8,) \
29038 __DEFINTERLEAVE (op, int16x4x2_t, int16x4_t, s16,) \
29039 __DEFINTERLEAVE (op, int32x2x2_t, int32x2_t, s32,) \
29040 __DEFINTERLEAVE (op, uint8x8x2_t, uint8x8_t, u8,) \
29041 __DEFINTERLEAVE (op, uint16x4x2_t, uint16x4_t, u16,) \
29042 __DEFINTERLEAVE (op, uint32x2x2_t, uint32x2_t, u32,) \
29043 __DEFINTERLEAVE (op, float16x8x2_t, float16x8_t, f16, q) \
29044 __DEFINTERLEAVE (op, float32x4x2_t, float32x4_t, f32, q) \
29045 __DEFINTERLEAVE (op, poly8x16x2_t, poly8x16_t, p8, q) \
29046 __DEFINTERLEAVE (op, poly16x8x2_t, poly16x8_t, p16, q) \
29047 __DEFINTERLEAVE (op, int8x16x2_t, int8x16_t, s8, q) \
29048 __DEFINTERLEAVE (op, int16x8x2_t, int16x8_t, s16, q) \
29049 __DEFINTERLEAVE (op, int32x4x2_t, int32x4_t, s32, q) \
29050 __DEFINTERLEAVE (op, uint8x16x2_t, uint8x16_t, u8, q) \
29051 __DEFINTERLEAVE (op, uint16x8x2_t, uint16x8_t, u16, q) \
29052 __DEFINTERLEAVE (op, uint32x4x2_t, uint32x4_t, u32, q)
29054 /* vuzp */
29056 __extension__ extern __inline float16x4_t
29057 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29058 vuzp1_f16 (float16x4_t __a, float16x4_t __b)
29060 #ifdef __AARCH64EB__
29061 return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 7, 1, 3});
29062 #else
29063 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 2, 4, 6});
29064 #endif
29067 __extension__ extern __inline float32x2_t
29068 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29069 vuzp1_f32 (float32x2_t __a, float32x2_t __b)
29071 #ifdef __AARCH64EB__
29072 return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
29073 #else
29074 return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
29075 #endif
29078 __extension__ extern __inline poly8x8_t
29079 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29080 vuzp1_p8 (poly8x8_t __a, poly8x8_t __b)
29082 #ifdef __AARCH64EB__
29083 return __builtin_shuffle (__a, __b, (uint8x8_t) {9, 11, 13, 15, 1, 3, 5, 7});
29084 #else
29085 return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 2, 4, 6, 8, 10, 12, 14});
29086 #endif
29089 __extension__ extern __inline poly16x4_t
29090 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29091 vuzp1_p16 (poly16x4_t __a, poly16x4_t __b)
29093 #ifdef __AARCH64EB__
29094 return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 7, 1, 3});
29095 #else
29096 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 2, 4, 6});
29097 #endif
29100 __extension__ extern __inline int8x8_t
29101 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29102 vuzp1_s8 (int8x8_t __a, int8x8_t __b)
29104 #ifdef __AARCH64EB__
29105 return __builtin_shuffle (__a, __b, (uint8x8_t) {9, 11, 13, 15, 1, 3, 5, 7});
29106 #else
29107 return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 2, 4, 6, 8, 10, 12, 14});
29108 #endif
29111 __extension__ extern __inline int16x4_t
29112 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29113 vuzp1_s16 (int16x4_t __a, int16x4_t __b)
29115 #ifdef __AARCH64EB__
29116 return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 7, 1, 3});
29117 #else
29118 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 2, 4, 6});
29119 #endif
29122 __extension__ extern __inline int32x2_t
29123 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29124 vuzp1_s32 (int32x2_t __a, int32x2_t __b)
29126 #ifdef __AARCH64EB__
29127 return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
29128 #else
29129 return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
29130 #endif
29133 __extension__ extern __inline uint8x8_t
29134 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29135 vuzp1_u8 (uint8x8_t __a, uint8x8_t __b)
29137 #ifdef __AARCH64EB__
29138 return __builtin_shuffle (__a, __b, (uint8x8_t) {9, 11, 13, 15, 1, 3, 5, 7});
29139 #else
29140 return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 2, 4, 6, 8, 10, 12, 14});
29141 #endif
29144 __extension__ extern __inline uint16x4_t
29145 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29146 vuzp1_u16 (uint16x4_t __a, uint16x4_t __b)
29148 #ifdef __AARCH64EB__
29149 return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 7, 1, 3});
29150 #else
29151 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 2, 4, 6});
29152 #endif
29155 __extension__ extern __inline uint32x2_t
29156 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29157 vuzp1_u32 (uint32x2_t __a, uint32x2_t __b)
29159 #ifdef __AARCH64EB__
29160 return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
29161 #else
29162 return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
29163 #endif
29166 __extension__ extern __inline float16x8_t
29167 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29168 vuzp1q_f16 (float16x8_t __a, float16x8_t __b)
29170 #ifdef __AARCH64EB__
29171 return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 11, 13, 15, 1, 3, 5, 7});
29172 #else
29173 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 2, 4, 6, 8, 10, 12, 14});
29174 #endif
29177 __extension__ extern __inline float32x4_t
29178 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29179 vuzp1q_f32 (float32x4_t __a, float32x4_t __b)
29181 #ifdef __AARCH64EB__
29182 return __builtin_shuffle (__a, __b, (uint32x4_t) {5, 7, 1, 3});
29183 #else
29184 return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 2, 4, 6});
29185 #endif
29188 __extension__ extern __inline float64x2_t
29189 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29190 vuzp1q_f64 (float64x2_t __a, float64x2_t __b)
29192 #ifdef __AARCH64EB__
29193 return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
29194 #else
29195 return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
29196 #endif
29199 __extension__ extern __inline poly8x16_t
29200 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29201 vuzp1q_p8 (poly8x16_t __a, poly8x16_t __b)
29203 #ifdef __AARCH64EB__
29204 return __builtin_shuffle (__a, __b, (uint8x16_t)
29205 {17, 19, 21, 23, 25, 27, 29, 31, 1, 3, 5, 7, 9, 11, 13, 15});
29206 #else
29207 return __builtin_shuffle (__a, __b, (uint8x16_t)
29208 {0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30});
29209 #endif
29212 __extension__ extern __inline poly16x8_t
29213 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29214 vuzp1q_p16 (poly16x8_t __a, poly16x8_t __b)
29216 #ifdef __AARCH64EB__
29217 return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 11, 13, 15, 1, 3, 5, 7});
29218 #else
29219 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 2, 4, 6, 8, 10, 12, 14});
29220 #endif
29223 __extension__ extern __inline int8x16_t
29224 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29225 vuzp1q_s8 (int8x16_t __a, int8x16_t __b)
29227 #ifdef __AARCH64EB__
29228 return __builtin_shuffle (__a, __b,
29229 (uint8x16_t) {17, 19, 21, 23, 25, 27, 29, 31, 1, 3, 5, 7, 9, 11, 13, 15});
29230 #else
29231 return __builtin_shuffle (__a, __b,
29232 (uint8x16_t) {0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30});
29233 #endif
29236 __extension__ extern __inline int16x8_t
29237 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29238 vuzp1q_s16 (int16x8_t __a, int16x8_t __b)
29240 #ifdef __AARCH64EB__
29241 return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 11, 13, 15, 1, 3, 5, 7});
29242 #else
29243 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 2, 4, 6, 8, 10, 12, 14});
29244 #endif
29247 __extension__ extern __inline int32x4_t
29248 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29249 vuzp1q_s32 (int32x4_t __a, int32x4_t __b)
29251 #ifdef __AARCH64EB__
29252 return __builtin_shuffle (__a, __b, (uint32x4_t) {5, 7, 1, 3});
29253 #else
29254 return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 2, 4, 6});
29255 #endif
29258 __extension__ extern __inline int64x2_t
29259 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29260 vuzp1q_s64 (int64x2_t __a, int64x2_t __b)
29262 #ifdef __AARCH64EB__
29263 return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
29264 #else
29265 return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
29266 #endif
29269 __extension__ extern __inline uint8x16_t
29270 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29271 vuzp1q_u8 (uint8x16_t __a, uint8x16_t __b)
29273 #ifdef __AARCH64EB__
29274 return __builtin_shuffle (__a, __b,
29275 (uint8x16_t) {17, 19, 21, 23, 25, 27, 29, 31, 1, 3, 5, 7, 9, 11, 13, 15});
29276 #else
29277 return __builtin_shuffle (__a, __b,
29278 (uint8x16_t) {0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30});
29279 #endif
29282 __extension__ extern __inline uint16x8_t
29283 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29284 vuzp1q_u16 (uint16x8_t __a, uint16x8_t __b)
29286 #ifdef __AARCH64EB__
29287 return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 11, 13, 15, 1, 3, 5, 7});
29288 #else
29289 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 2, 4, 6, 8, 10, 12, 14});
29290 #endif
29293 __extension__ extern __inline uint32x4_t
29294 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29295 vuzp1q_u32 (uint32x4_t __a, uint32x4_t __b)
29297 #ifdef __AARCH64EB__
29298 return __builtin_shuffle (__a, __b, (uint32x4_t) {5, 7, 1, 3});
29299 #else
29300 return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 2, 4, 6});
29301 #endif
29304 __extension__ extern __inline uint64x2_t
29305 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29306 vuzp1q_u64 (uint64x2_t __a, uint64x2_t __b)
29308 #ifdef __AARCH64EB__
29309 return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
29310 #else
29311 return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
29312 #endif
29315 __extension__ extern __inline float16x4_t
29316 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29317 vuzp2_f16 (float16x4_t __a, float16x4_t __b)
29319 #ifdef __AARCH64EB__
29320 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 6, 0, 2});
29321 #else
29322 return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 3, 5, 7});
29323 #endif
29326 __extension__ extern __inline float32x2_t
29327 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29328 vuzp2_f32 (float32x2_t __a, float32x2_t __b)
29330 #ifdef __AARCH64EB__
29331 return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
29332 #else
29333 return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
29334 #endif
29337 __extension__ extern __inline poly8x8_t
29338 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29339 vuzp2_p8 (poly8x8_t __a, poly8x8_t __b)
29341 #ifdef __AARCH64EB__
29342 return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 10, 12, 14, 0, 2, 4, 6});
29343 #else
29344 return __builtin_shuffle (__a, __b, (uint8x8_t) {1, 3, 5, 7, 9, 11, 13, 15});
29345 #endif
29348 __extension__ extern __inline poly16x4_t
29349 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29350 vuzp2_p16 (poly16x4_t __a, poly16x4_t __b)
29352 #ifdef __AARCH64EB__
29353 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 6, 0, 2});
29354 #else
29355 return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 3, 5, 7});
29356 #endif
29359 __extension__ extern __inline int8x8_t
29360 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29361 vuzp2_s8 (int8x8_t __a, int8x8_t __b)
29363 #ifdef __AARCH64EB__
29364 return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 10, 12, 14, 0, 2, 4, 6});
29365 #else
29366 return __builtin_shuffle (__a, __b, (uint8x8_t) {1, 3, 5, 7, 9, 11, 13, 15});
29367 #endif
29370 __extension__ extern __inline int16x4_t
29371 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29372 vuzp2_s16 (int16x4_t __a, int16x4_t __b)
29374 #ifdef __AARCH64EB__
29375 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 6, 0, 2});
29376 #else
29377 return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 3, 5, 7});
29378 #endif
29381 __extension__ extern __inline int32x2_t
29382 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29383 vuzp2_s32 (int32x2_t __a, int32x2_t __b)
29385 #ifdef __AARCH64EB__
29386 return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
29387 #else
29388 return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
29389 #endif
29392 __extension__ extern __inline uint8x8_t
29393 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29394 vuzp2_u8 (uint8x8_t __a, uint8x8_t __b)
29396 #ifdef __AARCH64EB__
29397 return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 10, 12, 14, 0, 2, 4, 6});
29398 #else
29399 return __builtin_shuffle (__a, __b, (uint8x8_t) {1, 3, 5, 7, 9, 11, 13, 15});
29400 #endif
29403 __extension__ extern __inline uint16x4_t
29404 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29405 vuzp2_u16 (uint16x4_t __a, uint16x4_t __b)
29407 #ifdef __AARCH64EB__
29408 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 6, 0, 2});
29409 #else
29410 return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 3, 5, 7});
29411 #endif
29414 __extension__ extern __inline uint32x2_t
29415 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29416 vuzp2_u32 (uint32x2_t __a, uint32x2_t __b)
29418 #ifdef __AARCH64EB__
29419 return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
29420 #else
29421 return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
29422 #endif
29425 __extension__ extern __inline float16x8_t
29426 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29427 vuzp2q_f16 (float16x8_t __a, float16x8_t __b)
29429 #ifdef __AARCH64EB__
29430 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 10, 12, 14, 0, 2, 4, 6});
29431 #else
29432 return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 3, 5, 7, 9, 11, 13, 15});
29433 #endif
29436 __extension__ extern __inline float32x4_t
29437 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29438 vuzp2q_f32 (float32x4_t __a, float32x4_t __b)
29440 #ifdef __AARCH64EB__
29441 return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 6, 0, 2});
29442 #else
29443 return __builtin_shuffle (__a, __b, (uint32x4_t) {1, 3, 5, 7});
29444 #endif
29447 __extension__ extern __inline float64x2_t
29448 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29449 vuzp2q_f64 (float64x2_t __a, float64x2_t __b)
29451 #ifdef __AARCH64EB__
29452 return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
29453 #else
29454 return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
29455 #endif
29458 __extension__ extern __inline poly8x16_t
29459 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29460 vuzp2q_p8 (poly8x16_t __a, poly8x16_t __b)
29462 #ifdef __AARCH64EB__
29463 return __builtin_shuffle (__a, __b,
29464 (uint8x16_t) {16, 18, 20, 22, 24, 26, 28, 30, 0, 2, 4, 6, 8, 10, 12, 14});
29465 #else
29466 return __builtin_shuffle (__a, __b,
29467 (uint8x16_t) {1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31});
29468 #endif
29471 __extension__ extern __inline poly16x8_t
29472 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29473 vuzp2q_p16 (poly16x8_t __a, poly16x8_t __b)
29475 #ifdef __AARCH64EB__
29476 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 10, 12, 14, 0, 2, 4, 6});
29477 #else
29478 return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 3, 5, 7, 9, 11, 13, 15});
29479 #endif
29482 __extension__ extern __inline int8x16_t
29483 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29484 vuzp2q_s8 (int8x16_t __a, int8x16_t __b)
29486 #ifdef __AARCH64EB__
29487 return __builtin_shuffle (__a, __b,
29488 (uint8x16_t) {16, 18, 20, 22, 24, 26, 28, 30, 0, 2, 4, 6, 8, 10, 12, 14});
29489 #else
29490 return __builtin_shuffle (__a, __b,
29491 (uint8x16_t) {1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31});
29492 #endif
29495 __extension__ extern __inline int16x8_t
29496 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29497 vuzp2q_s16 (int16x8_t __a, int16x8_t __b)
29499 #ifdef __AARCH64EB__
29500 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 10, 12, 14, 0, 2, 4, 6});
29501 #else
29502 return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 3, 5, 7, 9, 11, 13, 15});
29503 #endif
29506 __extension__ extern __inline int32x4_t
29507 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29508 vuzp2q_s32 (int32x4_t __a, int32x4_t __b)
29510 #ifdef __AARCH64EB__
29511 return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 6, 0, 2});
29512 #else
29513 return __builtin_shuffle (__a, __b, (uint32x4_t) {1, 3, 5, 7});
29514 #endif
29517 __extension__ extern __inline int64x2_t
29518 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29519 vuzp2q_s64 (int64x2_t __a, int64x2_t __b)
29521 #ifdef __AARCH64EB__
29522 return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
29523 #else
29524 return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
29525 #endif
29528 __extension__ extern __inline uint8x16_t
29529 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29530 vuzp2q_u8 (uint8x16_t __a, uint8x16_t __b)
29532 #ifdef __AARCH64EB__
29533 return __builtin_shuffle (__a, __b, (uint8x16_t)
29534 {16, 18, 20, 22, 24, 26, 28, 30, 0, 2, 4, 6, 8, 10, 12, 14});
29535 #else
29536 return __builtin_shuffle (__a, __b, (uint8x16_t)
29537 {1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31});
29538 #endif
29541 __extension__ extern __inline uint16x8_t
29542 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29543 vuzp2q_u16 (uint16x8_t __a, uint16x8_t __b)
29545 #ifdef __AARCH64EB__
29546 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 10, 12, 14, 0, 2, 4, 6});
29547 #else
29548 return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 3, 5, 7, 9, 11, 13, 15});
29549 #endif
29552 __extension__ extern __inline uint32x4_t
29553 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29554 vuzp2q_u32 (uint32x4_t __a, uint32x4_t __b)
29556 #ifdef __AARCH64EB__
29557 return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 6, 0, 2});
29558 #else
29559 return __builtin_shuffle (__a, __b, (uint32x4_t) {1, 3, 5, 7});
29560 #endif
29563 __extension__ extern __inline uint64x2_t
29564 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29565 vuzp2q_u64 (uint64x2_t __a, uint64x2_t __b)
29567 #ifdef __AARCH64EB__
29568 return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
29569 #else
29570 return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
29571 #endif
29574 __INTERLEAVE_LIST (uzp)
29576 /* vzip */
29578 __extension__ extern __inline float16x4_t
29579 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29580 vzip1_f16 (float16x4_t __a, float16x4_t __b)
29582 #ifdef __AARCH64EB__
29583 return __builtin_shuffle (__a, __b, (uint16x4_t) {6, 2, 7, 3});
29584 #else
29585 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 1, 5});
29586 #endif
29589 __extension__ extern __inline float32x2_t
29590 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29591 vzip1_f32 (float32x2_t __a, float32x2_t __b)
29593 #ifdef __AARCH64EB__
29594 return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
29595 #else
29596 return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
29597 #endif
29600 __extension__ extern __inline poly8x8_t
29601 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29602 vzip1_p8 (poly8x8_t __a, poly8x8_t __b)
29604 #ifdef __AARCH64EB__
29605 return __builtin_shuffle (__a, __b, (uint8x8_t) {12, 4, 13, 5, 14, 6, 15, 7});
29606 #else
29607 return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 8, 1, 9, 2, 10, 3, 11});
29608 #endif
29611 __extension__ extern __inline poly16x4_t
29612 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29613 vzip1_p16 (poly16x4_t __a, poly16x4_t __b)
29615 #ifdef __AARCH64EB__
29616 return __builtin_shuffle (__a, __b, (uint16x4_t) {6, 2, 7, 3});
29617 #else
29618 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 1, 5});
29619 #endif
29622 __extension__ extern __inline int8x8_t
29623 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29624 vzip1_s8 (int8x8_t __a, int8x8_t __b)
29626 #ifdef __AARCH64EB__
29627 return __builtin_shuffle (__a, __b, (uint8x8_t) {12, 4, 13, 5, 14, 6, 15, 7});
29628 #else
29629 return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 8, 1, 9, 2, 10, 3, 11});
29630 #endif
29633 __extension__ extern __inline int16x4_t
29634 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29635 vzip1_s16 (int16x4_t __a, int16x4_t __b)
29637 #ifdef __AARCH64EB__
29638 return __builtin_shuffle (__a, __b, (uint16x4_t) {6, 2, 7, 3});
29639 #else
29640 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 1, 5});
29641 #endif
29644 __extension__ extern __inline int32x2_t
29645 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29646 vzip1_s32 (int32x2_t __a, int32x2_t __b)
29648 #ifdef __AARCH64EB__
29649 return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
29650 #else
29651 return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
29652 #endif
29655 __extension__ extern __inline uint8x8_t
29656 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29657 vzip1_u8 (uint8x8_t __a, uint8x8_t __b)
29659 #ifdef __AARCH64EB__
29660 return __builtin_shuffle (__a, __b, (uint8x8_t) {12, 4, 13, 5, 14, 6, 15, 7});
29661 #else
29662 return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 8, 1, 9, 2, 10, 3, 11});
29663 #endif
29666 __extension__ extern __inline uint16x4_t
29667 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29668 vzip1_u16 (uint16x4_t __a, uint16x4_t __b)
29670 #ifdef __AARCH64EB__
29671 return __builtin_shuffle (__a, __b, (uint16x4_t) {6, 2, 7, 3});
29672 #else
29673 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 1, 5});
29674 #endif
29677 __extension__ extern __inline uint32x2_t
29678 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29679 vzip1_u32 (uint32x2_t __a, uint32x2_t __b)
29681 #ifdef __AARCH64EB__
29682 return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
29683 #else
29684 return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
29685 #endif
29688 __extension__ extern __inline float16x8_t
29689 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29690 vzip1q_f16 (float16x8_t __a, float16x8_t __b)
29692 #ifdef __AARCH64EB__
29693 return __builtin_shuffle (__a, __b,
29694 (uint16x8_t) {12, 4, 13, 5, 14, 6, 15, 7});
29695 #else
29696 return __builtin_shuffle (__a, __b,
29697 (uint16x8_t) {0, 8, 1, 9, 2, 10, 3, 11});
29698 #endif
29701 __extension__ extern __inline float32x4_t
29702 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29703 vzip1q_f32 (float32x4_t __a, float32x4_t __b)
29705 #ifdef __AARCH64EB__
29706 return __builtin_shuffle (__a, __b, (uint32x4_t) {6, 2, 7, 3});
29707 #else
29708 return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 4, 1, 5});
29709 #endif
29712 __extension__ extern __inline float64x2_t
29713 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29714 vzip1q_f64 (float64x2_t __a, float64x2_t __b)
29716 #ifdef __AARCH64EB__
29717 return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
29718 #else
29719 return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
29720 #endif
29723 __extension__ extern __inline poly8x16_t
29724 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29725 vzip1q_p8 (poly8x16_t __a, poly8x16_t __b)
29727 #ifdef __AARCH64EB__
29728 return __builtin_shuffle (__a, __b, (uint8x16_t)
29729 {24, 8, 25, 9, 26, 10, 27, 11, 28, 12, 29, 13, 30, 14, 31, 15});
29730 #else
29731 return __builtin_shuffle (__a, __b, (uint8x16_t)
29732 {0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23});
29733 #endif
29736 __extension__ extern __inline poly16x8_t
29737 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29738 vzip1q_p16 (poly16x8_t __a, poly16x8_t __b)
29740 #ifdef __AARCH64EB__
29741 return __builtin_shuffle (__a, __b, (uint16x8_t)
29742 {12, 4, 13, 5, 14, 6, 15, 7});
29743 #else
29744 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 8, 1, 9, 2, 10, 3, 11});
29745 #endif
29748 __extension__ extern __inline int8x16_t
29749 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29750 vzip1q_s8 (int8x16_t __a, int8x16_t __b)
29752 #ifdef __AARCH64EB__
29753 return __builtin_shuffle (__a, __b, (uint8x16_t)
29754 {24, 8, 25, 9, 26, 10, 27, 11, 28, 12, 29, 13, 30, 14, 31, 15});
29755 #else
29756 return __builtin_shuffle (__a, __b, (uint8x16_t)
29757 {0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23});
29758 #endif
29761 __extension__ extern __inline int16x8_t
29762 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29763 vzip1q_s16 (int16x8_t __a, int16x8_t __b)
29765 #ifdef __AARCH64EB__
29766 return __builtin_shuffle (__a, __b, (uint16x8_t)
29767 {12, 4, 13, 5, 14, 6, 15, 7});
29768 #else
29769 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 8, 1, 9, 2, 10, 3, 11});
29770 #endif
29773 __extension__ extern __inline int32x4_t
29774 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29775 vzip1q_s32 (int32x4_t __a, int32x4_t __b)
29777 #ifdef __AARCH64EB__
29778 return __builtin_shuffle (__a, __b, (uint32x4_t) {6, 2, 7, 3});
29779 #else
29780 return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 4, 1, 5});
29781 #endif
29784 __extension__ extern __inline int64x2_t
29785 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29786 vzip1q_s64 (int64x2_t __a, int64x2_t __b)
29788 #ifdef __AARCH64EB__
29789 return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
29790 #else
29791 return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
29792 #endif
29795 __extension__ extern __inline uint8x16_t
29796 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29797 vzip1q_u8 (uint8x16_t __a, uint8x16_t __b)
29799 #ifdef __AARCH64EB__
29800 return __builtin_shuffle (__a, __b, (uint8x16_t)
29801 {24, 8, 25, 9, 26, 10, 27, 11, 28, 12, 29, 13, 30, 14, 31, 15});
29802 #else
29803 return __builtin_shuffle (__a, __b, (uint8x16_t)
29804 {0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23});
29805 #endif
29808 __extension__ extern __inline uint16x8_t
29809 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29810 vzip1q_u16 (uint16x8_t __a, uint16x8_t __b)
29812 #ifdef __AARCH64EB__
29813 return __builtin_shuffle (__a, __b, (uint16x8_t)
29814 {12, 4, 13, 5, 14, 6, 15, 7});
29815 #else
29816 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 8, 1, 9, 2, 10, 3, 11});
29817 #endif
29820 __extension__ extern __inline uint32x4_t
29821 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29822 vzip1q_u32 (uint32x4_t __a, uint32x4_t __b)
29824 #ifdef __AARCH64EB__
29825 return __builtin_shuffle (__a, __b, (uint32x4_t) {6, 2, 7, 3});
29826 #else
29827 return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 4, 1, 5});
29828 #endif
29831 __extension__ extern __inline uint64x2_t
29832 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29833 vzip1q_u64 (uint64x2_t __a, uint64x2_t __b)
29835 #ifdef __AARCH64EB__
29836 return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
29837 #else
29838 return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
29839 #endif
29842 __extension__ extern __inline float16x4_t
29843 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29844 vzip2_f16 (float16x4_t __a, float16x4_t __b)
29846 #ifdef __AARCH64EB__
29847 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 5, 1});
29848 #else
29849 return __builtin_shuffle (__a, __b, (uint16x4_t) {2, 6, 3, 7});
29850 #endif
29853 __extension__ extern __inline float32x2_t
29854 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29855 vzip2_f32 (float32x2_t __a, float32x2_t __b)
29857 #ifdef __AARCH64EB__
29858 return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
29859 #else
29860 return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
29861 #endif
29864 __extension__ extern __inline poly8x8_t
29865 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29866 vzip2_p8 (poly8x8_t __a, poly8x8_t __b)
29868 #ifdef __AARCH64EB__
29869 return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 0, 9, 1, 10, 2, 11, 3});
29870 #else
29871 return __builtin_shuffle (__a, __b, (uint8x8_t) {4, 12, 5, 13, 6, 14, 7, 15});
29872 #endif
29875 __extension__ extern __inline poly16x4_t
29876 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29877 vzip2_p16 (poly16x4_t __a, poly16x4_t __b)
29879 #ifdef __AARCH64EB__
29880 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 5, 1});
29881 #else
29882 return __builtin_shuffle (__a, __b, (uint16x4_t) {2, 6, 3, 7});
29883 #endif
29886 __extension__ extern __inline int8x8_t
29887 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29888 vzip2_s8 (int8x8_t __a, int8x8_t __b)
29890 #ifdef __AARCH64EB__
29891 return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 0, 9, 1, 10, 2, 11, 3});
29892 #else
29893 return __builtin_shuffle (__a, __b, (uint8x8_t) {4, 12, 5, 13, 6, 14, 7, 15});
29894 #endif
29897 __extension__ extern __inline int16x4_t
29898 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29899 vzip2_s16 (int16x4_t __a, int16x4_t __b)
29901 #ifdef __AARCH64EB__
29902 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 5, 1});
29903 #else
29904 return __builtin_shuffle (__a, __b, (uint16x4_t) {2, 6, 3, 7});
29905 #endif
29908 __extension__ extern __inline int32x2_t
29909 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29910 vzip2_s32 (int32x2_t __a, int32x2_t __b)
29912 #ifdef __AARCH64EB__
29913 return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
29914 #else
29915 return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
29916 #endif
29919 __extension__ extern __inline uint8x8_t
29920 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29921 vzip2_u8 (uint8x8_t __a, uint8x8_t __b)
29923 #ifdef __AARCH64EB__
29924 return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 0, 9, 1, 10, 2, 11, 3});
29925 #else
29926 return __builtin_shuffle (__a, __b, (uint8x8_t) {4, 12, 5, 13, 6, 14, 7, 15});
29927 #endif
29930 __extension__ extern __inline uint16x4_t
29931 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29932 vzip2_u16 (uint16x4_t __a, uint16x4_t __b)
29934 #ifdef __AARCH64EB__
29935 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 5, 1});
29936 #else
29937 return __builtin_shuffle (__a, __b, (uint16x4_t) {2, 6, 3, 7});
29938 #endif
29941 __extension__ extern __inline uint32x2_t
29942 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29943 vzip2_u32 (uint32x2_t __a, uint32x2_t __b)
29945 #ifdef __AARCH64EB__
29946 return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
29947 #else
29948 return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
29949 #endif
29952 __extension__ extern __inline float16x8_t
29953 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29954 vzip2q_f16 (float16x8_t __a, float16x8_t __b)
29956 #ifdef __AARCH64EB__
29957 return __builtin_shuffle (__a, __b,
29958 (uint16x8_t) {8, 0, 9, 1, 10, 2, 11, 3});
29959 #else
29960 return __builtin_shuffle (__a, __b,
29961 (uint16x8_t) {4, 12, 5, 13, 6, 14, 7, 15});
29962 #endif
29965 __extension__ extern __inline float32x4_t
29966 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29967 vzip2q_f32 (float32x4_t __a, float32x4_t __b)
29969 #ifdef __AARCH64EB__
29970 return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 0, 5, 1});
29971 #else
29972 return __builtin_shuffle (__a, __b, (uint32x4_t) {2, 6, 3, 7});
29973 #endif
29976 __extension__ extern __inline float64x2_t
29977 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29978 vzip2q_f64 (float64x2_t __a, float64x2_t __b)
29980 #ifdef __AARCH64EB__
29981 return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
29982 #else
29983 return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
29984 #endif
29987 __extension__ extern __inline poly8x16_t
29988 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29989 vzip2q_p8 (poly8x16_t __a, poly8x16_t __b)
29991 #ifdef __AARCH64EB__
29992 return __builtin_shuffle (__a, __b, (uint8x16_t)
29993 {16, 0, 17, 1, 18, 2, 19, 3, 20, 4, 21, 5, 22, 6, 23, 7});
29994 #else
29995 return __builtin_shuffle (__a, __b, (uint8x16_t)
29996 {8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31});
29997 #endif
30000 __extension__ extern __inline poly16x8_t
30001 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30002 vzip2q_p16 (poly16x8_t __a, poly16x8_t __b)
30004 #ifdef __AARCH64EB__
30005 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 0, 9, 1, 10, 2, 11, 3});
30006 #else
30007 return __builtin_shuffle (__a, __b, (uint16x8_t)
30008 {4, 12, 5, 13, 6, 14, 7, 15});
30009 #endif
30012 __extension__ extern __inline int8x16_t
30013 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30014 vzip2q_s8 (int8x16_t __a, int8x16_t __b)
30016 #ifdef __AARCH64EB__
30017 return __builtin_shuffle (__a, __b, (uint8x16_t)
30018 {16, 0, 17, 1, 18, 2, 19, 3, 20, 4, 21, 5, 22, 6, 23, 7});
30019 #else
30020 return __builtin_shuffle (__a, __b, (uint8x16_t)
30021 {8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31});
30022 #endif
30025 __extension__ extern __inline int16x8_t
30026 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30027 vzip2q_s16 (int16x8_t __a, int16x8_t __b)
30029 #ifdef __AARCH64EB__
30030 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 0, 9, 1, 10, 2, 11, 3});
30031 #else
30032 return __builtin_shuffle (__a, __b, (uint16x8_t)
30033 {4, 12, 5, 13, 6, 14, 7, 15});
30034 #endif
30037 __extension__ extern __inline int32x4_t
30038 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30039 vzip2q_s32 (int32x4_t __a, int32x4_t __b)
30041 #ifdef __AARCH64EB__
30042 return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 0, 5, 1});
30043 #else
30044 return __builtin_shuffle (__a, __b, (uint32x4_t) {2, 6, 3, 7});
30045 #endif
30048 __extension__ extern __inline int64x2_t
30049 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30050 vzip2q_s64 (int64x2_t __a, int64x2_t __b)
30052 #ifdef __AARCH64EB__
30053 return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
30054 #else
30055 return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
30056 #endif
30059 __extension__ extern __inline uint8x16_t
30060 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30061 vzip2q_u8 (uint8x16_t __a, uint8x16_t __b)
30063 #ifdef __AARCH64EB__
30064 return __builtin_shuffle (__a, __b, (uint8x16_t)
30065 {16, 0, 17, 1, 18, 2, 19, 3, 20, 4, 21, 5, 22, 6, 23, 7});
30066 #else
30067 return __builtin_shuffle (__a, __b, (uint8x16_t)
30068 {8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31});
30069 #endif
30072 __extension__ extern __inline uint16x8_t
30073 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30074 vzip2q_u16 (uint16x8_t __a, uint16x8_t __b)
30076 #ifdef __AARCH64EB__
30077 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 0, 9, 1, 10, 2, 11, 3});
30078 #else
30079 return __builtin_shuffle (__a, __b, (uint16x8_t)
30080 {4, 12, 5, 13, 6, 14, 7, 15});
30081 #endif
30084 __extension__ extern __inline uint32x4_t
30085 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30086 vzip2q_u32 (uint32x4_t __a, uint32x4_t __b)
30088 #ifdef __AARCH64EB__
30089 return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 0, 5, 1});
30090 #else
30091 return __builtin_shuffle (__a, __b, (uint32x4_t) {2, 6, 3, 7});
30092 #endif
30095 __extension__ extern __inline uint64x2_t
30096 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30097 vzip2q_u64 (uint64x2_t __a, uint64x2_t __b)
30099 #ifdef __AARCH64EB__
30100 return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
30101 #else
30102 return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
30103 #endif
30106 __INTERLEAVE_LIST (zip)
30108 #undef __INTERLEAVE_LIST
30109 #undef __DEFINTERLEAVE
30111 /* End of optimal implementations in approved order. */
30113 #pragma GCC pop_options
30115 /* ARMv8.2-A FP16 intrinsics. */
30117 #include "arm_fp16.h"
30119 #pragma GCC push_options
30120 #pragma GCC target ("arch=armv8.2-a+fp16")
30122 /* ARMv8.2-A FP16 one operand vector intrinsics. */
30124 __extension__ extern __inline float16x4_t
30125 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30126 vabs_f16 (float16x4_t __a)
30128 return __builtin_aarch64_absv4hf (__a);
30131 __extension__ extern __inline float16x8_t
30132 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30133 vabsq_f16 (float16x8_t __a)
30135 return __builtin_aarch64_absv8hf (__a);
30138 __extension__ extern __inline uint16x4_t
30139 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30140 vceqz_f16 (float16x4_t __a)
30142 return __builtin_aarch64_cmeqv4hf_uss (__a, vdup_n_f16 (0.0f));
30145 __extension__ extern __inline uint16x8_t
30146 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30147 vceqzq_f16 (float16x8_t __a)
30149 return __builtin_aarch64_cmeqv8hf_uss (__a, vdupq_n_f16 (0.0f));
30152 __extension__ extern __inline uint16x4_t
30153 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30154 vcgez_f16 (float16x4_t __a)
30156 return __builtin_aarch64_cmgev4hf_uss (__a, vdup_n_f16 (0.0f));
30159 __extension__ extern __inline uint16x8_t
30160 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30161 vcgezq_f16 (float16x8_t __a)
30163 return __builtin_aarch64_cmgev8hf_uss (__a, vdupq_n_f16 (0.0f));
30166 __extension__ extern __inline uint16x4_t
30167 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30168 vcgtz_f16 (float16x4_t __a)
30170 return __builtin_aarch64_cmgtv4hf_uss (__a, vdup_n_f16 (0.0f));
30173 __extension__ extern __inline uint16x8_t
30174 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30175 vcgtzq_f16 (float16x8_t __a)
30177 return __builtin_aarch64_cmgtv8hf_uss (__a, vdupq_n_f16 (0.0f));
30180 __extension__ extern __inline uint16x4_t
30181 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30182 vclez_f16 (float16x4_t __a)
30184 return __builtin_aarch64_cmlev4hf_uss (__a, vdup_n_f16 (0.0f));
30187 __extension__ extern __inline uint16x8_t
30188 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30189 vclezq_f16 (float16x8_t __a)
30191 return __builtin_aarch64_cmlev8hf_uss (__a, vdupq_n_f16 (0.0f));
30194 __extension__ extern __inline uint16x4_t
30195 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30196 vcltz_f16 (float16x4_t __a)
30198 return __builtin_aarch64_cmltv4hf_uss (__a, vdup_n_f16 (0.0f));
30201 __extension__ extern __inline uint16x8_t
30202 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30203 vcltzq_f16 (float16x8_t __a)
30205 return __builtin_aarch64_cmltv8hf_uss (__a, vdupq_n_f16 (0.0f));
30208 __extension__ extern __inline float16x4_t
30209 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30210 vcvt_f16_s16 (int16x4_t __a)
30212 return __builtin_aarch64_floatv4hiv4hf (__a);
30215 __extension__ extern __inline float16x8_t
30216 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30217 vcvtq_f16_s16 (int16x8_t __a)
30219 return __builtin_aarch64_floatv8hiv8hf (__a);
30222 __extension__ extern __inline float16x4_t
30223 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30224 vcvt_f16_u16 (uint16x4_t __a)
30226 return __builtin_aarch64_floatunsv4hiv4hf ((int16x4_t) __a);
30229 __extension__ extern __inline float16x8_t
30230 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30231 vcvtq_f16_u16 (uint16x8_t __a)
30233 return __builtin_aarch64_floatunsv8hiv8hf ((int16x8_t) __a);
30236 __extension__ extern __inline int16x4_t
30237 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30238 vcvt_s16_f16 (float16x4_t __a)
30240 return __builtin_aarch64_lbtruncv4hfv4hi (__a);
30243 __extension__ extern __inline int16x8_t
30244 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30245 vcvtq_s16_f16 (float16x8_t __a)
30247 return __builtin_aarch64_lbtruncv8hfv8hi (__a);
30250 __extension__ extern __inline uint16x4_t
30251 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30252 vcvt_u16_f16 (float16x4_t __a)
30254 return __builtin_aarch64_lbtruncuv4hfv4hi_us (__a);
30257 __extension__ extern __inline uint16x8_t
30258 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30259 vcvtq_u16_f16 (float16x8_t __a)
30261 return __builtin_aarch64_lbtruncuv8hfv8hi_us (__a);
30264 __extension__ extern __inline int16x4_t
30265 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30266 vcvta_s16_f16 (float16x4_t __a)
30268 return __builtin_aarch64_lroundv4hfv4hi (__a);
30271 __extension__ extern __inline int16x8_t
30272 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30273 vcvtaq_s16_f16 (float16x8_t __a)
30275 return __builtin_aarch64_lroundv8hfv8hi (__a);
30278 __extension__ extern __inline uint16x4_t
30279 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30280 vcvta_u16_f16 (float16x4_t __a)
30282 return __builtin_aarch64_lrounduv4hfv4hi_us (__a);
30285 __extension__ extern __inline uint16x8_t
30286 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30287 vcvtaq_u16_f16 (float16x8_t __a)
30289 return __builtin_aarch64_lrounduv8hfv8hi_us (__a);
30292 __extension__ extern __inline int16x4_t
30293 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30294 vcvtm_s16_f16 (float16x4_t __a)
30296 return __builtin_aarch64_lfloorv4hfv4hi (__a);
30299 __extension__ extern __inline int16x8_t
30300 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30301 vcvtmq_s16_f16 (float16x8_t __a)
30303 return __builtin_aarch64_lfloorv8hfv8hi (__a);
30306 __extension__ extern __inline uint16x4_t
30307 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30308 vcvtm_u16_f16 (float16x4_t __a)
30310 return __builtin_aarch64_lflooruv4hfv4hi_us (__a);
30313 __extension__ extern __inline uint16x8_t
30314 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30315 vcvtmq_u16_f16 (float16x8_t __a)
30317 return __builtin_aarch64_lflooruv8hfv8hi_us (__a);
30320 __extension__ extern __inline int16x4_t
30321 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30322 vcvtn_s16_f16 (float16x4_t __a)
30324 return __builtin_aarch64_lfrintnv4hfv4hi (__a);
30327 __extension__ extern __inline int16x8_t
30328 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30329 vcvtnq_s16_f16 (float16x8_t __a)
30331 return __builtin_aarch64_lfrintnv8hfv8hi (__a);
30334 __extension__ extern __inline uint16x4_t
30335 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30336 vcvtn_u16_f16 (float16x4_t __a)
30338 return __builtin_aarch64_lfrintnuv4hfv4hi_us (__a);
30341 __extension__ extern __inline uint16x8_t
30342 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30343 vcvtnq_u16_f16 (float16x8_t __a)
30345 return __builtin_aarch64_lfrintnuv8hfv8hi_us (__a);
30348 __extension__ extern __inline int16x4_t
30349 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30350 vcvtp_s16_f16 (float16x4_t __a)
30352 return __builtin_aarch64_lceilv4hfv4hi (__a);
30355 __extension__ extern __inline int16x8_t
30356 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30357 vcvtpq_s16_f16 (float16x8_t __a)
30359 return __builtin_aarch64_lceilv8hfv8hi (__a);
30362 __extension__ extern __inline uint16x4_t
30363 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30364 vcvtp_u16_f16 (float16x4_t __a)
30366 return __builtin_aarch64_lceiluv4hfv4hi_us (__a);
30369 __extension__ extern __inline uint16x8_t
30370 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30371 vcvtpq_u16_f16 (float16x8_t __a)
30373 return __builtin_aarch64_lceiluv8hfv8hi_us (__a);
30376 __extension__ extern __inline float16x4_t
30377 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30378 vneg_f16 (float16x4_t __a)
30380 return -__a;
30383 __extension__ extern __inline float16x8_t
30384 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30385 vnegq_f16 (float16x8_t __a)
30387 return -__a;
30390 __extension__ extern __inline float16x4_t
30391 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30392 vrecpe_f16 (float16x4_t __a)
30394 return __builtin_aarch64_frecpev4hf (__a);
30397 __extension__ extern __inline float16x8_t
30398 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30399 vrecpeq_f16 (float16x8_t __a)
30401 return __builtin_aarch64_frecpev8hf (__a);
30404 __extension__ extern __inline float16x4_t
30405 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30406 vrnd_f16 (float16x4_t __a)
30408 return __builtin_aarch64_btruncv4hf (__a);
30411 __extension__ extern __inline float16x8_t
30412 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30413 vrndq_f16 (float16x8_t __a)
30415 return __builtin_aarch64_btruncv8hf (__a);
30418 __extension__ extern __inline float16x4_t
30419 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30420 vrnda_f16 (float16x4_t __a)
30422 return __builtin_aarch64_roundv4hf (__a);
30425 __extension__ extern __inline float16x8_t
30426 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30427 vrndaq_f16 (float16x8_t __a)
30429 return __builtin_aarch64_roundv8hf (__a);
30432 __extension__ extern __inline float16x4_t
30433 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30434 vrndi_f16 (float16x4_t __a)
30436 return __builtin_aarch64_nearbyintv4hf (__a);
30439 __extension__ extern __inline float16x8_t
30440 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30441 vrndiq_f16 (float16x8_t __a)
30443 return __builtin_aarch64_nearbyintv8hf (__a);
30446 __extension__ extern __inline float16x4_t
30447 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30448 vrndm_f16 (float16x4_t __a)
30450 return __builtin_aarch64_floorv4hf (__a);
30453 __extension__ extern __inline float16x8_t
30454 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30455 vrndmq_f16 (float16x8_t __a)
30457 return __builtin_aarch64_floorv8hf (__a);
30460 __extension__ extern __inline float16x4_t
30461 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30462 vrndn_f16 (float16x4_t __a)
30464 return __builtin_aarch64_frintnv4hf (__a);
30467 __extension__ extern __inline float16x8_t
30468 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30469 vrndnq_f16 (float16x8_t __a)
30471 return __builtin_aarch64_frintnv8hf (__a);
30474 __extension__ extern __inline float16x4_t
30475 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30476 vrndp_f16 (float16x4_t __a)
30478 return __builtin_aarch64_ceilv4hf (__a);
30481 __extension__ extern __inline float16x8_t
30482 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30483 vrndpq_f16 (float16x8_t __a)
30485 return __builtin_aarch64_ceilv8hf (__a);
30488 __extension__ extern __inline float16x4_t
30489 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30490 vrndx_f16 (float16x4_t __a)
30492 return __builtin_aarch64_rintv4hf (__a);
30495 __extension__ extern __inline float16x8_t
30496 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30497 vrndxq_f16 (float16x8_t __a)
30499 return __builtin_aarch64_rintv8hf (__a);
30502 __extension__ extern __inline float16x4_t
30503 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30504 vrsqrte_f16 (float16x4_t a)
30506 return __builtin_aarch64_rsqrtev4hf (a);
30509 __extension__ extern __inline float16x8_t
30510 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30511 vrsqrteq_f16 (float16x8_t a)
30513 return __builtin_aarch64_rsqrtev8hf (a);
30516 __extension__ extern __inline float16x4_t
30517 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30518 vsqrt_f16 (float16x4_t a)
30520 return __builtin_aarch64_sqrtv4hf (a);
30523 __extension__ extern __inline float16x8_t
30524 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30525 vsqrtq_f16 (float16x8_t a)
30527 return __builtin_aarch64_sqrtv8hf (a);
30530 /* ARMv8.2-A FP16 two operands vector intrinsics. */
30532 __extension__ extern __inline float16x4_t
30533 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30534 vadd_f16 (float16x4_t __a, float16x4_t __b)
30536 return __a + __b;
30539 __extension__ extern __inline float16x8_t
30540 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30541 vaddq_f16 (float16x8_t __a, float16x8_t __b)
30543 return __a + __b;
30546 __extension__ extern __inline float16x4_t
30547 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30548 vabd_f16 (float16x4_t a, float16x4_t b)
30550 return __builtin_aarch64_fabdv4hf (a, b);
30553 __extension__ extern __inline float16x8_t
30554 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30555 vabdq_f16 (float16x8_t a, float16x8_t b)
30557 return __builtin_aarch64_fabdv8hf (a, b);
30560 __extension__ extern __inline uint16x4_t
30561 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30562 vcage_f16 (float16x4_t __a, float16x4_t __b)
30564 return __builtin_aarch64_facgev4hf_uss (__a, __b);
30567 __extension__ extern __inline uint16x8_t
30568 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30569 vcageq_f16 (float16x8_t __a, float16x8_t __b)
30571 return __builtin_aarch64_facgev8hf_uss (__a, __b);
30574 __extension__ extern __inline uint16x4_t
30575 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30576 vcagt_f16 (float16x4_t __a, float16x4_t __b)
30578 return __builtin_aarch64_facgtv4hf_uss (__a, __b);
30581 __extension__ extern __inline uint16x8_t
30582 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30583 vcagtq_f16 (float16x8_t __a, float16x8_t __b)
30585 return __builtin_aarch64_facgtv8hf_uss (__a, __b);
30588 __extension__ extern __inline uint16x4_t
30589 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30590 vcale_f16 (float16x4_t __a, float16x4_t __b)
30592 return __builtin_aarch64_faclev4hf_uss (__a, __b);
30595 __extension__ extern __inline uint16x8_t
30596 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30597 vcaleq_f16 (float16x8_t __a, float16x8_t __b)
30599 return __builtin_aarch64_faclev8hf_uss (__a, __b);
30602 __extension__ extern __inline uint16x4_t
30603 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30604 vcalt_f16 (float16x4_t __a, float16x4_t __b)
30606 return __builtin_aarch64_facltv4hf_uss (__a, __b);
30609 __extension__ extern __inline uint16x8_t
30610 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30611 vcaltq_f16 (float16x8_t __a, float16x8_t __b)
30613 return __builtin_aarch64_facltv8hf_uss (__a, __b);
30616 __extension__ extern __inline uint16x4_t
30617 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30618 vceq_f16 (float16x4_t __a, float16x4_t __b)
30620 return __builtin_aarch64_cmeqv4hf_uss (__a, __b);
30623 __extension__ extern __inline uint16x8_t
30624 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30625 vceqq_f16 (float16x8_t __a, float16x8_t __b)
30627 return __builtin_aarch64_cmeqv8hf_uss (__a, __b);
30630 __extension__ extern __inline uint16x4_t
30631 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30632 vcge_f16 (float16x4_t __a, float16x4_t __b)
30634 return __builtin_aarch64_cmgev4hf_uss (__a, __b);
30637 __extension__ extern __inline uint16x8_t
30638 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30639 vcgeq_f16 (float16x8_t __a, float16x8_t __b)
30641 return __builtin_aarch64_cmgev8hf_uss (__a, __b);
30644 __extension__ extern __inline uint16x4_t
30645 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30646 vcgt_f16 (float16x4_t __a, float16x4_t __b)
30648 return __builtin_aarch64_cmgtv4hf_uss (__a, __b);
30651 __extension__ extern __inline uint16x8_t
30652 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30653 vcgtq_f16 (float16x8_t __a, float16x8_t __b)
30655 return __builtin_aarch64_cmgtv8hf_uss (__a, __b);
30658 __extension__ extern __inline uint16x4_t
30659 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30660 vcle_f16 (float16x4_t __a, float16x4_t __b)
30662 return __builtin_aarch64_cmlev4hf_uss (__a, __b);
30665 __extension__ extern __inline uint16x8_t
30666 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30667 vcleq_f16 (float16x8_t __a, float16x8_t __b)
30669 return __builtin_aarch64_cmlev8hf_uss (__a, __b);
30672 __extension__ extern __inline uint16x4_t
30673 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30674 vclt_f16 (float16x4_t __a, float16x4_t __b)
30676 return __builtin_aarch64_cmltv4hf_uss (__a, __b);
30679 __extension__ extern __inline uint16x8_t
30680 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30681 vcltq_f16 (float16x8_t __a, float16x8_t __b)
30683 return __builtin_aarch64_cmltv8hf_uss (__a, __b);
30686 __extension__ extern __inline float16x4_t
30687 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30688 vcvt_n_f16_s16 (int16x4_t __a, const int __b)
30690 return __builtin_aarch64_scvtfv4hi (__a, __b);
30693 __extension__ extern __inline float16x8_t
30694 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30695 vcvtq_n_f16_s16 (int16x8_t __a, const int __b)
30697 return __builtin_aarch64_scvtfv8hi (__a, __b);
30700 __extension__ extern __inline float16x4_t
30701 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30702 vcvt_n_f16_u16 (uint16x4_t __a, const int __b)
30704 return __builtin_aarch64_ucvtfv4hi_sus (__a, __b);
30707 __extension__ extern __inline float16x8_t
30708 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30709 vcvtq_n_f16_u16 (uint16x8_t __a, const int __b)
30711 return __builtin_aarch64_ucvtfv8hi_sus (__a, __b);
30714 __extension__ extern __inline int16x4_t
30715 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30716 vcvt_n_s16_f16 (float16x4_t __a, const int __b)
30718 return __builtin_aarch64_fcvtzsv4hf (__a, __b);
30721 __extension__ extern __inline int16x8_t
30722 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30723 vcvtq_n_s16_f16 (float16x8_t __a, const int __b)
30725 return __builtin_aarch64_fcvtzsv8hf (__a, __b);
30728 __extension__ extern __inline uint16x4_t
30729 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30730 vcvt_n_u16_f16 (float16x4_t __a, const int __b)
30732 return __builtin_aarch64_fcvtzuv4hf_uss (__a, __b);
30735 __extension__ extern __inline uint16x8_t
30736 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30737 vcvtq_n_u16_f16 (float16x8_t __a, const int __b)
30739 return __builtin_aarch64_fcvtzuv8hf_uss (__a, __b);
30742 __extension__ extern __inline float16x4_t
30743 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30744 vdiv_f16 (float16x4_t __a, float16x4_t __b)
30746 return __a / __b;
30749 __extension__ extern __inline float16x8_t
30750 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30751 vdivq_f16 (float16x8_t __a, float16x8_t __b)
30753 return __a / __b;
30756 __extension__ extern __inline float16x4_t
30757 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30758 vmax_f16 (float16x4_t __a, float16x4_t __b)
30760 return __builtin_aarch64_smax_nanv4hf (__a, __b);
30763 __extension__ extern __inline float16x8_t
30764 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30765 vmaxq_f16 (float16x8_t __a, float16x8_t __b)
30767 return __builtin_aarch64_smax_nanv8hf (__a, __b);
30770 __extension__ extern __inline float16x4_t
30771 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30772 vmaxnm_f16 (float16x4_t __a, float16x4_t __b)
30774 return __builtin_aarch64_fmaxv4hf (__a, __b);
30777 __extension__ extern __inline float16x8_t
30778 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30779 vmaxnmq_f16 (float16x8_t __a, float16x8_t __b)
30781 return __builtin_aarch64_fmaxv8hf (__a, __b);
30784 __extension__ extern __inline float16x4_t
30785 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30786 vmin_f16 (float16x4_t __a, float16x4_t __b)
30788 return __builtin_aarch64_smin_nanv4hf (__a, __b);
30791 __extension__ extern __inline float16x8_t
30792 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30793 vminq_f16 (float16x8_t __a, float16x8_t __b)
30795 return __builtin_aarch64_smin_nanv8hf (__a, __b);
30798 __extension__ extern __inline float16x4_t
30799 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30800 vminnm_f16 (float16x4_t __a, float16x4_t __b)
30802 return __builtin_aarch64_fminv4hf (__a, __b);
30805 __extension__ extern __inline float16x8_t
30806 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30807 vminnmq_f16 (float16x8_t __a, float16x8_t __b)
30809 return __builtin_aarch64_fminv8hf (__a, __b);
30812 __extension__ extern __inline float16x4_t
30813 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30814 vmul_f16 (float16x4_t __a, float16x4_t __b)
30816 return __a * __b;
30819 __extension__ extern __inline float16x8_t
30820 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30821 vmulq_f16 (float16x8_t __a, float16x8_t __b)
30823 return __a * __b;
30826 __extension__ extern __inline float16x4_t
30827 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30828 vmulx_f16 (float16x4_t __a, float16x4_t __b)
30830 return __builtin_aarch64_fmulxv4hf (__a, __b);
30833 __extension__ extern __inline float16x8_t
30834 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30835 vmulxq_f16 (float16x8_t __a, float16x8_t __b)
30837 return __builtin_aarch64_fmulxv8hf (__a, __b);
30840 __extension__ extern __inline float16x4_t
30841 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30842 vpadd_f16 (float16x4_t a, float16x4_t b)
30844 return __builtin_aarch64_faddpv4hf (a, b);
30847 __extension__ extern __inline float16x8_t
30848 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30849 vpaddq_f16 (float16x8_t a, float16x8_t b)
30851 return __builtin_aarch64_faddpv8hf (a, b);
30854 __extension__ extern __inline float16x4_t
30855 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30856 vpmax_f16 (float16x4_t a, float16x4_t b)
30858 return __builtin_aarch64_smax_nanpv4hf (a, b);
30861 __extension__ extern __inline float16x8_t
30862 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30863 vpmaxq_f16 (float16x8_t a, float16x8_t b)
30865 return __builtin_aarch64_smax_nanpv8hf (a, b);
30868 __extension__ extern __inline float16x4_t
30869 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30870 vpmaxnm_f16 (float16x4_t a, float16x4_t b)
30872 return __builtin_aarch64_smaxpv4hf (a, b);
30875 __extension__ extern __inline float16x8_t
30876 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30877 vpmaxnmq_f16 (float16x8_t a, float16x8_t b)
30879 return __builtin_aarch64_smaxpv8hf (a, b);
30882 __extension__ extern __inline float16x4_t
30883 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30884 vpmin_f16 (float16x4_t a, float16x4_t b)
30886 return __builtin_aarch64_smin_nanpv4hf (a, b);
30889 __extension__ extern __inline float16x8_t
30890 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30891 vpminq_f16 (float16x8_t a, float16x8_t b)
30893 return __builtin_aarch64_smin_nanpv8hf (a, b);
30896 __extension__ extern __inline float16x4_t
30897 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30898 vpminnm_f16 (float16x4_t a, float16x4_t b)
30900 return __builtin_aarch64_sminpv4hf (a, b);
30903 __extension__ extern __inline float16x8_t
30904 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30905 vpminnmq_f16 (float16x8_t a, float16x8_t b)
30907 return __builtin_aarch64_sminpv8hf (a, b);
30910 __extension__ extern __inline float16x4_t
30911 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30912 vrecps_f16 (float16x4_t __a, float16x4_t __b)
30914 return __builtin_aarch64_frecpsv4hf (__a, __b);
30917 __extension__ extern __inline float16x8_t
30918 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30919 vrecpsq_f16 (float16x8_t __a, float16x8_t __b)
30921 return __builtin_aarch64_frecpsv8hf (__a, __b);
30924 __extension__ extern __inline float16x4_t
30925 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30926 vrsqrts_f16 (float16x4_t a, float16x4_t b)
30928 return __builtin_aarch64_rsqrtsv4hf (a, b);
30931 __extension__ extern __inline float16x8_t
30932 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30933 vrsqrtsq_f16 (float16x8_t a, float16x8_t b)
30935 return __builtin_aarch64_rsqrtsv8hf (a, b);
30938 __extension__ extern __inline float16x4_t
30939 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30940 vsub_f16 (float16x4_t __a, float16x4_t __b)
30942 return __a - __b;
30945 __extension__ extern __inline float16x8_t
30946 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30947 vsubq_f16 (float16x8_t __a, float16x8_t __b)
30949 return __a - __b;
30952 /* ARMv8.2-A FP16 three operands vector intrinsics. */
30954 __extension__ extern __inline float16x4_t
30955 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30956 vfma_f16 (float16x4_t __a, float16x4_t __b, float16x4_t __c)
30958 return __builtin_aarch64_fmav4hf (__b, __c, __a);
30961 __extension__ extern __inline float16x8_t
30962 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30963 vfmaq_f16 (float16x8_t __a, float16x8_t __b, float16x8_t __c)
30965 return __builtin_aarch64_fmav8hf (__b, __c, __a);
30968 __extension__ extern __inline float16x4_t
30969 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30970 vfms_f16 (float16x4_t __a, float16x4_t __b, float16x4_t __c)
30972 return __builtin_aarch64_fnmav4hf (__b, __c, __a);
30975 __extension__ extern __inline float16x8_t
30976 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30977 vfmsq_f16 (float16x8_t __a, float16x8_t __b, float16x8_t __c)
30979 return __builtin_aarch64_fnmav8hf (__b, __c, __a);
30982 /* ARMv8.2-A FP16 lane vector intrinsics. */
30984 __extension__ extern __inline float16_t
30985 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30986 vfmah_lane_f16 (float16_t __a, float16_t __b,
30987 float16x4_t __c, const int __lane)
30989 return vfmah_f16 (__a, __b, __aarch64_vget_lane_any (__c, __lane));
30992 __extension__ extern __inline float16_t
30993 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30994 vfmah_laneq_f16 (float16_t __a, float16_t __b,
30995 float16x8_t __c, const int __lane)
30997 return vfmah_f16 (__a, __b, __aarch64_vget_lane_any (__c, __lane));
31000 __extension__ extern __inline float16x4_t
31001 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31002 vfma_lane_f16 (float16x4_t __a, float16x4_t __b,
31003 float16x4_t __c, const int __lane)
31005 return vfma_f16 (__a, __b, __aarch64_vdup_lane_f16 (__c, __lane));
31008 __extension__ extern __inline float16x8_t
31009 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31010 vfmaq_lane_f16 (float16x8_t __a, float16x8_t __b,
31011 float16x4_t __c, const int __lane)
31013 return vfmaq_f16 (__a, __b, __aarch64_vdupq_lane_f16 (__c, __lane));
31016 __extension__ extern __inline float16x4_t
31017 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31018 vfma_laneq_f16 (float16x4_t __a, float16x4_t __b,
31019 float16x8_t __c, const int __lane)
31021 return vfma_f16 (__a, __b, __aarch64_vdup_laneq_f16 (__c, __lane));
31024 __extension__ extern __inline float16x8_t
31025 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31026 vfmaq_laneq_f16 (float16x8_t __a, float16x8_t __b,
31027 float16x8_t __c, const int __lane)
31029 return vfmaq_f16 (__a, __b, __aarch64_vdupq_laneq_f16 (__c, __lane));
31032 __extension__ extern __inline float16x4_t
31033 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31034 vfma_n_f16 (float16x4_t __a, float16x4_t __b, float16_t __c)
31036 return vfma_f16 (__a, __b, vdup_n_f16 (__c));
31039 __extension__ extern __inline float16x8_t
31040 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31041 vfmaq_n_f16 (float16x8_t __a, float16x8_t __b, float16_t __c)
31043 return vfmaq_f16 (__a, __b, vdupq_n_f16 (__c));
31046 __extension__ extern __inline float16_t
31047 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31048 vfmsh_lane_f16 (float16_t __a, float16_t __b,
31049 float16x4_t __c, const int __lane)
31051 return vfmsh_f16 (__a, __b, __aarch64_vget_lane_any (__c, __lane));
31054 __extension__ extern __inline float16_t
31055 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31056 vfmsh_laneq_f16 (float16_t __a, float16_t __b,
31057 float16x8_t __c, const int __lane)
31059 return vfmsh_f16 (__a, __b, __aarch64_vget_lane_any (__c, __lane));
31062 __extension__ extern __inline float16x4_t
31063 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31064 vfms_lane_f16 (float16x4_t __a, float16x4_t __b,
31065 float16x4_t __c, const int __lane)
31067 return vfms_f16 (__a, __b, __aarch64_vdup_lane_f16 (__c, __lane));
31070 __extension__ extern __inline float16x8_t
31071 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31072 vfmsq_lane_f16 (float16x8_t __a, float16x8_t __b,
31073 float16x4_t __c, const int __lane)
31075 return vfmsq_f16 (__a, __b, __aarch64_vdupq_lane_f16 (__c, __lane));
31078 __extension__ extern __inline float16x4_t
31079 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31080 vfms_laneq_f16 (float16x4_t __a, float16x4_t __b,
31081 float16x8_t __c, const int __lane)
31083 return vfms_f16 (__a, __b, __aarch64_vdup_laneq_f16 (__c, __lane));
31086 __extension__ extern __inline float16x8_t
31087 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31088 vfmsq_laneq_f16 (float16x8_t __a, float16x8_t __b,
31089 float16x8_t __c, const int __lane)
31091 return vfmsq_f16 (__a, __b, __aarch64_vdupq_laneq_f16 (__c, __lane));
31094 __extension__ extern __inline float16x4_t
31095 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31096 vfms_n_f16 (float16x4_t __a, float16x4_t __b, float16_t __c)
31098 return vfms_f16 (__a, __b, vdup_n_f16 (__c));
31101 __extension__ extern __inline float16x8_t
31102 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31103 vfmsq_n_f16 (float16x8_t __a, float16x8_t __b, float16_t __c)
31105 return vfmsq_f16 (__a, __b, vdupq_n_f16 (__c));
31108 __extension__ extern __inline float16_t
31109 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31110 vmulh_lane_f16 (float16_t __a, float16x4_t __b, const int __lane)
31112 return __a * __aarch64_vget_lane_any (__b, __lane);
31115 __extension__ extern __inline float16x4_t
31116 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31117 vmul_lane_f16 (float16x4_t __a, float16x4_t __b, const int __lane)
31119 return vmul_f16 (__a, vdup_n_f16 (__aarch64_vget_lane_any (__b, __lane)));
31122 __extension__ extern __inline float16x8_t
31123 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31124 vmulq_lane_f16 (float16x8_t __a, float16x4_t __b, const int __lane)
31126 return vmulq_f16 (__a, vdupq_n_f16 (__aarch64_vget_lane_any (__b, __lane)));
31129 __extension__ extern __inline float16_t
31130 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31131 vmulh_laneq_f16 (float16_t __a, float16x8_t __b, const int __lane)
31133 return __a * __aarch64_vget_lane_any (__b, __lane);
31136 __extension__ extern __inline float16x4_t
31137 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31138 vmul_laneq_f16 (float16x4_t __a, float16x8_t __b, const int __lane)
31140 return vmul_f16 (__a, vdup_n_f16 (__aarch64_vget_lane_any (__b, __lane)));
31143 __extension__ extern __inline float16x8_t
31144 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31145 vmulq_laneq_f16 (float16x8_t __a, float16x8_t __b, const int __lane)
31147 return vmulq_f16 (__a, vdupq_n_f16 (__aarch64_vget_lane_any (__b, __lane)));
31150 __extension__ extern __inline float16x4_t
31151 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31152 vmul_n_f16 (float16x4_t __a, float16_t __b)
31154 return vmul_lane_f16 (__a, vdup_n_f16 (__b), 0);
31157 __extension__ extern __inline float16x8_t
31158 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31159 vmulq_n_f16 (float16x8_t __a, float16_t __b)
31161 return vmulq_laneq_f16 (__a, vdupq_n_f16 (__b), 0);
31164 __extension__ extern __inline float16_t
31165 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31166 vmulxh_lane_f16 (float16_t __a, float16x4_t __b, const int __lane)
31168 return vmulxh_f16 (__a, __aarch64_vget_lane_any (__b, __lane));
31171 __extension__ extern __inline float16x4_t
31172 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31173 vmulx_lane_f16 (float16x4_t __a, float16x4_t __b, const int __lane)
31175 return vmulx_f16 (__a, __aarch64_vdup_lane_f16 (__b, __lane));
31178 __extension__ extern __inline float16x8_t
31179 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31180 vmulxq_lane_f16 (float16x8_t __a, float16x4_t __b, const int __lane)
31182 return vmulxq_f16 (__a, __aarch64_vdupq_lane_f16 (__b, __lane));
31185 __extension__ extern __inline float16_t
31186 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31187 vmulxh_laneq_f16 (float16_t __a, float16x8_t __b, const int __lane)
31189 return vmulxh_f16 (__a, __aarch64_vget_lane_any (__b, __lane));
31192 __extension__ extern __inline float16x4_t
31193 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31194 vmulx_laneq_f16 (float16x4_t __a, float16x8_t __b, const int __lane)
31196 return vmulx_f16 (__a, __aarch64_vdup_laneq_f16 (__b, __lane));
31199 __extension__ extern __inline float16x8_t
31200 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31201 vmulxq_laneq_f16 (float16x8_t __a, float16x8_t __b, const int __lane)
31203 return vmulxq_f16 (__a, __aarch64_vdupq_laneq_f16 (__b, __lane));
31206 __extension__ extern __inline float16x4_t
31207 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31208 vmulx_n_f16 (float16x4_t __a, float16_t __b)
31210 return vmulx_f16 (__a, vdup_n_f16 (__b));
31213 __extension__ extern __inline float16x8_t
31214 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31215 vmulxq_n_f16 (float16x8_t __a, float16_t __b)
31217 return vmulxq_f16 (__a, vdupq_n_f16 (__b));
31220 /* ARMv8.2-A FP16 reduction vector intrinsics. */
31222 __extension__ extern __inline float16_t
31223 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31224 vmaxv_f16 (float16x4_t __a)
31226 return __builtin_aarch64_reduc_smax_nan_scal_v4hf (__a);
31229 __extension__ extern __inline float16_t
31230 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31231 vmaxvq_f16 (float16x8_t __a)
31233 return __builtin_aarch64_reduc_smax_nan_scal_v8hf (__a);
31236 __extension__ extern __inline float16_t
31237 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31238 vminv_f16 (float16x4_t __a)
31240 return __builtin_aarch64_reduc_smin_nan_scal_v4hf (__a);
31243 __extension__ extern __inline float16_t
31244 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31245 vminvq_f16 (float16x8_t __a)
31247 return __builtin_aarch64_reduc_smin_nan_scal_v8hf (__a);
31250 __extension__ extern __inline float16_t
31251 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31252 vmaxnmv_f16 (float16x4_t __a)
31254 return __builtin_aarch64_reduc_smax_scal_v4hf (__a);
31257 __extension__ extern __inline float16_t
31258 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31259 vmaxnmvq_f16 (float16x8_t __a)
31261 return __builtin_aarch64_reduc_smax_scal_v8hf (__a);
31264 __extension__ extern __inline float16_t
31265 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31266 vminnmv_f16 (float16x4_t __a)
31268 return __builtin_aarch64_reduc_smin_scal_v4hf (__a);
31271 __extension__ extern __inline float16_t
31272 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31273 vminnmvq_f16 (float16x8_t __a)
31275 return __builtin_aarch64_reduc_smin_scal_v8hf (__a);
31278 #pragma GCC pop_options
31280 #undef __aarch64_vget_lane_any
31282 #undef __aarch64_vdup_lane_any
31283 #undef __aarch64_vdup_lane_f16
31284 #undef __aarch64_vdup_lane_f32
31285 #undef __aarch64_vdup_lane_f64
31286 #undef __aarch64_vdup_lane_p8
31287 #undef __aarch64_vdup_lane_p16
31288 #undef __aarch64_vdup_lane_s8
31289 #undef __aarch64_vdup_lane_s16
31290 #undef __aarch64_vdup_lane_s32
31291 #undef __aarch64_vdup_lane_s64
31292 #undef __aarch64_vdup_lane_u8
31293 #undef __aarch64_vdup_lane_u16
31294 #undef __aarch64_vdup_lane_u32
31295 #undef __aarch64_vdup_lane_u64
31296 #undef __aarch64_vdup_laneq_f16
31297 #undef __aarch64_vdup_laneq_f32
31298 #undef __aarch64_vdup_laneq_f64
31299 #undef __aarch64_vdup_laneq_p8
31300 #undef __aarch64_vdup_laneq_p16
31301 #undef __aarch64_vdup_laneq_s8
31302 #undef __aarch64_vdup_laneq_s16
31303 #undef __aarch64_vdup_laneq_s32
31304 #undef __aarch64_vdup_laneq_s64
31305 #undef __aarch64_vdup_laneq_u8
31306 #undef __aarch64_vdup_laneq_u16
31307 #undef __aarch64_vdup_laneq_u32
31308 #undef __aarch64_vdup_laneq_u64
31309 #undef __aarch64_vdupq_lane_f16
31310 #undef __aarch64_vdupq_lane_f32
31311 #undef __aarch64_vdupq_lane_f64
31312 #undef __aarch64_vdupq_lane_p8
31313 #undef __aarch64_vdupq_lane_p16
31314 #undef __aarch64_vdupq_lane_s8
31315 #undef __aarch64_vdupq_lane_s16
31316 #undef __aarch64_vdupq_lane_s32
31317 #undef __aarch64_vdupq_lane_s64
31318 #undef __aarch64_vdupq_lane_u8
31319 #undef __aarch64_vdupq_lane_u16
31320 #undef __aarch64_vdupq_lane_u32
31321 #undef __aarch64_vdupq_lane_u64
31322 #undef __aarch64_vdupq_laneq_f16
31323 #undef __aarch64_vdupq_laneq_f32
31324 #undef __aarch64_vdupq_laneq_f64
31325 #undef __aarch64_vdupq_laneq_p8
31326 #undef __aarch64_vdupq_laneq_p16
31327 #undef __aarch64_vdupq_laneq_s8
31328 #undef __aarch64_vdupq_laneq_s16
31329 #undef __aarch64_vdupq_laneq_s32
31330 #undef __aarch64_vdupq_laneq_s64
31331 #undef __aarch64_vdupq_laneq_u8
31332 #undef __aarch64_vdupq_laneq_u16
31333 #undef __aarch64_vdupq_laneq_u32
31334 #undef __aarch64_vdupq_laneq_u64
31336 #endif