Fix version check for ATTRIBUTE_GCC_DUMP_PRINTF
[official-gcc.git] / gcc / config / aarch64 / arm_neon.h
blob2d18400040f031dfcdaf60269ad484647804e1be
1 /* ARM NEON intrinsics include file.
3 Copyright (C) 2011-2018 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 poly8x16_t
3510 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3511 vreinterpretq_p8_p128 (poly128_t __a)
3513 return (poly8x16_t)__a;
3516 __extension__ extern __inline poly16x4_t
3517 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3518 vreinterpret_p16_f16 (float16x4_t __a)
3520 return (poly16x4_t) __a;
3523 __extension__ extern __inline poly16x4_t
3524 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3525 vreinterpret_p16_f64 (float64x1_t __a)
3527 return (poly16x4_t) __a;
3530 __extension__ extern __inline poly16x4_t
3531 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3532 vreinterpret_p16_s8 (int8x8_t __a)
3534 return (poly16x4_t) __a;
3537 __extension__ extern __inline poly16x4_t
3538 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3539 vreinterpret_p16_s16 (int16x4_t __a)
3541 return (poly16x4_t) __a;
3544 __extension__ extern __inline poly16x4_t
3545 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3546 vreinterpret_p16_s32 (int32x2_t __a)
3548 return (poly16x4_t) __a;
3551 __extension__ extern __inline poly16x4_t
3552 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3553 vreinterpret_p16_s64 (int64x1_t __a)
3555 return (poly16x4_t) __a;
3558 __extension__ extern __inline poly16x4_t
3559 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3560 vreinterpret_p16_f32 (float32x2_t __a)
3562 return (poly16x4_t) __a;
3565 __extension__ extern __inline poly16x4_t
3566 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3567 vreinterpret_p16_u8 (uint8x8_t __a)
3569 return (poly16x4_t) __a;
3572 __extension__ extern __inline poly16x4_t
3573 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3574 vreinterpret_p16_u16 (uint16x4_t __a)
3576 return (poly16x4_t) __a;
3579 __extension__ extern __inline poly16x4_t
3580 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3581 vreinterpret_p16_u32 (uint32x2_t __a)
3583 return (poly16x4_t) __a;
3586 __extension__ extern __inline poly16x4_t
3587 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3588 vreinterpret_p16_u64 (uint64x1_t __a)
3590 return (poly16x4_t) __a;
3593 __extension__ extern __inline poly16x4_t
3594 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3595 vreinterpret_p16_p8 (poly8x8_t __a)
3597 return (poly16x4_t) __a;
3600 __extension__ extern __inline poly16x4_t
3601 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3602 vreinterpret_p16_p64 (poly64x1_t __a)
3604 return (poly16x4_t) __a;
3607 __extension__ extern __inline poly16x8_t
3608 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3609 vreinterpretq_p16_f64 (float64x2_t __a)
3611 return (poly16x8_t) __a;
3614 __extension__ extern __inline poly16x8_t
3615 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3616 vreinterpretq_p16_s8 (int8x16_t __a)
3618 return (poly16x8_t) __a;
3621 __extension__ extern __inline poly16x8_t
3622 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3623 vreinterpretq_p16_s16 (int16x8_t __a)
3625 return (poly16x8_t) __a;
3628 __extension__ extern __inline poly16x8_t
3629 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3630 vreinterpretq_p16_s32 (int32x4_t __a)
3632 return (poly16x8_t) __a;
3635 __extension__ extern __inline poly16x8_t
3636 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3637 vreinterpretq_p16_s64 (int64x2_t __a)
3639 return (poly16x8_t) __a;
3642 __extension__ extern __inline poly16x8_t
3643 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3644 vreinterpretq_p16_f16 (float16x8_t __a)
3646 return (poly16x8_t) __a;
3649 __extension__ extern __inline poly16x8_t
3650 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3651 vreinterpretq_p16_f32 (float32x4_t __a)
3653 return (poly16x8_t) __a;
3656 __extension__ extern __inline poly16x8_t
3657 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3658 vreinterpretq_p16_u8 (uint8x16_t __a)
3660 return (poly16x8_t) __a;
3663 __extension__ extern __inline poly16x8_t
3664 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3665 vreinterpretq_p16_u16 (uint16x8_t __a)
3667 return (poly16x8_t) __a;
3670 __extension__ extern __inline poly16x8_t
3671 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3672 vreinterpretq_p16_u32 (uint32x4_t __a)
3674 return (poly16x8_t) __a;
3677 __extension__ extern __inline poly16x8_t
3678 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3679 vreinterpretq_p16_u64 (uint64x2_t __a)
3681 return (poly16x8_t) __a;
3684 __extension__ extern __inline poly16x8_t
3685 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3686 vreinterpretq_p16_p8 (poly8x16_t __a)
3688 return (poly16x8_t) __a;
3691 __extension__ extern __inline poly16x8_t
3692 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3693 vreinterpretq_p16_p64 (poly64x2_t __a)
3695 return (poly16x8_t) __a;
3698 __extension__ extern __inline poly16x8_t
3699 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3700 vreinterpretq_p16_p128 (poly128_t __a)
3702 return (poly16x8_t)__a;
3705 __extension__ extern __inline poly64x1_t
3706 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3707 vreinterpret_p64_f16 (float16x4_t __a)
3709 return (poly64x1_t) __a;
3712 __extension__ extern __inline poly64x1_t
3713 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3714 vreinterpret_p64_f64 (float64x1_t __a)
3716 return (poly64x1_t) __a;
3719 __extension__ extern __inline poly64x1_t
3720 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3721 vreinterpret_p64_s8 (int8x8_t __a)
3723 return (poly64x1_t) __a;
3726 __extension__ extern __inline poly64x1_t
3727 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3728 vreinterpret_p64_s16 (int16x4_t __a)
3730 return (poly64x1_t) __a;
3733 __extension__ extern __inline poly64x1_t
3734 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3735 vreinterpret_p64_s32 (int32x2_t __a)
3737 return (poly64x1_t) __a;
3740 __extension__ extern __inline poly64x1_t
3741 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3742 vreinterpret_p64_s64 (int64x1_t __a)
3744 return (poly64x1_t) __a;
3747 __extension__ extern __inline poly64x1_t
3748 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3749 vreinterpret_p64_f32 (float32x2_t __a)
3751 return (poly64x1_t) __a;
3754 __extension__ extern __inline poly64x1_t
3755 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3756 vreinterpret_p64_u8 (uint8x8_t __a)
3758 return (poly64x1_t) __a;
3761 __extension__ extern __inline poly64x1_t
3762 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3763 vreinterpret_p64_u16 (uint16x4_t __a)
3765 return (poly64x1_t) __a;
3768 __extension__ extern __inline poly64x1_t
3769 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3770 vreinterpret_p64_u32 (uint32x2_t __a)
3772 return (poly64x1_t) __a;
3775 __extension__ extern __inline poly64x1_t
3776 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3777 vreinterpret_p64_u64 (uint64x1_t __a)
3779 return (poly64x1_t) __a;
3782 __extension__ extern __inline poly64x1_t
3783 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3784 vreinterpret_p64_p8 (poly8x8_t __a)
3786 return (poly64x1_t) __a;
3789 __extension__ extern __inline poly64x1_t
3790 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3791 vreinterpret_p64_p16 (poly16x4_t __a)
3793 return (poly64x1_t)__a;
3796 __extension__ extern __inline poly64x2_t
3797 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3798 vreinterpretq_p64_f64 (float64x2_t __a)
3800 return (poly64x2_t) __a;
3803 __extension__ extern __inline poly64x2_t
3804 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3805 vreinterpretq_p64_s8 (int8x16_t __a)
3807 return (poly64x2_t) __a;
3810 __extension__ extern __inline poly64x2_t
3811 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3812 vreinterpretq_p64_s16 (int16x8_t __a)
3814 return (poly64x2_t) __a;
3817 __extension__ extern __inline poly64x2_t
3818 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3819 vreinterpretq_p64_s32 (int32x4_t __a)
3821 return (poly64x2_t) __a;
3824 __extension__ extern __inline poly64x2_t
3825 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3826 vreinterpretq_p64_s64 (int64x2_t __a)
3828 return (poly64x2_t) __a;
3831 __extension__ extern __inline poly64x2_t
3832 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3833 vreinterpretq_p64_f16 (float16x8_t __a)
3835 return (poly64x2_t) __a;
3838 __extension__ extern __inline poly64x2_t
3839 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3840 vreinterpretq_p64_f32 (float32x4_t __a)
3842 return (poly64x2_t) __a;
3845 __extension__ extern __inline poly64x2_t
3846 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3847 vreinterpretq_p64_p128 (poly128_t __a)
3849 return (poly64x2_t)__a;
3852 __extension__ extern __inline poly64x2_t
3853 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3854 vreinterpretq_p64_u8 (uint8x16_t __a)
3856 return (poly64x2_t) __a;
3859 __extension__ extern __inline poly64x2_t
3860 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3861 vreinterpretq_p64_u16 (uint16x8_t __a)
3863 return (poly64x2_t) __a;
3866 __extension__ extern __inline poly64x2_t
3867 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3868 vreinterpretq_p64_p16 (poly16x8_t __a)
3870 return (poly64x2_t)__a;
3873 __extension__ extern __inline poly64x2_t
3874 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3875 vreinterpretq_p64_u32 (uint32x4_t __a)
3877 return (poly64x2_t) __a;
3880 __extension__ extern __inline poly64x2_t
3881 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3882 vreinterpretq_p64_u64 (uint64x2_t __a)
3884 return (poly64x2_t) __a;
3887 __extension__ extern __inline poly64x2_t
3888 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3889 vreinterpretq_p64_p8 (poly8x16_t __a)
3891 return (poly64x2_t) __a;
3894 __extension__ extern __inline poly128_t
3895 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3896 vreinterpretq_p128_p8 (poly8x16_t __a)
3898 return (poly128_t)__a;
3901 __extension__ extern __inline poly128_t
3902 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3903 vreinterpretq_p128_p16 (poly16x8_t __a)
3905 return (poly128_t)__a;
3908 __extension__ extern __inline poly128_t
3909 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3910 vreinterpretq_p128_f16 (float16x8_t __a)
3912 return (poly128_t) __a;
3915 __extension__ extern __inline poly128_t
3916 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3917 vreinterpretq_p128_f32 (float32x4_t __a)
3919 return (poly128_t)__a;
3922 __extension__ extern __inline poly128_t
3923 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3924 vreinterpretq_p128_p64 (poly64x2_t __a)
3926 return (poly128_t)__a;
3929 __extension__ extern __inline poly128_t
3930 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3931 vreinterpretq_p128_s64 (int64x2_t __a)
3933 return (poly128_t)__a;
3936 __extension__ extern __inline poly128_t
3937 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3938 vreinterpretq_p128_u64 (uint64x2_t __a)
3940 return (poly128_t)__a;
3943 __extension__ extern __inline poly128_t
3944 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3945 vreinterpretq_p128_s8 (int8x16_t __a)
3947 return (poly128_t)__a;
3950 __extension__ extern __inline poly128_t
3951 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3952 vreinterpretq_p128_s16 (int16x8_t __a)
3954 return (poly128_t)__a;
3957 __extension__ extern __inline poly128_t
3958 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3959 vreinterpretq_p128_s32 (int32x4_t __a)
3961 return (poly128_t)__a;
3964 __extension__ extern __inline poly128_t
3965 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3966 vreinterpretq_p128_u8 (uint8x16_t __a)
3968 return (poly128_t)__a;
3971 __extension__ extern __inline poly128_t
3972 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3973 vreinterpretq_p128_u16 (uint16x8_t __a)
3975 return (poly128_t)__a;
3978 __extension__ extern __inline poly128_t
3979 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3980 vreinterpretq_p128_u32 (uint32x4_t __a)
3982 return (poly128_t)__a;
3985 __extension__ extern __inline float16x4_t
3986 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3987 vreinterpret_f16_f64 (float64x1_t __a)
3989 return (float16x4_t) __a;
3992 __extension__ extern __inline float16x4_t
3993 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3994 vreinterpret_f16_s8 (int8x8_t __a)
3996 return (float16x4_t) __a;
3999 __extension__ extern __inline float16x4_t
4000 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4001 vreinterpret_f16_s16 (int16x4_t __a)
4003 return (float16x4_t) __a;
4006 __extension__ extern __inline float16x4_t
4007 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4008 vreinterpret_f16_s32 (int32x2_t __a)
4010 return (float16x4_t) __a;
4013 __extension__ extern __inline float16x4_t
4014 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4015 vreinterpret_f16_s64 (int64x1_t __a)
4017 return (float16x4_t) __a;
4020 __extension__ extern __inline float16x4_t
4021 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4022 vreinterpret_f16_f32 (float32x2_t __a)
4024 return (float16x4_t) __a;
4027 __extension__ extern __inline float16x4_t
4028 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4029 vreinterpret_f16_u8 (uint8x8_t __a)
4031 return (float16x4_t) __a;
4034 __extension__ extern __inline float16x4_t
4035 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4036 vreinterpret_f16_u16 (uint16x4_t __a)
4038 return (float16x4_t) __a;
4041 __extension__ extern __inline float16x4_t
4042 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4043 vreinterpret_f16_u32 (uint32x2_t __a)
4045 return (float16x4_t) __a;
4048 __extension__ extern __inline float16x4_t
4049 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4050 vreinterpret_f16_u64 (uint64x1_t __a)
4052 return (float16x4_t) __a;
4055 __extension__ extern __inline float16x4_t
4056 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4057 vreinterpret_f16_p8 (poly8x8_t __a)
4059 return (float16x4_t) __a;
4062 __extension__ extern __inline float16x4_t
4063 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4064 vreinterpret_f16_p16 (poly16x4_t __a)
4066 return (float16x4_t) __a;
4069 __extension__ extern __inline float16x4_t
4070 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4071 vreinterpret_f16_p64 (poly64x1_t __a)
4073 return (float16x4_t) __a;
4076 __extension__ extern __inline float16x8_t
4077 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4078 vreinterpretq_f16_f64 (float64x2_t __a)
4080 return (float16x8_t) __a;
4083 __extension__ extern __inline float16x8_t
4084 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4085 vreinterpretq_f16_s8 (int8x16_t __a)
4087 return (float16x8_t) __a;
4090 __extension__ extern __inline float16x8_t
4091 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4092 vreinterpretq_f16_s16 (int16x8_t __a)
4094 return (float16x8_t) __a;
4097 __extension__ extern __inline float16x8_t
4098 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4099 vreinterpretq_f16_s32 (int32x4_t __a)
4101 return (float16x8_t) __a;
4104 __extension__ extern __inline float16x8_t
4105 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4106 vreinterpretq_f16_s64 (int64x2_t __a)
4108 return (float16x8_t) __a;
4111 __extension__ extern __inline float16x8_t
4112 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4113 vreinterpretq_f16_f32 (float32x4_t __a)
4115 return (float16x8_t) __a;
4118 __extension__ extern __inline float16x8_t
4119 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4120 vreinterpretq_f16_u8 (uint8x16_t __a)
4122 return (float16x8_t) __a;
4125 __extension__ extern __inline float16x8_t
4126 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4127 vreinterpretq_f16_u16 (uint16x8_t __a)
4129 return (float16x8_t) __a;
4132 __extension__ extern __inline float16x8_t
4133 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4134 vreinterpretq_f16_u32 (uint32x4_t __a)
4136 return (float16x8_t) __a;
4139 __extension__ extern __inline float16x8_t
4140 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4141 vreinterpretq_f16_u64 (uint64x2_t __a)
4143 return (float16x8_t) __a;
4146 __extension__ extern __inline float16x8_t
4147 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4148 vreinterpretq_f16_p8 (poly8x16_t __a)
4150 return (float16x8_t) __a;
4153 __extension__ extern __inline float16x8_t
4154 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4155 vreinterpretq_f16_p128 (poly128_t __a)
4157 return (float16x8_t) __a;
4160 __extension__ extern __inline float16x8_t
4161 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4162 vreinterpretq_f16_p16 (poly16x8_t __a)
4164 return (float16x8_t) __a;
4167 __extension__ extern __inline float16x8_t
4168 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4169 vreinterpretq_f16_p64 (poly64x2_t __a)
4171 return (float16x8_t) __a;
4174 __extension__ extern __inline float32x2_t
4175 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4176 vreinterpret_f32_f16 (float16x4_t __a)
4178 return (float32x2_t) __a;
4181 __extension__ extern __inline float32x2_t
4182 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4183 vreinterpret_f32_f64 (float64x1_t __a)
4185 return (float32x2_t) __a;
4188 __extension__ extern __inline float32x2_t
4189 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4190 vreinterpret_f32_s8 (int8x8_t __a)
4192 return (float32x2_t) __a;
4195 __extension__ extern __inline float32x2_t
4196 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4197 vreinterpret_f32_s16 (int16x4_t __a)
4199 return (float32x2_t) __a;
4202 __extension__ extern __inline float32x2_t
4203 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4204 vreinterpret_f32_s32 (int32x2_t __a)
4206 return (float32x2_t) __a;
4209 __extension__ extern __inline float32x2_t
4210 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4211 vreinterpret_f32_s64 (int64x1_t __a)
4213 return (float32x2_t) __a;
4216 __extension__ extern __inline float32x2_t
4217 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4218 vreinterpret_f32_u8 (uint8x8_t __a)
4220 return (float32x2_t) __a;
4223 __extension__ extern __inline float32x2_t
4224 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4225 vreinterpret_f32_u16 (uint16x4_t __a)
4227 return (float32x2_t) __a;
4230 __extension__ extern __inline float32x2_t
4231 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4232 vreinterpret_f32_u32 (uint32x2_t __a)
4234 return (float32x2_t) __a;
4237 __extension__ extern __inline float32x2_t
4238 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4239 vreinterpret_f32_u64 (uint64x1_t __a)
4241 return (float32x2_t) __a;
4244 __extension__ extern __inline float32x2_t
4245 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4246 vreinterpret_f32_p8 (poly8x8_t __a)
4248 return (float32x2_t) __a;
4251 __extension__ extern __inline float32x2_t
4252 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4253 vreinterpret_f32_p16 (poly16x4_t __a)
4255 return (float32x2_t) __a;
4258 __extension__ extern __inline float32x2_t
4259 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4260 vreinterpret_f32_p64 (poly64x1_t __a)
4262 return (float32x2_t) __a;
4265 __extension__ extern __inline float32x4_t
4266 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4267 vreinterpretq_f32_f16 (float16x8_t __a)
4269 return (float32x4_t) __a;
4272 __extension__ extern __inline float32x4_t
4273 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4274 vreinterpretq_f32_f64 (float64x2_t __a)
4276 return (float32x4_t) __a;
4279 __extension__ extern __inline float32x4_t
4280 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4281 vreinterpretq_f32_s8 (int8x16_t __a)
4283 return (float32x4_t) __a;
4286 __extension__ extern __inline float32x4_t
4287 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4288 vreinterpretq_f32_s16 (int16x8_t __a)
4290 return (float32x4_t) __a;
4293 __extension__ extern __inline float32x4_t
4294 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4295 vreinterpretq_f32_s32 (int32x4_t __a)
4297 return (float32x4_t) __a;
4300 __extension__ extern __inline float32x4_t
4301 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4302 vreinterpretq_f32_s64 (int64x2_t __a)
4304 return (float32x4_t) __a;
4307 __extension__ extern __inline float32x4_t
4308 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4309 vreinterpretq_f32_u8 (uint8x16_t __a)
4311 return (float32x4_t) __a;
4314 __extension__ extern __inline float32x4_t
4315 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4316 vreinterpretq_f32_u16 (uint16x8_t __a)
4318 return (float32x4_t) __a;
4321 __extension__ extern __inline float32x4_t
4322 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4323 vreinterpretq_f32_u32 (uint32x4_t __a)
4325 return (float32x4_t) __a;
4328 __extension__ extern __inline float32x4_t
4329 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4330 vreinterpretq_f32_u64 (uint64x2_t __a)
4332 return (float32x4_t) __a;
4335 __extension__ extern __inline float32x4_t
4336 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4337 vreinterpretq_f32_p8 (poly8x16_t __a)
4339 return (float32x4_t) __a;
4342 __extension__ extern __inline float32x4_t
4343 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4344 vreinterpretq_f32_p16 (poly16x8_t __a)
4346 return (float32x4_t) __a;
4349 __extension__ extern __inline float32x4_t
4350 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4351 vreinterpretq_f32_p64 (poly64x2_t __a)
4353 return (float32x4_t) __a;
4356 __extension__ extern __inline float32x4_t
4357 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4358 vreinterpretq_f32_p128 (poly128_t __a)
4360 return (float32x4_t)__a;
4364 __extension__ extern __inline float64x1_t
4365 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4366 vreinterpret_f64_f16 (float16x4_t __a)
4368 return (float64x1_t) __a;
4371 __extension__ extern __inline float64x1_t
4372 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4373 vreinterpret_f64_f32 (float32x2_t __a)
4375 return (float64x1_t) __a;
4378 __extension__ extern __inline float64x1_t
4379 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4380 vreinterpret_f64_p8 (poly8x8_t __a)
4382 return (float64x1_t) __a;
4385 __extension__ extern __inline float64x1_t
4386 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4387 vreinterpret_f64_p16 (poly16x4_t __a)
4389 return (float64x1_t) __a;
4392 __extension__ extern __inline float64x1_t
4393 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4394 vreinterpret_f64_p64 (poly64x1_t __a)
4396 return (float64x1_t) __a;
4399 __extension__ extern __inline float64x1_t
4400 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4401 vreinterpret_f64_s8 (int8x8_t __a)
4403 return (float64x1_t) __a;
4406 __extension__ extern __inline float64x1_t
4407 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4408 vreinterpret_f64_s16 (int16x4_t __a)
4410 return (float64x1_t) __a;
4413 __extension__ extern __inline float64x1_t
4414 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4415 vreinterpret_f64_s32 (int32x2_t __a)
4417 return (float64x1_t) __a;
4420 __extension__ extern __inline float64x1_t
4421 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4422 vreinterpret_f64_s64 (int64x1_t __a)
4424 return (float64x1_t) __a;
4427 __extension__ extern __inline float64x1_t
4428 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4429 vreinterpret_f64_u8 (uint8x8_t __a)
4431 return (float64x1_t) __a;
4434 __extension__ extern __inline float64x1_t
4435 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4436 vreinterpret_f64_u16 (uint16x4_t __a)
4438 return (float64x1_t) __a;
4441 __extension__ extern __inline float64x1_t
4442 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4443 vreinterpret_f64_u32 (uint32x2_t __a)
4445 return (float64x1_t) __a;
4448 __extension__ extern __inline float64x1_t
4449 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4450 vreinterpret_f64_u64 (uint64x1_t __a)
4452 return (float64x1_t) __a;
4455 __extension__ extern __inline float64x2_t
4456 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4457 vreinterpretq_f64_f16 (float16x8_t __a)
4459 return (float64x2_t) __a;
4462 __extension__ extern __inline float64x2_t
4463 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4464 vreinterpretq_f64_f32 (float32x4_t __a)
4466 return (float64x2_t) __a;
4469 __extension__ extern __inline float64x2_t
4470 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4471 vreinterpretq_f64_p8 (poly8x16_t __a)
4473 return (float64x2_t) __a;
4476 __extension__ extern __inline float64x2_t
4477 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4478 vreinterpretq_f64_p16 (poly16x8_t __a)
4480 return (float64x2_t) __a;
4483 __extension__ extern __inline float64x2_t
4484 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4485 vreinterpretq_f64_p64 (poly64x2_t __a)
4487 return (float64x2_t) __a;
4490 __extension__ extern __inline float64x2_t
4491 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4492 vreinterpretq_f64_s8 (int8x16_t __a)
4494 return (float64x2_t) __a;
4497 __extension__ extern __inline float64x2_t
4498 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4499 vreinterpretq_f64_s16 (int16x8_t __a)
4501 return (float64x2_t) __a;
4504 __extension__ extern __inline float64x2_t
4505 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4506 vreinterpretq_f64_s32 (int32x4_t __a)
4508 return (float64x2_t) __a;
4511 __extension__ extern __inline float64x2_t
4512 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4513 vreinterpretq_f64_s64 (int64x2_t __a)
4515 return (float64x2_t) __a;
4518 __extension__ extern __inline float64x2_t
4519 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4520 vreinterpretq_f64_u8 (uint8x16_t __a)
4522 return (float64x2_t) __a;
4525 __extension__ extern __inline float64x2_t
4526 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4527 vreinterpretq_f64_u16 (uint16x8_t __a)
4529 return (float64x2_t) __a;
4532 __extension__ extern __inline float64x2_t
4533 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4534 vreinterpretq_f64_u32 (uint32x4_t __a)
4536 return (float64x2_t) __a;
4539 __extension__ extern __inline float64x2_t
4540 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4541 vreinterpretq_f64_u64 (uint64x2_t __a)
4543 return (float64x2_t) __a;
4546 __extension__ extern __inline int64x1_t
4547 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4548 vreinterpret_s64_f16 (float16x4_t __a)
4550 return (int64x1_t) __a;
4553 __extension__ extern __inline int64x1_t
4554 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4555 vreinterpret_s64_f64 (float64x1_t __a)
4557 return (int64x1_t) __a;
4560 __extension__ extern __inline int64x1_t
4561 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4562 vreinterpret_s64_s8 (int8x8_t __a)
4564 return (int64x1_t) __a;
4567 __extension__ extern __inline int64x1_t
4568 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4569 vreinterpret_s64_s16 (int16x4_t __a)
4571 return (int64x1_t) __a;
4574 __extension__ extern __inline int64x1_t
4575 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4576 vreinterpret_s64_s32 (int32x2_t __a)
4578 return (int64x1_t) __a;
4581 __extension__ extern __inline int64x1_t
4582 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4583 vreinterpret_s64_f32 (float32x2_t __a)
4585 return (int64x1_t) __a;
4588 __extension__ extern __inline int64x1_t
4589 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4590 vreinterpret_s64_u8 (uint8x8_t __a)
4592 return (int64x1_t) __a;
4595 __extension__ extern __inline int64x1_t
4596 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4597 vreinterpret_s64_u16 (uint16x4_t __a)
4599 return (int64x1_t) __a;
4602 __extension__ extern __inline int64x1_t
4603 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4604 vreinterpret_s64_u32 (uint32x2_t __a)
4606 return (int64x1_t) __a;
4609 __extension__ extern __inline int64x1_t
4610 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4611 vreinterpret_s64_u64 (uint64x1_t __a)
4613 return (int64x1_t) __a;
4616 __extension__ extern __inline int64x1_t
4617 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4618 vreinterpret_s64_p8 (poly8x8_t __a)
4620 return (int64x1_t) __a;
4623 __extension__ extern __inline int64x1_t
4624 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4625 vreinterpret_s64_p16 (poly16x4_t __a)
4627 return (int64x1_t) __a;
4630 __extension__ extern __inline int64x1_t
4631 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4632 vreinterpret_s64_p64 (poly64x1_t __a)
4634 return (int64x1_t) __a;
4637 __extension__ extern __inline int64x2_t
4638 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4639 vreinterpretq_s64_f64 (float64x2_t __a)
4641 return (int64x2_t) __a;
4644 __extension__ extern __inline int64x2_t
4645 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4646 vreinterpretq_s64_s8 (int8x16_t __a)
4648 return (int64x2_t) __a;
4651 __extension__ extern __inline int64x2_t
4652 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4653 vreinterpretq_s64_s16 (int16x8_t __a)
4655 return (int64x2_t) __a;
4658 __extension__ extern __inline int64x2_t
4659 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4660 vreinterpretq_s64_s32 (int32x4_t __a)
4662 return (int64x2_t) __a;
4665 __extension__ extern __inline int64x2_t
4666 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4667 vreinterpretq_s64_f16 (float16x8_t __a)
4669 return (int64x2_t) __a;
4672 __extension__ extern __inline int64x2_t
4673 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4674 vreinterpretq_s64_f32 (float32x4_t __a)
4676 return (int64x2_t) __a;
4679 __extension__ extern __inline int64x2_t
4680 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4681 vreinterpretq_s64_u8 (uint8x16_t __a)
4683 return (int64x2_t) __a;
4686 __extension__ extern __inline int64x2_t
4687 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4688 vreinterpretq_s64_u16 (uint16x8_t __a)
4690 return (int64x2_t) __a;
4693 __extension__ extern __inline int64x2_t
4694 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4695 vreinterpretq_s64_u32 (uint32x4_t __a)
4697 return (int64x2_t) __a;
4700 __extension__ extern __inline int64x2_t
4701 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4702 vreinterpretq_s64_u64 (uint64x2_t __a)
4704 return (int64x2_t) __a;
4707 __extension__ extern __inline int64x2_t
4708 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4709 vreinterpretq_s64_p8 (poly8x16_t __a)
4711 return (int64x2_t) __a;
4714 __extension__ extern __inline int64x2_t
4715 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4716 vreinterpretq_s64_p16 (poly16x8_t __a)
4718 return (int64x2_t) __a;
4721 __extension__ extern __inline int64x2_t
4722 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4723 vreinterpretq_s64_p64 (poly64x2_t __a)
4725 return (int64x2_t) __a;
4728 __extension__ extern __inline int64x2_t
4729 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4730 vreinterpretq_s64_p128 (poly128_t __a)
4732 return (int64x2_t)__a;
4735 __extension__ extern __inline uint64x1_t
4736 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4737 vreinterpret_u64_f16 (float16x4_t __a)
4739 return (uint64x1_t) __a;
4742 __extension__ extern __inline uint64x1_t
4743 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4744 vreinterpret_u64_f64 (float64x1_t __a)
4746 return (uint64x1_t) __a;
4749 __extension__ extern __inline uint64x1_t
4750 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4751 vreinterpret_u64_s8 (int8x8_t __a)
4753 return (uint64x1_t) __a;
4756 __extension__ extern __inline uint64x1_t
4757 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4758 vreinterpret_u64_s16 (int16x4_t __a)
4760 return (uint64x1_t) __a;
4763 __extension__ extern __inline uint64x1_t
4764 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4765 vreinterpret_u64_s32 (int32x2_t __a)
4767 return (uint64x1_t) __a;
4770 __extension__ extern __inline uint64x1_t
4771 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4772 vreinterpret_u64_s64 (int64x1_t __a)
4774 return (uint64x1_t) __a;
4777 __extension__ extern __inline uint64x1_t
4778 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4779 vreinterpret_u64_f32 (float32x2_t __a)
4781 return (uint64x1_t) __a;
4784 __extension__ extern __inline uint64x1_t
4785 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4786 vreinterpret_u64_u8 (uint8x8_t __a)
4788 return (uint64x1_t) __a;
4791 __extension__ extern __inline uint64x1_t
4792 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4793 vreinterpret_u64_u16 (uint16x4_t __a)
4795 return (uint64x1_t) __a;
4798 __extension__ extern __inline uint64x1_t
4799 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4800 vreinterpret_u64_u32 (uint32x2_t __a)
4802 return (uint64x1_t) __a;
4805 __extension__ extern __inline uint64x1_t
4806 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4807 vreinterpret_u64_p8 (poly8x8_t __a)
4809 return (uint64x1_t) __a;
4812 __extension__ extern __inline uint64x1_t
4813 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4814 vreinterpret_u64_p16 (poly16x4_t __a)
4816 return (uint64x1_t) __a;
4819 __extension__ extern __inline uint64x1_t
4820 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4821 vreinterpret_u64_p64 (poly64x1_t __a)
4823 return (uint64x1_t) __a;
4826 __extension__ extern __inline uint64x2_t
4827 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4828 vreinterpretq_u64_f64 (float64x2_t __a)
4830 return (uint64x2_t) __a;
4833 __extension__ extern __inline uint64x2_t
4834 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4835 vreinterpretq_u64_s8 (int8x16_t __a)
4837 return (uint64x2_t) __a;
4840 __extension__ extern __inline uint64x2_t
4841 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4842 vreinterpretq_u64_s16 (int16x8_t __a)
4844 return (uint64x2_t) __a;
4847 __extension__ extern __inline uint64x2_t
4848 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4849 vreinterpretq_u64_s32 (int32x4_t __a)
4851 return (uint64x2_t) __a;
4854 __extension__ extern __inline uint64x2_t
4855 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4856 vreinterpretq_u64_s64 (int64x2_t __a)
4858 return (uint64x2_t) __a;
4861 __extension__ extern __inline uint64x2_t
4862 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4863 vreinterpretq_u64_f16 (float16x8_t __a)
4865 return (uint64x2_t) __a;
4868 __extension__ extern __inline uint64x2_t
4869 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4870 vreinterpretq_u64_f32 (float32x4_t __a)
4872 return (uint64x2_t) __a;
4875 __extension__ extern __inline uint64x2_t
4876 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4877 vreinterpretq_u64_u8 (uint8x16_t __a)
4879 return (uint64x2_t) __a;
4882 __extension__ extern __inline uint64x2_t
4883 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4884 vreinterpretq_u64_u16 (uint16x8_t __a)
4886 return (uint64x2_t) __a;
4889 __extension__ extern __inline uint64x2_t
4890 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4891 vreinterpretq_u64_u32 (uint32x4_t __a)
4893 return (uint64x2_t) __a;
4896 __extension__ extern __inline uint64x2_t
4897 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4898 vreinterpretq_u64_p8 (poly8x16_t __a)
4900 return (uint64x2_t) __a;
4903 __extension__ extern __inline uint64x2_t
4904 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4905 vreinterpretq_u64_p16 (poly16x8_t __a)
4907 return (uint64x2_t) __a;
4910 __extension__ extern __inline uint64x2_t
4911 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4912 vreinterpretq_u64_p64 (poly64x2_t __a)
4914 return (uint64x2_t) __a;
4917 __extension__ extern __inline uint64x2_t
4918 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4919 vreinterpretq_u64_p128 (poly128_t __a)
4921 return (uint64x2_t)__a;
4924 __extension__ extern __inline int8x8_t
4925 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4926 vreinterpret_s8_f16 (float16x4_t __a)
4928 return (int8x8_t) __a;
4931 __extension__ extern __inline int8x8_t
4932 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4933 vreinterpret_s8_f64 (float64x1_t __a)
4935 return (int8x8_t) __a;
4938 __extension__ extern __inline int8x8_t
4939 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4940 vreinterpret_s8_s16 (int16x4_t __a)
4942 return (int8x8_t) __a;
4945 __extension__ extern __inline int8x8_t
4946 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4947 vreinterpret_s8_s32 (int32x2_t __a)
4949 return (int8x8_t) __a;
4952 __extension__ extern __inline int8x8_t
4953 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4954 vreinterpret_s8_s64 (int64x1_t __a)
4956 return (int8x8_t) __a;
4959 __extension__ extern __inline int8x8_t
4960 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4961 vreinterpret_s8_f32 (float32x2_t __a)
4963 return (int8x8_t) __a;
4966 __extension__ extern __inline int8x8_t
4967 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4968 vreinterpret_s8_u8 (uint8x8_t __a)
4970 return (int8x8_t) __a;
4973 __extension__ extern __inline int8x8_t
4974 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4975 vreinterpret_s8_u16 (uint16x4_t __a)
4977 return (int8x8_t) __a;
4980 __extension__ extern __inline int8x8_t
4981 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4982 vreinterpret_s8_u32 (uint32x2_t __a)
4984 return (int8x8_t) __a;
4987 __extension__ extern __inline int8x8_t
4988 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4989 vreinterpret_s8_u64 (uint64x1_t __a)
4991 return (int8x8_t) __a;
4994 __extension__ extern __inline int8x8_t
4995 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4996 vreinterpret_s8_p8 (poly8x8_t __a)
4998 return (int8x8_t) __a;
5001 __extension__ extern __inline int8x8_t
5002 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5003 vreinterpret_s8_p16 (poly16x4_t __a)
5005 return (int8x8_t) __a;
5008 __extension__ extern __inline int8x8_t
5009 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5010 vreinterpret_s8_p64 (poly64x1_t __a)
5012 return (int8x8_t) __a;
5015 __extension__ extern __inline int8x16_t
5016 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5017 vreinterpretq_s8_f64 (float64x2_t __a)
5019 return (int8x16_t) __a;
5022 __extension__ extern __inline int8x16_t
5023 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5024 vreinterpretq_s8_s16 (int16x8_t __a)
5026 return (int8x16_t) __a;
5029 __extension__ extern __inline int8x16_t
5030 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5031 vreinterpretq_s8_s32 (int32x4_t __a)
5033 return (int8x16_t) __a;
5036 __extension__ extern __inline int8x16_t
5037 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5038 vreinterpretq_s8_s64 (int64x2_t __a)
5040 return (int8x16_t) __a;
5043 __extension__ extern __inline int8x16_t
5044 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5045 vreinterpretq_s8_f16 (float16x8_t __a)
5047 return (int8x16_t) __a;
5050 __extension__ extern __inline int8x16_t
5051 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5052 vreinterpretq_s8_f32 (float32x4_t __a)
5054 return (int8x16_t) __a;
5057 __extension__ extern __inline int8x16_t
5058 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5059 vreinterpretq_s8_u8 (uint8x16_t __a)
5061 return (int8x16_t) __a;
5064 __extension__ extern __inline int8x16_t
5065 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5066 vreinterpretq_s8_u16 (uint16x8_t __a)
5068 return (int8x16_t) __a;
5071 __extension__ extern __inline int8x16_t
5072 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5073 vreinterpretq_s8_u32 (uint32x4_t __a)
5075 return (int8x16_t) __a;
5078 __extension__ extern __inline int8x16_t
5079 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5080 vreinterpretq_s8_u64 (uint64x2_t __a)
5082 return (int8x16_t) __a;
5085 __extension__ extern __inline int8x16_t
5086 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5087 vreinterpretq_s8_p8 (poly8x16_t __a)
5089 return (int8x16_t) __a;
5092 __extension__ extern __inline int8x16_t
5093 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5094 vreinterpretq_s8_p16 (poly16x8_t __a)
5096 return (int8x16_t) __a;
5099 __extension__ extern __inline int8x16_t
5100 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5101 vreinterpretq_s8_p64 (poly64x2_t __a)
5103 return (int8x16_t) __a;
5106 __extension__ extern __inline int8x16_t
5107 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5108 vreinterpretq_s8_p128 (poly128_t __a)
5110 return (int8x16_t)__a;
5113 __extension__ extern __inline int16x4_t
5114 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5115 vreinterpret_s16_f16 (float16x4_t __a)
5117 return (int16x4_t) __a;
5120 __extension__ extern __inline int16x4_t
5121 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5122 vreinterpret_s16_f64 (float64x1_t __a)
5124 return (int16x4_t) __a;
5127 __extension__ extern __inline int16x4_t
5128 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5129 vreinterpret_s16_s8 (int8x8_t __a)
5131 return (int16x4_t) __a;
5134 __extension__ extern __inline int16x4_t
5135 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5136 vreinterpret_s16_s32 (int32x2_t __a)
5138 return (int16x4_t) __a;
5141 __extension__ extern __inline int16x4_t
5142 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5143 vreinterpret_s16_s64 (int64x1_t __a)
5145 return (int16x4_t) __a;
5148 __extension__ extern __inline int16x4_t
5149 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5150 vreinterpret_s16_f32 (float32x2_t __a)
5152 return (int16x4_t) __a;
5155 __extension__ extern __inline int16x4_t
5156 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5157 vreinterpret_s16_u8 (uint8x8_t __a)
5159 return (int16x4_t) __a;
5162 __extension__ extern __inline int16x4_t
5163 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5164 vreinterpret_s16_u16 (uint16x4_t __a)
5166 return (int16x4_t) __a;
5169 __extension__ extern __inline int16x4_t
5170 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5171 vreinterpret_s16_u32 (uint32x2_t __a)
5173 return (int16x4_t) __a;
5176 __extension__ extern __inline int16x4_t
5177 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5178 vreinterpret_s16_u64 (uint64x1_t __a)
5180 return (int16x4_t) __a;
5183 __extension__ extern __inline int16x4_t
5184 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5185 vreinterpret_s16_p8 (poly8x8_t __a)
5187 return (int16x4_t) __a;
5190 __extension__ extern __inline int16x4_t
5191 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5192 vreinterpret_s16_p16 (poly16x4_t __a)
5194 return (int16x4_t) __a;
5197 __extension__ extern __inline int16x4_t
5198 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5199 vreinterpret_s16_p64 (poly64x1_t __a)
5201 return (int16x4_t) __a;
5204 __extension__ extern __inline int16x8_t
5205 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5206 vreinterpretq_s16_f64 (float64x2_t __a)
5208 return (int16x8_t) __a;
5211 __extension__ extern __inline int16x8_t
5212 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5213 vreinterpretq_s16_s8 (int8x16_t __a)
5215 return (int16x8_t) __a;
5218 __extension__ extern __inline int16x8_t
5219 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5220 vreinterpretq_s16_s32 (int32x4_t __a)
5222 return (int16x8_t) __a;
5225 __extension__ extern __inline int16x8_t
5226 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5227 vreinterpretq_s16_s64 (int64x2_t __a)
5229 return (int16x8_t) __a;
5232 __extension__ extern __inline int16x8_t
5233 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5234 vreinterpretq_s16_f16 (float16x8_t __a)
5236 return (int16x8_t) __a;
5239 __extension__ extern __inline int16x8_t
5240 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5241 vreinterpretq_s16_f32 (float32x4_t __a)
5243 return (int16x8_t) __a;
5246 __extension__ extern __inline int16x8_t
5247 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5248 vreinterpretq_s16_u8 (uint8x16_t __a)
5250 return (int16x8_t) __a;
5253 __extension__ extern __inline int16x8_t
5254 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5255 vreinterpretq_s16_u16 (uint16x8_t __a)
5257 return (int16x8_t) __a;
5260 __extension__ extern __inline int16x8_t
5261 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5262 vreinterpretq_s16_u32 (uint32x4_t __a)
5264 return (int16x8_t) __a;
5267 __extension__ extern __inline int16x8_t
5268 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5269 vreinterpretq_s16_u64 (uint64x2_t __a)
5271 return (int16x8_t) __a;
5274 __extension__ extern __inline int16x8_t
5275 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5276 vreinterpretq_s16_p8 (poly8x16_t __a)
5278 return (int16x8_t) __a;
5281 __extension__ extern __inline int16x8_t
5282 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5283 vreinterpretq_s16_p16 (poly16x8_t __a)
5285 return (int16x8_t) __a;
5288 __extension__ extern __inline int16x8_t
5289 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5290 vreinterpretq_s16_p64 (poly64x2_t __a)
5292 return (int16x8_t) __a;
5295 __extension__ extern __inline int16x8_t
5296 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5297 vreinterpretq_s16_p128 (poly128_t __a)
5299 return (int16x8_t)__a;
5302 __extension__ extern __inline int32x2_t
5303 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5304 vreinterpret_s32_f16 (float16x4_t __a)
5306 return (int32x2_t) __a;
5309 __extension__ extern __inline int32x2_t
5310 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5311 vreinterpret_s32_f64 (float64x1_t __a)
5313 return (int32x2_t) __a;
5316 __extension__ extern __inline int32x2_t
5317 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5318 vreinterpret_s32_s8 (int8x8_t __a)
5320 return (int32x2_t) __a;
5323 __extension__ extern __inline int32x2_t
5324 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5325 vreinterpret_s32_s16 (int16x4_t __a)
5327 return (int32x2_t) __a;
5330 __extension__ extern __inline int32x2_t
5331 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5332 vreinterpret_s32_s64 (int64x1_t __a)
5334 return (int32x2_t) __a;
5337 __extension__ extern __inline int32x2_t
5338 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5339 vreinterpret_s32_f32 (float32x2_t __a)
5341 return (int32x2_t) __a;
5344 __extension__ extern __inline int32x2_t
5345 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5346 vreinterpret_s32_u8 (uint8x8_t __a)
5348 return (int32x2_t) __a;
5351 __extension__ extern __inline int32x2_t
5352 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5353 vreinterpret_s32_u16 (uint16x4_t __a)
5355 return (int32x2_t) __a;
5358 __extension__ extern __inline int32x2_t
5359 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5360 vreinterpret_s32_u32 (uint32x2_t __a)
5362 return (int32x2_t) __a;
5365 __extension__ extern __inline int32x2_t
5366 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5367 vreinterpret_s32_u64 (uint64x1_t __a)
5369 return (int32x2_t) __a;
5372 __extension__ extern __inline int32x2_t
5373 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5374 vreinterpret_s32_p8 (poly8x8_t __a)
5376 return (int32x2_t) __a;
5379 __extension__ extern __inline int32x2_t
5380 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5381 vreinterpret_s32_p16 (poly16x4_t __a)
5383 return (int32x2_t) __a;
5386 __extension__ extern __inline int32x2_t
5387 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5388 vreinterpret_s32_p64 (poly64x1_t __a)
5390 return (int32x2_t) __a;
5393 __extension__ extern __inline int32x4_t
5394 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5395 vreinterpretq_s32_f64 (float64x2_t __a)
5397 return (int32x4_t) __a;
5400 __extension__ extern __inline int32x4_t
5401 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5402 vreinterpretq_s32_s8 (int8x16_t __a)
5404 return (int32x4_t) __a;
5407 __extension__ extern __inline int32x4_t
5408 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5409 vreinterpretq_s32_s16 (int16x8_t __a)
5411 return (int32x4_t) __a;
5414 __extension__ extern __inline int32x4_t
5415 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5416 vreinterpretq_s32_s64 (int64x2_t __a)
5418 return (int32x4_t) __a;
5421 __extension__ extern __inline int32x4_t
5422 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5423 vreinterpretq_s32_f16 (float16x8_t __a)
5425 return (int32x4_t) __a;
5428 __extension__ extern __inline int32x4_t
5429 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5430 vreinterpretq_s32_f32 (float32x4_t __a)
5432 return (int32x4_t) __a;
5435 __extension__ extern __inline int32x4_t
5436 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5437 vreinterpretq_s32_u8 (uint8x16_t __a)
5439 return (int32x4_t) __a;
5442 __extension__ extern __inline int32x4_t
5443 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5444 vreinterpretq_s32_u16 (uint16x8_t __a)
5446 return (int32x4_t) __a;
5449 __extension__ extern __inline int32x4_t
5450 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5451 vreinterpretq_s32_u32 (uint32x4_t __a)
5453 return (int32x4_t) __a;
5456 __extension__ extern __inline int32x4_t
5457 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5458 vreinterpretq_s32_u64 (uint64x2_t __a)
5460 return (int32x4_t) __a;
5463 __extension__ extern __inline int32x4_t
5464 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5465 vreinterpretq_s32_p8 (poly8x16_t __a)
5467 return (int32x4_t) __a;
5470 __extension__ extern __inline int32x4_t
5471 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5472 vreinterpretq_s32_p16 (poly16x8_t __a)
5474 return (int32x4_t) __a;
5477 __extension__ extern __inline int32x4_t
5478 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5479 vreinterpretq_s32_p64 (poly64x2_t __a)
5481 return (int32x4_t) __a;
5484 __extension__ extern __inline int32x4_t
5485 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5486 vreinterpretq_s32_p128 (poly128_t __a)
5488 return (int32x4_t)__a;
5491 __extension__ extern __inline uint8x8_t
5492 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5493 vreinterpret_u8_f16 (float16x4_t __a)
5495 return (uint8x8_t) __a;
5498 __extension__ extern __inline uint8x8_t
5499 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5500 vreinterpret_u8_f64 (float64x1_t __a)
5502 return (uint8x8_t) __a;
5505 __extension__ extern __inline uint8x8_t
5506 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5507 vreinterpret_u8_s8 (int8x8_t __a)
5509 return (uint8x8_t) __a;
5512 __extension__ extern __inline uint8x8_t
5513 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5514 vreinterpret_u8_s16 (int16x4_t __a)
5516 return (uint8x8_t) __a;
5519 __extension__ extern __inline uint8x8_t
5520 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5521 vreinterpret_u8_s32 (int32x2_t __a)
5523 return (uint8x8_t) __a;
5526 __extension__ extern __inline uint8x8_t
5527 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5528 vreinterpret_u8_s64 (int64x1_t __a)
5530 return (uint8x8_t) __a;
5533 __extension__ extern __inline uint8x8_t
5534 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5535 vreinterpret_u8_f32 (float32x2_t __a)
5537 return (uint8x8_t) __a;
5540 __extension__ extern __inline uint8x8_t
5541 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5542 vreinterpret_u8_u16 (uint16x4_t __a)
5544 return (uint8x8_t) __a;
5547 __extension__ extern __inline uint8x8_t
5548 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5549 vreinterpret_u8_u32 (uint32x2_t __a)
5551 return (uint8x8_t) __a;
5554 __extension__ extern __inline uint8x8_t
5555 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5556 vreinterpret_u8_u64 (uint64x1_t __a)
5558 return (uint8x8_t) __a;
5561 __extension__ extern __inline uint8x8_t
5562 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5563 vreinterpret_u8_p8 (poly8x8_t __a)
5565 return (uint8x8_t) __a;
5568 __extension__ extern __inline uint8x8_t
5569 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5570 vreinterpret_u8_p16 (poly16x4_t __a)
5572 return (uint8x8_t) __a;
5575 __extension__ extern __inline uint8x8_t
5576 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5577 vreinterpret_u8_p64 (poly64x1_t __a)
5579 return (uint8x8_t) __a;
5582 __extension__ extern __inline uint8x16_t
5583 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5584 vreinterpretq_u8_f64 (float64x2_t __a)
5586 return (uint8x16_t) __a;
5589 __extension__ extern __inline uint8x16_t
5590 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5591 vreinterpretq_u8_s8 (int8x16_t __a)
5593 return (uint8x16_t) __a;
5596 __extension__ extern __inline uint8x16_t
5597 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5598 vreinterpretq_u8_s16 (int16x8_t __a)
5600 return (uint8x16_t) __a;
5603 __extension__ extern __inline uint8x16_t
5604 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5605 vreinterpretq_u8_s32 (int32x4_t __a)
5607 return (uint8x16_t) __a;
5610 __extension__ extern __inline uint8x16_t
5611 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5612 vreinterpretq_u8_s64 (int64x2_t __a)
5614 return (uint8x16_t) __a;
5617 __extension__ extern __inline uint8x16_t
5618 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5619 vreinterpretq_u8_f16 (float16x8_t __a)
5621 return (uint8x16_t) __a;
5624 __extension__ extern __inline uint8x16_t
5625 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5626 vreinterpretq_u8_f32 (float32x4_t __a)
5628 return (uint8x16_t) __a;
5631 __extension__ extern __inline uint8x16_t
5632 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5633 vreinterpretq_u8_u16 (uint16x8_t __a)
5635 return (uint8x16_t) __a;
5638 __extension__ extern __inline uint8x16_t
5639 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5640 vreinterpretq_u8_u32 (uint32x4_t __a)
5642 return (uint8x16_t) __a;
5645 __extension__ extern __inline uint8x16_t
5646 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5647 vreinterpretq_u8_u64 (uint64x2_t __a)
5649 return (uint8x16_t) __a;
5652 __extension__ extern __inline uint8x16_t
5653 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5654 vreinterpretq_u8_p8 (poly8x16_t __a)
5656 return (uint8x16_t) __a;
5659 __extension__ extern __inline uint8x16_t
5660 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5661 vreinterpretq_u8_p16 (poly16x8_t __a)
5663 return (uint8x16_t) __a;
5666 __extension__ extern __inline uint8x16_t
5667 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5668 vreinterpretq_u8_p64 (poly64x2_t __a)
5670 return (uint8x16_t) __a;
5673 __extension__ extern __inline uint8x16_t
5674 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5675 vreinterpretq_u8_p128 (poly128_t __a)
5677 return (uint8x16_t)__a;
5680 __extension__ extern __inline uint16x4_t
5681 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5682 vreinterpret_u16_f16 (float16x4_t __a)
5684 return (uint16x4_t) __a;
5687 __extension__ extern __inline uint16x4_t
5688 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5689 vreinterpret_u16_f64 (float64x1_t __a)
5691 return (uint16x4_t) __a;
5694 __extension__ extern __inline uint16x4_t
5695 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5696 vreinterpret_u16_s8 (int8x8_t __a)
5698 return (uint16x4_t) __a;
5701 __extension__ extern __inline uint16x4_t
5702 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5703 vreinterpret_u16_s16 (int16x4_t __a)
5705 return (uint16x4_t) __a;
5708 __extension__ extern __inline uint16x4_t
5709 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5710 vreinterpret_u16_s32 (int32x2_t __a)
5712 return (uint16x4_t) __a;
5715 __extension__ extern __inline uint16x4_t
5716 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5717 vreinterpret_u16_s64 (int64x1_t __a)
5719 return (uint16x4_t) __a;
5722 __extension__ extern __inline uint16x4_t
5723 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5724 vreinterpret_u16_f32 (float32x2_t __a)
5726 return (uint16x4_t) __a;
5729 __extension__ extern __inline uint16x4_t
5730 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5731 vreinterpret_u16_u8 (uint8x8_t __a)
5733 return (uint16x4_t) __a;
5736 __extension__ extern __inline uint16x4_t
5737 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5738 vreinterpret_u16_u32 (uint32x2_t __a)
5740 return (uint16x4_t) __a;
5743 __extension__ extern __inline uint16x4_t
5744 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5745 vreinterpret_u16_u64 (uint64x1_t __a)
5747 return (uint16x4_t) __a;
5750 __extension__ extern __inline uint16x4_t
5751 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5752 vreinterpret_u16_p8 (poly8x8_t __a)
5754 return (uint16x4_t) __a;
5757 __extension__ extern __inline uint16x4_t
5758 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5759 vreinterpret_u16_p16 (poly16x4_t __a)
5761 return (uint16x4_t) __a;
5764 __extension__ extern __inline uint16x4_t
5765 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5766 vreinterpret_u16_p64 (poly64x1_t __a)
5768 return (uint16x4_t) __a;
5771 __extension__ extern __inline uint16x8_t
5772 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5773 vreinterpretq_u16_f64 (float64x2_t __a)
5775 return (uint16x8_t) __a;
5778 __extension__ extern __inline uint16x8_t
5779 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5780 vreinterpretq_u16_s8 (int8x16_t __a)
5782 return (uint16x8_t) __a;
5785 __extension__ extern __inline uint16x8_t
5786 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5787 vreinterpretq_u16_s16 (int16x8_t __a)
5789 return (uint16x8_t) __a;
5792 __extension__ extern __inline uint16x8_t
5793 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5794 vreinterpretq_u16_s32 (int32x4_t __a)
5796 return (uint16x8_t) __a;
5799 __extension__ extern __inline uint16x8_t
5800 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5801 vreinterpretq_u16_s64 (int64x2_t __a)
5803 return (uint16x8_t) __a;
5806 __extension__ extern __inline uint16x8_t
5807 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5808 vreinterpretq_u16_f16 (float16x8_t __a)
5810 return (uint16x8_t) __a;
5813 __extension__ extern __inline uint16x8_t
5814 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5815 vreinterpretq_u16_f32 (float32x4_t __a)
5817 return (uint16x8_t) __a;
5820 __extension__ extern __inline uint16x8_t
5821 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5822 vreinterpretq_u16_u8 (uint8x16_t __a)
5824 return (uint16x8_t) __a;
5827 __extension__ extern __inline uint16x8_t
5828 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5829 vreinterpretq_u16_u32 (uint32x4_t __a)
5831 return (uint16x8_t) __a;
5834 __extension__ extern __inline uint16x8_t
5835 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5836 vreinterpretq_u16_u64 (uint64x2_t __a)
5838 return (uint16x8_t) __a;
5841 __extension__ extern __inline uint16x8_t
5842 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5843 vreinterpretq_u16_p8 (poly8x16_t __a)
5845 return (uint16x8_t) __a;
5848 __extension__ extern __inline uint16x8_t
5849 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5850 vreinterpretq_u16_p16 (poly16x8_t __a)
5852 return (uint16x8_t) __a;
5855 __extension__ extern __inline uint16x8_t
5856 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5857 vreinterpretq_u16_p64 (poly64x2_t __a)
5859 return (uint16x8_t) __a;
5862 __extension__ extern __inline uint16x8_t
5863 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5864 vreinterpretq_u16_p128 (poly128_t __a)
5866 return (uint16x8_t)__a;
5869 __extension__ extern __inline uint32x2_t
5870 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5871 vreinterpret_u32_f16 (float16x4_t __a)
5873 return (uint32x2_t) __a;
5876 __extension__ extern __inline uint32x2_t
5877 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5878 vreinterpret_u32_f64 (float64x1_t __a)
5880 return (uint32x2_t) __a;
5883 __extension__ extern __inline uint32x2_t
5884 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5885 vreinterpret_u32_s8 (int8x8_t __a)
5887 return (uint32x2_t) __a;
5890 __extension__ extern __inline uint32x2_t
5891 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5892 vreinterpret_u32_s16 (int16x4_t __a)
5894 return (uint32x2_t) __a;
5897 __extension__ extern __inline uint32x2_t
5898 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5899 vreinterpret_u32_s32 (int32x2_t __a)
5901 return (uint32x2_t) __a;
5904 __extension__ extern __inline uint32x2_t
5905 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5906 vreinterpret_u32_s64 (int64x1_t __a)
5908 return (uint32x2_t) __a;
5911 __extension__ extern __inline uint32x2_t
5912 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5913 vreinterpret_u32_f32 (float32x2_t __a)
5915 return (uint32x2_t) __a;
5918 __extension__ extern __inline uint32x2_t
5919 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5920 vreinterpret_u32_u8 (uint8x8_t __a)
5922 return (uint32x2_t) __a;
5925 __extension__ extern __inline uint32x2_t
5926 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5927 vreinterpret_u32_u16 (uint16x4_t __a)
5929 return (uint32x2_t) __a;
5932 __extension__ extern __inline uint32x2_t
5933 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5934 vreinterpret_u32_u64 (uint64x1_t __a)
5936 return (uint32x2_t) __a;
5939 __extension__ extern __inline uint32x2_t
5940 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5941 vreinterpret_u32_p8 (poly8x8_t __a)
5943 return (uint32x2_t) __a;
5946 __extension__ extern __inline uint32x2_t
5947 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5948 vreinterpret_u32_p16 (poly16x4_t __a)
5950 return (uint32x2_t) __a;
5953 __extension__ extern __inline uint32x2_t
5954 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5955 vreinterpret_u32_p64 (poly64x1_t __a)
5957 return (uint32x2_t) __a;
5960 __extension__ extern __inline uint32x4_t
5961 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5962 vreinterpretq_u32_f64 (float64x2_t __a)
5964 return (uint32x4_t) __a;
5967 __extension__ extern __inline uint32x4_t
5968 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5969 vreinterpretq_u32_s8 (int8x16_t __a)
5971 return (uint32x4_t) __a;
5974 __extension__ extern __inline uint32x4_t
5975 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5976 vreinterpretq_u32_s16 (int16x8_t __a)
5978 return (uint32x4_t) __a;
5981 __extension__ extern __inline uint32x4_t
5982 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5983 vreinterpretq_u32_s32 (int32x4_t __a)
5985 return (uint32x4_t) __a;
5988 __extension__ extern __inline uint32x4_t
5989 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5990 vreinterpretq_u32_s64 (int64x2_t __a)
5992 return (uint32x4_t) __a;
5995 __extension__ extern __inline uint32x4_t
5996 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5997 vreinterpretq_u32_f16 (float16x8_t __a)
5999 return (uint32x4_t) __a;
6002 __extension__ extern __inline uint32x4_t
6003 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6004 vreinterpretq_u32_f32 (float32x4_t __a)
6006 return (uint32x4_t) __a;
6009 __extension__ extern __inline uint32x4_t
6010 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6011 vreinterpretq_u32_u8 (uint8x16_t __a)
6013 return (uint32x4_t) __a;
6016 __extension__ extern __inline uint32x4_t
6017 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6018 vreinterpretq_u32_u16 (uint16x8_t __a)
6020 return (uint32x4_t) __a;
6023 __extension__ extern __inline uint32x4_t
6024 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6025 vreinterpretq_u32_u64 (uint64x2_t __a)
6027 return (uint32x4_t) __a;
6030 __extension__ extern __inline uint32x4_t
6031 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6032 vreinterpretq_u32_p8 (poly8x16_t __a)
6034 return (uint32x4_t) __a;
6037 __extension__ extern __inline uint32x4_t
6038 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6039 vreinterpretq_u32_p16 (poly16x8_t __a)
6041 return (uint32x4_t) __a;
6044 __extension__ extern __inline uint32x4_t
6045 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6046 vreinterpretq_u32_p64 (poly64x2_t __a)
6048 return (uint32x4_t) __a;
6051 __extension__ extern __inline uint32x4_t
6052 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6053 vreinterpretq_u32_p128 (poly128_t __a)
6055 return (uint32x4_t)__a;
6058 /* vset_lane */
6060 __extension__ extern __inline float16x4_t
6061 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6062 vset_lane_f16 (float16_t __elem, float16x4_t __vec, const int __index)
6064 return __aarch64_vset_lane_any (__elem, __vec, __index);
6067 __extension__ extern __inline float32x2_t
6068 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6069 vset_lane_f32 (float32_t __elem, float32x2_t __vec, const int __index)
6071 return __aarch64_vset_lane_any (__elem, __vec, __index);
6074 __extension__ extern __inline float64x1_t
6075 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6076 vset_lane_f64 (float64_t __elem, float64x1_t __vec, const int __index)
6078 return __aarch64_vset_lane_any (__elem, __vec, __index);
6081 __extension__ extern __inline poly8x8_t
6082 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6083 vset_lane_p8 (poly8_t __elem, poly8x8_t __vec, const int __index)
6085 return __aarch64_vset_lane_any (__elem, __vec, __index);
6088 __extension__ extern __inline poly16x4_t
6089 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6090 vset_lane_p16 (poly16_t __elem, poly16x4_t __vec, const int __index)
6092 return __aarch64_vset_lane_any (__elem, __vec, __index);
6095 __extension__ extern __inline poly64x1_t
6096 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6097 vset_lane_p64 (poly64_t __elem, poly64x1_t __vec, const int __index)
6099 return __aarch64_vset_lane_any (__elem, __vec, __index);
6102 __extension__ extern __inline int8x8_t
6103 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6104 vset_lane_s8 (int8_t __elem, int8x8_t __vec, const int __index)
6106 return __aarch64_vset_lane_any (__elem, __vec, __index);
6109 __extension__ extern __inline int16x4_t
6110 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6111 vset_lane_s16 (int16_t __elem, int16x4_t __vec, const int __index)
6113 return __aarch64_vset_lane_any (__elem, __vec, __index);
6116 __extension__ extern __inline int32x2_t
6117 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6118 vset_lane_s32 (int32_t __elem, int32x2_t __vec, const int __index)
6120 return __aarch64_vset_lane_any (__elem, __vec, __index);
6123 __extension__ extern __inline int64x1_t
6124 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6125 vset_lane_s64 (int64_t __elem, int64x1_t __vec, const int __index)
6127 return __aarch64_vset_lane_any (__elem, __vec, __index);
6130 __extension__ extern __inline uint8x8_t
6131 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6132 vset_lane_u8 (uint8_t __elem, uint8x8_t __vec, const int __index)
6134 return __aarch64_vset_lane_any (__elem, __vec, __index);
6137 __extension__ extern __inline uint16x4_t
6138 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6139 vset_lane_u16 (uint16_t __elem, uint16x4_t __vec, const int __index)
6141 return __aarch64_vset_lane_any (__elem, __vec, __index);
6144 __extension__ extern __inline uint32x2_t
6145 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6146 vset_lane_u32 (uint32_t __elem, uint32x2_t __vec, const int __index)
6148 return __aarch64_vset_lane_any (__elem, __vec, __index);
6151 __extension__ extern __inline uint64x1_t
6152 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6153 vset_lane_u64 (uint64_t __elem, uint64x1_t __vec, const int __index)
6155 return __aarch64_vset_lane_any (__elem, __vec, __index);
6158 /* vsetq_lane */
6160 __extension__ extern __inline float16x8_t
6161 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6162 vsetq_lane_f16 (float16_t __elem, float16x8_t __vec, const int __index)
6164 return __aarch64_vset_lane_any (__elem, __vec, __index);
6167 __extension__ extern __inline float32x4_t
6168 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6169 vsetq_lane_f32 (float32_t __elem, float32x4_t __vec, const int __index)
6171 return __aarch64_vset_lane_any (__elem, __vec, __index);
6174 __extension__ extern __inline float64x2_t
6175 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6176 vsetq_lane_f64 (float64_t __elem, float64x2_t __vec, const int __index)
6178 return __aarch64_vset_lane_any (__elem, __vec, __index);
6181 __extension__ extern __inline poly8x16_t
6182 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6183 vsetq_lane_p8 (poly8_t __elem, poly8x16_t __vec, const int __index)
6185 return __aarch64_vset_lane_any (__elem, __vec, __index);
6188 __extension__ extern __inline poly16x8_t
6189 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6190 vsetq_lane_p16 (poly16_t __elem, poly16x8_t __vec, const int __index)
6192 return __aarch64_vset_lane_any (__elem, __vec, __index);
6195 __extension__ extern __inline poly64x2_t
6196 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6197 vsetq_lane_p64 (poly64_t __elem, poly64x2_t __vec, const int __index)
6199 return __aarch64_vset_lane_any (__elem, __vec, __index);
6202 __extension__ extern __inline int8x16_t
6203 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6204 vsetq_lane_s8 (int8_t __elem, int8x16_t __vec, const int __index)
6206 return __aarch64_vset_lane_any (__elem, __vec, __index);
6209 __extension__ extern __inline int16x8_t
6210 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6211 vsetq_lane_s16 (int16_t __elem, int16x8_t __vec, const int __index)
6213 return __aarch64_vset_lane_any (__elem, __vec, __index);
6216 __extension__ extern __inline int32x4_t
6217 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6218 vsetq_lane_s32 (int32_t __elem, int32x4_t __vec, const int __index)
6220 return __aarch64_vset_lane_any (__elem, __vec, __index);
6223 __extension__ extern __inline int64x2_t
6224 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6225 vsetq_lane_s64 (int64_t __elem, int64x2_t __vec, const int __index)
6227 return __aarch64_vset_lane_any (__elem, __vec, __index);
6230 __extension__ extern __inline uint8x16_t
6231 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6232 vsetq_lane_u8 (uint8_t __elem, uint8x16_t __vec, const int __index)
6234 return __aarch64_vset_lane_any (__elem, __vec, __index);
6237 __extension__ extern __inline uint16x8_t
6238 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6239 vsetq_lane_u16 (uint16_t __elem, uint16x8_t __vec, const int __index)
6241 return __aarch64_vset_lane_any (__elem, __vec, __index);
6244 __extension__ extern __inline uint32x4_t
6245 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6246 vsetq_lane_u32 (uint32_t __elem, uint32x4_t __vec, const int __index)
6248 return __aarch64_vset_lane_any (__elem, __vec, __index);
6251 __extension__ extern __inline uint64x2_t
6252 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6253 vsetq_lane_u64 (uint64_t __elem, uint64x2_t __vec, const int __index)
6255 return __aarch64_vset_lane_any (__elem, __vec, __index);
6258 #define __GET_LOW(__TYPE) \
6259 uint64x2_t tmp = vreinterpretq_u64_##__TYPE (__a); \
6260 uint64x1_t lo = vcreate_u64 (vgetq_lane_u64 (tmp, 0)); \
6261 return vreinterpret_##__TYPE##_u64 (lo);
6263 __extension__ extern __inline float16x4_t
6264 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6265 vget_low_f16 (float16x8_t __a)
6267 __GET_LOW (f16);
6270 __extension__ extern __inline float32x2_t
6271 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6272 vget_low_f32 (float32x4_t __a)
6274 __GET_LOW (f32);
6277 __extension__ extern __inline float64x1_t
6278 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6279 vget_low_f64 (float64x2_t __a)
6281 return (float64x1_t) {vgetq_lane_f64 (__a, 0)};
6284 __extension__ extern __inline poly8x8_t
6285 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6286 vget_low_p8 (poly8x16_t __a)
6288 __GET_LOW (p8);
6291 __extension__ extern __inline poly16x4_t
6292 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6293 vget_low_p16 (poly16x8_t __a)
6295 __GET_LOW (p16);
6298 __extension__ extern __inline poly64x1_t
6299 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6300 vget_low_p64 (poly64x2_t __a)
6302 __GET_LOW (p64);
6305 __extension__ extern __inline int8x8_t
6306 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6307 vget_low_s8 (int8x16_t __a)
6309 __GET_LOW (s8);
6312 __extension__ extern __inline int16x4_t
6313 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6314 vget_low_s16 (int16x8_t __a)
6316 __GET_LOW (s16);
6319 __extension__ extern __inline int32x2_t
6320 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6321 vget_low_s32 (int32x4_t __a)
6323 __GET_LOW (s32);
6326 __extension__ extern __inline int64x1_t
6327 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6328 vget_low_s64 (int64x2_t __a)
6330 __GET_LOW (s64);
6333 __extension__ extern __inline uint8x8_t
6334 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6335 vget_low_u8 (uint8x16_t __a)
6337 __GET_LOW (u8);
6340 __extension__ extern __inline uint16x4_t
6341 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6342 vget_low_u16 (uint16x8_t __a)
6344 __GET_LOW (u16);
6347 __extension__ extern __inline uint32x2_t
6348 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6349 vget_low_u32 (uint32x4_t __a)
6351 __GET_LOW (u32);
6354 __extension__ extern __inline uint64x1_t
6355 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6356 vget_low_u64 (uint64x2_t __a)
6358 return vcreate_u64 (vgetq_lane_u64 (__a, 0));
6361 #undef __GET_LOW
6363 #define __GET_HIGH(__TYPE) \
6364 uint64x2_t tmp = vreinterpretq_u64_##__TYPE (__a); \
6365 uint64x1_t hi = vcreate_u64 (vgetq_lane_u64 (tmp, 1)); \
6366 return vreinterpret_##__TYPE##_u64 (hi);
6368 __extension__ extern __inline float16x4_t
6369 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6370 vget_high_f16 (float16x8_t __a)
6372 __GET_HIGH (f16);
6375 __extension__ extern __inline float32x2_t
6376 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6377 vget_high_f32 (float32x4_t __a)
6379 __GET_HIGH (f32);
6382 __extension__ extern __inline float64x1_t
6383 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6384 vget_high_f64 (float64x2_t __a)
6386 __GET_HIGH (f64);
6389 __extension__ extern __inline poly8x8_t
6390 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6391 vget_high_p8 (poly8x16_t __a)
6393 __GET_HIGH (p8);
6396 __extension__ extern __inline poly16x4_t
6397 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6398 vget_high_p16 (poly16x8_t __a)
6400 __GET_HIGH (p16);
6403 __extension__ extern __inline poly64x1_t
6404 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6405 vget_high_p64 (poly64x2_t __a)
6407 __GET_HIGH (p64);
6410 __extension__ extern __inline int8x8_t
6411 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6412 vget_high_s8 (int8x16_t __a)
6414 __GET_HIGH (s8);
6417 __extension__ extern __inline int16x4_t
6418 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6419 vget_high_s16 (int16x8_t __a)
6421 __GET_HIGH (s16);
6424 __extension__ extern __inline int32x2_t
6425 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6426 vget_high_s32 (int32x4_t __a)
6428 __GET_HIGH (s32);
6431 __extension__ extern __inline int64x1_t
6432 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6433 vget_high_s64 (int64x2_t __a)
6435 __GET_HIGH (s64);
6438 __extension__ extern __inline uint8x8_t
6439 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6440 vget_high_u8 (uint8x16_t __a)
6442 __GET_HIGH (u8);
6445 __extension__ extern __inline uint16x4_t
6446 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6447 vget_high_u16 (uint16x8_t __a)
6449 __GET_HIGH (u16);
6452 __extension__ extern __inline uint32x2_t
6453 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6454 vget_high_u32 (uint32x4_t __a)
6456 __GET_HIGH (u32);
6459 #undef __GET_HIGH
6461 __extension__ extern __inline uint64x1_t
6462 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6463 vget_high_u64 (uint64x2_t __a)
6465 return vcreate_u64 (vgetq_lane_u64 (__a, 1));
6468 __extension__ extern __inline int8x16_t
6469 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6470 vcombine_s8 (int8x8_t __a, int8x8_t __b)
6472 return (int8x16_t) __builtin_aarch64_combinev8qi (__a, __b);
6475 __extension__ extern __inline int16x8_t
6476 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6477 vcombine_s16 (int16x4_t __a, int16x4_t __b)
6479 return (int16x8_t) __builtin_aarch64_combinev4hi (__a, __b);
6482 __extension__ extern __inline int32x4_t
6483 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6484 vcombine_s32 (int32x2_t __a, int32x2_t __b)
6486 return (int32x4_t) __builtin_aarch64_combinev2si (__a, __b);
6489 __extension__ extern __inline int64x2_t
6490 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6491 vcombine_s64 (int64x1_t __a, int64x1_t __b)
6493 return __builtin_aarch64_combinedi (__a[0], __b[0]);
6496 __extension__ extern __inline float16x8_t
6497 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6498 vcombine_f16 (float16x4_t __a, float16x4_t __b)
6500 return __builtin_aarch64_combinev4hf (__a, __b);
6503 __extension__ extern __inline float32x4_t
6504 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6505 vcombine_f32 (float32x2_t __a, float32x2_t __b)
6507 return (float32x4_t) __builtin_aarch64_combinev2sf (__a, __b);
6510 __extension__ extern __inline uint8x16_t
6511 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6512 vcombine_u8 (uint8x8_t __a, uint8x8_t __b)
6514 return (uint8x16_t) __builtin_aarch64_combinev8qi ((int8x8_t) __a,
6515 (int8x8_t) __b);
6518 __extension__ extern __inline uint16x8_t
6519 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6520 vcombine_u16 (uint16x4_t __a, uint16x4_t __b)
6522 return (uint16x8_t) __builtin_aarch64_combinev4hi ((int16x4_t) __a,
6523 (int16x4_t) __b);
6526 __extension__ extern __inline uint32x4_t
6527 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6528 vcombine_u32 (uint32x2_t __a, uint32x2_t __b)
6530 return (uint32x4_t) __builtin_aarch64_combinev2si ((int32x2_t) __a,
6531 (int32x2_t) __b);
6534 __extension__ extern __inline uint64x2_t
6535 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6536 vcombine_u64 (uint64x1_t __a, uint64x1_t __b)
6538 return (uint64x2_t) __builtin_aarch64_combinedi (__a[0], __b[0]);
6541 __extension__ extern __inline float64x2_t
6542 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6543 vcombine_f64 (float64x1_t __a, float64x1_t __b)
6545 return __builtin_aarch64_combinedf (__a[0], __b[0]);
6548 __extension__ extern __inline poly8x16_t
6549 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6550 vcombine_p8 (poly8x8_t __a, poly8x8_t __b)
6552 return (poly8x16_t) __builtin_aarch64_combinev8qi ((int8x8_t) __a,
6553 (int8x8_t) __b);
6556 __extension__ extern __inline poly16x8_t
6557 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6558 vcombine_p16 (poly16x4_t __a, poly16x4_t __b)
6560 return (poly16x8_t) __builtin_aarch64_combinev4hi ((int16x4_t) __a,
6561 (int16x4_t) __b);
6564 __extension__ extern __inline poly64x2_t
6565 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6566 vcombine_p64 (poly64x1_t __a, poly64x1_t __b)
6568 return (poly64x2_t) __builtin_aarch64_combinedi_ppp (__a[0], __b[0]);
6571 /* Start of temporary inline asm implementations. */
6573 __extension__ extern __inline int8x8_t
6574 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6575 vaba_s8 (int8x8_t a, int8x8_t b, int8x8_t c)
6577 int8x8_t result;
6578 __asm__ ("saba %0.8b,%2.8b,%3.8b"
6579 : "=w"(result)
6580 : "0"(a), "w"(b), "w"(c)
6581 : /* No clobbers */);
6582 return result;
6585 __extension__ extern __inline int16x4_t
6586 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6587 vaba_s16 (int16x4_t a, int16x4_t b, int16x4_t c)
6589 int16x4_t result;
6590 __asm__ ("saba %0.4h,%2.4h,%3.4h"
6591 : "=w"(result)
6592 : "0"(a), "w"(b), "w"(c)
6593 : /* No clobbers */);
6594 return result;
6597 __extension__ extern __inline int32x2_t
6598 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6599 vaba_s32 (int32x2_t a, int32x2_t b, int32x2_t c)
6601 int32x2_t result;
6602 __asm__ ("saba %0.2s,%2.2s,%3.2s"
6603 : "=w"(result)
6604 : "0"(a), "w"(b), "w"(c)
6605 : /* No clobbers */);
6606 return result;
6609 __extension__ extern __inline uint8x8_t
6610 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6611 vaba_u8 (uint8x8_t a, uint8x8_t b, uint8x8_t c)
6613 uint8x8_t result;
6614 __asm__ ("uaba %0.8b,%2.8b,%3.8b"
6615 : "=w"(result)
6616 : "0"(a), "w"(b), "w"(c)
6617 : /* No clobbers */);
6618 return result;
6621 __extension__ extern __inline uint16x4_t
6622 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6623 vaba_u16 (uint16x4_t a, uint16x4_t b, uint16x4_t c)
6625 uint16x4_t result;
6626 __asm__ ("uaba %0.4h,%2.4h,%3.4h"
6627 : "=w"(result)
6628 : "0"(a), "w"(b), "w"(c)
6629 : /* No clobbers */);
6630 return result;
6633 __extension__ extern __inline uint32x2_t
6634 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6635 vaba_u32 (uint32x2_t a, uint32x2_t b, uint32x2_t c)
6637 uint32x2_t result;
6638 __asm__ ("uaba %0.2s,%2.2s,%3.2s"
6639 : "=w"(result)
6640 : "0"(a), "w"(b), "w"(c)
6641 : /* No clobbers */);
6642 return result;
6645 __extension__ extern __inline int16x8_t
6646 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6647 vabal_high_s8 (int16x8_t a, int8x16_t b, int8x16_t c)
6649 int16x8_t result;
6650 __asm__ ("sabal2 %0.8h,%2.16b,%3.16b"
6651 : "=w"(result)
6652 : "0"(a), "w"(b), "w"(c)
6653 : /* No clobbers */);
6654 return result;
6657 __extension__ extern __inline int32x4_t
6658 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6659 vabal_high_s16 (int32x4_t a, int16x8_t b, int16x8_t c)
6661 int32x4_t result;
6662 __asm__ ("sabal2 %0.4s,%2.8h,%3.8h"
6663 : "=w"(result)
6664 : "0"(a), "w"(b), "w"(c)
6665 : /* No clobbers */);
6666 return result;
6669 __extension__ extern __inline int64x2_t
6670 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6671 vabal_high_s32 (int64x2_t a, int32x4_t b, int32x4_t c)
6673 int64x2_t result;
6674 __asm__ ("sabal2 %0.2d,%2.4s,%3.4s"
6675 : "=w"(result)
6676 : "0"(a), "w"(b), "w"(c)
6677 : /* No clobbers */);
6678 return result;
6681 __extension__ extern __inline uint16x8_t
6682 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6683 vabal_high_u8 (uint16x8_t a, uint8x16_t b, uint8x16_t c)
6685 uint16x8_t result;
6686 __asm__ ("uabal2 %0.8h,%2.16b,%3.16b"
6687 : "=w"(result)
6688 : "0"(a), "w"(b), "w"(c)
6689 : /* No clobbers */);
6690 return result;
6693 __extension__ extern __inline uint32x4_t
6694 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6695 vabal_high_u16 (uint32x4_t a, uint16x8_t b, uint16x8_t c)
6697 uint32x4_t result;
6698 __asm__ ("uabal2 %0.4s,%2.8h,%3.8h"
6699 : "=w"(result)
6700 : "0"(a), "w"(b), "w"(c)
6701 : /* No clobbers */);
6702 return result;
6705 __extension__ extern __inline uint64x2_t
6706 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6707 vabal_high_u32 (uint64x2_t a, uint32x4_t b, uint32x4_t c)
6709 uint64x2_t result;
6710 __asm__ ("uabal2 %0.2d,%2.4s,%3.4s"
6711 : "=w"(result)
6712 : "0"(a), "w"(b), "w"(c)
6713 : /* No clobbers */);
6714 return result;
6717 __extension__ extern __inline int16x8_t
6718 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6719 vabal_s8 (int16x8_t a, int8x8_t b, int8x8_t c)
6721 int16x8_t result;
6722 __asm__ ("sabal %0.8h,%2.8b,%3.8b"
6723 : "=w"(result)
6724 : "0"(a), "w"(b), "w"(c)
6725 : /* No clobbers */);
6726 return result;
6729 __extension__ extern __inline int32x4_t
6730 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6731 vabal_s16 (int32x4_t a, int16x4_t b, int16x4_t c)
6733 int32x4_t result;
6734 __asm__ ("sabal %0.4s,%2.4h,%3.4h"
6735 : "=w"(result)
6736 : "0"(a), "w"(b), "w"(c)
6737 : /* No clobbers */);
6738 return result;
6741 __extension__ extern __inline int64x2_t
6742 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6743 vabal_s32 (int64x2_t a, int32x2_t b, int32x2_t c)
6745 int64x2_t result;
6746 __asm__ ("sabal %0.2d,%2.2s,%3.2s"
6747 : "=w"(result)
6748 : "0"(a), "w"(b), "w"(c)
6749 : /* No clobbers */);
6750 return result;
6753 __extension__ extern __inline uint16x8_t
6754 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6755 vabal_u8 (uint16x8_t a, uint8x8_t b, uint8x8_t c)
6757 uint16x8_t result;
6758 __asm__ ("uabal %0.8h,%2.8b,%3.8b"
6759 : "=w"(result)
6760 : "0"(a), "w"(b), "w"(c)
6761 : /* No clobbers */);
6762 return result;
6765 __extension__ extern __inline uint32x4_t
6766 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6767 vabal_u16 (uint32x4_t a, uint16x4_t b, uint16x4_t c)
6769 uint32x4_t result;
6770 __asm__ ("uabal %0.4s,%2.4h,%3.4h"
6771 : "=w"(result)
6772 : "0"(a), "w"(b), "w"(c)
6773 : /* No clobbers */);
6774 return result;
6777 __extension__ extern __inline uint64x2_t
6778 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6779 vabal_u32 (uint64x2_t a, uint32x2_t b, uint32x2_t c)
6781 uint64x2_t result;
6782 __asm__ ("uabal %0.2d,%2.2s,%3.2s"
6783 : "=w"(result)
6784 : "0"(a), "w"(b), "w"(c)
6785 : /* No clobbers */);
6786 return result;
6789 __extension__ extern __inline int8x16_t
6790 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6791 vabaq_s8 (int8x16_t a, int8x16_t b, int8x16_t c)
6793 int8x16_t result;
6794 __asm__ ("saba %0.16b,%2.16b,%3.16b"
6795 : "=w"(result)
6796 : "0"(a), "w"(b), "w"(c)
6797 : /* No clobbers */);
6798 return result;
6801 __extension__ extern __inline int16x8_t
6802 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6803 vabaq_s16 (int16x8_t a, int16x8_t b, int16x8_t c)
6805 int16x8_t result;
6806 __asm__ ("saba %0.8h,%2.8h,%3.8h"
6807 : "=w"(result)
6808 : "0"(a), "w"(b), "w"(c)
6809 : /* No clobbers */);
6810 return result;
6813 __extension__ extern __inline int32x4_t
6814 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6815 vabaq_s32 (int32x4_t a, int32x4_t b, int32x4_t c)
6817 int32x4_t result;
6818 __asm__ ("saba %0.4s,%2.4s,%3.4s"
6819 : "=w"(result)
6820 : "0"(a), "w"(b), "w"(c)
6821 : /* No clobbers */);
6822 return result;
6825 __extension__ extern __inline uint8x16_t
6826 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6827 vabaq_u8 (uint8x16_t a, uint8x16_t b, uint8x16_t c)
6829 uint8x16_t result;
6830 __asm__ ("uaba %0.16b,%2.16b,%3.16b"
6831 : "=w"(result)
6832 : "0"(a), "w"(b), "w"(c)
6833 : /* No clobbers */);
6834 return result;
6837 __extension__ extern __inline uint16x8_t
6838 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6839 vabaq_u16 (uint16x8_t a, uint16x8_t b, uint16x8_t c)
6841 uint16x8_t result;
6842 __asm__ ("uaba %0.8h,%2.8h,%3.8h"
6843 : "=w"(result)
6844 : "0"(a), "w"(b), "w"(c)
6845 : /* No clobbers */);
6846 return result;
6849 __extension__ extern __inline uint32x4_t
6850 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6851 vabaq_u32 (uint32x4_t a, uint32x4_t b, uint32x4_t c)
6853 uint32x4_t result;
6854 __asm__ ("uaba %0.4s,%2.4s,%3.4s"
6855 : "=w"(result)
6856 : "0"(a), "w"(b), "w"(c)
6857 : /* No clobbers */);
6858 return result;
6861 __extension__ extern __inline int8x8_t
6862 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6863 vabd_s8 (int8x8_t a, int8x8_t b)
6865 int8x8_t result;
6866 __asm__ ("sabd %0.8b, %1.8b, %2.8b"
6867 : "=w"(result)
6868 : "w"(a), "w"(b)
6869 : /* No clobbers */);
6870 return result;
6873 __extension__ extern __inline int16x4_t
6874 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6875 vabd_s16 (int16x4_t a, int16x4_t b)
6877 int16x4_t result;
6878 __asm__ ("sabd %0.4h, %1.4h, %2.4h"
6879 : "=w"(result)
6880 : "w"(a), "w"(b)
6881 : /* No clobbers */);
6882 return result;
6885 __extension__ extern __inline int32x2_t
6886 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6887 vabd_s32 (int32x2_t a, int32x2_t b)
6889 int32x2_t result;
6890 __asm__ ("sabd %0.2s, %1.2s, %2.2s"
6891 : "=w"(result)
6892 : "w"(a), "w"(b)
6893 : /* No clobbers */);
6894 return result;
6897 __extension__ extern __inline uint8x8_t
6898 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6899 vabd_u8 (uint8x8_t a, uint8x8_t b)
6901 uint8x8_t result;
6902 __asm__ ("uabd %0.8b, %1.8b, %2.8b"
6903 : "=w"(result)
6904 : "w"(a), "w"(b)
6905 : /* No clobbers */);
6906 return result;
6909 __extension__ extern __inline uint16x4_t
6910 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6911 vabd_u16 (uint16x4_t a, uint16x4_t b)
6913 uint16x4_t result;
6914 __asm__ ("uabd %0.4h, %1.4h, %2.4h"
6915 : "=w"(result)
6916 : "w"(a), "w"(b)
6917 : /* No clobbers */);
6918 return result;
6921 __extension__ extern __inline uint32x2_t
6922 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6923 vabd_u32 (uint32x2_t a, uint32x2_t b)
6925 uint32x2_t result;
6926 __asm__ ("uabd %0.2s, %1.2s, %2.2s"
6927 : "=w"(result)
6928 : "w"(a), "w"(b)
6929 : /* No clobbers */);
6930 return result;
6933 __extension__ extern __inline int16x8_t
6934 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6935 vabdl_high_s8 (int8x16_t a, int8x16_t b)
6937 int16x8_t result;
6938 __asm__ ("sabdl2 %0.8h,%1.16b,%2.16b"
6939 : "=w"(result)
6940 : "w"(a), "w"(b)
6941 : /* No clobbers */);
6942 return result;
6945 __extension__ extern __inline int32x4_t
6946 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6947 vabdl_high_s16 (int16x8_t a, int16x8_t b)
6949 int32x4_t result;
6950 __asm__ ("sabdl2 %0.4s,%1.8h,%2.8h"
6951 : "=w"(result)
6952 : "w"(a), "w"(b)
6953 : /* No clobbers */);
6954 return result;
6957 __extension__ extern __inline int64x2_t
6958 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6959 vabdl_high_s32 (int32x4_t a, int32x4_t b)
6961 int64x2_t result;
6962 __asm__ ("sabdl2 %0.2d,%1.4s,%2.4s"
6963 : "=w"(result)
6964 : "w"(a), "w"(b)
6965 : /* No clobbers */);
6966 return result;
6969 __extension__ extern __inline uint16x8_t
6970 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6971 vabdl_high_u8 (uint8x16_t a, uint8x16_t b)
6973 uint16x8_t result;
6974 __asm__ ("uabdl2 %0.8h,%1.16b,%2.16b"
6975 : "=w"(result)
6976 : "w"(a), "w"(b)
6977 : /* No clobbers */);
6978 return result;
6981 __extension__ extern __inline uint32x4_t
6982 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6983 vabdl_high_u16 (uint16x8_t a, uint16x8_t b)
6985 uint32x4_t result;
6986 __asm__ ("uabdl2 %0.4s,%1.8h,%2.8h"
6987 : "=w"(result)
6988 : "w"(a), "w"(b)
6989 : /* No clobbers */);
6990 return result;
6993 __extension__ extern __inline uint64x2_t
6994 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6995 vabdl_high_u32 (uint32x4_t a, uint32x4_t b)
6997 uint64x2_t result;
6998 __asm__ ("uabdl2 %0.2d,%1.4s,%2.4s"
6999 : "=w"(result)
7000 : "w"(a), "w"(b)
7001 : /* No clobbers */);
7002 return result;
7005 __extension__ extern __inline int16x8_t
7006 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7007 vabdl_s8 (int8x8_t a, int8x8_t b)
7009 int16x8_t result;
7010 __asm__ ("sabdl %0.8h, %1.8b, %2.8b"
7011 : "=w"(result)
7012 : "w"(a), "w"(b)
7013 : /* No clobbers */);
7014 return result;
7017 __extension__ extern __inline int32x4_t
7018 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7019 vabdl_s16 (int16x4_t a, int16x4_t b)
7021 int32x4_t result;
7022 __asm__ ("sabdl %0.4s, %1.4h, %2.4h"
7023 : "=w"(result)
7024 : "w"(a), "w"(b)
7025 : /* No clobbers */);
7026 return result;
7029 __extension__ extern __inline int64x2_t
7030 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7031 vabdl_s32 (int32x2_t a, int32x2_t b)
7033 int64x2_t result;
7034 __asm__ ("sabdl %0.2d, %1.2s, %2.2s"
7035 : "=w"(result)
7036 : "w"(a), "w"(b)
7037 : /* No clobbers */);
7038 return result;
7041 __extension__ extern __inline uint16x8_t
7042 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7043 vabdl_u8 (uint8x8_t a, uint8x8_t b)
7045 uint16x8_t result;
7046 __asm__ ("uabdl %0.8h, %1.8b, %2.8b"
7047 : "=w"(result)
7048 : "w"(a), "w"(b)
7049 : /* No clobbers */);
7050 return result;
7053 __extension__ extern __inline uint32x4_t
7054 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7055 vabdl_u16 (uint16x4_t a, uint16x4_t b)
7057 uint32x4_t result;
7058 __asm__ ("uabdl %0.4s, %1.4h, %2.4h"
7059 : "=w"(result)
7060 : "w"(a), "w"(b)
7061 : /* No clobbers */);
7062 return result;
7065 __extension__ extern __inline uint64x2_t
7066 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7067 vabdl_u32 (uint32x2_t a, uint32x2_t b)
7069 uint64x2_t result;
7070 __asm__ ("uabdl %0.2d, %1.2s, %2.2s"
7071 : "=w"(result)
7072 : "w"(a), "w"(b)
7073 : /* No clobbers */);
7074 return result;
7077 __extension__ extern __inline int8x16_t
7078 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7079 vabdq_s8 (int8x16_t a, int8x16_t b)
7081 int8x16_t result;
7082 __asm__ ("sabd %0.16b, %1.16b, %2.16b"
7083 : "=w"(result)
7084 : "w"(a), "w"(b)
7085 : /* No clobbers */);
7086 return result;
7089 __extension__ extern __inline int16x8_t
7090 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7091 vabdq_s16 (int16x8_t a, int16x8_t b)
7093 int16x8_t result;
7094 __asm__ ("sabd %0.8h, %1.8h, %2.8h"
7095 : "=w"(result)
7096 : "w"(a), "w"(b)
7097 : /* No clobbers */);
7098 return result;
7101 __extension__ extern __inline int32x4_t
7102 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7103 vabdq_s32 (int32x4_t a, int32x4_t b)
7105 int32x4_t result;
7106 __asm__ ("sabd %0.4s, %1.4s, %2.4s"
7107 : "=w"(result)
7108 : "w"(a), "w"(b)
7109 : /* No clobbers */);
7110 return result;
7113 __extension__ extern __inline uint8x16_t
7114 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7115 vabdq_u8 (uint8x16_t a, uint8x16_t b)
7117 uint8x16_t result;
7118 __asm__ ("uabd %0.16b, %1.16b, %2.16b"
7119 : "=w"(result)
7120 : "w"(a), "w"(b)
7121 : /* No clobbers */);
7122 return result;
7125 __extension__ extern __inline uint16x8_t
7126 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7127 vabdq_u16 (uint16x8_t a, uint16x8_t b)
7129 uint16x8_t result;
7130 __asm__ ("uabd %0.8h, %1.8h, %2.8h"
7131 : "=w"(result)
7132 : "w"(a), "w"(b)
7133 : /* No clobbers */);
7134 return result;
7137 __extension__ extern __inline uint32x4_t
7138 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7139 vabdq_u32 (uint32x4_t a, uint32x4_t b)
7141 uint32x4_t result;
7142 __asm__ ("uabd %0.4s, %1.4s, %2.4s"
7143 : "=w"(result)
7144 : "w"(a), "w"(b)
7145 : /* No clobbers */);
7146 return result;
7149 __extension__ extern __inline int16_t
7150 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7151 vaddlv_s8 (int8x8_t a)
7153 int16_t result;
7154 __asm__ ("saddlv %h0,%1.8b"
7155 : "=w"(result)
7156 : "w"(a)
7157 : /* No clobbers */);
7158 return result;
7161 __extension__ extern __inline int32_t
7162 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7163 vaddlv_s16 (int16x4_t a)
7165 int32_t result;
7166 __asm__ ("saddlv %s0,%1.4h"
7167 : "=w"(result)
7168 : "w"(a)
7169 : /* No clobbers */);
7170 return result;
7173 __extension__ extern __inline uint16_t
7174 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7175 vaddlv_u8 (uint8x8_t a)
7177 uint16_t result;
7178 __asm__ ("uaddlv %h0,%1.8b"
7179 : "=w"(result)
7180 : "w"(a)
7181 : /* No clobbers */);
7182 return result;
7185 __extension__ extern __inline uint32_t
7186 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7187 vaddlv_u16 (uint16x4_t a)
7189 uint32_t result;
7190 __asm__ ("uaddlv %s0,%1.4h"
7191 : "=w"(result)
7192 : "w"(a)
7193 : /* No clobbers */);
7194 return result;
7197 __extension__ extern __inline int16_t
7198 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7199 vaddlvq_s8 (int8x16_t a)
7201 int16_t result;
7202 __asm__ ("saddlv %h0,%1.16b"
7203 : "=w"(result)
7204 : "w"(a)
7205 : /* No clobbers */);
7206 return result;
7209 __extension__ extern __inline int32_t
7210 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7211 vaddlvq_s16 (int16x8_t a)
7213 int32_t result;
7214 __asm__ ("saddlv %s0,%1.8h"
7215 : "=w"(result)
7216 : "w"(a)
7217 : /* No clobbers */);
7218 return result;
7221 __extension__ extern __inline int64_t
7222 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7223 vaddlvq_s32 (int32x4_t a)
7225 int64_t result;
7226 __asm__ ("saddlv %d0,%1.4s"
7227 : "=w"(result)
7228 : "w"(a)
7229 : /* No clobbers */);
7230 return result;
7233 __extension__ extern __inline uint16_t
7234 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7235 vaddlvq_u8 (uint8x16_t a)
7237 uint16_t result;
7238 __asm__ ("uaddlv %h0,%1.16b"
7239 : "=w"(result)
7240 : "w"(a)
7241 : /* No clobbers */);
7242 return result;
7245 __extension__ extern __inline uint32_t
7246 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7247 vaddlvq_u16 (uint16x8_t a)
7249 uint32_t result;
7250 __asm__ ("uaddlv %s0,%1.8h"
7251 : "=w"(result)
7252 : "w"(a)
7253 : /* No clobbers */);
7254 return result;
7257 __extension__ extern __inline uint64_t
7258 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7259 vaddlvq_u32 (uint32x4_t a)
7261 uint64_t result;
7262 __asm__ ("uaddlv %d0,%1.4s"
7263 : "=w"(result)
7264 : "w"(a)
7265 : /* No clobbers */);
7266 return result;
7269 __extension__ extern __inline float32x2_t
7270 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7271 vcvtx_f32_f64 (float64x2_t a)
7273 float32x2_t result;
7274 __asm__ ("fcvtxn %0.2s,%1.2d"
7275 : "=w"(result)
7276 : "w"(a)
7277 : /* No clobbers */);
7278 return result;
7281 __extension__ extern __inline float32x4_t
7282 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7283 vcvtx_high_f32_f64 (float32x2_t a, float64x2_t b)
7285 float32x4_t result;
7286 __asm__ ("fcvtxn2 %0.4s,%1.2d"
7287 : "=w"(result)
7288 : "w" (b), "0"(a)
7289 : /* No clobbers */);
7290 return result;
7293 __extension__ extern __inline float32_t
7294 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7295 vcvtxd_f32_f64 (float64_t a)
7297 float32_t result;
7298 __asm__ ("fcvtxn %s0,%d1"
7299 : "=w"(result)
7300 : "w"(a)
7301 : /* No clobbers */);
7302 return result;
7305 __extension__ extern __inline float32x2_t
7306 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7307 vmla_n_f32 (float32x2_t a, float32x2_t b, float32_t c)
7309 float32x2_t result;
7310 float32x2_t t1;
7311 __asm__ ("fmul %1.2s, %3.2s, %4.s[0]; fadd %0.2s, %0.2s, %1.2s"
7312 : "=w"(result), "=w"(t1)
7313 : "0"(a), "w"(b), "w"(c)
7314 : /* No clobbers */);
7315 return result;
7318 __extension__ extern __inline int16x4_t
7319 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7320 vmla_n_s16 (int16x4_t a, int16x4_t b, int16_t c)
7322 int16x4_t result;
7323 __asm__ ("mla %0.4h,%2.4h,%3.h[0]"
7324 : "=w"(result)
7325 : "0"(a), "w"(b), "x"(c)
7326 : /* No clobbers */);
7327 return result;
7330 __extension__ extern __inline int32x2_t
7331 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7332 vmla_n_s32 (int32x2_t a, int32x2_t b, int32_t c)
7334 int32x2_t result;
7335 __asm__ ("mla %0.2s,%2.2s,%3.s[0]"
7336 : "=w"(result)
7337 : "0"(a), "w"(b), "w"(c)
7338 : /* No clobbers */);
7339 return result;
7342 __extension__ extern __inline uint16x4_t
7343 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7344 vmla_n_u16 (uint16x4_t a, uint16x4_t b, uint16_t c)
7346 uint16x4_t result;
7347 __asm__ ("mla %0.4h,%2.4h,%3.h[0]"
7348 : "=w"(result)
7349 : "0"(a), "w"(b), "x"(c)
7350 : /* No clobbers */);
7351 return result;
7354 __extension__ extern __inline uint32x2_t
7355 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7356 vmla_n_u32 (uint32x2_t a, uint32x2_t b, uint32_t c)
7358 uint32x2_t result;
7359 __asm__ ("mla %0.2s,%2.2s,%3.s[0]"
7360 : "=w"(result)
7361 : "0"(a), "w"(b), "w"(c)
7362 : /* No clobbers */);
7363 return result;
7366 __extension__ extern __inline int8x8_t
7367 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7368 vmla_s8 (int8x8_t a, int8x8_t b, int8x8_t c)
7370 int8x8_t result;
7371 __asm__ ("mla %0.8b, %2.8b, %3.8b"
7372 : "=w"(result)
7373 : "0"(a), "w"(b), "w"(c)
7374 : /* No clobbers */);
7375 return result;
7378 __extension__ extern __inline int16x4_t
7379 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7380 vmla_s16 (int16x4_t a, int16x4_t b, int16x4_t c)
7382 int16x4_t result;
7383 __asm__ ("mla %0.4h, %2.4h, %3.4h"
7384 : "=w"(result)
7385 : "0"(a), "w"(b), "w"(c)
7386 : /* No clobbers */);
7387 return result;
7390 __extension__ extern __inline int32x2_t
7391 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7392 vmla_s32 (int32x2_t a, int32x2_t b, int32x2_t c)
7394 int32x2_t result;
7395 __asm__ ("mla %0.2s, %2.2s, %3.2s"
7396 : "=w"(result)
7397 : "0"(a), "w"(b), "w"(c)
7398 : /* No clobbers */);
7399 return result;
7402 __extension__ extern __inline uint8x8_t
7403 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7404 vmla_u8 (uint8x8_t a, uint8x8_t b, uint8x8_t c)
7406 uint8x8_t result;
7407 __asm__ ("mla %0.8b, %2.8b, %3.8b"
7408 : "=w"(result)
7409 : "0"(a), "w"(b), "w"(c)
7410 : /* No clobbers */);
7411 return result;
7414 __extension__ extern __inline uint16x4_t
7415 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7416 vmla_u16 (uint16x4_t a, uint16x4_t b, uint16x4_t c)
7418 uint16x4_t result;
7419 __asm__ ("mla %0.4h, %2.4h, %3.4h"
7420 : "=w"(result)
7421 : "0"(a), "w"(b), "w"(c)
7422 : /* No clobbers */);
7423 return result;
7426 __extension__ extern __inline uint32x2_t
7427 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7428 vmla_u32 (uint32x2_t a, uint32x2_t b, uint32x2_t c)
7430 uint32x2_t result;
7431 __asm__ ("mla %0.2s, %2.2s, %3.2s"
7432 : "=w"(result)
7433 : "0"(a), "w"(b), "w"(c)
7434 : /* No clobbers */);
7435 return result;
7438 #define vmlal_high_lane_s16(a, b, c, d) \
7439 __extension__ \
7440 ({ \
7441 int16x4_t c_ = (c); \
7442 int16x8_t b_ = (b); \
7443 int32x4_t a_ = (a); \
7444 int32x4_t result; \
7445 __asm__ ("smlal2 %0.4s, %2.8h, %3.h[%4]" \
7446 : "=w"(result) \
7447 : "0"(a_), "w"(b_), "x"(c_), "i"(d) \
7448 : /* No clobbers */); \
7449 result; \
7452 #define vmlal_high_lane_s32(a, b, c, d) \
7453 __extension__ \
7454 ({ \
7455 int32x2_t c_ = (c); \
7456 int32x4_t b_ = (b); \
7457 int64x2_t a_ = (a); \
7458 int64x2_t result; \
7459 __asm__ ("smlal2 %0.2d, %2.4s, %3.s[%4]" \
7460 : "=w"(result) \
7461 : "0"(a_), "w"(b_), "w"(c_), "i"(d) \
7462 : /* No clobbers */); \
7463 result; \
7466 #define vmlal_high_lane_u16(a, b, c, d) \
7467 __extension__ \
7468 ({ \
7469 uint16x4_t c_ = (c); \
7470 uint16x8_t b_ = (b); \
7471 uint32x4_t a_ = (a); \
7472 uint32x4_t result; \
7473 __asm__ ("umlal2 %0.4s, %2.8h, %3.h[%4]" \
7474 : "=w"(result) \
7475 : "0"(a_), "w"(b_), "x"(c_), "i"(d) \
7476 : /* No clobbers */); \
7477 result; \
7480 #define vmlal_high_lane_u32(a, b, c, d) \
7481 __extension__ \
7482 ({ \
7483 uint32x2_t c_ = (c); \
7484 uint32x4_t b_ = (b); \
7485 uint64x2_t a_ = (a); \
7486 uint64x2_t result; \
7487 __asm__ ("umlal2 %0.2d, %2.4s, %3.s[%4]" \
7488 : "=w"(result) \
7489 : "0"(a_), "w"(b_), "w"(c_), "i"(d) \
7490 : /* No clobbers */); \
7491 result; \
7494 #define vmlal_high_laneq_s16(a, b, c, d) \
7495 __extension__ \
7496 ({ \
7497 int16x8_t c_ = (c); \
7498 int16x8_t b_ = (b); \
7499 int32x4_t a_ = (a); \
7500 int32x4_t result; \
7501 __asm__ ("smlal2 %0.4s, %2.8h, %3.h[%4]" \
7502 : "=w"(result) \
7503 : "0"(a_), "w"(b_), "x"(c_), "i"(d) \
7504 : /* No clobbers */); \
7505 result; \
7508 #define vmlal_high_laneq_s32(a, b, c, d) \
7509 __extension__ \
7510 ({ \
7511 int32x4_t c_ = (c); \
7512 int32x4_t b_ = (b); \
7513 int64x2_t a_ = (a); \
7514 int64x2_t result; \
7515 __asm__ ("smlal2 %0.2d, %2.4s, %3.s[%4]" \
7516 : "=w"(result) \
7517 : "0"(a_), "w"(b_), "w"(c_), "i"(d) \
7518 : /* No clobbers */); \
7519 result; \
7522 #define vmlal_high_laneq_u16(a, b, c, d) \
7523 __extension__ \
7524 ({ \
7525 uint16x8_t c_ = (c); \
7526 uint16x8_t b_ = (b); \
7527 uint32x4_t a_ = (a); \
7528 uint32x4_t result; \
7529 __asm__ ("umlal2 %0.4s, %2.8h, %3.h[%4]" \
7530 : "=w"(result) \
7531 : "0"(a_), "w"(b_), "x"(c_), "i"(d) \
7532 : /* No clobbers */); \
7533 result; \
7536 #define vmlal_high_laneq_u32(a, b, c, d) \
7537 __extension__ \
7538 ({ \
7539 uint32x4_t c_ = (c); \
7540 uint32x4_t b_ = (b); \
7541 uint64x2_t a_ = (a); \
7542 uint64x2_t result; \
7543 __asm__ ("umlal2 %0.2d, %2.4s, %3.s[%4]" \
7544 : "=w"(result) \
7545 : "0"(a_), "w"(b_), "w"(c_), "i"(d) \
7546 : /* No clobbers */); \
7547 result; \
7550 __extension__ extern __inline int32x4_t
7551 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7552 vmlal_high_n_s16 (int32x4_t a, int16x8_t b, int16_t c)
7554 int32x4_t result;
7555 __asm__ ("smlal2 %0.4s,%2.8h,%3.h[0]"
7556 : "=w"(result)
7557 : "0"(a), "w"(b), "x"(c)
7558 : /* No clobbers */);
7559 return result;
7562 __extension__ extern __inline int64x2_t
7563 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7564 vmlal_high_n_s32 (int64x2_t a, int32x4_t b, int32_t c)
7566 int64x2_t result;
7567 __asm__ ("smlal2 %0.2d,%2.4s,%3.s[0]"
7568 : "=w"(result)
7569 : "0"(a), "w"(b), "w"(c)
7570 : /* No clobbers */);
7571 return result;
7574 __extension__ extern __inline uint32x4_t
7575 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7576 vmlal_high_n_u16 (uint32x4_t a, uint16x8_t b, uint16_t c)
7578 uint32x4_t result;
7579 __asm__ ("umlal2 %0.4s,%2.8h,%3.h[0]"
7580 : "=w"(result)
7581 : "0"(a), "w"(b), "x"(c)
7582 : /* No clobbers */);
7583 return result;
7586 __extension__ extern __inline uint64x2_t
7587 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7588 vmlal_high_n_u32 (uint64x2_t a, uint32x4_t b, uint32_t c)
7590 uint64x2_t result;
7591 __asm__ ("umlal2 %0.2d,%2.4s,%3.s[0]"
7592 : "=w"(result)
7593 : "0"(a), "w"(b), "w"(c)
7594 : /* No clobbers */);
7595 return result;
7598 __extension__ extern __inline int16x8_t
7599 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7600 vmlal_high_s8 (int16x8_t a, int8x16_t b, int8x16_t c)
7602 int16x8_t result;
7603 __asm__ ("smlal2 %0.8h,%2.16b,%3.16b"
7604 : "=w"(result)
7605 : "0"(a), "w"(b), "w"(c)
7606 : /* No clobbers */);
7607 return result;
7610 __extension__ extern __inline int32x4_t
7611 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7612 vmlal_high_s16 (int32x4_t a, int16x8_t b, int16x8_t c)
7614 int32x4_t result;
7615 __asm__ ("smlal2 %0.4s,%2.8h,%3.8h"
7616 : "=w"(result)
7617 : "0"(a), "w"(b), "w"(c)
7618 : /* No clobbers */);
7619 return result;
7622 __extension__ extern __inline int64x2_t
7623 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7624 vmlal_high_s32 (int64x2_t a, int32x4_t b, int32x4_t c)
7626 int64x2_t result;
7627 __asm__ ("smlal2 %0.2d,%2.4s,%3.4s"
7628 : "=w"(result)
7629 : "0"(a), "w"(b), "w"(c)
7630 : /* No clobbers */);
7631 return result;
7634 __extension__ extern __inline uint16x8_t
7635 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7636 vmlal_high_u8 (uint16x8_t a, uint8x16_t b, uint8x16_t c)
7638 uint16x8_t result;
7639 __asm__ ("umlal2 %0.8h,%2.16b,%3.16b"
7640 : "=w"(result)
7641 : "0"(a), "w"(b), "w"(c)
7642 : /* No clobbers */);
7643 return result;
7646 __extension__ extern __inline uint32x4_t
7647 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7648 vmlal_high_u16 (uint32x4_t a, uint16x8_t b, uint16x8_t c)
7650 uint32x4_t result;
7651 __asm__ ("umlal2 %0.4s,%2.8h,%3.8h"
7652 : "=w"(result)
7653 : "0"(a), "w"(b), "w"(c)
7654 : /* No clobbers */);
7655 return result;
7658 __extension__ extern __inline uint64x2_t
7659 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7660 vmlal_high_u32 (uint64x2_t a, uint32x4_t b, uint32x4_t c)
7662 uint64x2_t result;
7663 __asm__ ("umlal2 %0.2d,%2.4s,%3.4s"
7664 : "=w"(result)
7665 : "0"(a), "w"(b), "w"(c)
7666 : /* No clobbers */);
7667 return result;
7670 #define vmlal_lane_s16(a, b, c, d) \
7671 __extension__ \
7672 ({ \
7673 int16x4_t c_ = (c); \
7674 int16x4_t b_ = (b); \
7675 int32x4_t a_ = (a); \
7676 int32x4_t result; \
7677 __asm__ ("smlal %0.4s,%2.4h,%3.h[%4]" \
7678 : "=w"(result) \
7679 : "0"(a_), "w"(b_), "x"(c_), "i"(d) \
7680 : /* No clobbers */); \
7681 result; \
7684 #define vmlal_lane_s32(a, b, c, d) \
7685 __extension__ \
7686 ({ \
7687 int32x2_t c_ = (c); \
7688 int32x2_t b_ = (b); \
7689 int64x2_t a_ = (a); \
7690 int64x2_t result; \
7691 __asm__ ("smlal %0.2d,%2.2s,%3.s[%4]" \
7692 : "=w"(result) \
7693 : "0"(a_), "w"(b_), "w"(c_), "i"(d) \
7694 : /* No clobbers */); \
7695 result; \
7698 #define vmlal_lane_u16(a, b, c, d) \
7699 __extension__ \
7700 ({ \
7701 uint16x4_t c_ = (c); \
7702 uint16x4_t b_ = (b); \
7703 uint32x4_t a_ = (a); \
7704 uint32x4_t result; \
7705 __asm__ ("umlal %0.4s,%2.4h,%3.h[%4]" \
7706 : "=w"(result) \
7707 : "0"(a_), "w"(b_), "x"(c_), "i"(d) \
7708 : /* No clobbers */); \
7709 result; \
7712 #define vmlal_lane_u32(a, b, c, d) \
7713 __extension__ \
7714 ({ \
7715 uint32x2_t c_ = (c); \
7716 uint32x2_t b_ = (b); \
7717 uint64x2_t a_ = (a); \
7718 uint64x2_t result; \
7719 __asm__ ("umlal %0.2d, %2.2s, %3.s[%4]" \
7720 : "=w"(result) \
7721 : "0"(a_), "w"(b_), "w"(c_), "i"(d) \
7722 : /* No clobbers */); \
7723 result; \
7726 #define vmlal_laneq_s16(a, b, c, d) \
7727 __extension__ \
7728 ({ \
7729 int16x8_t c_ = (c); \
7730 int16x4_t b_ = (b); \
7731 int32x4_t a_ = (a); \
7732 int32x4_t result; \
7733 __asm__ ("smlal %0.4s, %2.4h, %3.h[%4]" \
7734 : "=w"(result) \
7735 : "0"(a_), "w"(b_), "x"(c_), "i"(d) \
7736 : /* No clobbers */); \
7737 result; \
7740 #define vmlal_laneq_s32(a, b, c, d) \
7741 __extension__ \
7742 ({ \
7743 int32x4_t c_ = (c); \
7744 int32x2_t b_ = (b); \
7745 int64x2_t a_ = (a); \
7746 int64x2_t result; \
7747 __asm__ ("smlal %0.2d, %2.2s, %3.s[%4]" \
7748 : "=w"(result) \
7749 : "0"(a_), "w"(b_), "w"(c_), "i"(d) \
7750 : /* No clobbers */); \
7751 result; \
7754 #define vmlal_laneq_u16(a, b, c, d) \
7755 __extension__ \
7756 ({ \
7757 uint16x8_t c_ = (c); \
7758 uint16x4_t b_ = (b); \
7759 uint32x4_t a_ = (a); \
7760 uint32x4_t result; \
7761 __asm__ ("umlal %0.4s, %2.4h, %3.h[%4]" \
7762 : "=w"(result) \
7763 : "0"(a_), "w"(b_), "x"(c_), "i"(d) \
7764 : /* No clobbers */); \
7765 result; \
7768 #define vmlal_laneq_u32(a, b, c, d) \
7769 __extension__ \
7770 ({ \
7771 uint32x4_t c_ = (c); \
7772 uint32x2_t b_ = (b); \
7773 uint64x2_t a_ = (a); \
7774 uint64x2_t result; \
7775 __asm__ ("umlal %0.2d, %2.2s, %3.s[%4]" \
7776 : "=w"(result) \
7777 : "0"(a_), "w"(b_), "w"(c_), "i"(d) \
7778 : /* No clobbers */); \
7779 result; \
7782 __extension__ extern __inline int32x4_t
7783 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7784 vmlal_n_s16 (int32x4_t a, int16x4_t b, int16_t c)
7786 int32x4_t result;
7787 __asm__ ("smlal %0.4s,%2.4h,%3.h[0]"
7788 : "=w"(result)
7789 : "0"(a), "w"(b), "x"(c)
7790 : /* No clobbers */);
7791 return result;
7794 __extension__ extern __inline int64x2_t
7795 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7796 vmlal_n_s32 (int64x2_t a, int32x2_t b, int32_t c)
7798 int64x2_t result;
7799 __asm__ ("smlal %0.2d,%2.2s,%3.s[0]"
7800 : "=w"(result)
7801 : "0"(a), "w"(b), "w"(c)
7802 : /* No clobbers */);
7803 return result;
7806 __extension__ extern __inline uint32x4_t
7807 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7808 vmlal_n_u16 (uint32x4_t a, uint16x4_t b, uint16_t c)
7810 uint32x4_t result;
7811 __asm__ ("umlal %0.4s,%2.4h,%3.h[0]"
7812 : "=w"(result)
7813 : "0"(a), "w"(b), "x"(c)
7814 : /* No clobbers */);
7815 return result;
7818 __extension__ extern __inline uint64x2_t
7819 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7820 vmlal_n_u32 (uint64x2_t a, uint32x2_t b, uint32_t c)
7822 uint64x2_t result;
7823 __asm__ ("umlal %0.2d,%2.2s,%3.s[0]"
7824 : "=w"(result)
7825 : "0"(a), "w"(b), "w"(c)
7826 : /* No clobbers */);
7827 return result;
7830 __extension__ extern __inline int16x8_t
7831 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7832 vmlal_s8 (int16x8_t a, int8x8_t b, int8x8_t c)
7834 int16x8_t result;
7835 __asm__ ("smlal %0.8h,%2.8b,%3.8b"
7836 : "=w"(result)
7837 : "0"(a), "w"(b), "w"(c)
7838 : /* No clobbers */);
7839 return result;
7842 __extension__ extern __inline int32x4_t
7843 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7844 vmlal_s16 (int32x4_t a, int16x4_t b, int16x4_t c)
7846 int32x4_t result;
7847 __asm__ ("smlal %0.4s,%2.4h,%3.4h"
7848 : "=w"(result)
7849 : "0"(a), "w"(b), "w"(c)
7850 : /* No clobbers */);
7851 return result;
7854 __extension__ extern __inline int64x2_t
7855 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7856 vmlal_s32 (int64x2_t a, int32x2_t b, int32x2_t c)
7858 int64x2_t result;
7859 __asm__ ("smlal %0.2d,%2.2s,%3.2s"
7860 : "=w"(result)
7861 : "0"(a), "w"(b), "w"(c)
7862 : /* No clobbers */);
7863 return result;
7866 __extension__ extern __inline uint16x8_t
7867 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7868 vmlal_u8 (uint16x8_t a, uint8x8_t b, uint8x8_t c)
7870 uint16x8_t result;
7871 __asm__ ("umlal %0.8h,%2.8b,%3.8b"
7872 : "=w"(result)
7873 : "0"(a), "w"(b), "w"(c)
7874 : /* No clobbers */);
7875 return result;
7878 __extension__ extern __inline uint32x4_t
7879 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7880 vmlal_u16 (uint32x4_t a, uint16x4_t b, uint16x4_t c)
7882 uint32x4_t result;
7883 __asm__ ("umlal %0.4s,%2.4h,%3.4h"
7884 : "=w"(result)
7885 : "0"(a), "w"(b), "w"(c)
7886 : /* No clobbers */);
7887 return result;
7890 __extension__ extern __inline uint64x2_t
7891 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7892 vmlal_u32 (uint64x2_t a, uint32x2_t b, uint32x2_t c)
7894 uint64x2_t result;
7895 __asm__ ("umlal %0.2d,%2.2s,%3.2s"
7896 : "=w"(result)
7897 : "0"(a), "w"(b), "w"(c)
7898 : /* No clobbers */);
7899 return result;
7902 __extension__ extern __inline float32x4_t
7903 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7904 vmlaq_n_f32 (float32x4_t a, float32x4_t b, float32_t c)
7906 float32x4_t result;
7907 float32x4_t t1;
7908 __asm__ ("fmul %1.4s, %3.4s, %4.s[0]; fadd %0.4s, %0.4s, %1.4s"
7909 : "=w"(result), "=w"(t1)
7910 : "0"(a), "w"(b), "w"(c)
7911 : /* No clobbers */);
7912 return result;
7915 __extension__ extern __inline int16x8_t
7916 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7917 vmlaq_n_s16 (int16x8_t a, int16x8_t b, int16_t c)
7919 int16x8_t result;
7920 __asm__ ("mla %0.8h,%2.8h,%3.h[0]"
7921 : "=w"(result)
7922 : "0"(a), "w"(b), "x"(c)
7923 : /* No clobbers */);
7924 return result;
7927 __extension__ extern __inline int32x4_t
7928 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7929 vmlaq_n_s32 (int32x4_t a, int32x4_t b, int32_t c)
7931 int32x4_t result;
7932 __asm__ ("mla %0.4s,%2.4s,%3.s[0]"
7933 : "=w"(result)
7934 : "0"(a), "w"(b), "w"(c)
7935 : /* No clobbers */);
7936 return result;
7939 __extension__ extern __inline uint16x8_t
7940 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7941 vmlaq_n_u16 (uint16x8_t a, uint16x8_t b, uint16_t c)
7943 uint16x8_t result;
7944 __asm__ ("mla %0.8h,%2.8h,%3.h[0]"
7945 : "=w"(result)
7946 : "0"(a), "w"(b), "x"(c)
7947 : /* No clobbers */);
7948 return result;
7951 __extension__ extern __inline uint32x4_t
7952 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7953 vmlaq_n_u32 (uint32x4_t a, uint32x4_t b, uint32_t c)
7955 uint32x4_t result;
7956 __asm__ ("mla %0.4s,%2.4s,%3.s[0]"
7957 : "=w"(result)
7958 : "0"(a), "w"(b), "w"(c)
7959 : /* No clobbers */);
7960 return result;
7963 __extension__ extern __inline int8x16_t
7964 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7965 vmlaq_s8 (int8x16_t a, int8x16_t b, int8x16_t c)
7967 int8x16_t result;
7968 __asm__ ("mla %0.16b, %2.16b, %3.16b"
7969 : "=w"(result)
7970 : "0"(a), "w"(b), "w"(c)
7971 : /* No clobbers */);
7972 return result;
7975 __extension__ extern __inline int16x8_t
7976 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7977 vmlaq_s16 (int16x8_t a, int16x8_t b, int16x8_t c)
7979 int16x8_t result;
7980 __asm__ ("mla %0.8h, %2.8h, %3.8h"
7981 : "=w"(result)
7982 : "0"(a), "w"(b), "w"(c)
7983 : /* No clobbers */);
7984 return result;
7987 __extension__ extern __inline int32x4_t
7988 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7989 vmlaq_s32 (int32x4_t a, int32x4_t b, int32x4_t c)
7991 int32x4_t result;
7992 __asm__ ("mla %0.4s, %2.4s, %3.4s"
7993 : "=w"(result)
7994 : "0"(a), "w"(b), "w"(c)
7995 : /* No clobbers */);
7996 return result;
7999 __extension__ extern __inline uint8x16_t
8000 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8001 vmlaq_u8 (uint8x16_t a, uint8x16_t b, uint8x16_t c)
8003 uint8x16_t result;
8004 __asm__ ("mla %0.16b, %2.16b, %3.16b"
8005 : "=w"(result)
8006 : "0"(a), "w"(b), "w"(c)
8007 : /* No clobbers */);
8008 return result;
8011 __extension__ extern __inline uint16x8_t
8012 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8013 vmlaq_u16 (uint16x8_t a, uint16x8_t b, uint16x8_t c)
8015 uint16x8_t result;
8016 __asm__ ("mla %0.8h, %2.8h, %3.8h"
8017 : "=w"(result)
8018 : "0"(a), "w"(b), "w"(c)
8019 : /* No clobbers */);
8020 return result;
8023 __extension__ extern __inline uint32x4_t
8024 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8025 vmlaq_u32 (uint32x4_t a, uint32x4_t b, uint32x4_t c)
8027 uint32x4_t result;
8028 __asm__ ("mla %0.4s, %2.4s, %3.4s"
8029 : "=w"(result)
8030 : "0"(a), "w"(b), "w"(c)
8031 : /* No clobbers */);
8032 return result;
8035 __extension__ extern __inline float32x2_t
8036 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8037 vmls_n_f32 (float32x2_t a, float32x2_t b, float32_t c)
8039 float32x2_t result;
8040 float32x2_t t1;
8041 __asm__ ("fmul %1.2s, %3.2s, %4.s[0]; fsub %0.2s, %0.2s, %1.2s"
8042 : "=w"(result), "=w"(t1)
8043 : "0"(a), "w"(b), "w"(c)
8044 : /* No clobbers */);
8045 return result;
8048 __extension__ extern __inline int16x4_t
8049 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8050 vmls_n_s16 (int16x4_t a, int16x4_t b, int16_t c)
8052 int16x4_t result;
8053 __asm__ ("mls %0.4h, %2.4h, %3.h[0]"
8054 : "=w"(result)
8055 : "0"(a), "w"(b), "x"(c)
8056 : /* No clobbers */);
8057 return result;
8060 __extension__ extern __inline int32x2_t
8061 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8062 vmls_n_s32 (int32x2_t a, int32x2_t b, int32_t c)
8064 int32x2_t result;
8065 __asm__ ("mls %0.2s, %2.2s, %3.s[0]"
8066 : "=w"(result)
8067 : "0"(a), "w"(b), "w"(c)
8068 : /* No clobbers */);
8069 return result;
8072 __extension__ extern __inline uint16x4_t
8073 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8074 vmls_n_u16 (uint16x4_t a, uint16x4_t b, uint16_t c)
8076 uint16x4_t result;
8077 __asm__ ("mls %0.4h, %2.4h, %3.h[0]"
8078 : "=w"(result)
8079 : "0"(a), "w"(b), "x"(c)
8080 : /* No clobbers */);
8081 return result;
8084 __extension__ extern __inline uint32x2_t
8085 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8086 vmls_n_u32 (uint32x2_t a, uint32x2_t b, uint32_t c)
8088 uint32x2_t result;
8089 __asm__ ("mls %0.2s, %2.2s, %3.s[0]"
8090 : "=w"(result)
8091 : "0"(a), "w"(b), "w"(c)
8092 : /* No clobbers */);
8093 return result;
8096 __extension__ extern __inline int8x8_t
8097 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8098 vmls_s8 (int8x8_t a, int8x8_t b, int8x8_t c)
8100 int8x8_t result;
8101 __asm__ ("mls %0.8b,%2.8b,%3.8b"
8102 : "=w"(result)
8103 : "0"(a), "w"(b), "w"(c)
8104 : /* No clobbers */);
8105 return result;
8108 __extension__ extern __inline int16x4_t
8109 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8110 vmls_s16 (int16x4_t a, int16x4_t b, int16x4_t c)
8112 int16x4_t result;
8113 __asm__ ("mls %0.4h,%2.4h,%3.4h"
8114 : "=w"(result)
8115 : "0"(a), "w"(b), "w"(c)
8116 : /* No clobbers */);
8117 return result;
8120 __extension__ extern __inline int32x2_t
8121 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8122 vmls_s32 (int32x2_t a, int32x2_t b, int32x2_t c)
8124 int32x2_t result;
8125 __asm__ ("mls %0.2s,%2.2s,%3.2s"
8126 : "=w"(result)
8127 : "0"(a), "w"(b), "w"(c)
8128 : /* No clobbers */);
8129 return result;
8132 __extension__ extern __inline uint8x8_t
8133 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8134 vmls_u8 (uint8x8_t a, uint8x8_t b, uint8x8_t c)
8136 uint8x8_t result;
8137 __asm__ ("mls %0.8b,%2.8b,%3.8b"
8138 : "=w"(result)
8139 : "0"(a), "w"(b), "w"(c)
8140 : /* No clobbers */);
8141 return result;
8144 __extension__ extern __inline uint16x4_t
8145 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8146 vmls_u16 (uint16x4_t a, uint16x4_t b, uint16x4_t c)
8148 uint16x4_t result;
8149 __asm__ ("mls %0.4h,%2.4h,%3.4h"
8150 : "=w"(result)
8151 : "0"(a), "w"(b), "w"(c)
8152 : /* No clobbers */);
8153 return result;
8156 __extension__ extern __inline uint32x2_t
8157 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8158 vmls_u32 (uint32x2_t a, uint32x2_t b, uint32x2_t c)
8160 uint32x2_t result;
8161 __asm__ ("mls %0.2s,%2.2s,%3.2s"
8162 : "=w"(result)
8163 : "0"(a), "w"(b), "w"(c)
8164 : /* No clobbers */);
8165 return result;
8168 #define vmlsl_high_lane_s16(a, b, c, d) \
8169 __extension__ \
8170 ({ \
8171 int16x4_t c_ = (c); \
8172 int16x8_t b_ = (b); \
8173 int32x4_t a_ = (a); \
8174 int32x4_t result; \
8175 __asm__ ("smlsl2 %0.4s, %2.8h, %3.h[%4]" \
8176 : "=w"(result) \
8177 : "0"(a_), "w"(b_), "x"(c_), "i"(d) \
8178 : /* No clobbers */); \
8179 result; \
8182 #define vmlsl_high_lane_s32(a, b, c, d) \
8183 __extension__ \
8184 ({ \
8185 int32x2_t c_ = (c); \
8186 int32x4_t b_ = (b); \
8187 int64x2_t a_ = (a); \
8188 int64x2_t result; \
8189 __asm__ ("smlsl2 %0.2d, %2.4s, %3.s[%4]" \
8190 : "=w"(result) \
8191 : "0"(a_), "w"(b_), "w"(c_), "i"(d) \
8192 : /* No clobbers */); \
8193 result; \
8196 #define vmlsl_high_lane_u16(a, b, c, d) \
8197 __extension__ \
8198 ({ \
8199 uint16x4_t c_ = (c); \
8200 uint16x8_t b_ = (b); \
8201 uint32x4_t a_ = (a); \
8202 uint32x4_t result; \
8203 __asm__ ("umlsl2 %0.4s, %2.8h, %3.h[%4]" \
8204 : "=w"(result) \
8205 : "0"(a_), "w"(b_), "x"(c_), "i"(d) \
8206 : /* No clobbers */); \
8207 result; \
8210 #define vmlsl_high_lane_u32(a, b, c, d) \
8211 __extension__ \
8212 ({ \
8213 uint32x2_t c_ = (c); \
8214 uint32x4_t b_ = (b); \
8215 uint64x2_t a_ = (a); \
8216 uint64x2_t result; \
8217 __asm__ ("umlsl2 %0.2d, %2.4s, %3.s[%4]" \
8218 : "=w"(result) \
8219 : "0"(a_), "w"(b_), "w"(c_), "i"(d) \
8220 : /* No clobbers */); \
8221 result; \
8224 #define vmlsl_high_laneq_s16(a, b, c, d) \
8225 __extension__ \
8226 ({ \
8227 int16x8_t c_ = (c); \
8228 int16x8_t b_ = (b); \
8229 int32x4_t a_ = (a); \
8230 int32x4_t result; \
8231 __asm__ ("smlsl2 %0.4s, %2.8h, %3.h[%4]" \
8232 : "=w"(result) \
8233 : "0"(a_), "w"(b_), "x"(c_), "i"(d) \
8234 : /* No clobbers */); \
8235 result; \
8238 #define vmlsl_high_laneq_s32(a, b, c, d) \
8239 __extension__ \
8240 ({ \
8241 int32x4_t c_ = (c); \
8242 int32x4_t b_ = (b); \
8243 int64x2_t a_ = (a); \
8244 int64x2_t result; \
8245 __asm__ ("smlsl2 %0.2d, %2.4s, %3.s[%4]" \
8246 : "=w"(result) \
8247 : "0"(a_), "w"(b_), "w"(c_), "i"(d) \
8248 : /* No clobbers */); \
8249 result; \
8252 #define vmlsl_high_laneq_u16(a, b, c, d) \
8253 __extension__ \
8254 ({ \
8255 uint16x8_t c_ = (c); \
8256 uint16x8_t b_ = (b); \
8257 uint32x4_t a_ = (a); \
8258 uint32x4_t result; \
8259 __asm__ ("umlsl2 %0.4s, %2.8h, %3.h[%4]" \
8260 : "=w"(result) \
8261 : "0"(a_), "w"(b_), "x"(c_), "i"(d) \
8262 : /* No clobbers */); \
8263 result; \
8266 #define vmlsl_high_laneq_u32(a, b, c, d) \
8267 __extension__ \
8268 ({ \
8269 uint32x4_t c_ = (c); \
8270 uint32x4_t b_ = (b); \
8271 uint64x2_t a_ = (a); \
8272 uint64x2_t result; \
8273 __asm__ ("umlsl2 %0.2d, %2.4s, %3.s[%4]" \
8274 : "=w"(result) \
8275 : "0"(a_), "w"(b_), "w"(c_), "i"(d) \
8276 : /* No clobbers */); \
8277 result; \
8280 __extension__ extern __inline int32x4_t
8281 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8282 vmlsl_high_n_s16 (int32x4_t a, int16x8_t b, int16_t c)
8284 int32x4_t result;
8285 __asm__ ("smlsl2 %0.4s, %2.8h, %3.h[0]"
8286 : "=w"(result)
8287 : "0"(a), "w"(b), "x"(c)
8288 : /* No clobbers */);
8289 return result;
8292 __extension__ extern __inline int64x2_t
8293 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8294 vmlsl_high_n_s32 (int64x2_t a, int32x4_t b, int32_t c)
8296 int64x2_t result;
8297 __asm__ ("smlsl2 %0.2d, %2.4s, %3.s[0]"
8298 : "=w"(result)
8299 : "0"(a), "w"(b), "w"(c)
8300 : /* No clobbers */);
8301 return result;
8304 __extension__ extern __inline uint32x4_t
8305 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8306 vmlsl_high_n_u16 (uint32x4_t a, uint16x8_t b, uint16_t c)
8308 uint32x4_t result;
8309 __asm__ ("umlsl2 %0.4s, %2.8h, %3.h[0]"
8310 : "=w"(result)
8311 : "0"(a), "w"(b), "x"(c)
8312 : /* No clobbers */);
8313 return result;
8316 __extension__ extern __inline uint64x2_t
8317 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8318 vmlsl_high_n_u32 (uint64x2_t a, uint32x4_t b, uint32_t c)
8320 uint64x2_t result;
8321 __asm__ ("umlsl2 %0.2d, %2.4s, %3.s[0]"
8322 : "=w"(result)
8323 : "0"(a), "w"(b), "w"(c)
8324 : /* No clobbers */);
8325 return result;
8328 __extension__ extern __inline int16x8_t
8329 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8330 vmlsl_high_s8 (int16x8_t a, int8x16_t b, int8x16_t c)
8332 int16x8_t result;
8333 __asm__ ("smlsl2 %0.8h,%2.16b,%3.16b"
8334 : "=w"(result)
8335 : "0"(a), "w"(b), "w"(c)
8336 : /* No clobbers */);
8337 return result;
8340 __extension__ extern __inline int32x4_t
8341 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8342 vmlsl_high_s16 (int32x4_t a, int16x8_t b, int16x8_t c)
8344 int32x4_t result;
8345 __asm__ ("smlsl2 %0.4s,%2.8h,%3.8h"
8346 : "=w"(result)
8347 : "0"(a), "w"(b), "w"(c)
8348 : /* No clobbers */);
8349 return result;
8352 __extension__ extern __inline int64x2_t
8353 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8354 vmlsl_high_s32 (int64x2_t a, int32x4_t b, int32x4_t c)
8356 int64x2_t result;
8357 __asm__ ("smlsl2 %0.2d,%2.4s,%3.4s"
8358 : "=w"(result)
8359 : "0"(a), "w"(b), "w"(c)
8360 : /* No clobbers */);
8361 return result;
8364 __extension__ extern __inline uint16x8_t
8365 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8366 vmlsl_high_u8 (uint16x8_t a, uint8x16_t b, uint8x16_t c)
8368 uint16x8_t result;
8369 __asm__ ("umlsl2 %0.8h,%2.16b,%3.16b"
8370 : "=w"(result)
8371 : "0"(a), "w"(b), "w"(c)
8372 : /* No clobbers */);
8373 return result;
8376 __extension__ extern __inline uint32x4_t
8377 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8378 vmlsl_high_u16 (uint32x4_t a, uint16x8_t b, uint16x8_t c)
8380 uint32x4_t result;
8381 __asm__ ("umlsl2 %0.4s,%2.8h,%3.8h"
8382 : "=w"(result)
8383 : "0"(a), "w"(b), "w"(c)
8384 : /* No clobbers */);
8385 return result;
8388 __extension__ extern __inline uint64x2_t
8389 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8390 vmlsl_high_u32 (uint64x2_t a, uint32x4_t b, uint32x4_t c)
8392 uint64x2_t result;
8393 __asm__ ("umlsl2 %0.2d,%2.4s,%3.4s"
8394 : "=w"(result)
8395 : "0"(a), "w"(b), "w"(c)
8396 : /* No clobbers */);
8397 return result;
8400 #define vmlsl_lane_s16(a, b, c, d) \
8401 __extension__ \
8402 ({ \
8403 int16x4_t c_ = (c); \
8404 int16x4_t b_ = (b); \
8405 int32x4_t a_ = (a); \
8406 int32x4_t result; \
8407 __asm__ ("smlsl %0.4s, %2.4h, %3.h[%4]" \
8408 : "=w"(result) \
8409 : "0"(a_), "w"(b_), "x"(c_), "i"(d) \
8410 : /* No clobbers */); \
8411 result; \
8414 #define vmlsl_lane_s32(a, b, c, d) \
8415 __extension__ \
8416 ({ \
8417 int32x2_t c_ = (c); \
8418 int32x2_t b_ = (b); \
8419 int64x2_t a_ = (a); \
8420 int64x2_t result; \
8421 __asm__ ("smlsl %0.2d, %2.2s, %3.s[%4]" \
8422 : "=w"(result) \
8423 : "0"(a_), "w"(b_), "w"(c_), "i"(d) \
8424 : /* No clobbers */); \
8425 result; \
8428 #define vmlsl_lane_u16(a, b, c, d) \
8429 __extension__ \
8430 ({ \
8431 uint16x4_t c_ = (c); \
8432 uint16x4_t b_ = (b); \
8433 uint32x4_t a_ = (a); \
8434 uint32x4_t result; \
8435 __asm__ ("umlsl %0.4s, %2.4h, %3.h[%4]" \
8436 : "=w"(result) \
8437 : "0"(a_), "w"(b_), "x"(c_), "i"(d) \
8438 : /* No clobbers */); \
8439 result; \
8442 #define vmlsl_lane_u32(a, b, c, d) \
8443 __extension__ \
8444 ({ \
8445 uint32x2_t c_ = (c); \
8446 uint32x2_t b_ = (b); \
8447 uint64x2_t a_ = (a); \
8448 uint64x2_t result; \
8449 __asm__ ("umlsl %0.2d, %2.2s, %3.s[%4]" \
8450 : "=w"(result) \
8451 : "0"(a_), "w"(b_), "w"(c_), "i"(d) \
8452 : /* No clobbers */); \
8453 result; \
8456 #define vmlsl_laneq_s16(a, b, c, d) \
8457 __extension__ \
8458 ({ \
8459 int16x8_t c_ = (c); \
8460 int16x4_t b_ = (b); \
8461 int32x4_t a_ = (a); \
8462 int32x4_t result; \
8463 __asm__ ("smlsl %0.4s, %2.4h, %3.h[%4]" \
8464 : "=w"(result) \
8465 : "0"(a_), "w"(b_), "x"(c_), "i"(d) \
8466 : /* No clobbers */); \
8467 result; \
8470 #define vmlsl_laneq_s32(a, b, c, d) \
8471 __extension__ \
8472 ({ \
8473 int32x4_t c_ = (c); \
8474 int32x2_t b_ = (b); \
8475 int64x2_t a_ = (a); \
8476 int64x2_t result; \
8477 __asm__ ("smlsl %0.2d, %2.2s, %3.s[%4]" \
8478 : "=w"(result) \
8479 : "0"(a_), "w"(b_), "w"(c_), "i"(d) \
8480 : /* No clobbers */); \
8481 result; \
8484 #define vmlsl_laneq_u16(a, b, c, d) \
8485 __extension__ \
8486 ({ \
8487 uint16x8_t c_ = (c); \
8488 uint16x4_t b_ = (b); \
8489 uint32x4_t a_ = (a); \
8490 uint32x4_t result; \
8491 __asm__ ("umlsl %0.4s, %2.4h, %3.h[%4]" \
8492 : "=w"(result) \
8493 : "0"(a_), "w"(b_), "x"(c_), "i"(d) \
8494 : /* No clobbers */); \
8495 result; \
8498 #define vmlsl_laneq_u32(a, b, c, d) \
8499 __extension__ \
8500 ({ \
8501 uint32x4_t c_ = (c); \
8502 uint32x2_t b_ = (b); \
8503 uint64x2_t a_ = (a); \
8504 uint64x2_t result; \
8505 __asm__ ("umlsl %0.2d, %2.2s, %3.s[%4]" \
8506 : "=w"(result) \
8507 : "0"(a_), "w"(b_), "w"(c_), "i"(d) \
8508 : /* No clobbers */); \
8509 result; \
8512 __extension__ extern __inline int32x4_t
8513 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8514 vmlsl_n_s16 (int32x4_t a, int16x4_t b, int16_t c)
8516 int32x4_t result;
8517 __asm__ ("smlsl %0.4s, %2.4h, %3.h[0]"
8518 : "=w"(result)
8519 : "0"(a), "w"(b), "x"(c)
8520 : /* No clobbers */);
8521 return result;
8524 __extension__ extern __inline int64x2_t
8525 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8526 vmlsl_n_s32 (int64x2_t a, int32x2_t b, int32_t c)
8528 int64x2_t result;
8529 __asm__ ("smlsl %0.2d, %2.2s, %3.s[0]"
8530 : "=w"(result)
8531 : "0"(a), "w"(b), "w"(c)
8532 : /* No clobbers */);
8533 return result;
8536 __extension__ extern __inline uint32x4_t
8537 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8538 vmlsl_n_u16 (uint32x4_t a, uint16x4_t b, uint16_t c)
8540 uint32x4_t result;
8541 __asm__ ("umlsl %0.4s, %2.4h, %3.h[0]"
8542 : "=w"(result)
8543 : "0"(a), "w"(b), "x"(c)
8544 : /* No clobbers */);
8545 return result;
8548 __extension__ extern __inline uint64x2_t
8549 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8550 vmlsl_n_u32 (uint64x2_t a, uint32x2_t b, uint32_t c)
8552 uint64x2_t result;
8553 __asm__ ("umlsl %0.2d, %2.2s, %3.s[0]"
8554 : "=w"(result)
8555 : "0"(a), "w"(b), "w"(c)
8556 : /* No clobbers */);
8557 return result;
8560 __extension__ extern __inline int16x8_t
8561 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8562 vmlsl_s8 (int16x8_t a, int8x8_t b, int8x8_t c)
8564 int16x8_t result;
8565 __asm__ ("smlsl %0.8h, %2.8b, %3.8b"
8566 : "=w"(result)
8567 : "0"(a), "w"(b), "w"(c)
8568 : /* No clobbers */);
8569 return result;
8572 __extension__ extern __inline int32x4_t
8573 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8574 vmlsl_s16 (int32x4_t a, int16x4_t b, int16x4_t c)
8576 int32x4_t result;
8577 __asm__ ("smlsl %0.4s, %2.4h, %3.4h"
8578 : "=w"(result)
8579 : "0"(a), "w"(b), "w"(c)
8580 : /* No clobbers */);
8581 return result;
8584 __extension__ extern __inline int64x2_t
8585 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8586 vmlsl_s32 (int64x2_t a, int32x2_t b, int32x2_t c)
8588 int64x2_t result;
8589 __asm__ ("smlsl %0.2d, %2.2s, %3.2s"
8590 : "=w"(result)
8591 : "0"(a), "w"(b), "w"(c)
8592 : /* No clobbers */);
8593 return result;
8596 __extension__ extern __inline uint16x8_t
8597 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8598 vmlsl_u8 (uint16x8_t a, uint8x8_t b, uint8x8_t c)
8600 uint16x8_t result;
8601 __asm__ ("umlsl %0.8h, %2.8b, %3.8b"
8602 : "=w"(result)
8603 : "0"(a), "w"(b), "w"(c)
8604 : /* No clobbers */);
8605 return result;
8608 __extension__ extern __inline uint32x4_t
8609 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8610 vmlsl_u16 (uint32x4_t a, uint16x4_t b, uint16x4_t c)
8612 uint32x4_t result;
8613 __asm__ ("umlsl %0.4s, %2.4h, %3.4h"
8614 : "=w"(result)
8615 : "0"(a), "w"(b), "w"(c)
8616 : /* No clobbers */);
8617 return result;
8620 __extension__ extern __inline uint64x2_t
8621 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8622 vmlsl_u32 (uint64x2_t a, uint32x2_t b, uint32x2_t c)
8624 uint64x2_t result;
8625 __asm__ ("umlsl %0.2d, %2.2s, %3.2s"
8626 : "=w"(result)
8627 : "0"(a), "w"(b), "w"(c)
8628 : /* No clobbers */);
8629 return result;
8632 __extension__ extern __inline float32x4_t
8633 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8634 vmlsq_n_f32 (float32x4_t a, float32x4_t b, float32_t c)
8636 float32x4_t result;
8637 float32x4_t t1;
8638 __asm__ ("fmul %1.4s, %3.4s, %4.s[0]; fsub %0.4s, %0.4s, %1.4s"
8639 : "=w"(result), "=w"(t1)
8640 : "0"(a), "w"(b), "w"(c)
8641 : /* No clobbers */);
8642 return result;
8645 __extension__ extern __inline int16x8_t
8646 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8647 vmlsq_n_s16 (int16x8_t a, int16x8_t b, int16_t c)
8649 int16x8_t result;
8650 __asm__ ("mls %0.8h, %2.8h, %3.h[0]"
8651 : "=w"(result)
8652 : "0"(a), "w"(b), "x"(c)
8653 : /* No clobbers */);
8654 return result;
8657 __extension__ extern __inline int32x4_t
8658 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8659 vmlsq_n_s32 (int32x4_t a, int32x4_t b, int32_t c)
8661 int32x4_t result;
8662 __asm__ ("mls %0.4s, %2.4s, %3.s[0]"
8663 : "=w"(result)
8664 : "0"(a), "w"(b), "w"(c)
8665 : /* No clobbers */);
8666 return result;
8669 __extension__ extern __inline uint16x8_t
8670 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8671 vmlsq_n_u16 (uint16x8_t a, uint16x8_t b, uint16_t c)
8673 uint16x8_t result;
8674 __asm__ ("mls %0.8h, %2.8h, %3.h[0]"
8675 : "=w"(result)
8676 : "0"(a), "w"(b), "x"(c)
8677 : /* No clobbers */);
8678 return result;
8681 __extension__ extern __inline uint32x4_t
8682 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8683 vmlsq_n_u32 (uint32x4_t a, uint32x4_t b, uint32_t c)
8685 uint32x4_t result;
8686 __asm__ ("mls %0.4s, %2.4s, %3.s[0]"
8687 : "=w"(result)
8688 : "0"(a), "w"(b), "w"(c)
8689 : /* No clobbers */);
8690 return result;
8693 __extension__ extern __inline int8x16_t
8694 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8695 vmlsq_s8 (int8x16_t a, int8x16_t b, int8x16_t c)
8697 int8x16_t result;
8698 __asm__ ("mls %0.16b,%2.16b,%3.16b"
8699 : "=w"(result)
8700 : "0"(a), "w"(b), "w"(c)
8701 : /* No clobbers */);
8702 return result;
8705 __extension__ extern __inline int16x8_t
8706 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8707 vmlsq_s16 (int16x8_t a, int16x8_t b, int16x8_t c)
8709 int16x8_t result;
8710 __asm__ ("mls %0.8h,%2.8h,%3.8h"
8711 : "=w"(result)
8712 : "0"(a), "w"(b), "w"(c)
8713 : /* No clobbers */);
8714 return result;
8717 __extension__ extern __inline int32x4_t
8718 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8719 vmlsq_s32 (int32x4_t a, int32x4_t b, int32x4_t c)
8721 int32x4_t result;
8722 __asm__ ("mls %0.4s,%2.4s,%3.4s"
8723 : "=w"(result)
8724 : "0"(a), "w"(b), "w"(c)
8725 : /* No clobbers */);
8726 return result;
8729 __extension__ extern __inline uint8x16_t
8730 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8731 vmlsq_u8 (uint8x16_t a, uint8x16_t b, uint8x16_t c)
8733 uint8x16_t result;
8734 __asm__ ("mls %0.16b,%2.16b,%3.16b"
8735 : "=w"(result)
8736 : "0"(a), "w"(b), "w"(c)
8737 : /* No clobbers */);
8738 return result;
8741 __extension__ extern __inline uint16x8_t
8742 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8743 vmlsq_u16 (uint16x8_t a, uint16x8_t b, uint16x8_t c)
8745 uint16x8_t result;
8746 __asm__ ("mls %0.8h,%2.8h,%3.8h"
8747 : "=w"(result)
8748 : "0"(a), "w"(b), "w"(c)
8749 : /* No clobbers */);
8750 return result;
8753 __extension__ extern __inline uint32x4_t
8754 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8755 vmlsq_u32 (uint32x4_t a, uint32x4_t b, uint32x4_t c)
8757 uint32x4_t result;
8758 __asm__ ("mls %0.4s,%2.4s,%3.4s"
8759 : "=w"(result)
8760 : "0"(a), "w"(b), "w"(c)
8761 : /* No clobbers */);
8762 return result;
8765 __extension__ extern __inline int16x8_t
8766 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8767 vmovl_high_s8 (int8x16_t a)
8769 int16x8_t result;
8770 __asm__ ("sshll2 %0.8h,%1.16b,#0"
8771 : "=w"(result)
8772 : "w"(a)
8773 : /* No clobbers */);
8774 return result;
8777 __extension__ extern __inline int32x4_t
8778 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8779 vmovl_high_s16 (int16x8_t a)
8781 int32x4_t result;
8782 __asm__ ("sshll2 %0.4s,%1.8h,#0"
8783 : "=w"(result)
8784 : "w"(a)
8785 : /* No clobbers */);
8786 return result;
8789 __extension__ extern __inline int64x2_t
8790 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8791 vmovl_high_s32 (int32x4_t a)
8793 int64x2_t result;
8794 __asm__ ("sshll2 %0.2d,%1.4s,#0"
8795 : "=w"(result)
8796 : "w"(a)
8797 : /* No clobbers */);
8798 return result;
8801 __extension__ extern __inline uint16x8_t
8802 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8803 vmovl_high_u8 (uint8x16_t a)
8805 uint16x8_t result;
8806 __asm__ ("ushll2 %0.8h,%1.16b,#0"
8807 : "=w"(result)
8808 : "w"(a)
8809 : /* No clobbers */);
8810 return result;
8813 __extension__ extern __inline uint32x4_t
8814 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8815 vmovl_high_u16 (uint16x8_t a)
8817 uint32x4_t result;
8818 __asm__ ("ushll2 %0.4s,%1.8h,#0"
8819 : "=w"(result)
8820 : "w"(a)
8821 : /* No clobbers */);
8822 return result;
8825 __extension__ extern __inline uint64x2_t
8826 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8827 vmovl_high_u32 (uint32x4_t a)
8829 uint64x2_t result;
8830 __asm__ ("ushll2 %0.2d,%1.4s,#0"
8831 : "=w"(result)
8832 : "w"(a)
8833 : /* No clobbers */);
8834 return result;
8837 __extension__ extern __inline int16x8_t
8838 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8839 vmovl_s8 (int8x8_t a)
8841 int16x8_t result;
8842 __asm__ ("sshll %0.8h,%1.8b,#0"
8843 : "=w"(result)
8844 : "w"(a)
8845 : /* No clobbers */);
8846 return result;
8849 __extension__ extern __inline int32x4_t
8850 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8851 vmovl_s16 (int16x4_t a)
8853 int32x4_t result;
8854 __asm__ ("sshll %0.4s,%1.4h,#0"
8855 : "=w"(result)
8856 : "w"(a)
8857 : /* No clobbers */);
8858 return result;
8861 __extension__ extern __inline int64x2_t
8862 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8863 vmovl_s32 (int32x2_t a)
8865 int64x2_t result;
8866 __asm__ ("sshll %0.2d,%1.2s,#0"
8867 : "=w"(result)
8868 : "w"(a)
8869 : /* No clobbers */);
8870 return result;
8873 __extension__ extern __inline uint16x8_t
8874 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8875 vmovl_u8 (uint8x8_t a)
8877 uint16x8_t result;
8878 __asm__ ("ushll %0.8h,%1.8b,#0"
8879 : "=w"(result)
8880 : "w"(a)
8881 : /* No clobbers */);
8882 return result;
8885 __extension__ extern __inline uint32x4_t
8886 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8887 vmovl_u16 (uint16x4_t a)
8889 uint32x4_t result;
8890 __asm__ ("ushll %0.4s,%1.4h,#0"
8891 : "=w"(result)
8892 : "w"(a)
8893 : /* No clobbers */);
8894 return result;
8897 __extension__ extern __inline uint64x2_t
8898 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8899 vmovl_u32 (uint32x2_t a)
8901 uint64x2_t result;
8902 __asm__ ("ushll %0.2d,%1.2s,#0"
8903 : "=w"(result)
8904 : "w"(a)
8905 : /* No clobbers */);
8906 return result;
8909 __extension__ extern __inline int8x16_t
8910 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8911 vmovn_high_s16 (int8x8_t a, int16x8_t b)
8913 int8x16_t result = vcombine_s8 (a, vcreate_s8 (__AARCH64_UINT64_C (0x0)));
8914 __asm__ ("xtn2 %0.16b,%1.8h"
8915 : "+w"(result)
8916 : "w"(b)
8917 : /* No clobbers */);
8918 return result;
8921 __extension__ extern __inline int16x8_t
8922 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8923 vmovn_high_s32 (int16x4_t a, int32x4_t b)
8925 int16x8_t result = vcombine_s16 (a, vcreate_s16 (__AARCH64_UINT64_C (0x0)));
8926 __asm__ ("xtn2 %0.8h,%1.4s"
8927 : "+w"(result)
8928 : "w"(b)
8929 : /* No clobbers */);
8930 return result;
8933 __extension__ extern __inline int32x4_t
8934 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8935 vmovn_high_s64 (int32x2_t a, int64x2_t b)
8937 int32x4_t result = vcombine_s32 (a, vcreate_s32 (__AARCH64_UINT64_C (0x0)));
8938 __asm__ ("xtn2 %0.4s,%1.2d"
8939 : "+w"(result)
8940 : "w"(b)
8941 : /* No clobbers */);
8942 return result;
8945 __extension__ extern __inline uint8x16_t
8946 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8947 vmovn_high_u16 (uint8x8_t a, uint16x8_t b)
8949 uint8x16_t result = vcombine_u8 (a, vcreate_u8 (__AARCH64_UINT64_C (0x0)));
8950 __asm__ ("xtn2 %0.16b,%1.8h"
8951 : "+w"(result)
8952 : "w"(b)
8953 : /* No clobbers */);
8954 return result;
8957 __extension__ extern __inline uint16x8_t
8958 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8959 vmovn_high_u32 (uint16x4_t a, uint32x4_t b)
8961 uint16x8_t result = vcombine_u16 (a, vcreate_u16 (__AARCH64_UINT64_C (0x0)));
8962 __asm__ ("xtn2 %0.8h,%1.4s"
8963 : "+w"(result)
8964 : "w"(b)
8965 : /* No clobbers */);
8966 return result;
8969 __extension__ extern __inline uint32x4_t
8970 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8971 vmovn_high_u64 (uint32x2_t a, uint64x2_t b)
8973 uint32x4_t result = vcombine_u32 (a, vcreate_u32 (__AARCH64_UINT64_C (0x0)));
8974 __asm__ ("xtn2 %0.4s,%1.2d"
8975 : "+w"(result)
8976 : "w"(b)
8977 : /* No clobbers */);
8978 return result;
8981 __extension__ extern __inline int8x8_t
8982 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8983 vmovn_s16 (int16x8_t a)
8985 int8x8_t result;
8986 __asm__ ("xtn %0.8b,%1.8h"
8987 : "=w"(result)
8988 : "w"(a)
8989 : /* No clobbers */);
8990 return result;
8993 __extension__ extern __inline int16x4_t
8994 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8995 vmovn_s32 (int32x4_t a)
8997 int16x4_t result;
8998 __asm__ ("xtn %0.4h,%1.4s"
8999 : "=w"(result)
9000 : "w"(a)
9001 : /* No clobbers */);
9002 return result;
9005 __extension__ extern __inline int32x2_t
9006 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9007 vmovn_s64 (int64x2_t a)
9009 int32x2_t result;
9010 __asm__ ("xtn %0.2s,%1.2d"
9011 : "=w"(result)
9012 : "w"(a)
9013 : /* No clobbers */);
9014 return result;
9017 __extension__ extern __inline uint8x8_t
9018 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9019 vmovn_u16 (uint16x8_t a)
9021 uint8x8_t result;
9022 __asm__ ("xtn %0.8b,%1.8h"
9023 : "=w"(result)
9024 : "w"(a)
9025 : /* No clobbers */);
9026 return result;
9029 __extension__ extern __inline uint16x4_t
9030 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9031 vmovn_u32 (uint32x4_t a)
9033 uint16x4_t result;
9034 __asm__ ("xtn %0.4h,%1.4s"
9035 : "=w"(result)
9036 : "w"(a)
9037 : /* No clobbers */);
9038 return result;
9041 __extension__ extern __inline uint32x2_t
9042 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9043 vmovn_u64 (uint64x2_t a)
9045 uint32x2_t result;
9046 __asm__ ("xtn %0.2s,%1.2d"
9047 : "=w"(result)
9048 : "w"(a)
9049 : /* No clobbers */);
9050 return result;
9053 #define vmull_high_lane_s16(a, b, c) \
9054 __extension__ \
9055 ({ \
9056 int16x4_t b_ = (b); \
9057 int16x8_t a_ = (a); \
9058 int32x4_t result; \
9059 __asm__ ("smull2 %0.4s, %1.8h, %2.h[%3]" \
9060 : "=w"(result) \
9061 : "w"(a_), "x"(b_), "i"(c) \
9062 : /* No clobbers */); \
9063 result; \
9066 #define vmull_high_lane_s32(a, b, c) \
9067 __extension__ \
9068 ({ \
9069 int32x2_t b_ = (b); \
9070 int32x4_t a_ = (a); \
9071 int64x2_t result; \
9072 __asm__ ("smull2 %0.2d, %1.4s, %2.s[%3]" \
9073 : "=w"(result) \
9074 : "w"(a_), "w"(b_), "i"(c) \
9075 : /* No clobbers */); \
9076 result; \
9079 #define vmull_high_lane_u16(a, b, c) \
9080 __extension__ \
9081 ({ \
9082 uint16x4_t b_ = (b); \
9083 uint16x8_t a_ = (a); \
9084 uint32x4_t result; \
9085 __asm__ ("umull2 %0.4s, %1.8h, %2.h[%3]" \
9086 : "=w"(result) \
9087 : "w"(a_), "x"(b_), "i"(c) \
9088 : /* No clobbers */); \
9089 result; \
9092 #define vmull_high_lane_u32(a, b, c) \
9093 __extension__ \
9094 ({ \
9095 uint32x2_t b_ = (b); \
9096 uint32x4_t a_ = (a); \
9097 uint64x2_t result; \
9098 __asm__ ("umull2 %0.2d, %1.4s, %2.s[%3]" \
9099 : "=w"(result) \
9100 : "w"(a_), "w"(b_), "i"(c) \
9101 : /* No clobbers */); \
9102 result; \
9105 #define vmull_high_laneq_s16(a, b, c) \
9106 __extension__ \
9107 ({ \
9108 int16x8_t b_ = (b); \
9109 int16x8_t a_ = (a); \
9110 int32x4_t result; \
9111 __asm__ ("smull2 %0.4s, %1.8h, %2.h[%3]" \
9112 : "=w"(result) \
9113 : "w"(a_), "x"(b_), "i"(c) \
9114 : /* No clobbers */); \
9115 result; \
9118 #define vmull_high_laneq_s32(a, b, c) \
9119 __extension__ \
9120 ({ \
9121 int32x4_t b_ = (b); \
9122 int32x4_t a_ = (a); \
9123 int64x2_t result; \
9124 __asm__ ("smull2 %0.2d, %1.4s, %2.s[%3]" \
9125 : "=w"(result) \
9126 : "w"(a_), "w"(b_), "i"(c) \
9127 : /* No clobbers */); \
9128 result; \
9131 #define vmull_high_laneq_u16(a, b, c) \
9132 __extension__ \
9133 ({ \
9134 uint16x8_t b_ = (b); \
9135 uint16x8_t a_ = (a); \
9136 uint32x4_t result; \
9137 __asm__ ("umull2 %0.4s, %1.8h, %2.h[%3]" \
9138 : "=w"(result) \
9139 : "w"(a_), "x"(b_), "i"(c) \
9140 : /* No clobbers */); \
9141 result; \
9144 #define vmull_high_laneq_u32(a, b, c) \
9145 __extension__ \
9146 ({ \
9147 uint32x4_t b_ = (b); \
9148 uint32x4_t a_ = (a); \
9149 uint64x2_t result; \
9150 __asm__ ("umull2 %0.2d, %1.4s, %2.s[%3]" \
9151 : "=w"(result) \
9152 : "w"(a_), "w"(b_), "i"(c) \
9153 : /* No clobbers */); \
9154 result; \
9157 __extension__ extern __inline int32x4_t
9158 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9159 vmull_high_n_s16 (int16x8_t a, int16_t b)
9161 int32x4_t result;
9162 __asm__ ("smull2 %0.4s,%1.8h,%2.h[0]"
9163 : "=w"(result)
9164 : "w"(a), "x"(b)
9165 : /* No clobbers */);
9166 return result;
9169 __extension__ extern __inline int64x2_t
9170 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9171 vmull_high_n_s32 (int32x4_t a, int32_t b)
9173 int64x2_t result;
9174 __asm__ ("smull2 %0.2d,%1.4s,%2.s[0]"
9175 : "=w"(result)
9176 : "w"(a), "w"(b)
9177 : /* No clobbers */);
9178 return result;
9181 __extension__ extern __inline uint32x4_t
9182 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9183 vmull_high_n_u16 (uint16x8_t a, uint16_t b)
9185 uint32x4_t result;
9186 __asm__ ("umull2 %0.4s,%1.8h,%2.h[0]"
9187 : "=w"(result)
9188 : "w"(a), "x"(b)
9189 : /* No clobbers */);
9190 return result;
9193 __extension__ extern __inline uint64x2_t
9194 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9195 vmull_high_n_u32 (uint32x4_t a, uint32_t b)
9197 uint64x2_t result;
9198 __asm__ ("umull2 %0.2d,%1.4s,%2.s[0]"
9199 : "=w"(result)
9200 : "w"(a), "w"(b)
9201 : /* No clobbers */);
9202 return result;
9205 __extension__ extern __inline poly16x8_t
9206 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9207 vmull_high_p8 (poly8x16_t a, poly8x16_t b)
9209 poly16x8_t result;
9210 __asm__ ("pmull2 %0.8h,%1.16b,%2.16b"
9211 : "=w"(result)
9212 : "w"(a), "w"(b)
9213 : /* No clobbers */);
9214 return result;
9217 __extension__ extern __inline int16x8_t
9218 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9219 vmull_high_s8 (int8x16_t a, int8x16_t b)
9221 int16x8_t result;
9222 __asm__ ("smull2 %0.8h,%1.16b,%2.16b"
9223 : "=w"(result)
9224 : "w"(a), "w"(b)
9225 : /* No clobbers */);
9226 return result;
9229 __extension__ extern __inline int32x4_t
9230 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9231 vmull_high_s16 (int16x8_t a, int16x8_t b)
9233 int32x4_t result;
9234 __asm__ ("smull2 %0.4s,%1.8h,%2.8h"
9235 : "=w"(result)
9236 : "w"(a), "w"(b)
9237 : /* No clobbers */);
9238 return result;
9241 __extension__ extern __inline int64x2_t
9242 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9243 vmull_high_s32 (int32x4_t a, int32x4_t b)
9245 int64x2_t result;
9246 __asm__ ("smull2 %0.2d,%1.4s,%2.4s"
9247 : "=w"(result)
9248 : "w"(a), "w"(b)
9249 : /* No clobbers */);
9250 return result;
9253 __extension__ extern __inline uint16x8_t
9254 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9255 vmull_high_u8 (uint8x16_t a, uint8x16_t b)
9257 uint16x8_t result;
9258 __asm__ ("umull2 %0.8h,%1.16b,%2.16b"
9259 : "=w"(result)
9260 : "w"(a), "w"(b)
9261 : /* No clobbers */);
9262 return result;
9265 __extension__ extern __inline uint32x4_t
9266 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9267 vmull_high_u16 (uint16x8_t a, uint16x8_t b)
9269 uint32x4_t result;
9270 __asm__ ("umull2 %0.4s,%1.8h,%2.8h"
9271 : "=w"(result)
9272 : "w"(a), "w"(b)
9273 : /* No clobbers */);
9274 return result;
9277 __extension__ extern __inline uint64x2_t
9278 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9279 vmull_high_u32 (uint32x4_t a, uint32x4_t b)
9281 uint64x2_t result;
9282 __asm__ ("umull2 %0.2d,%1.4s,%2.4s"
9283 : "=w"(result)
9284 : "w"(a), "w"(b)
9285 : /* No clobbers */);
9286 return result;
9289 #define vmull_lane_s16(a, b, c) \
9290 __extension__ \
9291 ({ \
9292 int16x4_t b_ = (b); \
9293 int16x4_t a_ = (a); \
9294 int32x4_t result; \
9295 __asm__ ("smull %0.4s,%1.4h,%2.h[%3]" \
9296 : "=w"(result) \
9297 : "w"(a_), "x"(b_), "i"(c) \
9298 : /* No clobbers */); \
9299 result; \
9302 #define vmull_lane_s32(a, b, c) \
9303 __extension__ \
9304 ({ \
9305 int32x2_t b_ = (b); \
9306 int32x2_t a_ = (a); \
9307 int64x2_t result; \
9308 __asm__ ("smull %0.2d,%1.2s,%2.s[%3]" \
9309 : "=w"(result) \
9310 : "w"(a_), "w"(b_), "i"(c) \
9311 : /* No clobbers */); \
9312 result; \
9315 #define vmull_lane_u16(a, b, c) \
9316 __extension__ \
9317 ({ \
9318 uint16x4_t b_ = (b); \
9319 uint16x4_t a_ = (a); \
9320 uint32x4_t result; \
9321 __asm__ ("umull %0.4s,%1.4h,%2.h[%3]" \
9322 : "=w"(result) \
9323 : "w"(a_), "x"(b_), "i"(c) \
9324 : /* No clobbers */); \
9325 result; \
9328 #define vmull_lane_u32(a, b, c) \
9329 __extension__ \
9330 ({ \
9331 uint32x2_t b_ = (b); \
9332 uint32x2_t a_ = (a); \
9333 uint64x2_t result; \
9334 __asm__ ("umull %0.2d, %1.2s, %2.s[%3]" \
9335 : "=w"(result) \
9336 : "w"(a_), "w"(b_), "i"(c) \
9337 : /* No clobbers */); \
9338 result; \
9341 #define vmull_laneq_s16(a, b, c) \
9342 __extension__ \
9343 ({ \
9344 int16x8_t b_ = (b); \
9345 int16x4_t a_ = (a); \
9346 int32x4_t result; \
9347 __asm__ ("smull %0.4s, %1.4h, %2.h[%3]" \
9348 : "=w"(result) \
9349 : "w"(a_), "x"(b_), "i"(c) \
9350 : /* No clobbers */); \
9351 result; \
9354 #define vmull_laneq_s32(a, b, c) \
9355 __extension__ \
9356 ({ \
9357 int32x4_t b_ = (b); \
9358 int32x2_t a_ = (a); \
9359 int64x2_t result; \
9360 __asm__ ("smull %0.2d, %1.2s, %2.s[%3]" \
9361 : "=w"(result) \
9362 : "w"(a_), "w"(b_), "i"(c) \
9363 : /* No clobbers */); \
9364 result; \
9367 #define vmull_laneq_u16(a, b, c) \
9368 __extension__ \
9369 ({ \
9370 uint16x8_t b_ = (b); \
9371 uint16x4_t a_ = (a); \
9372 uint32x4_t result; \
9373 __asm__ ("umull %0.4s, %1.4h, %2.h[%3]" \
9374 : "=w"(result) \
9375 : "w"(a_), "x"(b_), "i"(c) \
9376 : /* No clobbers */); \
9377 result; \
9380 #define vmull_laneq_u32(a, b, c) \
9381 __extension__ \
9382 ({ \
9383 uint32x4_t b_ = (b); \
9384 uint32x2_t a_ = (a); \
9385 uint64x2_t result; \
9386 __asm__ ("umull %0.2d, %1.2s, %2.s[%3]" \
9387 : "=w"(result) \
9388 : "w"(a_), "w"(b_), "i"(c) \
9389 : /* No clobbers */); \
9390 result; \
9393 __extension__ extern __inline int32x4_t
9394 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9395 vmull_n_s16 (int16x4_t a, int16_t b)
9397 int32x4_t result;
9398 __asm__ ("smull %0.4s,%1.4h,%2.h[0]"
9399 : "=w"(result)
9400 : "w"(a), "x"(b)
9401 : /* No clobbers */);
9402 return result;
9405 __extension__ extern __inline int64x2_t
9406 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9407 vmull_n_s32 (int32x2_t a, int32_t b)
9409 int64x2_t result;
9410 __asm__ ("smull %0.2d,%1.2s,%2.s[0]"
9411 : "=w"(result)
9412 : "w"(a), "w"(b)
9413 : /* No clobbers */);
9414 return result;
9417 __extension__ extern __inline uint32x4_t
9418 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9419 vmull_n_u16 (uint16x4_t a, uint16_t b)
9421 uint32x4_t result;
9422 __asm__ ("umull %0.4s,%1.4h,%2.h[0]"
9423 : "=w"(result)
9424 : "w"(a), "x"(b)
9425 : /* No clobbers */);
9426 return result;
9429 __extension__ extern __inline uint64x2_t
9430 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9431 vmull_n_u32 (uint32x2_t a, uint32_t b)
9433 uint64x2_t result;
9434 __asm__ ("umull %0.2d,%1.2s,%2.s[0]"
9435 : "=w"(result)
9436 : "w"(a), "w"(b)
9437 : /* No clobbers */);
9438 return result;
9441 __extension__ extern __inline poly16x8_t
9442 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9443 vmull_p8 (poly8x8_t a, poly8x8_t b)
9445 poly16x8_t result;
9446 __asm__ ("pmull %0.8h, %1.8b, %2.8b"
9447 : "=w"(result)
9448 : "w"(a), "w"(b)
9449 : /* No clobbers */);
9450 return result;
9453 __extension__ extern __inline int16x8_t
9454 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9455 vmull_s8 (int8x8_t a, int8x8_t b)
9457 int16x8_t result;
9458 __asm__ ("smull %0.8h, %1.8b, %2.8b"
9459 : "=w"(result)
9460 : "w"(a), "w"(b)
9461 : /* No clobbers */);
9462 return result;
9465 __extension__ extern __inline int32x4_t
9466 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9467 vmull_s16 (int16x4_t a, int16x4_t b)
9469 int32x4_t result;
9470 __asm__ ("smull %0.4s, %1.4h, %2.4h"
9471 : "=w"(result)
9472 : "w"(a), "w"(b)
9473 : /* No clobbers */);
9474 return result;
9477 __extension__ extern __inline int64x2_t
9478 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9479 vmull_s32 (int32x2_t a, int32x2_t b)
9481 int64x2_t result;
9482 __asm__ ("smull %0.2d, %1.2s, %2.2s"
9483 : "=w"(result)
9484 : "w"(a), "w"(b)
9485 : /* No clobbers */);
9486 return result;
9489 __extension__ extern __inline uint16x8_t
9490 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9491 vmull_u8 (uint8x8_t a, uint8x8_t b)
9493 uint16x8_t result;
9494 __asm__ ("umull %0.8h, %1.8b, %2.8b"
9495 : "=w"(result)
9496 : "w"(a), "w"(b)
9497 : /* No clobbers */);
9498 return result;
9501 __extension__ extern __inline uint32x4_t
9502 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9503 vmull_u16 (uint16x4_t a, uint16x4_t b)
9505 uint32x4_t result;
9506 __asm__ ("umull %0.4s, %1.4h, %2.4h"
9507 : "=w"(result)
9508 : "w"(a), "w"(b)
9509 : /* No clobbers */);
9510 return result;
9513 __extension__ extern __inline uint64x2_t
9514 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9515 vmull_u32 (uint32x2_t a, uint32x2_t b)
9517 uint64x2_t result;
9518 __asm__ ("umull %0.2d, %1.2s, %2.2s"
9519 : "=w"(result)
9520 : "w"(a), "w"(b)
9521 : /* No clobbers */);
9522 return result;
9525 __extension__ extern __inline int16x4_t
9526 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9527 vpadal_s8 (int16x4_t a, int8x8_t b)
9529 int16x4_t result;
9530 __asm__ ("sadalp %0.4h,%2.8b"
9531 : "=w"(result)
9532 : "0"(a), "w"(b)
9533 : /* No clobbers */);
9534 return result;
9537 __extension__ extern __inline int32x2_t
9538 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9539 vpadal_s16 (int32x2_t a, int16x4_t b)
9541 int32x2_t result;
9542 __asm__ ("sadalp %0.2s,%2.4h"
9543 : "=w"(result)
9544 : "0"(a), "w"(b)
9545 : /* No clobbers */);
9546 return result;
9549 __extension__ extern __inline int64x1_t
9550 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9551 vpadal_s32 (int64x1_t a, int32x2_t b)
9553 int64x1_t result;
9554 __asm__ ("sadalp %0.1d,%2.2s"
9555 : "=w"(result)
9556 : "0"(a), "w"(b)
9557 : /* No clobbers */);
9558 return result;
9561 __extension__ extern __inline uint16x4_t
9562 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9563 vpadal_u8 (uint16x4_t a, uint8x8_t b)
9565 uint16x4_t result;
9566 __asm__ ("uadalp %0.4h,%2.8b"
9567 : "=w"(result)
9568 : "0"(a), "w"(b)
9569 : /* No clobbers */);
9570 return result;
9573 __extension__ extern __inline uint32x2_t
9574 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9575 vpadal_u16 (uint32x2_t a, uint16x4_t b)
9577 uint32x2_t result;
9578 __asm__ ("uadalp %0.2s,%2.4h"
9579 : "=w"(result)
9580 : "0"(a), "w"(b)
9581 : /* No clobbers */);
9582 return result;
9585 __extension__ extern __inline uint64x1_t
9586 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9587 vpadal_u32 (uint64x1_t a, uint32x2_t b)
9589 uint64x1_t result;
9590 __asm__ ("uadalp %0.1d,%2.2s"
9591 : "=w"(result)
9592 : "0"(a), "w"(b)
9593 : /* No clobbers */);
9594 return result;
9597 __extension__ extern __inline int16x8_t
9598 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9599 vpadalq_s8 (int16x8_t a, int8x16_t b)
9601 int16x8_t result;
9602 __asm__ ("sadalp %0.8h,%2.16b"
9603 : "=w"(result)
9604 : "0"(a), "w"(b)
9605 : /* No clobbers */);
9606 return result;
9609 __extension__ extern __inline int32x4_t
9610 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9611 vpadalq_s16 (int32x4_t a, int16x8_t b)
9613 int32x4_t result;
9614 __asm__ ("sadalp %0.4s,%2.8h"
9615 : "=w"(result)
9616 : "0"(a), "w"(b)
9617 : /* No clobbers */);
9618 return result;
9621 __extension__ extern __inline int64x2_t
9622 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9623 vpadalq_s32 (int64x2_t a, int32x4_t b)
9625 int64x2_t result;
9626 __asm__ ("sadalp %0.2d,%2.4s"
9627 : "=w"(result)
9628 : "0"(a), "w"(b)
9629 : /* No clobbers */);
9630 return result;
9633 __extension__ extern __inline uint16x8_t
9634 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9635 vpadalq_u8 (uint16x8_t a, uint8x16_t b)
9637 uint16x8_t result;
9638 __asm__ ("uadalp %0.8h,%2.16b"
9639 : "=w"(result)
9640 : "0"(a), "w"(b)
9641 : /* No clobbers */);
9642 return result;
9645 __extension__ extern __inline uint32x4_t
9646 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9647 vpadalq_u16 (uint32x4_t a, uint16x8_t b)
9649 uint32x4_t result;
9650 __asm__ ("uadalp %0.4s,%2.8h"
9651 : "=w"(result)
9652 : "0"(a), "w"(b)
9653 : /* No clobbers */);
9654 return result;
9657 __extension__ extern __inline uint64x2_t
9658 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9659 vpadalq_u32 (uint64x2_t a, uint32x4_t b)
9661 uint64x2_t result;
9662 __asm__ ("uadalp %0.2d,%2.4s"
9663 : "=w"(result)
9664 : "0"(a), "w"(b)
9665 : /* No clobbers */);
9666 return result;
9669 __extension__ extern __inline int16x4_t
9670 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9671 vpaddl_s8 (int8x8_t a)
9673 int16x4_t result;
9674 __asm__ ("saddlp %0.4h,%1.8b"
9675 : "=w"(result)
9676 : "w"(a)
9677 : /* No clobbers */);
9678 return result;
9681 __extension__ extern __inline int32x2_t
9682 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9683 vpaddl_s16 (int16x4_t a)
9685 int32x2_t result;
9686 __asm__ ("saddlp %0.2s,%1.4h"
9687 : "=w"(result)
9688 : "w"(a)
9689 : /* No clobbers */);
9690 return result;
9693 __extension__ extern __inline int64x1_t
9694 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9695 vpaddl_s32 (int32x2_t a)
9697 int64x1_t result;
9698 __asm__ ("saddlp %0.1d,%1.2s"
9699 : "=w"(result)
9700 : "w"(a)
9701 : /* No clobbers */);
9702 return result;
9705 __extension__ extern __inline uint16x4_t
9706 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9707 vpaddl_u8 (uint8x8_t a)
9709 uint16x4_t result;
9710 __asm__ ("uaddlp %0.4h,%1.8b"
9711 : "=w"(result)
9712 : "w"(a)
9713 : /* No clobbers */);
9714 return result;
9717 __extension__ extern __inline uint32x2_t
9718 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9719 vpaddl_u16 (uint16x4_t a)
9721 uint32x2_t result;
9722 __asm__ ("uaddlp %0.2s,%1.4h"
9723 : "=w"(result)
9724 : "w"(a)
9725 : /* No clobbers */);
9726 return result;
9729 __extension__ extern __inline uint64x1_t
9730 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9731 vpaddl_u32 (uint32x2_t a)
9733 uint64x1_t result;
9734 __asm__ ("uaddlp %0.1d,%1.2s"
9735 : "=w"(result)
9736 : "w"(a)
9737 : /* No clobbers */);
9738 return result;
9741 __extension__ extern __inline int16x8_t
9742 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9743 vpaddlq_s8 (int8x16_t a)
9745 int16x8_t result;
9746 __asm__ ("saddlp %0.8h,%1.16b"
9747 : "=w"(result)
9748 : "w"(a)
9749 : /* No clobbers */);
9750 return result;
9753 __extension__ extern __inline int32x4_t
9754 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9755 vpaddlq_s16 (int16x8_t a)
9757 int32x4_t result;
9758 __asm__ ("saddlp %0.4s,%1.8h"
9759 : "=w"(result)
9760 : "w"(a)
9761 : /* No clobbers */);
9762 return result;
9765 __extension__ extern __inline int64x2_t
9766 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9767 vpaddlq_s32 (int32x4_t a)
9769 int64x2_t result;
9770 __asm__ ("saddlp %0.2d,%1.4s"
9771 : "=w"(result)
9772 : "w"(a)
9773 : /* No clobbers */);
9774 return result;
9777 __extension__ extern __inline uint16x8_t
9778 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9779 vpaddlq_u8 (uint8x16_t a)
9781 uint16x8_t result;
9782 __asm__ ("uaddlp %0.8h,%1.16b"
9783 : "=w"(result)
9784 : "w"(a)
9785 : /* No clobbers */);
9786 return result;
9789 __extension__ extern __inline uint32x4_t
9790 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9791 vpaddlq_u16 (uint16x8_t a)
9793 uint32x4_t result;
9794 __asm__ ("uaddlp %0.4s,%1.8h"
9795 : "=w"(result)
9796 : "w"(a)
9797 : /* No clobbers */);
9798 return result;
9801 __extension__ extern __inline uint64x2_t
9802 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9803 vpaddlq_u32 (uint32x4_t a)
9805 uint64x2_t result;
9806 __asm__ ("uaddlp %0.2d,%1.4s"
9807 : "=w"(result)
9808 : "w"(a)
9809 : /* No clobbers */);
9810 return result;
9813 __extension__ extern __inline int8x16_t
9814 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9815 vpaddq_s8 (int8x16_t a, int8x16_t b)
9817 int8x16_t result;
9818 __asm__ ("addp %0.16b,%1.16b,%2.16b"
9819 : "=w"(result)
9820 : "w"(a), "w"(b)
9821 : /* No clobbers */);
9822 return result;
9825 __extension__ extern __inline int16x8_t
9826 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9827 vpaddq_s16 (int16x8_t a, int16x8_t b)
9829 int16x8_t result;
9830 __asm__ ("addp %0.8h,%1.8h,%2.8h"
9831 : "=w"(result)
9832 : "w"(a), "w"(b)
9833 : /* No clobbers */);
9834 return result;
9837 __extension__ extern __inline int32x4_t
9838 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9839 vpaddq_s32 (int32x4_t a, int32x4_t b)
9841 int32x4_t result;
9842 __asm__ ("addp %0.4s,%1.4s,%2.4s"
9843 : "=w"(result)
9844 : "w"(a), "w"(b)
9845 : /* No clobbers */);
9846 return result;
9849 __extension__ extern __inline int64x2_t
9850 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9851 vpaddq_s64 (int64x2_t a, int64x2_t b)
9853 int64x2_t result;
9854 __asm__ ("addp %0.2d,%1.2d,%2.2d"
9855 : "=w"(result)
9856 : "w"(a), "w"(b)
9857 : /* No clobbers */);
9858 return result;
9861 __extension__ extern __inline uint8x16_t
9862 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9863 vpaddq_u8 (uint8x16_t a, uint8x16_t b)
9865 uint8x16_t result;
9866 __asm__ ("addp %0.16b,%1.16b,%2.16b"
9867 : "=w"(result)
9868 : "w"(a), "w"(b)
9869 : /* No clobbers */);
9870 return result;
9873 __extension__ extern __inline uint16x8_t
9874 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9875 vpaddq_u16 (uint16x8_t a, uint16x8_t b)
9877 uint16x8_t result;
9878 __asm__ ("addp %0.8h,%1.8h,%2.8h"
9879 : "=w"(result)
9880 : "w"(a), "w"(b)
9881 : /* No clobbers */);
9882 return result;
9885 __extension__ extern __inline uint32x4_t
9886 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9887 vpaddq_u32 (uint32x4_t a, uint32x4_t b)
9889 uint32x4_t result;
9890 __asm__ ("addp %0.4s,%1.4s,%2.4s"
9891 : "=w"(result)
9892 : "w"(a), "w"(b)
9893 : /* No clobbers */);
9894 return result;
9897 __extension__ extern __inline uint64x2_t
9898 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9899 vpaddq_u64 (uint64x2_t a, uint64x2_t b)
9901 uint64x2_t result;
9902 __asm__ ("addp %0.2d,%1.2d,%2.2d"
9903 : "=w"(result)
9904 : "w"(a), "w"(b)
9905 : /* No clobbers */);
9906 return result;
9909 __extension__ extern __inline int16x4_t
9910 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9911 vqdmulh_n_s16 (int16x4_t a, int16_t b)
9913 int16x4_t result;
9914 __asm__ ("sqdmulh %0.4h,%1.4h,%2.h[0]"
9915 : "=w"(result)
9916 : "w"(a), "x"(b)
9917 : /* No clobbers */);
9918 return result;
9921 __extension__ extern __inline int32x2_t
9922 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9923 vqdmulh_n_s32 (int32x2_t a, int32_t b)
9925 int32x2_t result;
9926 __asm__ ("sqdmulh %0.2s,%1.2s,%2.s[0]"
9927 : "=w"(result)
9928 : "w"(a), "w"(b)
9929 : /* No clobbers */);
9930 return result;
9933 __extension__ extern __inline int16x8_t
9934 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9935 vqdmulhq_n_s16 (int16x8_t a, int16_t b)
9937 int16x8_t result;
9938 __asm__ ("sqdmulh %0.8h,%1.8h,%2.h[0]"
9939 : "=w"(result)
9940 : "w"(a), "x"(b)
9941 : /* No clobbers */);
9942 return result;
9945 __extension__ extern __inline int32x4_t
9946 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9947 vqdmulhq_n_s32 (int32x4_t a, int32_t b)
9949 int32x4_t result;
9950 __asm__ ("sqdmulh %0.4s,%1.4s,%2.s[0]"
9951 : "=w"(result)
9952 : "w"(a), "w"(b)
9953 : /* No clobbers */);
9954 return result;
9957 __extension__ extern __inline int8x16_t
9958 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9959 vqmovn_high_s16 (int8x8_t a, int16x8_t b)
9961 int8x16_t result = vcombine_s8 (a, vcreate_s8 (__AARCH64_UINT64_C (0x0)));
9962 __asm__ ("sqxtn2 %0.16b, %1.8h"
9963 : "+w"(result)
9964 : "w"(b)
9965 : /* No clobbers */);
9966 return result;
9969 __extension__ extern __inline int16x8_t
9970 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9971 vqmovn_high_s32 (int16x4_t a, int32x4_t b)
9973 int16x8_t result = vcombine_s16 (a, vcreate_s16 (__AARCH64_UINT64_C (0x0)));
9974 __asm__ ("sqxtn2 %0.8h, %1.4s"
9975 : "+w"(result)
9976 : "w"(b)
9977 : /* No clobbers */);
9978 return result;
9981 __extension__ extern __inline int32x4_t
9982 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9983 vqmovn_high_s64 (int32x2_t a, int64x2_t b)
9985 int32x4_t result = vcombine_s32 (a, vcreate_s32 (__AARCH64_UINT64_C (0x0)));
9986 __asm__ ("sqxtn2 %0.4s, %1.2d"
9987 : "+w"(result)
9988 : "w"(b)
9989 : /* No clobbers */);
9990 return result;
9993 __extension__ extern __inline uint8x16_t
9994 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9995 vqmovn_high_u16 (uint8x8_t a, uint16x8_t b)
9997 uint8x16_t result = vcombine_u8 (a, vcreate_u8 (__AARCH64_UINT64_C (0x0)));
9998 __asm__ ("uqxtn2 %0.16b, %1.8h"
9999 : "+w"(result)
10000 : "w"(b)
10001 : /* No clobbers */);
10002 return result;
10005 __extension__ extern __inline uint16x8_t
10006 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10007 vqmovn_high_u32 (uint16x4_t a, uint32x4_t b)
10009 uint16x8_t result = vcombine_u16 (a, vcreate_u16 (__AARCH64_UINT64_C (0x0)));
10010 __asm__ ("uqxtn2 %0.8h, %1.4s"
10011 : "+w"(result)
10012 : "w"(b)
10013 : /* No clobbers */);
10014 return result;
10017 __extension__ extern __inline uint32x4_t
10018 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10019 vqmovn_high_u64 (uint32x2_t a, uint64x2_t b)
10021 uint32x4_t result = vcombine_u32 (a, vcreate_u32 (__AARCH64_UINT64_C (0x0)));
10022 __asm__ ("uqxtn2 %0.4s, %1.2d"
10023 : "+w"(result)
10024 : "w"(b)
10025 : /* No clobbers */);
10026 return result;
10029 __extension__ extern __inline uint8x16_t
10030 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10031 vqmovun_high_s16 (uint8x8_t a, int16x8_t b)
10033 uint8x16_t result = vcombine_u8 (a, vcreate_u8 (__AARCH64_UINT64_C (0x0)));
10034 __asm__ ("sqxtun2 %0.16b, %1.8h"
10035 : "+w"(result)
10036 : "w"(b)
10037 : /* No clobbers */);
10038 return result;
10041 __extension__ extern __inline uint16x8_t
10042 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10043 vqmovun_high_s32 (uint16x4_t a, int32x4_t b)
10045 uint16x8_t result = vcombine_u16 (a, vcreate_u16 (__AARCH64_UINT64_C (0x0)));
10046 __asm__ ("sqxtun2 %0.8h, %1.4s"
10047 : "+w"(result)
10048 : "w"(b)
10049 : /* No clobbers */);
10050 return result;
10053 __extension__ extern __inline uint32x4_t
10054 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10055 vqmovun_high_s64 (uint32x2_t a, int64x2_t b)
10057 uint32x4_t result = vcombine_u32 (a, vcreate_u32 (__AARCH64_UINT64_C (0x0)));
10058 __asm__ ("sqxtun2 %0.4s, %1.2d"
10059 : "+w"(result)
10060 : "w"(b)
10061 : /* No clobbers */);
10062 return result;
10065 __extension__ extern __inline int16x4_t
10066 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10067 vqrdmulh_n_s16 (int16x4_t a, int16_t b)
10069 int16x4_t result;
10070 __asm__ ("sqrdmulh %0.4h,%1.4h,%2.h[0]"
10071 : "=w"(result)
10072 : "w"(a), "x"(b)
10073 : /* No clobbers */);
10074 return result;
10077 __extension__ extern __inline int32x2_t
10078 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10079 vqrdmulh_n_s32 (int32x2_t a, int32_t b)
10081 int32x2_t result;
10082 __asm__ ("sqrdmulh %0.2s,%1.2s,%2.s[0]"
10083 : "=w"(result)
10084 : "w"(a), "w"(b)
10085 : /* No clobbers */);
10086 return result;
10089 __extension__ extern __inline int16x8_t
10090 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10091 vqrdmulhq_n_s16 (int16x8_t a, int16_t b)
10093 int16x8_t result;
10094 __asm__ ("sqrdmulh %0.8h,%1.8h,%2.h[0]"
10095 : "=w"(result)
10096 : "w"(a), "x"(b)
10097 : /* No clobbers */);
10098 return result;
10101 __extension__ extern __inline int32x4_t
10102 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10103 vqrdmulhq_n_s32 (int32x4_t a, int32_t b)
10105 int32x4_t result;
10106 __asm__ ("sqrdmulh %0.4s,%1.4s,%2.s[0]"
10107 : "=w"(result)
10108 : "w"(a), "w"(b)
10109 : /* No clobbers */);
10110 return result;
10113 #define vqrshrn_high_n_s16(a, b, c) \
10114 __extension__ \
10115 ({ \
10116 int16x8_t b_ = (b); \
10117 int8x8_t a_ = (a); \
10118 int8x16_t result = vcombine_s8 \
10119 (a_, vcreate_s8 \
10120 (__AARCH64_UINT64_C (0x0))); \
10121 __asm__ ("sqrshrn2 %0.16b, %1.8h, #%2" \
10122 : "+w"(result) \
10123 : "w"(b_), "i"(c) \
10124 : /* No clobbers */); \
10125 result; \
10128 #define vqrshrn_high_n_s32(a, b, c) \
10129 __extension__ \
10130 ({ \
10131 int32x4_t b_ = (b); \
10132 int16x4_t a_ = (a); \
10133 int16x8_t result = vcombine_s16 \
10134 (a_, vcreate_s16 \
10135 (__AARCH64_UINT64_C (0x0))); \
10136 __asm__ ("sqrshrn2 %0.8h, %1.4s, #%2" \
10137 : "+w"(result) \
10138 : "w"(b_), "i"(c) \
10139 : /* No clobbers */); \
10140 result; \
10143 #define vqrshrn_high_n_s64(a, b, c) \
10144 __extension__ \
10145 ({ \
10146 int64x2_t b_ = (b); \
10147 int32x2_t a_ = (a); \
10148 int32x4_t result = vcombine_s32 \
10149 (a_, vcreate_s32 \
10150 (__AARCH64_UINT64_C (0x0))); \
10151 __asm__ ("sqrshrn2 %0.4s, %1.2d, #%2" \
10152 : "+w"(result) \
10153 : "w"(b_), "i"(c) \
10154 : /* No clobbers */); \
10155 result; \
10158 #define vqrshrn_high_n_u16(a, b, c) \
10159 __extension__ \
10160 ({ \
10161 uint16x8_t b_ = (b); \
10162 uint8x8_t a_ = (a); \
10163 uint8x16_t result = vcombine_u8 \
10164 (a_, vcreate_u8 \
10165 (__AARCH64_UINT64_C (0x0))); \
10166 __asm__ ("uqrshrn2 %0.16b, %1.8h, #%2" \
10167 : "+w"(result) \
10168 : "w"(b_), "i"(c) \
10169 : /* No clobbers */); \
10170 result; \
10173 #define vqrshrn_high_n_u32(a, b, c) \
10174 __extension__ \
10175 ({ \
10176 uint32x4_t b_ = (b); \
10177 uint16x4_t a_ = (a); \
10178 uint16x8_t result = vcombine_u16 \
10179 (a_, vcreate_u16 \
10180 (__AARCH64_UINT64_C (0x0))); \
10181 __asm__ ("uqrshrn2 %0.8h, %1.4s, #%2" \
10182 : "+w"(result) \
10183 : "w"(b_), "i"(c) \
10184 : /* No clobbers */); \
10185 result; \
10188 #define vqrshrn_high_n_u64(a, b, c) \
10189 __extension__ \
10190 ({ \
10191 uint64x2_t b_ = (b); \
10192 uint32x2_t a_ = (a); \
10193 uint32x4_t result = vcombine_u32 \
10194 (a_, vcreate_u32 \
10195 (__AARCH64_UINT64_C (0x0))); \
10196 __asm__ ("uqrshrn2 %0.4s, %1.2d, #%2" \
10197 : "+w"(result) \
10198 : "w"(b_), "i"(c) \
10199 : /* No clobbers */); \
10200 result; \
10203 #define vqrshrun_high_n_s16(a, b, c) \
10204 __extension__ \
10205 ({ \
10206 int16x8_t b_ = (b); \
10207 uint8x8_t a_ = (a); \
10208 uint8x16_t result = vcombine_u8 \
10209 (a_, vcreate_u8 \
10210 (__AARCH64_UINT64_C (0x0))); \
10211 __asm__ ("sqrshrun2 %0.16b, %1.8h, #%2" \
10212 : "+w"(result) \
10213 : "w"(b_), "i"(c) \
10214 : /* No clobbers */); \
10215 result; \
10218 #define vqrshrun_high_n_s32(a, b, c) \
10219 __extension__ \
10220 ({ \
10221 int32x4_t b_ = (b); \
10222 uint16x4_t a_ = (a); \
10223 uint16x8_t result = vcombine_u16 \
10224 (a_, vcreate_u16 \
10225 (__AARCH64_UINT64_C (0x0))); \
10226 __asm__ ("sqrshrun2 %0.8h, %1.4s, #%2" \
10227 : "+w"(result) \
10228 : "w"(b_), "i"(c) \
10229 : /* No clobbers */); \
10230 result; \
10233 #define vqrshrun_high_n_s64(a, b, c) \
10234 __extension__ \
10235 ({ \
10236 int64x2_t b_ = (b); \
10237 uint32x2_t a_ = (a); \
10238 uint32x4_t result = vcombine_u32 \
10239 (a_, vcreate_u32 \
10240 (__AARCH64_UINT64_C (0x0))); \
10241 __asm__ ("sqrshrun2 %0.4s, %1.2d, #%2" \
10242 : "+w"(result) \
10243 : "w"(b_), "i"(c) \
10244 : /* No clobbers */); \
10245 result; \
10248 #define vqshrn_high_n_s16(a, b, c) \
10249 __extension__ \
10250 ({ \
10251 int16x8_t b_ = (b); \
10252 int8x8_t a_ = (a); \
10253 int8x16_t result = vcombine_s8 \
10254 (a_, vcreate_s8 \
10255 (__AARCH64_UINT64_C (0x0))); \
10256 __asm__ ("sqshrn2 %0.16b, %1.8h, #%2" \
10257 : "+w"(result) \
10258 : "w"(b_), "i"(c) \
10259 : /* No clobbers */); \
10260 result; \
10263 #define vqshrn_high_n_s32(a, b, c) \
10264 __extension__ \
10265 ({ \
10266 int32x4_t b_ = (b); \
10267 int16x4_t a_ = (a); \
10268 int16x8_t result = vcombine_s16 \
10269 (a_, vcreate_s16 \
10270 (__AARCH64_UINT64_C (0x0))); \
10271 __asm__ ("sqshrn2 %0.8h, %1.4s, #%2" \
10272 : "+w"(result) \
10273 : "w"(b_), "i"(c) \
10274 : /* No clobbers */); \
10275 result; \
10278 #define vqshrn_high_n_s64(a, b, c) \
10279 __extension__ \
10280 ({ \
10281 int64x2_t b_ = (b); \
10282 int32x2_t a_ = (a); \
10283 int32x4_t result = vcombine_s32 \
10284 (a_, vcreate_s32 \
10285 (__AARCH64_UINT64_C (0x0))); \
10286 __asm__ ("sqshrn2 %0.4s, %1.2d, #%2" \
10287 : "+w"(result) \
10288 : "w"(b_), "i"(c) \
10289 : /* No clobbers */); \
10290 result; \
10293 #define vqshrn_high_n_u16(a, b, c) \
10294 __extension__ \
10295 ({ \
10296 uint16x8_t b_ = (b); \
10297 uint8x8_t a_ = (a); \
10298 uint8x16_t result = vcombine_u8 \
10299 (a_, vcreate_u8 \
10300 (__AARCH64_UINT64_C (0x0))); \
10301 __asm__ ("uqshrn2 %0.16b, %1.8h, #%2" \
10302 : "+w"(result) \
10303 : "w"(b_), "i"(c) \
10304 : /* No clobbers */); \
10305 result; \
10308 #define vqshrn_high_n_u32(a, b, c) \
10309 __extension__ \
10310 ({ \
10311 uint32x4_t b_ = (b); \
10312 uint16x4_t a_ = (a); \
10313 uint16x8_t result = vcombine_u16 \
10314 (a_, vcreate_u16 \
10315 (__AARCH64_UINT64_C (0x0))); \
10316 __asm__ ("uqshrn2 %0.8h, %1.4s, #%2" \
10317 : "+w"(result) \
10318 : "w"(b_), "i"(c) \
10319 : /* No clobbers */); \
10320 result; \
10323 #define vqshrn_high_n_u64(a, b, c) \
10324 __extension__ \
10325 ({ \
10326 uint64x2_t b_ = (b); \
10327 uint32x2_t a_ = (a); \
10328 uint32x4_t result = vcombine_u32 \
10329 (a_, vcreate_u32 \
10330 (__AARCH64_UINT64_C (0x0))); \
10331 __asm__ ("uqshrn2 %0.4s, %1.2d, #%2" \
10332 : "+w"(result) \
10333 : "w"(b_), "i"(c) \
10334 : /* No clobbers */); \
10335 result; \
10338 #define vqshrun_high_n_s16(a, b, c) \
10339 __extension__ \
10340 ({ \
10341 int16x8_t b_ = (b); \
10342 uint8x8_t a_ = (a); \
10343 uint8x16_t result = vcombine_u8 \
10344 (a_, vcreate_u8 \
10345 (__AARCH64_UINT64_C (0x0))); \
10346 __asm__ ("sqshrun2 %0.16b, %1.8h, #%2" \
10347 : "+w"(result) \
10348 : "w"(b_), "i"(c) \
10349 : /* No clobbers */); \
10350 result; \
10353 #define vqshrun_high_n_s32(a, b, c) \
10354 __extension__ \
10355 ({ \
10356 int32x4_t b_ = (b); \
10357 uint16x4_t a_ = (a); \
10358 uint16x8_t result = vcombine_u16 \
10359 (a_, vcreate_u16 \
10360 (__AARCH64_UINT64_C (0x0))); \
10361 __asm__ ("sqshrun2 %0.8h, %1.4s, #%2" \
10362 : "+w"(result) \
10363 : "w"(b_), "i"(c) \
10364 : /* No clobbers */); \
10365 result; \
10368 #define vqshrun_high_n_s64(a, b, c) \
10369 __extension__ \
10370 ({ \
10371 int64x2_t b_ = (b); \
10372 uint32x2_t a_ = (a); \
10373 uint32x4_t result = vcombine_u32 \
10374 (a_, vcreate_u32 \
10375 (__AARCH64_UINT64_C (0x0))); \
10376 __asm__ ("sqshrun2 %0.4s, %1.2d, #%2" \
10377 : "+w"(result) \
10378 : "w"(b_), "i"(c) \
10379 : /* No clobbers */); \
10380 result; \
10383 #define vrshrn_high_n_s16(a, b, c) \
10384 __extension__ \
10385 ({ \
10386 int16x8_t b_ = (b); \
10387 int8x8_t a_ = (a); \
10388 int8x16_t result = vcombine_s8 \
10389 (a_, vcreate_s8 \
10390 (__AARCH64_UINT64_C (0x0))); \
10391 __asm__ ("rshrn2 %0.16b,%1.8h,#%2" \
10392 : "+w"(result) \
10393 : "w"(b_), "i"(c) \
10394 : /* No clobbers */); \
10395 result; \
10398 #define vrshrn_high_n_s32(a, b, c) \
10399 __extension__ \
10400 ({ \
10401 int32x4_t b_ = (b); \
10402 int16x4_t a_ = (a); \
10403 int16x8_t result = vcombine_s16 \
10404 (a_, vcreate_s16 \
10405 (__AARCH64_UINT64_C (0x0))); \
10406 __asm__ ("rshrn2 %0.8h,%1.4s,#%2" \
10407 : "+w"(result) \
10408 : "w"(b_), "i"(c) \
10409 : /* No clobbers */); \
10410 result; \
10413 #define vrshrn_high_n_s64(a, b, c) \
10414 __extension__ \
10415 ({ \
10416 int64x2_t b_ = (b); \
10417 int32x2_t a_ = (a); \
10418 int32x4_t result = vcombine_s32 \
10419 (a_, vcreate_s32 \
10420 (__AARCH64_UINT64_C (0x0))); \
10421 __asm__ ("rshrn2 %0.4s,%1.2d,#%2" \
10422 : "+w"(result) \
10423 : "w"(b_), "i"(c) \
10424 : /* No clobbers */); \
10425 result; \
10428 #define vrshrn_high_n_u16(a, b, c) \
10429 __extension__ \
10430 ({ \
10431 uint16x8_t b_ = (b); \
10432 uint8x8_t a_ = (a); \
10433 uint8x16_t result = vcombine_u8 \
10434 (a_, vcreate_u8 \
10435 (__AARCH64_UINT64_C (0x0))); \
10436 __asm__ ("rshrn2 %0.16b,%1.8h,#%2" \
10437 : "+w"(result) \
10438 : "w"(b_), "i"(c) \
10439 : /* No clobbers */); \
10440 result; \
10443 #define vrshrn_high_n_u32(a, b, c) \
10444 __extension__ \
10445 ({ \
10446 uint32x4_t b_ = (b); \
10447 uint16x4_t a_ = (a); \
10448 uint16x8_t result = vcombine_u16 \
10449 (a_, vcreate_u16 \
10450 (__AARCH64_UINT64_C (0x0))); \
10451 __asm__ ("rshrn2 %0.8h,%1.4s,#%2" \
10452 : "+w"(result) \
10453 : "w"(b_), "i"(c) \
10454 : /* No clobbers */); \
10455 result; \
10458 #define vrshrn_high_n_u64(a, b, c) \
10459 __extension__ \
10460 ({ \
10461 uint64x2_t b_ = (b); \
10462 uint32x2_t a_ = (a); \
10463 uint32x4_t result = vcombine_u32 \
10464 (a_, vcreate_u32 \
10465 (__AARCH64_UINT64_C (0x0))); \
10466 __asm__ ("rshrn2 %0.4s,%1.2d,#%2" \
10467 : "+w"(result) \
10468 : "w"(b_), "i"(c) \
10469 : /* No clobbers */); \
10470 result; \
10473 #define vrshrn_n_s16(a, b) \
10474 __extension__ \
10475 ({ \
10476 int16x8_t a_ = (a); \
10477 int8x8_t result; \
10478 __asm__ ("rshrn %0.8b,%1.8h,%2" \
10479 : "=w"(result) \
10480 : "w"(a_), "i"(b) \
10481 : /* No clobbers */); \
10482 result; \
10485 #define vrshrn_n_s32(a, b) \
10486 __extension__ \
10487 ({ \
10488 int32x4_t a_ = (a); \
10489 int16x4_t result; \
10490 __asm__ ("rshrn %0.4h,%1.4s,%2" \
10491 : "=w"(result) \
10492 : "w"(a_), "i"(b) \
10493 : /* No clobbers */); \
10494 result; \
10497 #define vrshrn_n_s64(a, b) \
10498 __extension__ \
10499 ({ \
10500 int64x2_t a_ = (a); \
10501 int32x2_t result; \
10502 __asm__ ("rshrn %0.2s,%1.2d,%2" \
10503 : "=w"(result) \
10504 : "w"(a_), "i"(b) \
10505 : /* No clobbers */); \
10506 result; \
10509 #define vrshrn_n_u16(a, b) \
10510 __extension__ \
10511 ({ \
10512 uint16x8_t a_ = (a); \
10513 uint8x8_t result; \
10514 __asm__ ("rshrn %0.8b,%1.8h,%2" \
10515 : "=w"(result) \
10516 : "w"(a_), "i"(b) \
10517 : /* No clobbers */); \
10518 result; \
10521 #define vrshrn_n_u32(a, b) \
10522 __extension__ \
10523 ({ \
10524 uint32x4_t a_ = (a); \
10525 uint16x4_t result; \
10526 __asm__ ("rshrn %0.4h,%1.4s,%2" \
10527 : "=w"(result) \
10528 : "w"(a_), "i"(b) \
10529 : /* No clobbers */); \
10530 result; \
10533 #define vrshrn_n_u64(a, b) \
10534 __extension__ \
10535 ({ \
10536 uint64x2_t a_ = (a); \
10537 uint32x2_t result; \
10538 __asm__ ("rshrn %0.2s,%1.2d,%2" \
10539 : "=w"(result) \
10540 : "w"(a_), "i"(b) \
10541 : /* No clobbers */); \
10542 result; \
10545 __extension__ extern __inline uint32x2_t
10546 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10547 vrsqrte_u32 (uint32x2_t a)
10549 uint32x2_t result;
10550 __asm__ ("ursqrte %0.2s,%1.2s"
10551 : "=w"(result)
10552 : "w"(a)
10553 : /* No clobbers */);
10554 return result;
10557 __extension__ extern __inline uint32x4_t
10558 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10559 vrsqrteq_u32 (uint32x4_t a)
10561 uint32x4_t result;
10562 __asm__ ("ursqrte %0.4s,%1.4s"
10563 : "=w"(result)
10564 : "w"(a)
10565 : /* No clobbers */);
10566 return result;
10569 #define vshrn_high_n_s16(a, b, c) \
10570 __extension__ \
10571 ({ \
10572 int16x8_t b_ = (b); \
10573 int8x8_t a_ = (a); \
10574 int8x16_t result = vcombine_s8 \
10575 (a_, vcreate_s8 \
10576 (__AARCH64_UINT64_C (0x0))); \
10577 __asm__ ("shrn2 %0.16b,%1.8h,#%2" \
10578 : "+w"(result) \
10579 : "w"(b_), "i"(c) \
10580 : /* No clobbers */); \
10581 result; \
10584 #define vshrn_high_n_s32(a, b, c) \
10585 __extension__ \
10586 ({ \
10587 int32x4_t b_ = (b); \
10588 int16x4_t a_ = (a); \
10589 int16x8_t result = vcombine_s16 \
10590 (a_, vcreate_s16 \
10591 (__AARCH64_UINT64_C (0x0))); \
10592 __asm__ ("shrn2 %0.8h,%1.4s,#%2" \
10593 : "+w"(result) \
10594 : "w"(b_), "i"(c) \
10595 : /* No clobbers */); \
10596 result; \
10599 #define vshrn_high_n_s64(a, b, c) \
10600 __extension__ \
10601 ({ \
10602 int64x2_t b_ = (b); \
10603 int32x2_t a_ = (a); \
10604 int32x4_t result = vcombine_s32 \
10605 (a_, vcreate_s32 \
10606 (__AARCH64_UINT64_C (0x0))); \
10607 __asm__ ("shrn2 %0.4s,%1.2d,#%2" \
10608 : "+w"(result) \
10609 : "w"(b_), "i"(c) \
10610 : /* No clobbers */); \
10611 result; \
10614 #define vshrn_high_n_u16(a, b, c) \
10615 __extension__ \
10616 ({ \
10617 uint16x8_t b_ = (b); \
10618 uint8x8_t a_ = (a); \
10619 uint8x16_t result = vcombine_u8 \
10620 (a_, vcreate_u8 \
10621 (__AARCH64_UINT64_C (0x0))); \
10622 __asm__ ("shrn2 %0.16b,%1.8h,#%2" \
10623 : "+w"(result) \
10624 : "w"(b_), "i"(c) \
10625 : /* No clobbers */); \
10626 result; \
10629 #define vshrn_high_n_u32(a, b, c) \
10630 __extension__ \
10631 ({ \
10632 uint32x4_t b_ = (b); \
10633 uint16x4_t a_ = (a); \
10634 uint16x8_t result = vcombine_u16 \
10635 (a_, vcreate_u16 \
10636 (__AARCH64_UINT64_C (0x0))); \
10637 __asm__ ("shrn2 %0.8h,%1.4s,#%2" \
10638 : "+w"(result) \
10639 : "w"(b_), "i"(c) \
10640 : /* No clobbers */); \
10641 result; \
10644 #define vshrn_high_n_u64(a, b, c) \
10645 __extension__ \
10646 ({ \
10647 uint64x2_t b_ = (b); \
10648 uint32x2_t a_ = (a); \
10649 uint32x4_t result = vcombine_u32 \
10650 (a_, vcreate_u32 \
10651 (__AARCH64_UINT64_C (0x0))); \
10652 __asm__ ("shrn2 %0.4s,%1.2d,#%2" \
10653 : "+w"(result) \
10654 : "w"(b_), "i"(c) \
10655 : /* No clobbers */); \
10656 result; \
10659 #define vshrn_n_s16(a, b) \
10660 __extension__ \
10661 ({ \
10662 int16x8_t a_ = (a); \
10663 int8x8_t result; \
10664 __asm__ ("shrn %0.8b,%1.8h,%2" \
10665 : "=w"(result) \
10666 : "w"(a_), "i"(b) \
10667 : /* No clobbers */); \
10668 result; \
10671 #define vshrn_n_s32(a, b) \
10672 __extension__ \
10673 ({ \
10674 int32x4_t a_ = (a); \
10675 int16x4_t result; \
10676 __asm__ ("shrn %0.4h,%1.4s,%2" \
10677 : "=w"(result) \
10678 : "w"(a_), "i"(b) \
10679 : /* No clobbers */); \
10680 result; \
10683 #define vshrn_n_s64(a, b) \
10684 __extension__ \
10685 ({ \
10686 int64x2_t a_ = (a); \
10687 int32x2_t result; \
10688 __asm__ ("shrn %0.2s,%1.2d,%2" \
10689 : "=w"(result) \
10690 : "w"(a_), "i"(b) \
10691 : /* No clobbers */); \
10692 result; \
10695 #define vshrn_n_u16(a, b) \
10696 __extension__ \
10697 ({ \
10698 uint16x8_t a_ = (a); \
10699 uint8x8_t result; \
10700 __asm__ ("shrn %0.8b,%1.8h,%2" \
10701 : "=w"(result) \
10702 : "w"(a_), "i"(b) \
10703 : /* No clobbers */); \
10704 result; \
10707 #define vshrn_n_u32(a, b) \
10708 __extension__ \
10709 ({ \
10710 uint32x4_t a_ = (a); \
10711 uint16x4_t result; \
10712 __asm__ ("shrn %0.4h,%1.4s,%2" \
10713 : "=w"(result) \
10714 : "w"(a_), "i"(b) \
10715 : /* No clobbers */); \
10716 result; \
10719 #define vshrn_n_u64(a, b) \
10720 __extension__ \
10721 ({ \
10722 uint64x2_t a_ = (a); \
10723 uint32x2_t result; \
10724 __asm__ ("shrn %0.2s,%1.2d,%2" \
10725 : "=w"(result) \
10726 : "w"(a_), "i"(b) \
10727 : /* No clobbers */); \
10728 result; \
10731 #define vsli_n_p8(a, b, c) \
10732 __extension__ \
10733 ({ \
10734 poly8x8_t b_ = (b); \
10735 poly8x8_t a_ = (a); \
10736 poly8x8_t result; \
10737 __asm__ ("sli %0.8b,%2.8b,%3" \
10738 : "=w"(result) \
10739 : "0"(a_), "w"(b_), "i"(c) \
10740 : /* No clobbers */); \
10741 result; \
10744 #define vsli_n_p16(a, b, c) \
10745 __extension__ \
10746 ({ \
10747 poly16x4_t b_ = (b); \
10748 poly16x4_t a_ = (a); \
10749 poly16x4_t result; \
10750 __asm__ ("sli %0.4h,%2.4h,%3" \
10751 : "=w"(result) \
10752 : "0"(a_), "w"(b_), "i"(c) \
10753 : /* No clobbers */); \
10754 result; \
10757 #define vsliq_n_p8(a, b, c) \
10758 __extension__ \
10759 ({ \
10760 poly8x16_t b_ = (b); \
10761 poly8x16_t a_ = (a); \
10762 poly8x16_t result; \
10763 __asm__ ("sli %0.16b,%2.16b,%3" \
10764 : "=w"(result) \
10765 : "0"(a_), "w"(b_), "i"(c) \
10766 : /* No clobbers */); \
10767 result; \
10770 #define vsliq_n_p16(a, b, c) \
10771 __extension__ \
10772 ({ \
10773 poly16x8_t b_ = (b); \
10774 poly16x8_t a_ = (a); \
10775 poly16x8_t result; \
10776 __asm__ ("sli %0.8h,%2.8h,%3" \
10777 : "=w"(result) \
10778 : "0"(a_), "w"(b_), "i"(c) \
10779 : /* No clobbers */); \
10780 result; \
10783 #define vsri_n_p8(a, b, c) \
10784 __extension__ \
10785 ({ \
10786 poly8x8_t b_ = (b); \
10787 poly8x8_t a_ = (a); \
10788 poly8x8_t result; \
10789 __asm__ ("sri %0.8b,%2.8b,%3" \
10790 : "=w"(result) \
10791 : "0"(a_), "w"(b_), "i"(c) \
10792 : /* No clobbers */); \
10793 result; \
10796 #define vsri_n_p16(a, b, c) \
10797 __extension__ \
10798 ({ \
10799 poly16x4_t b_ = (b); \
10800 poly16x4_t a_ = (a); \
10801 poly16x4_t result; \
10802 __asm__ ("sri %0.4h,%2.4h,%3" \
10803 : "=w"(result) \
10804 : "0"(a_), "w"(b_), "i"(c) \
10805 : /* No clobbers */); \
10806 result; \
10809 #define vsri_n_p64(a, b, c) \
10810 __extension__ \
10811 ({ \
10812 poly64x1_t b_ = (b); \
10813 poly64x1_t a_ = (a); \
10814 poly64x1_t result; \
10815 __asm__ ("sri %d0,%d2,%3" \
10816 : "=w"(result) \
10817 : "0"(a_), "w"(b_), "i"(c) \
10818 : /* No clobbers. */); \
10819 result; \
10822 #define vsriq_n_p8(a, b, c) \
10823 __extension__ \
10824 ({ \
10825 poly8x16_t b_ = (b); \
10826 poly8x16_t a_ = (a); \
10827 poly8x16_t result; \
10828 __asm__ ("sri %0.16b,%2.16b,%3" \
10829 : "=w"(result) \
10830 : "0"(a_), "w"(b_), "i"(c) \
10831 : /* No clobbers */); \
10832 result; \
10835 #define vsriq_n_p16(a, b, c) \
10836 __extension__ \
10837 ({ \
10838 poly16x8_t b_ = (b); \
10839 poly16x8_t a_ = (a); \
10840 poly16x8_t result; \
10841 __asm__ ("sri %0.8h,%2.8h,%3" \
10842 : "=w"(result) \
10843 : "0"(a_), "w"(b_), "i"(c) \
10844 : /* No clobbers */); \
10845 result; \
10848 #define vsriq_n_p64(a, b, c) \
10849 __extension__ \
10850 ({ \
10851 poly64x2_t b_ = (b); \
10852 poly64x2_t a_ = (a); \
10853 poly64x2_t result; \
10854 __asm__ ("sri %0.2d,%2.2d,%3" \
10855 : "=w"(result) \
10856 : "0"(a_), "w"(b_), "i"(c) \
10857 : /* No clobbers. */); \
10858 result; \
10861 __extension__ extern __inline uint8x8_t
10862 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10863 vtst_p8 (poly8x8_t a, poly8x8_t b)
10865 return (uint8x8_t) ((((uint8x8_t) a) & ((uint8x8_t) b))
10866 != 0);
10869 __extension__ extern __inline uint16x4_t
10870 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10871 vtst_p16 (poly16x4_t a, poly16x4_t b)
10873 return (uint16x4_t) ((((uint16x4_t) a) & ((uint16x4_t) b))
10874 != 0);
10877 __extension__ extern __inline uint64x1_t
10878 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10879 vtst_p64 (poly64x1_t a, poly64x1_t b)
10881 return (uint64x1_t) ((a & b) != __AARCH64_INT64_C (0));
10884 __extension__ extern __inline uint8x16_t
10885 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10886 vtstq_p8 (poly8x16_t a, poly8x16_t b)
10888 return (uint8x16_t) ((((uint8x16_t) a) & ((uint8x16_t) b))
10889 != 0);
10892 __extension__ extern __inline uint16x8_t
10893 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10894 vtstq_p16 (poly16x8_t a, poly16x8_t b)
10896 return (uint16x8_t) ((((uint16x8_t) a) & ((uint16x8_t) b))
10897 != 0);
10900 __extension__ extern __inline uint64x2_t
10901 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10902 vtstq_p64 (poly64x2_t a, poly64x2_t b)
10904 return (uint64x2_t) ((((uint64x2_t) a) & ((uint64x2_t) b))
10905 != __AARCH64_INT64_C (0));
10908 /* End of temporary inline asm implementations. */
10910 /* Start of temporary inline asm for vldn, vstn and friends. */
10912 /* Create struct element types for duplicating loads.
10914 Create 2 element structures of:
10916 +------+----+----+----+----+
10917 | | 8 | 16 | 32 | 64 |
10918 +------+----+----+----+----+
10919 |int | Y | Y | N | N |
10920 +------+----+----+----+----+
10921 |uint | Y | Y | N | N |
10922 +------+----+----+----+----+
10923 |float | - | Y | N | N |
10924 +------+----+----+----+----+
10925 |poly | Y | Y | - | - |
10926 +------+----+----+----+----+
10928 Create 3 element structures of:
10930 +------+----+----+----+----+
10931 | | 8 | 16 | 32 | 64 |
10932 +------+----+----+----+----+
10933 |int | Y | Y | Y | Y |
10934 +------+----+----+----+----+
10935 |uint | Y | Y | Y | Y |
10936 +------+----+----+----+----+
10937 |float | - | Y | Y | Y |
10938 +------+----+----+----+----+
10939 |poly | Y | Y | - | - |
10940 +------+----+----+----+----+
10942 Create 4 element structures of:
10944 +------+----+----+----+----+
10945 | | 8 | 16 | 32 | 64 |
10946 +------+----+----+----+----+
10947 |int | Y | N | N | Y |
10948 +------+----+----+----+----+
10949 |uint | Y | N | N | Y |
10950 +------+----+----+----+----+
10951 |float | - | N | N | Y |
10952 +------+----+----+----+----+
10953 |poly | Y | N | - | - |
10954 +------+----+----+----+----+
10956 This is required for casting memory reference. */
10957 #define __STRUCTN(t, sz, nelem) \
10958 typedef struct t ## sz ## x ## nelem ## _t { \
10959 t ## sz ## _t val[nelem]; \
10960 } t ## sz ## x ## nelem ## _t;
10962 /* 2-element structs. */
10963 __STRUCTN (int, 8, 2)
10964 __STRUCTN (int, 16, 2)
10965 __STRUCTN (uint, 8, 2)
10966 __STRUCTN (uint, 16, 2)
10967 __STRUCTN (float, 16, 2)
10968 __STRUCTN (poly, 8, 2)
10969 __STRUCTN (poly, 16, 2)
10970 /* 3-element structs. */
10971 __STRUCTN (int, 8, 3)
10972 __STRUCTN (int, 16, 3)
10973 __STRUCTN (int, 32, 3)
10974 __STRUCTN (int, 64, 3)
10975 __STRUCTN (uint, 8, 3)
10976 __STRUCTN (uint, 16, 3)
10977 __STRUCTN (uint, 32, 3)
10978 __STRUCTN (uint, 64, 3)
10979 __STRUCTN (float, 16, 3)
10980 __STRUCTN (float, 32, 3)
10981 __STRUCTN (float, 64, 3)
10982 __STRUCTN (poly, 8, 3)
10983 __STRUCTN (poly, 16, 3)
10984 /* 4-element structs. */
10985 __STRUCTN (int, 8, 4)
10986 __STRUCTN (int, 64, 4)
10987 __STRUCTN (uint, 8, 4)
10988 __STRUCTN (uint, 64, 4)
10989 __STRUCTN (poly, 8, 4)
10990 __STRUCTN (float, 64, 4)
10991 #undef __STRUCTN
10994 #define __ST2_LANE_FUNC(intype, largetype, ptrtype, mode, \
10995 qmode, ptr_mode, funcsuffix, signedtype) \
10996 __extension__ extern __inline void \
10997 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) \
10998 vst2_lane_ ## funcsuffix (ptrtype *__ptr, \
10999 intype __b, const int __c) \
11001 __builtin_aarch64_simd_oi __o; \
11002 largetype __temp; \
11003 __temp.val[0] \
11004 = vcombine_##funcsuffix (__b.val[0], \
11005 vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
11006 __temp.val[1] \
11007 = vcombine_##funcsuffix (__b.val[1], \
11008 vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
11009 __o = __builtin_aarch64_set_qregoi##qmode (__o, \
11010 (signedtype) __temp.val[0], 0); \
11011 __o = __builtin_aarch64_set_qregoi##qmode (__o, \
11012 (signedtype) __temp.val[1], 1); \
11013 __builtin_aarch64_st2_lane##mode ((__builtin_aarch64_simd_ ## ptr_mode *) \
11014 __ptr, __o, __c); \
11017 __ST2_LANE_FUNC (float16x4x2_t, float16x8x2_t, float16_t, v4hf, v8hf, hf, f16,
11018 float16x8_t)
11019 __ST2_LANE_FUNC (float32x2x2_t, float32x4x2_t, float32_t, v2sf, v4sf, sf, f32,
11020 float32x4_t)
11021 __ST2_LANE_FUNC (float64x1x2_t, float64x2x2_t, float64_t, df, v2df, df, f64,
11022 float64x2_t)
11023 __ST2_LANE_FUNC (poly8x8x2_t, poly8x16x2_t, poly8_t, v8qi, v16qi, qi, p8,
11024 int8x16_t)
11025 __ST2_LANE_FUNC (poly16x4x2_t, poly16x8x2_t, poly16_t, v4hi, v8hi, hi, p16,
11026 int16x8_t)
11027 __ST2_LANE_FUNC (poly64x1x2_t, poly64x2x2_t, poly64_t, di, v2di_ssps, di, p64,
11028 poly64x2_t)
11029 __ST2_LANE_FUNC (int8x8x2_t, int8x16x2_t, int8_t, v8qi, v16qi, qi, s8,
11030 int8x16_t)
11031 __ST2_LANE_FUNC (int16x4x2_t, int16x8x2_t, int16_t, v4hi, v8hi, hi, s16,
11032 int16x8_t)
11033 __ST2_LANE_FUNC (int32x2x2_t, int32x4x2_t, int32_t, v2si, v4si, si, s32,
11034 int32x4_t)
11035 __ST2_LANE_FUNC (int64x1x2_t, int64x2x2_t, int64_t, di, v2di, di, s64,
11036 int64x2_t)
11037 __ST2_LANE_FUNC (uint8x8x2_t, uint8x16x2_t, uint8_t, v8qi, v16qi, qi, u8,
11038 int8x16_t)
11039 __ST2_LANE_FUNC (uint16x4x2_t, uint16x8x2_t, uint16_t, v4hi, v8hi, hi, u16,
11040 int16x8_t)
11041 __ST2_LANE_FUNC (uint32x2x2_t, uint32x4x2_t, uint32_t, v2si, v4si, si, u32,
11042 int32x4_t)
11043 __ST2_LANE_FUNC (uint64x1x2_t, uint64x2x2_t, uint64_t, di, v2di, di, u64,
11044 int64x2_t)
11046 #undef __ST2_LANE_FUNC
11047 #define __ST2_LANE_FUNC(intype, ptrtype, mode, ptr_mode, funcsuffix) \
11048 __extension__ extern __inline void \
11049 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) \
11050 vst2q_lane_ ## funcsuffix (ptrtype *__ptr, \
11051 intype __b, const int __c) \
11053 union { intype __i; \
11054 __builtin_aarch64_simd_oi __o; } __temp = { __b }; \
11055 __builtin_aarch64_st2_lane##mode ((__builtin_aarch64_simd_ ## ptr_mode *) \
11056 __ptr, __temp.__o, __c); \
11059 __ST2_LANE_FUNC (float16x8x2_t, float16_t, v8hf, hf, f16)
11060 __ST2_LANE_FUNC (float32x4x2_t, float32_t, v4sf, sf, f32)
11061 __ST2_LANE_FUNC (float64x2x2_t, float64_t, v2df, df, f64)
11062 __ST2_LANE_FUNC (poly8x16x2_t, poly8_t, v16qi, qi, p8)
11063 __ST2_LANE_FUNC (poly16x8x2_t, poly16_t, v8hi, hi, p16)
11064 __ST2_LANE_FUNC (poly64x2x2_t, poly64_t, v2di, di, p64)
11065 __ST2_LANE_FUNC (int8x16x2_t, int8_t, v16qi, qi, s8)
11066 __ST2_LANE_FUNC (int16x8x2_t, int16_t, v8hi, hi, s16)
11067 __ST2_LANE_FUNC (int32x4x2_t, int32_t, v4si, si, s32)
11068 __ST2_LANE_FUNC (int64x2x2_t, int64_t, v2di, di, s64)
11069 __ST2_LANE_FUNC (uint8x16x2_t, uint8_t, v16qi, qi, u8)
11070 __ST2_LANE_FUNC (uint16x8x2_t, uint16_t, v8hi, hi, u16)
11071 __ST2_LANE_FUNC (uint32x4x2_t, uint32_t, v4si, si, u32)
11072 __ST2_LANE_FUNC (uint64x2x2_t, uint64_t, v2di, di, u64)
11074 #define __ST3_LANE_FUNC(intype, largetype, ptrtype, mode, \
11075 qmode, ptr_mode, funcsuffix, signedtype) \
11076 __extension__ extern __inline void \
11077 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) \
11078 vst3_lane_ ## funcsuffix (ptrtype *__ptr, \
11079 intype __b, const int __c) \
11081 __builtin_aarch64_simd_ci __o; \
11082 largetype __temp; \
11083 __temp.val[0] \
11084 = vcombine_##funcsuffix (__b.val[0], \
11085 vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
11086 __temp.val[1] \
11087 = vcombine_##funcsuffix (__b.val[1], \
11088 vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
11089 __temp.val[2] \
11090 = vcombine_##funcsuffix (__b.val[2], \
11091 vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
11092 __o = __builtin_aarch64_set_qregci##qmode (__o, \
11093 (signedtype) __temp.val[0], 0); \
11094 __o = __builtin_aarch64_set_qregci##qmode (__o, \
11095 (signedtype) __temp.val[1], 1); \
11096 __o = __builtin_aarch64_set_qregci##qmode (__o, \
11097 (signedtype) __temp.val[2], 2); \
11098 __builtin_aarch64_st3_lane##mode ((__builtin_aarch64_simd_ ## ptr_mode *) \
11099 __ptr, __o, __c); \
11102 __ST3_LANE_FUNC (float16x4x3_t, float16x8x3_t, float16_t, v4hf, v8hf, hf, f16,
11103 float16x8_t)
11104 __ST3_LANE_FUNC (float32x2x3_t, float32x4x3_t, float32_t, v2sf, v4sf, sf, f32,
11105 float32x4_t)
11106 __ST3_LANE_FUNC (float64x1x3_t, float64x2x3_t, float64_t, df, v2df, df, f64,
11107 float64x2_t)
11108 __ST3_LANE_FUNC (poly8x8x3_t, poly8x16x3_t, poly8_t, v8qi, v16qi, qi, p8,
11109 int8x16_t)
11110 __ST3_LANE_FUNC (poly16x4x3_t, poly16x8x3_t, poly16_t, v4hi, v8hi, hi, p16,
11111 int16x8_t)
11112 __ST3_LANE_FUNC (poly64x1x3_t, poly64x2x3_t, poly64_t, di, v2di_ssps, di, p64,
11113 poly64x2_t)
11114 __ST3_LANE_FUNC (int8x8x3_t, int8x16x3_t, int8_t, v8qi, v16qi, qi, s8,
11115 int8x16_t)
11116 __ST3_LANE_FUNC (int16x4x3_t, int16x8x3_t, int16_t, v4hi, v8hi, hi, s16,
11117 int16x8_t)
11118 __ST3_LANE_FUNC (int32x2x3_t, int32x4x3_t, int32_t, v2si, v4si, si, s32,
11119 int32x4_t)
11120 __ST3_LANE_FUNC (int64x1x3_t, int64x2x3_t, int64_t, di, v2di, di, s64,
11121 int64x2_t)
11122 __ST3_LANE_FUNC (uint8x8x3_t, uint8x16x3_t, uint8_t, v8qi, v16qi, qi, u8,
11123 int8x16_t)
11124 __ST3_LANE_FUNC (uint16x4x3_t, uint16x8x3_t, uint16_t, v4hi, v8hi, hi, u16,
11125 int16x8_t)
11126 __ST3_LANE_FUNC (uint32x2x3_t, uint32x4x3_t, uint32_t, v2si, v4si, si, u32,
11127 int32x4_t)
11128 __ST3_LANE_FUNC (uint64x1x3_t, uint64x2x3_t, uint64_t, di, v2di, di, u64,
11129 int64x2_t)
11131 #undef __ST3_LANE_FUNC
11132 #define __ST3_LANE_FUNC(intype, ptrtype, mode, ptr_mode, funcsuffix) \
11133 __extension__ extern __inline void \
11134 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) \
11135 vst3q_lane_ ## funcsuffix (ptrtype *__ptr, \
11136 intype __b, const int __c) \
11138 union { intype __i; \
11139 __builtin_aarch64_simd_ci __o; } __temp = { __b }; \
11140 __builtin_aarch64_st3_lane##mode ((__builtin_aarch64_simd_ ## ptr_mode *) \
11141 __ptr, __temp.__o, __c); \
11144 __ST3_LANE_FUNC (float16x8x3_t, float16_t, v8hf, hf, f16)
11145 __ST3_LANE_FUNC (float32x4x3_t, float32_t, v4sf, sf, f32)
11146 __ST3_LANE_FUNC (float64x2x3_t, float64_t, v2df, df, f64)
11147 __ST3_LANE_FUNC (poly8x16x3_t, poly8_t, v16qi, qi, p8)
11148 __ST3_LANE_FUNC (poly16x8x3_t, poly16_t, v8hi, hi, p16)
11149 __ST3_LANE_FUNC (poly64x2x3_t, poly64_t, v2di, di, p64)
11150 __ST3_LANE_FUNC (int8x16x3_t, int8_t, v16qi, qi, s8)
11151 __ST3_LANE_FUNC (int16x8x3_t, int16_t, v8hi, hi, s16)
11152 __ST3_LANE_FUNC (int32x4x3_t, int32_t, v4si, si, s32)
11153 __ST3_LANE_FUNC (int64x2x3_t, int64_t, v2di, di, s64)
11154 __ST3_LANE_FUNC (uint8x16x3_t, uint8_t, v16qi, qi, u8)
11155 __ST3_LANE_FUNC (uint16x8x3_t, uint16_t, v8hi, hi, u16)
11156 __ST3_LANE_FUNC (uint32x4x3_t, uint32_t, v4si, si, u32)
11157 __ST3_LANE_FUNC (uint64x2x3_t, uint64_t, v2di, di, u64)
11159 #define __ST4_LANE_FUNC(intype, largetype, ptrtype, mode, \
11160 qmode, ptr_mode, funcsuffix, signedtype) \
11161 __extension__ extern __inline void \
11162 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) \
11163 vst4_lane_ ## funcsuffix (ptrtype *__ptr, \
11164 intype __b, const int __c) \
11166 __builtin_aarch64_simd_xi __o; \
11167 largetype __temp; \
11168 __temp.val[0] \
11169 = vcombine_##funcsuffix (__b.val[0], \
11170 vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
11171 __temp.val[1] \
11172 = vcombine_##funcsuffix (__b.val[1], \
11173 vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
11174 __temp.val[2] \
11175 = vcombine_##funcsuffix (__b.val[2], \
11176 vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
11177 __temp.val[3] \
11178 = vcombine_##funcsuffix (__b.val[3], \
11179 vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
11180 __o = __builtin_aarch64_set_qregxi##qmode (__o, \
11181 (signedtype) __temp.val[0], 0); \
11182 __o = __builtin_aarch64_set_qregxi##qmode (__o, \
11183 (signedtype) __temp.val[1], 1); \
11184 __o = __builtin_aarch64_set_qregxi##qmode (__o, \
11185 (signedtype) __temp.val[2], 2); \
11186 __o = __builtin_aarch64_set_qregxi##qmode (__o, \
11187 (signedtype) __temp.val[3], 3); \
11188 __builtin_aarch64_st4_lane##mode ((__builtin_aarch64_simd_ ## ptr_mode *) \
11189 __ptr, __o, __c); \
11192 __ST4_LANE_FUNC (float16x4x4_t, float16x8x4_t, float16_t, v4hf, v8hf, hf, f16,
11193 float16x8_t)
11194 __ST4_LANE_FUNC (float32x2x4_t, float32x4x4_t, float32_t, v2sf, v4sf, sf, f32,
11195 float32x4_t)
11196 __ST4_LANE_FUNC (float64x1x4_t, float64x2x4_t, float64_t, df, v2df, df, f64,
11197 float64x2_t)
11198 __ST4_LANE_FUNC (poly8x8x4_t, poly8x16x4_t, poly8_t, v8qi, v16qi, qi, p8,
11199 int8x16_t)
11200 __ST4_LANE_FUNC (poly16x4x4_t, poly16x8x4_t, poly16_t, v4hi, v8hi, hi, p16,
11201 int16x8_t)
11202 __ST4_LANE_FUNC (poly64x1x4_t, poly64x2x4_t, poly64_t, di, v2di_ssps, di, p64,
11203 poly64x2_t)
11204 __ST4_LANE_FUNC (int8x8x4_t, int8x16x4_t, int8_t, v8qi, v16qi, qi, s8,
11205 int8x16_t)
11206 __ST4_LANE_FUNC (int16x4x4_t, int16x8x4_t, int16_t, v4hi, v8hi, hi, s16,
11207 int16x8_t)
11208 __ST4_LANE_FUNC (int32x2x4_t, int32x4x4_t, int32_t, v2si, v4si, si, s32,
11209 int32x4_t)
11210 __ST4_LANE_FUNC (int64x1x4_t, int64x2x4_t, int64_t, di, v2di, di, s64,
11211 int64x2_t)
11212 __ST4_LANE_FUNC (uint8x8x4_t, uint8x16x4_t, uint8_t, v8qi, v16qi, qi, u8,
11213 int8x16_t)
11214 __ST4_LANE_FUNC (uint16x4x4_t, uint16x8x4_t, uint16_t, v4hi, v8hi, hi, u16,
11215 int16x8_t)
11216 __ST4_LANE_FUNC (uint32x2x4_t, uint32x4x4_t, uint32_t, v2si, v4si, si, u32,
11217 int32x4_t)
11218 __ST4_LANE_FUNC (uint64x1x4_t, uint64x2x4_t, uint64_t, di, v2di, di, u64,
11219 int64x2_t)
11221 #undef __ST4_LANE_FUNC
11222 #define __ST4_LANE_FUNC(intype, ptrtype, mode, ptr_mode, funcsuffix) \
11223 __extension__ extern __inline void \
11224 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) \
11225 vst4q_lane_ ## funcsuffix (ptrtype *__ptr, \
11226 intype __b, const int __c) \
11228 union { intype __i; \
11229 __builtin_aarch64_simd_xi __o; } __temp = { __b }; \
11230 __builtin_aarch64_st4_lane##mode ((__builtin_aarch64_simd_ ## ptr_mode *) \
11231 __ptr, __temp.__o, __c); \
11234 __ST4_LANE_FUNC (float16x8x4_t, float16_t, v8hf, hf, f16)
11235 __ST4_LANE_FUNC (float32x4x4_t, float32_t, v4sf, sf, f32)
11236 __ST4_LANE_FUNC (float64x2x4_t, float64_t, v2df, df, f64)
11237 __ST4_LANE_FUNC (poly8x16x4_t, poly8_t, v16qi, qi, p8)
11238 __ST4_LANE_FUNC (poly16x8x4_t, poly16_t, v8hi, hi, p16)
11239 __ST4_LANE_FUNC (poly64x2x4_t, poly64_t, v2di, di, p64)
11240 __ST4_LANE_FUNC (int8x16x4_t, int8_t, v16qi, qi, s8)
11241 __ST4_LANE_FUNC (int16x8x4_t, int16_t, v8hi, hi, s16)
11242 __ST4_LANE_FUNC (int32x4x4_t, int32_t, v4si, si, s32)
11243 __ST4_LANE_FUNC (int64x2x4_t, int64_t, v2di, di, s64)
11244 __ST4_LANE_FUNC (uint8x16x4_t, uint8_t, v16qi, qi, u8)
11245 __ST4_LANE_FUNC (uint16x8x4_t, uint16_t, v8hi, hi, u16)
11246 __ST4_LANE_FUNC (uint32x4x4_t, uint32_t, v4si, si, u32)
11247 __ST4_LANE_FUNC (uint64x2x4_t, uint64_t, v2di, di, u64)
11249 __extension__ extern __inline int64_t
11250 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11251 vaddlv_s32 (int32x2_t a)
11253 int64_t result;
11254 __asm__ ("saddlp %0.1d, %1.2s" : "=w"(result) : "w"(a) : );
11255 return result;
11258 __extension__ extern __inline uint64_t
11259 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11260 vaddlv_u32 (uint32x2_t a)
11262 uint64_t result;
11263 __asm__ ("uaddlp %0.1d, %1.2s" : "=w"(result) : "w"(a) : );
11264 return result;
11267 __extension__ extern __inline int16x4_t
11268 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11269 vqdmulh_laneq_s16 (int16x4_t __a, int16x8_t __b, const int __c)
11271 return __builtin_aarch64_sqdmulh_laneqv4hi (__a, __b, __c);
11274 __extension__ extern __inline int32x2_t
11275 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11276 vqdmulh_laneq_s32 (int32x2_t __a, int32x4_t __b, const int __c)
11278 return __builtin_aarch64_sqdmulh_laneqv2si (__a, __b, __c);
11281 __extension__ extern __inline int16x8_t
11282 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11283 vqdmulhq_laneq_s16 (int16x8_t __a, int16x8_t __b, const int __c)
11285 return __builtin_aarch64_sqdmulh_laneqv8hi (__a, __b, __c);
11288 __extension__ extern __inline int32x4_t
11289 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11290 vqdmulhq_laneq_s32 (int32x4_t __a, int32x4_t __b, const int __c)
11292 return __builtin_aarch64_sqdmulh_laneqv4si (__a, __b, __c);
11295 __extension__ extern __inline int16x4_t
11296 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11297 vqrdmulh_laneq_s16 (int16x4_t __a, int16x8_t __b, const int __c)
11299 return __builtin_aarch64_sqrdmulh_laneqv4hi (__a, __b, __c);
11302 __extension__ extern __inline int32x2_t
11303 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11304 vqrdmulh_laneq_s32 (int32x2_t __a, int32x4_t __b, const int __c)
11306 return __builtin_aarch64_sqrdmulh_laneqv2si (__a, __b, __c);
11309 __extension__ extern __inline int16x8_t
11310 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11311 vqrdmulhq_laneq_s16 (int16x8_t __a, int16x8_t __b, const int __c)
11313 return __builtin_aarch64_sqrdmulh_laneqv8hi (__a, __b, __c);
11316 __extension__ extern __inline int32x4_t
11317 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11318 vqrdmulhq_laneq_s32 (int32x4_t __a, int32x4_t __b, const int __c)
11320 return __builtin_aarch64_sqrdmulh_laneqv4si (__a, __b, __c);
11323 /* Table intrinsics. */
11325 __extension__ extern __inline poly8x8_t
11326 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11327 vqtbl1_p8 (poly8x16_t a, uint8x8_t b)
11329 poly8x8_t result;
11330 __asm__ ("tbl %0.8b, {%1.16b}, %2.8b"
11331 : "=w"(result)
11332 : "w"(a), "w"(b)
11333 : /* No clobbers */);
11334 return result;
11337 __extension__ extern __inline int8x8_t
11338 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11339 vqtbl1_s8 (int8x16_t a, uint8x8_t b)
11341 int8x8_t result;
11342 __asm__ ("tbl %0.8b, {%1.16b}, %2.8b"
11343 : "=w"(result)
11344 : "w"(a), "w"(b)
11345 : /* No clobbers */);
11346 return result;
11349 __extension__ extern __inline uint8x8_t
11350 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11351 vqtbl1_u8 (uint8x16_t a, uint8x8_t b)
11353 uint8x8_t result;
11354 __asm__ ("tbl %0.8b, {%1.16b}, %2.8b"
11355 : "=w"(result)
11356 : "w"(a), "w"(b)
11357 : /* No clobbers */);
11358 return result;
11361 __extension__ extern __inline poly8x16_t
11362 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11363 vqtbl1q_p8 (poly8x16_t a, uint8x16_t b)
11365 poly8x16_t result;
11366 __asm__ ("tbl %0.16b, {%1.16b}, %2.16b"
11367 : "=w"(result)
11368 : "w"(a), "w"(b)
11369 : /* No clobbers */);
11370 return result;
11373 __extension__ extern __inline int8x16_t
11374 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11375 vqtbl1q_s8 (int8x16_t a, uint8x16_t b)
11377 int8x16_t result;
11378 __asm__ ("tbl %0.16b, {%1.16b}, %2.16b"
11379 : "=w"(result)
11380 : "w"(a), "w"(b)
11381 : /* No clobbers */);
11382 return result;
11385 __extension__ extern __inline uint8x16_t
11386 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11387 vqtbl1q_u8 (uint8x16_t a, uint8x16_t b)
11389 uint8x16_t result;
11390 __asm__ ("tbl %0.16b, {%1.16b}, %2.16b"
11391 : "=w"(result)
11392 : "w"(a), "w"(b)
11393 : /* No clobbers */);
11394 return result;
11397 __extension__ extern __inline int8x8_t
11398 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11399 vqtbx1_s8 (int8x8_t r, int8x16_t tab, uint8x8_t idx)
11401 int8x8_t result = r;
11402 __asm__ ("tbx %0.8b,{%1.16b},%2.8b"
11403 : "+w"(result)
11404 : "w"(tab), "w"(idx)
11405 : /* No clobbers */);
11406 return result;
11409 __extension__ extern __inline uint8x8_t
11410 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11411 vqtbx1_u8 (uint8x8_t r, uint8x16_t tab, uint8x8_t idx)
11413 uint8x8_t result = r;
11414 __asm__ ("tbx %0.8b,{%1.16b},%2.8b"
11415 : "+w"(result)
11416 : "w"(tab), "w"(idx)
11417 : /* No clobbers */);
11418 return result;
11421 __extension__ extern __inline poly8x8_t
11422 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11423 vqtbx1_p8 (poly8x8_t r, poly8x16_t tab, uint8x8_t idx)
11425 poly8x8_t result = r;
11426 __asm__ ("tbx %0.8b,{%1.16b},%2.8b"
11427 : "+w"(result)
11428 : "w"(tab), "w"(idx)
11429 : /* No clobbers */);
11430 return result;
11433 __extension__ extern __inline int8x16_t
11434 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11435 vqtbx1q_s8 (int8x16_t r, int8x16_t tab, uint8x16_t idx)
11437 int8x16_t result = r;
11438 __asm__ ("tbx %0.16b,{%1.16b},%2.16b"
11439 : "+w"(result)
11440 : "w"(tab), "w"(idx)
11441 : /* No clobbers */);
11442 return result;
11445 __extension__ extern __inline uint8x16_t
11446 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11447 vqtbx1q_u8 (uint8x16_t r, uint8x16_t tab, uint8x16_t idx)
11449 uint8x16_t result = r;
11450 __asm__ ("tbx %0.16b,{%1.16b},%2.16b"
11451 : "+w"(result)
11452 : "w"(tab), "w"(idx)
11453 : /* No clobbers */);
11454 return result;
11457 __extension__ extern __inline poly8x16_t
11458 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11459 vqtbx1q_p8 (poly8x16_t r, poly8x16_t tab, uint8x16_t idx)
11461 poly8x16_t result = r;
11462 __asm__ ("tbx %0.16b,{%1.16b},%2.16b"
11463 : "+w"(result)
11464 : "w"(tab), "w"(idx)
11465 : /* No clobbers */);
11466 return result;
11469 /* V7 legacy table intrinsics. */
11471 __extension__ extern __inline int8x8_t
11472 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11473 vtbl1_s8 (int8x8_t tab, int8x8_t idx)
11475 int8x8_t result;
11476 int8x16_t temp = vcombine_s8 (tab, vcreate_s8 (__AARCH64_UINT64_C (0x0)));
11477 __asm__ ("tbl %0.8b, {%1.16b}, %2.8b"
11478 : "=w"(result)
11479 : "w"(temp), "w"(idx)
11480 : /* No clobbers */);
11481 return result;
11484 __extension__ extern __inline uint8x8_t
11485 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11486 vtbl1_u8 (uint8x8_t tab, uint8x8_t idx)
11488 uint8x8_t result;
11489 uint8x16_t temp = vcombine_u8 (tab, vcreate_u8 (__AARCH64_UINT64_C (0x0)));
11490 __asm__ ("tbl %0.8b, {%1.16b}, %2.8b"
11491 : "=w"(result)
11492 : "w"(temp), "w"(idx)
11493 : /* No clobbers */);
11494 return result;
11497 __extension__ extern __inline poly8x8_t
11498 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11499 vtbl1_p8 (poly8x8_t tab, uint8x8_t idx)
11501 poly8x8_t result;
11502 poly8x16_t temp = vcombine_p8 (tab, vcreate_p8 (__AARCH64_UINT64_C (0x0)));
11503 __asm__ ("tbl %0.8b, {%1.16b}, %2.8b"
11504 : "=w"(result)
11505 : "w"(temp), "w"(idx)
11506 : /* No clobbers */);
11507 return result;
11510 __extension__ extern __inline int8x8_t
11511 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11512 vtbl2_s8 (int8x8x2_t tab, int8x8_t idx)
11514 int8x8_t result;
11515 int8x16_t temp = vcombine_s8 (tab.val[0], tab.val[1]);
11516 __asm__ ("tbl %0.8b, {%1.16b}, %2.8b"
11517 : "=w"(result)
11518 : "w"(temp), "w"(idx)
11519 : /* No clobbers */);
11520 return result;
11523 __extension__ extern __inline uint8x8_t
11524 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11525 vtbl2_u8 (uint8x8x2_t tab, uint8x8_t idx)
11527 uint8x8_t result;
11528 uint8x16_t temp = vcombine_u8 (tab.val[0], tab.val[1]);
11529 __asm__ ("tbl %0.8b, {%1.16b}, %2.8b"
11530 : "=w"(result)
11531 : "w"(temp), "w"(idx)
11532 : /* No clobbers */);
11533 return result;
11536 __extension__ extern __inline poly8x8_t
11537 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11538 vtbl2_p8 (poly8x8x2_t tab, uint8x8_t idx)
11540 poly8x8_t result;
11541 poly8x16_t temp = vcombine_p8 (tab.val[0], tab.val[1]);
11542 __asm__ ("tbl %0.8b, {%1.16b}, %2.8b"
11543 : "=w"(result)
11544 : "w"(temp), "w"(idx)
11545 : /* No clobbers */);
11546 return result;
11549 __extension__ extern __inline int8x8_t
11550 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11551 vtbl3_s8 (int8x8x3_t tab, int8x8_t idx)
11553 int8x8_t result;
11554 int8x16x2_t temp;
11555 __builtin_aarch64_simd_oi __o;
11556 temp.val[0] = vcombine_s8 (tab.val[0], tab.val[1]);
11557 temp.val[1] = vcombine_s8 (tab.val[2], vcreate_s8 (__AARCH64_UINT64_C (0x0)));
11558 __o = __builtin_aarch64_set_qregoiv16qi (__o,
11559 (int8x16_t) temp.val[0], 0);
11560 __o = __builtin_aarch64_set_qregoiv16qi (__o,
11561 (int8x16_t) temp.val[1], 1);
11562 result = __builtin_aarch64_tbl3v8qi (__o, idx);
11563 return result;
11566 __extension__ extern __inline uint8x8_t
11567 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11568 vtbl3_u8 (uint8x8x3_t tab, uint8x8_t idx)
11570 uint8x8_t result;
11571 uint8x16x2_t temp;
11572 __builtin_aarch64_simd_oi __o;
11573 temp.val[0] = vcombine_u8 (tab.val[0], tab.val[1]);
11574 temp.val[1] = vcombine_u8 (tab.val[2], vcreate_u8 (__AARCH64_UINT64_C (0x0)));
11575 __o = __builtin_aarch64_set_qregoiv16qi (__o,
11576 (int8x16_t) temp.val[0], 0);
11577 __o = __builtin_aarch64_set_qregoiv16qi (__o,
11578 (int8x16_t) temp.val[1], 1);
11579 result = (uint8x8_t)__builtin_aarch64_tbl3v8qi (__o, (int8x8_t)idx);
11580 return result;
11583 __extension__ extern __inline poly8x8_t
11584 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11585 vtbl3_p8 (poly8x8x3_t tab, uint8x8_t idx)
11587 poly8x8_t result;
11588 poly8x16x2_t temp;
11589 __builtin_aarch64_simd_oi __o;
11590 temp.val[0] = vcombine_p8 (tab.val[0], tab.val[1]);
11591 temp.val[1] = vcombine_p8 (tab.val[2], vcreate_p8 (__AARCH64_UINT64_C (0x0)));
11592 __o = __builtin_aarch64_set_qregoiv16qi (__o,
11593 (int8x16_t) temp.val[0], 0);
11594 __o = __builtin_aarch64_set_qregoiv16qi (__o,
11595 (int8x16_t) temp.val[1], 1);
11596 result = (poly8x8_t)__builtin_aarch64_tbl3v8qi (__o, (int8x8_t)idx);
11597 return result;
11600 __extension__ extern __inline int8x8_t
11601 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11602 vtbl4_s8 (int8x8x4_t tab, int8x8_t idx)
11604 int8x8_t result;
11605 int8x16x2_t temp;
11606 __builtin_aarch64_simd_oi __o;
11607 temp.val[0] = vcombine_s8 (tab.val[0], tab.val[1]);
11608 temp.val[1] = vcombine_s8 (tab.val[2], tab.val[3]);
11609 __o = __builtin_aarch64_set_qregoiv16qi (__o,
11610 (int8x16_t) temp.val[0], 0);
11611 __o = __builtin_aarch64_set_qregoiv16qi (__o,
11612 (int8x16_t) temp.val[1], 1);
11613 result = __builtin_aarch64_tbl3v8qi (__o, idx);
11614 return result;
11617 __extension__ extern __inline uint8x8_t
11618 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11619 vtbl4_u8 (uint8x8x4_t tab, uint8x8_t idx)
11621 uint8x8_t result;
11622 uint8x16x2_t temp;
11623 __builtin_aarch64_simd_oi __o;
11624 temp.val[0] = vcombine_u8 (tab.val[0], tab.val[1]);
11625 temp.val[1] = vcombine_u8 (tab.val[2], tab.val[3]);
11626 __o = __builtin_aarch64_set_qregoiv16qi (__o,
11627 (int8x16_t) temp.val[0], 0);
11628 __o = __builtin_aarch64_set_qregoiv16qi (__o,
11629 (int8x16_t) temp.val[1], 1);
11630 result = (uint8x8_t)__builtin_aarch64_tbl3v8qi (__o, (int8x8_t)idx);
11631 return result;
11634 __extension__ extern __inline poly8x8_t
11635 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11636 vtbl4_p8 (poly8x8x4_t tab, uint8x8_t idx)
11638 poly8x8_t result;
11639 poly8x16x2_t temp;
11640 __builtin_aarch64_simd_oi __o;
11641 temp.val[0] = vcombine_p8 (tab.val[0], tab.val[1]);
11642 temp.val[1] = vcombine_p8 (tab.val[2], tab.val[3]);
11643 __o = __builtin_aarch64_set_qregoiv16qi (__o,
11644 (int8x16_t) temp.val[0], 0);
11645 __o = __builtin_aarch64_set_qregoiv16qi (__o,
11646 (int8x16_t) temp.val[1], 1);
11647 result = (poly8x8_t)__builtin_aarch64_tbl3v8qi (__o, (int8x8_t)idx);
11648 return result;
11651 __extension__ extern __inline int8x8_t
11652 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11653 vtbx2_s8 (int8x8_t r, int8x8x2_t tab, int8x8_t idx)
11655 int8x8_t result = r;
11656 int8x16_t temp = vcombine_s8 (tab.val[0], tab.val[1]);
11657 __asm__ ("tbx %0.8b, {%1.16b}, %2.8b"
11658 : "+w"(result)
11659 : "w"(temp), "w"(idx)
11660 : /* No clobbers */);
11661 return result;
11664 __extension__ extern __inline uint8x8_t
11665 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11666 vtbx2_u8 (uint8x8_t r, uint8x8x2_t tab, uint8x8_t idx)
11668 uint8x8_t result = r;
11669 uint8x16_t temp = vcombine_u8 (tab.val[0], tab.val[1]);
11670 __asm__ ("tbx %0.8b, {%1.16b}, %2.8b"
11671 : "+w"(result)
11672 : "w"(temp), "w"(idx)
11673 : /* No clobbers */);
11674 return result;
11677 __extension__ extern __inline poly8x8_t
11678 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11679 vtbx2_p8 (poly8x8_t r, poly8x8x2_t tab, uint8x8_t idx)
11681 poly8x8_t result = r;
11682 poly8x16_t temp = vcombine_p8 (tab.val[0], tab.val[1]);
11683 __asm__ ("tbx %0.8b, {%1.16b}, %2.8b"
11684 : "+w"(result)
11685 : "w"(temp), "w"(idx)
11686 : /* No clobbers */);
11687 return result;
11690 /* End of temporary inline asm. */
11692 /* Start of optimal implementations in approved order. */
11694 /* vabd. */
11696 __extension__ extern __inline float32_t
11697 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11698 vabds_f32 (float32_t __a, float32_t __b)
11700 return __builtin_aarch64_fabdsf (__a, __b);
11703 __extension__ extern __inline float64_t
11704 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11705 vabdd_f64 (float64_t __a, float64_t __b)
11707 return __builtin_aarch64_fabddf (__a, __b);
11710 __extension__ extern __inline float32x2_t
11711 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11712 vabd_f32 (float32x2_t __a, float32x2_t __b)
11714 return __builtin_aarch64_fabdv2sf (__a, __b);
11717 __extension__ extern __inline float64x1_t
11718 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11719 vabd_f64 (float64x1_t __a, float64x1_t __b)
11721 return (float64x1_t) {vabdd_f64 (vget_lane_f64 (__a, 0),
11722 vget_lane_f64 (__b, 0))};
11725 __extension__ extern __inline float32x4_t
11726 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11727 vabdq_f32 (float32x4_t __a, float32x4_t __b)
11729 return __builtin_aarch64_fabdv4sf (__a, __b);
11732 __extension__ extern __inline float64x2_t
11733 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11734 vabdq_f64 (float64x2_t __a, float64x2_t __b)
11736 return __builtin_aarch64_fabdv2df (__a, __b);
11739 /* vabs */
11741 __extension__ extern __inline float32x2_t
11742 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11743 vabs_f32 (float32x2_t __a)
11745 return __builtin_aarch64_absv2sf (__a);
11748 __extension__ extern __inline float64x1_t
11749 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11750 vabs_f64 (float64x1_t __a)
11752 return (float64x1_t) {__builtin_fabs (__a[0])};
11755 __extension__ extern __inline int8x8_t
11756 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11757 vabs_s8 (int8x8_t __a)
11759 return __builtin_aarch64_absv8qi (__a);
11762 __extension__ extern __inline int16x4_t
11763 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11764 vabs_s16 (int16x4_t __a)
11766 return __builtin_aarch64_absv4hi (__a);
11769 __extension__ extern __inline int32x2_t
11770 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11771 vabs_s32 (int32x2_t __a)
11773 return __builtin_aarch64_absv2si (__a);
11776 __extension__ extern __inline int64x1_t
11777 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11778 vabs_s64 (int64x1_t __a)
11780 return (int64x1_t) {__builtin_aarch64_absdi (__a[0])};
11783 __extension__ extern __inline float32x4_t
11784 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11785 vabsq_f32 (float32x4_t __a)
11787 return __builtin_aarch64_absv4sf (__a);
11790 __extension__ extern __inline float64x2_t
11791 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11792 vabsq_f64 (float64x2_t __a)
11794 return __builtin_aarch64_absv2df (__a);
11797 __extension__ extern __inline int8x16_t
11798 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11799 vabsq_s8 (int8x16_t __a)
11801 return __builtin_aarch64_absv16qi (__a);
11804 __extension__ extern __inline int16x8_t
11805 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11806 vabsq_s16 (int16x8_t __a)
11808 return __builtin_aarch64_absv8hi (__a);
11811 __extension__ extern __inline int32x4_t
11812 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11813 vabsq_s32 (int32x4_t __a)
11815 return __builtin_aarch64_absv4si (__a);
11818 __extension__ extern __inline int64x2_t
11819 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11820 vabsq_s64 (int64x2_t __a)
11822 return __builtin_aarch64_absv2di (__a);
11825 /* vadd */
11827 __extension__ extern __inline int64_t
11828 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11829 vaddd_s64 (int64_t __a, int64_t __b)
11831 return __a + __b;
11834 __extension__ extern __inline uint64_t
11835 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11836 vaddd_u64 (uint64_t __a, uint64_t __b)
11838 return __a + __b;
11841 /* vaddv */
11843 __extension__ extern __inline int8_t
11844 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11845 vaddv_s8 (int8x8_t __a)
11847 return __builtin_aarch64_reduc_plus_scal_v8qi (__a);
11850 __extension__ extern __inline int16_t
11851 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11852 vaddv_s16 (int16x4_t __a)
11854 return __builtin_aarch64_reduc_plus_scal_v4hi (__a);
11857 __extension__ extern __inline int32_t
11858 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11859 vaddv_s32 (int32x2_t __a)
11861 return __builtin_aarch64_reduc_plus_scal_v2si (__a);
11864 __extension__ extern __inline uint8_t
11865 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11866 vaddv_u8 (uint8x8_t __a)
11868 return (uint8_t) __builtin_aarch64_reduc_plus_scal_v8qi ((int8x8_t) __a);
11871 __extension__ extern __inline uint16_t
11872 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11873 vaddv_u16 (uint16x4_t __a)
11875 return (uint16_t) __builtin_aarch64_reduc_plus_scal_v4hi ((int16x4_t) __a);
11878 __extension__ extern __inline uint32_t
11879 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11880 vaddv_u32 (uint32x2_t __a)
11882 return (int32_t) __builtin_aarch64_reduc_plus_scal_v2si ((int32x2_t) __a);
11885 __extension__ extern __inline int8_t
11886 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11887 vaddvq_s8 (int8x16_t __a)
11889 return __builtin_aarch64_reduc_plus_scal_v16qi (__a);
11892 __extension__ extern __inline int16_t
11893 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11894 vaddvq_s16 (int16x8_t __a)
11896 return __builtin_aarch64_reduc_plus_scal_v8hi (__a);
11899 __extension__ extern __inline int32_t
11900 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11901 vaddvq_s32 (int32x4_t __a)
11903 return __builtin_aarch64_reduc_plus_scal_v4si (__a);
11906 __extension__ extern __inline int64_t
11907 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11908 vaddvq_s64 (int64x2_t __a)
11910 return __builtin_aarch64_reduc_plus_scal_v2di (__a);
11913 __extension__ extern __inline uint8_t
11914 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11915 vaddvq_u8 (uint8x16_t __a)
11917 return (uint8_t) __builtin_aarch64_reduc_plus_scal_v16qi ((int8x16_t) __a);
11920 __extension__ extern __inline uint16_t
11921 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11922 vaddvq_u16 (uint16x8_t __a)
11924 return (uint16_t) __builtin_aarch64_reduc_plus_scal_v8hi ((int16x8_t) __a);
11927 __extension__ extern __inline uint32_t
11928 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11929 vaddvq_u32 (uint32x4_t __a)
11931 return (uint32_t) __builtin_aarch64_reduc_plus_scal_v4si ((int32x4_t) __a);
11934 __extension__ extern __inline uint64_t
11935 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11936 vaddvq_u64 (uint64x2_t __a)
11938 return (uint64_t) __builtin_aarch64_reduc_plus_scal_v2di ((int64x2_t) __a);
11941 __extension__ extern __inline float32_t
11942 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11943 vaddv_f32 (float32x2_t __a)
11945 return __builtin_aarch64_reduc_plus_scal_v2sf (__a);
11948 __extension__ extern __inline float32_t
11949 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11950 vaddvq_f32 (float32x4_t __a)
11952 return __builtin_aarch64_reduc_plus_scal_v4sf (__a);
11955 __extension__ extern __inline float64_t
11956 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11957 vaddvq_f64 (float64x2_t __a)
11959 return __builtin_aarch64_reduc_plus_scal_v2df (__a);
11962 /* vbsl */
11964 __extension__ extern __inline float16x4_t
11965 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11966 vbsl_f16 (uint16x4_t __a, float16x4_t __b, float16x4_t __c)
11968 return __builtin_aarch64_simd_bslv4hf_suss (__a, __b, __c);
11971 __extension__ extern __inline float32x2_t
11972 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11973 vbsl_f32 (uint32x2_t __a, float32x2_t __b, float32x2_t __c)
11975 return __builtin_aarch64_simd_bslv2sf_suss (__a, __b, __c);
11978 __extension__ extern __inline float64x1_t
11979 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11980 vbsl_f64 (uint64x1_t __a, float64x1_t __b, float64x1_t __c)
11982 return (float64x1_t)
11983 { __builtin_aarch64_simd_bsldf_suss (__a[0], __b[0], __c[0]) };
11986 __extension__ extern __inline poly8x8_t
11987 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11988 vbsl_p8 (uint8x8_t __a, poly8x8_t __b, poly8x8_t __c)
11990 return __builtin_aarch64_simd_bslv8qi_pupp (__a, __b, __c);
11993 __extension__ extern __inline poly16x4_t
11994 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11995 vbsl_p16 (uint16x4_t __a, poly16x4_t __b, poly16x4_t __c)
11997 return __builtin_aarch64_simd_bslv4hi_pupp (__a, __b, __c);
11999 __extension__ extern __inline poly64x1_t
12000 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12001 vbsl_p64 (uint64x1_t __a, poly64x1_t __b, poly64x1_t __c)
12003 return (poly64x1_t)
12004 {__builtin_aarch64_simd_bsldi_pupp (__a[0], __b[0], __c[0])};
12007 __extension__ extern __inline int8x8_t
12008 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12009 vbsl_s8 (uint8x8_t __a, int8x8_t __b, int8x8_t __c)
12011 return __builtin_aarch64_simd_bslv8qi_suss (__a, __b, __c);
12014 __extension__ extern __inline int16x4_t
12015 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12016 vbsl_s16 (uint16x4_t __a, int16x4_t __b, int16x4_t __c)
12018 return __builtin_aarch64_simd_bslv4hi_suss (__a, __b, __c);
12021 __extension__ extern __inline int32x2_t
12022 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12023 vbsl_s32 (uint32x2_t __a, int32x2_t __b, int32x2_t __c)
12025 return __builtin_aarch64_simd_bslv2si_suss (__a, __b, __c);
12028 __extension__ extern __inline int64x1_t
12029 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12030 vbsl_s64 (uint64x1_t __a, int64x1_t __b, int64x1_t __c)
12032 return (int64x1_t)
12033 {__builtin_aarch64_simd_bsldi_suss (__a[0], __b[0], __c[0])};
12036 __extension__ extern __inline uint8x8_t
12037 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12038 vbsl_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c)
12040 return __builtin_aarch64_simd_bslv8qi_uuuu (__a, __b, __c);
12043 __extension__ extern __inline uint16x4_t
12044 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12045 vbsl_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c)
12047 return __builtin_aarch64_simd_bslv4hi_uuuu (__a, __b, __c);
12050 __extension__ extern __inline uint32x2_t
12051 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12052 vbsl_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c)
12054 return __builtin_aarch64_simd_bslv2si_uuuu (__a, __b, __c);
12057 __extension__ extern __inline uint64x1_t
12058 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12059 vbsl_u64 (uint64x1_t __a, uint64x1_t __b, uint64x1_t __c)
12061 return (uint64x1_t)
12062 {__builtin_aarch64_simd_bsldi_uuuu (__a[0], __b[0], __c[0])};
12065 __extension__ extern __inline float16x8_t
12066 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12067 vbslq_f16 (uint16x8_t __a, float16x8_t __b, float16x8_t __c)
12069 return __builtin_aarch64_simd_bslv8hf_suss (__a, __b, __c);
12072 __extension__ extern __inline float32x4_t
12073 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12074 vbslq_f32 (uint32x4_t __a, float32x4_t __b, float32x4_t __c)
12076 return __builtin_aarch64_simd_bslv4sf_suss (__a, __b, __c);
12079 __extension__ extern __inline float64x2_t
12080 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12081 vbslq_f64 (uint64x2_t __a, float64x2_t __b, float64x2_t __c)
12083 return __builtin_aarch64_simd_bslv2df_suss (__a, __b, __c);
12086 __extension__ extern __inline poly8x16_t
12087 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12088 vbslq_p8 (uint8x16_t __a, poly8x16_t __b, poly8x16_t __c)
12090 return __builtin_aarch64_simd_bslv16qi_pupp (__a, __b, __c);
12093 __extension__ extern __inline poly16x8_t
12094 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12095 vbslq_p16 (uint16x8_t __a, poly16x8_t __b, poly16x8_t __c)
12097 return __builtin_aarch64_simd_bslv8hi_pupp (__a, __b, __c);
12100 __extension__ extern __inline int8x16_t
12101 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12102 vbslq_s8 (uint8x16_t __a, int8x16_t __b, int8x16_t __c)
12104 return __builtin_aarch64_simd_bslv16qi_suss (__a, __b, __c);
12107 __extension__ extern __inline int16x8_t
12108 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12109 vbslq_s16 (uint16x8_t __a, int16x8_t __b, int16x8_t __c)
12111 return __builtin_aarch64_simd_bslv8hi_suss (__a, __b, __c);
12114 __extension__ extern __inline poly64x2_t
12115 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12116 vbslq_p64 (uint64x2_t __a, poly64x2_t __b, poly64x2_t __c)
12118 return __builtin_aarch64_simd_bslv2di_pupp (__a, __b, __c);
12121 __extension__ extern __inline int32x4_t
12122 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12123 vbslq_s32 (uint32x4_t __a, int32x4_t __b, int32x4_t __c)
12125 return __builtin_aarch64_simd_bslv4si_suss (__a, __b, __c);
12128 __extension__ extern __inline int64x2_t
12129 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12130 vbslq_s64 (uint64x2_t __a, int64x2_t __b, int64x2_t __c)
12132 return __builtin_aarch64_simd_bslv2di_suss (__a, __b, __c);
12135 __extension__ extern __inline uint8x16_t
12136 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12137 vbslq_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c)
12139 return __builtin_aarch64_simd_bslv16qi_uuuu (__a, __b, __c);
12142 __extension__ extern __inline uint16x8_t
12143 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12144 vbslq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
12146 return __builtin_aarch64_simd_bslv8hi_uuuu (__a, __b, __c);
12149 __extension__ extern __inline uint32x4_t
12150 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12151 vbslq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
12153 return __builtin_aarch64_simd_bslv4si_uuuu (__a, __b, __c);
12156 __extension__ extern __inline uint64x2_t
12157 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12158 vbslq_u64 (uint64x2_t __a, uint64x2_t __b, uint64x2_t __c)
12160 return __builtin_aarch64_simd_bslv2di_uuuu (__a, __b, __c);
12163 /* ARMv8.1-A instrinsics. */
12164 #pragma GCC push_options
12165 #pragma GCC target ("+nothing+rdma")
12167 __extension__ extern __inline int16x4_t
12168 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12169 vqrdmlah_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c)
12171 return __builtin_aarch64_sqrdmlahv4hi (__a, __b, __c);
12174 __extension__ extern __inline int32x2_t
12175 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12176 vqrdmlah_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c)
12178 return __builtin_aarch64_sqrdmlahv2si (__a, __b, __c);
12181 __extension__ extern __inline int16x8_t
12182 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12183 vqrdmlahq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
12185 return __builtin_aarch64_sqrdmlahv8hi (__a, __b, __c);
12188 __extension__ extern __inline int32x4_t
12189 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12190 vqrdmlahq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
12192 return __builtin_aarch64_sqrdmlahv4si (__a, __b, __c);
12195 __extension__ extern __inline int16x4_t
12196 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12197 vqrdmlsh_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c)
12199 return __builtin_aarch64_sqrdmlshv4hi (__a, __b, __c);
12202 __extension__ extern __inline int32x2_t
12203 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12204 vqrdmlsh_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c)
12206 return __builtin_aarch64_sqrdmlshv2si (__a, __b, __c);
12209 __extension__ extern __inline int16x8_t
12210 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12211 vqrdmlshq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
12213 return __builtin_aarch64_sqrdmlshv8hi (__a, __b, __c);
12216 __extension__ extern __inline int32x4_t
12217 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12218 vqrdmlshq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
12220 return __builtin_aarch64_sqrdmlshv4si (__a, __b, __c);
12223 __extension__ extern __inline int16x4_t
12224 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12225 vqrdmlah_laneq_s16 (int16x4_t __a, int16x4_t __b, int16x8_t __c, const int __d)
12227 return __builtin_aarch64_sqrdmlah_laneqv4hi (__a, __b, __c, __d);
12230 __extension__ extern __inline int32x2_t
12231 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12232 vqrdmlah_laneq_s32 (int32x2_t __a, int32x2_t __b, int32x4_t __c, const int __d)
12234 return __builtin_aarch64_sqrdmlah_laneqv2si (__a, __b, __c, __d);
12237 __extension__ extern __inline int16x8_t
12238 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12239 vqrdmlahq_laneq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c, const int __d)
12241 return __builtin_aarch64_sqrdmlah_laneqv8hi (__a, __b, __c, __d);
12244 __extension__ extern __inline int32x4_t
12245 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12246 vqrdmlahq_laneq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c, const int __d)
12248 return __builtin_aarch64_sqrdmlah_laneqv4si (__a, __b, __c, __d);
12251 __extension__ extern __inline int16x4_t
12252 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12253 vqrdmlsh_laneq_s16 (int16x4_t __a, int16x4_t __b, int16x8_t __c, const int __d)
12255 return __builtin_aarch64_sqrdmlsh_laneqv4hi (__a, __b, __c, __d);
12258 __extension__ extern __inline int32x2_t
12259 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12260 vqrdmlsh_laneq_s32 (int32x2_t __a, int32x2_t __b, int32x4_t __c, const int __d)
12262 return __builtin_aarch64_sqrdmlsh_laneqv2si (__a, __b, __c, __d);
12265 __extension__ extern __inline int16x8_t
12266 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12267 vqrdmlshq_laneq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c, const int __d)
12269 return __builtin_aarch64_sqrdmlsh_laneqv8hi (__a, __b, __c, __d);
12272 __extension__ extern __inline int32x4_t
12273 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12274 vqrdmlshq_laneq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c, const int __d)
12276 return __builtin_aarch64_sqrdmlsh_laneqv4si (__a, __b, __c, __d);
12279 __extension__ extern __inline int16x4_t
12280 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12281 vqrdmlah_lane_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
12283 return __builtin_aarch64_sqrdmlah_lanev4hi (__a, __b, __c, __d);
12286 __extension__ extern __inline int32x2_t
12287 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12288 vqrdmlah_lane_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
12290 return __builtin_aarch64_sqrdmlah_lanev2si (__a, __b, __c, __d);
12293 __extension__ extern __inline int16x8_t
12294 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12295 vqrdmlahq_lane_s16 (int16x8_t __a, int16x8_t __b, int16x4_t __c, const int __d)
12297 return __builtin_aarch64_sqrdmlah_lanev8hi (__a, __b, __c, __d);
12300 __extension__ extern __inline int32x4_t
12301 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12302 vqrdmlahq_lane_s32 (int32x4_t __a, int32x4_t __b, int32x2_t __c, const int __d)
12304 return __builtin_aarch64_sqrdmlah_lanev4si (__a, __b, __c, __d);
12307 __extension__ extern __inline int16_t
12308 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12309 vqrdmlahh_s16 (int16_t __a, int16_t __b, int16_t __c)
12311 return (int16_t) __builtin_aarch64_sqrdmlahhi (__a, __b, __c);
12314 __extension__ extern __inline int16_t
12315 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12316 vqrdmlahh_lane_s16 (int16_t __a, int16_t __b, int16x4_t __c, const int __d)
12318 return __builtin_aarch64_sqrdmlah_lanehi (__a, __b, __c, __d);
12321 __extension__ extern __inline int16_t
12322 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12323 vqrdmlahh_laneq_s16 (int16_t __a, int16_t __b, int16x8_t __c, const int __d)
12325 return __builtin_aarch64_sqrdmlah_laneqhi (__a, __b, __c, __d);
12328 __extension__ extern __inline int32_t
12329 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12330 vqrdmlahs_s32 (int32_t __a, int32_t __b, int32_t __c)
12332 return (int32_t) __builtin_aarch64_sqrdmlahsi (__a, __b, __c);
12335 __extension__ extern __inline int32_t
12336 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12337 vqrdmlahs_lane_s32 (int32_t __a, int32_t __b, int32x2_t __c, const int __d)
12339 return __builtin_aarch64_sqrdmlah_lanesi (__a, __b, __c, __d);
12342 __extension__ extern __inline int32_t
12343 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12344 vqrdmlahs_laneq_s32 (int32_t __a, int32_t __b, int32x4_t __c, const int __d)
12346 return __builtin_aarch64_sqrdmlah_laneqsi (__a, __b, __c, __d);
12349 __extension__ extern __inline int16x4_t
12350 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12351 vqrdmlsh_lane_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
12353 return __builtin_aarch64_sqrdmlsh_lanev4hi (__a, __b, __c, __d);
12356 __extension__ extern __inline int32x2_t
12357 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12358 vqrdmlsh_lane_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
12360 return __builtin_aarch64_sqrdmlsh_lanev2si (__a, __b, __c, __d);
12363 __extension__ extern __inline int16x8_t
12364 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12365 vqrdmlshq_lane_s16 (int16x8_t __a, int16x8_t __b, int16x4_t __c, const int __d)
12367 return __builtin_aarch64_sqrdmlsh_lanev8hi (__a, __b, __c, __d);
12370 __extension__ extern __inline int32x4_t
12371 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12372 vqrdmlshq_lane_s32 (int32x4_t __a, int32x4_t __b, int32x2_t __c, const int __d)
12374 return __builtin_aarch64_sqrdmlsh_lanev4si (__a, __b, __c, __d);
12377 __extension__ extern __inline int16_t
12378 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12379 vqrdmlshh_s16 (int16_t __a, int16_t __b, int16_t __c)
12381 return (int16_t) __builtin_aarch64_sqrdmlshhi (__a, __b, __c);
12384 __extension__ extern __inline int16_t
12385 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12386 vqrdmlshh_lane_s16 (int16_t __a, int16_t __b, int16x4_t __c, const int __d)
12388 return __builtin_aarch64_sqrdmlsh_lanehi (__a, __b, __c, __d);
12391 __extension__ extern __inline int16_t
12392 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12393 vqrdmlshh_laneq_s16 (int16_t __a, int16_t __b, int16x8_t __c, const int __d)
12395 return __builtin_aarch64_sqrdmlsh_laneqhi (__a, __b, __c, __d);
12398 __extension__ extern __inline int32_t
12399 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12400 vqrdmlshs_s32 (int32_t __a, int32_t __b, int32_t __c)
12402 return (int32_t) __builtin_aarch64_sqrdmlshsi (__a, __b, __c);
12405 __extension__ extern __inline int32_t
12406 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12407 vqrdmlshs_lane_s32 (int32_t __a, int32_t __b, int32x2_t __c, const int __d)
12409 return __builtin_aarch64_sqrdmlsh_lanesi (__a, __b, __c, __d);
12412 __extension__ extern __inline int32_t
12413 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12414 vqrdmlshs_laneq_s32 (int32_t __a, int32_t __b, int32x4_t __c, const int __d)
12416 return __builtin_aarch64_sqrdmlsh_laneqsi (__a, __b, __c, __d);
12418 #pragma GCC pop_options
12420 #pragma GCC push_options
12421 #pragma GCC target ("+nothing+crypto")
12422 /* vaes */
12424 __extension__ extern __inline uint8x16_t
12425 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12426 vaeseq_u8 (uint8x16_t data, uint8x16_t key)
12428 return __builtin_aarch64_crypto_aesev16qi_uuu (data, key);
12431 __extension__ extern __inline uint8x16_t
12432 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12433 vaesdq_u8 (uint8x16_t data, uint8x16_t key)
12435 return __builtin_aarch64_crypto_aesdv16qi_uuu (data, key);
12438 __extension__ extern __inline uint8x16_t
12439 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12440 vaesmcq_u8 (uint8x16_t data)
12442 return __builtin_aarch64_crypto_aesmcv16qi_uu (data);
12445 __extension__ extern __inline uint8x16_t
12446 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12447 vaesimcq_u8 (uint8x16_t data)
12449 return __builtin_aarch64_crypto_aesimcv16qi_uu (data);
12451 #pragma GCC pop_options
12453 /* vcage */
12455 __extension__ extern __inline uint64x1_t
12456 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12457 vcage_f64 (float64x1_t __a, float64x1_t __b)
12459 return vabs_f64 (__a) >= vabs_f64 (__b);
12462 __extension__ extern __inline uint32_t
12463 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12464 vcages_f32 (float32_t __a, float32_t __b)
12466 return __builtin_fabsf (__a) >= __builtin_fabsf (__b) ? -1 : 0;
12469 __extension__ extern __inline uint32x2_t
12470 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12471 vcage_f32 (float32x2_t __a, float32x2_t __b)
12473 return vabs_f32 (__a) >= vabs_f32 (__b);
12476 __extension__ extern __inline uint32x4_t
12477 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12478 vcageq_f32 (float32x4_t __a, float32x4_t __b)
12480 return vabsq_f32 (__a) >= vabsq_f32 (__b);
12483 __extension__ extern __inline uint64_t
12484 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12485 vcaged_f64 (float64_t __a, float64_t __b)
12487 return __builtin_fabs (__a) >= __builtin_fabs (__b) ? -1 : 0;
12490 __extension__ extern __inline uint64x2_t
12491 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12492 vcageq_f64 (float64x2_t __a, float64x2_t __b)
12494 return vabsq_f64 (__a) >= vabsq_f64 (__b);
12497 /* vcagt */
12499 __extension__ extern __inline uint32_t
12500 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12501 vcagts_f32 (float32_t __a, float32_t __b)
12503 return __builtin_fabsf (__a) > __builtin_fabsf (__b) ? -1 : 0;
12506 __extension__ extern __inline uint32x2_t
12507 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12508 vcagt_f32 (float32x2_t __a, float32x2_t __b)
12510 return vabs_f32 (__a) > vabs_f32 (__b);
12513 __extension__ extern __inline uint64x1_t
12514 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12515 vcagt_f64 (float64x1_t __a, float64x1_t __b)
12517 return vabs_f64 (__a) > vabs_f64 (__b);
12520 __extension__ extern __inline uint32x4_t
12521 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12522 vcagtq_f32 (float32x4_t __a, float32x4_t __b)
12524 return vabsq_f32 (__a) > vabsq_f32 (__b);
12527 __extension__ extern __inline uint64_t
12528 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12529 vcagtd_f64 (float64_t __a, float64_t __b)
12531 return __builtin_fabs (__a) > __builtin_fabs (__b) ? -1 : 0;
12534 __extension__ extern __inline uint64x2_t
12535 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12536 vcagtq_f64 (float64x2_t __a, float64x2_t __b)
12538 return vabsq_f64 (__a) > vabsq_f64 (__b);
12541 /* vcale */
12543 __extension__ extern __inline uint32x2_t
12544 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12545 vcale_f32 (float32x2_t __a, float32x2_t __b)
12547 return vabs_f32 (__a) <= vabs_f32 (__b);
12550 __extension__ extern __inline uint64x1_t
12551 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12552 vcale_f64 (float64x1_t __a, float64x1_t __b)
12554 return vabs_f64 (__a) <= vabs_f64 (__b);
12557 __extension__ extern __inline uint64_t
12558 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12559 vcaled_f64 (float64_t __a, float64_t __b)
12561 return __builtin_fabs (__a) <= __builtin_fabs (__b) ? -1 : 0;
12564 __extension__ extern __inline uint32_t
12565 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12566 vcales_f32 (float32_t __a, float32_t __b)
12568 return __builtin_fabsf (__a) <= __builtin_fabsf (__b) ? -1 : 0;
12571 __extension__ extern __inline uint32x4_t
12572 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12573 vcaleq_f32 (float32x4_t __a, float32x4_t __b)
12575 return vabsq_f32 (__a) <= vabsq_f32 (__b);
12578 __extension__ extern __inline uint64x2_t
12579 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12580 vcaleq_f64 (float64x2_t __a, float64x2_t __b)
12582 return vabsq_f64 (__a) <= vabsq_f64 (__b);
12585 /* vcalt */
12587 __extension__ extern __inline uint32x2_t
12588 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12589 vcalt_f32 (float32x2_t __a, float32x2_t __b)
12591 return vabs_f32 (__a) < vabs_f32 (__b);
12594 __extension__ extern __inline uint64x1_t
12595 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12596 vcalt_f64 (float64x1_t __a, float64x1_t __b)
12598 return vabs_f64 (__a) < vabs_f64 (__b);
12601 __extension__ extern __inline uint64_t
12602 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12603 vcaltd_f64 (float64_t __a, float64_t __b)
12605 return __builtin_fabs (__a) < __builtin_fabs (__b) ? -1 : 0;
12608 __extension__ extern __inline uint32x4_t
12609 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12610 vcaltq_f32 (float32x4_t __a, float32x4_t __b)
12612 return vabsq_f32 (__a) < vabsq_f32 (__b);
12615 __extension__ extern __inline uint64x2_t
12616 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12617 vcaltq_f64 (float64x2_t __a, float64x2_t __b)
12619 return vabsq_f64 (__a) < vabsq_f64 (__b);
12622 __extension__ extern __inline uint32_t
12623 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12624 vcalts_f32 (float32_t __a, float32_t __b)
12626 return __builtin_fabsf (__a) < __builtin_fabsf (__b) ? -1 : 0;
12629 /* vceq - vector. */
12631 __extension__ extern __inline uint32x2_t
12632 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12633 vceq_f32 (float32x2_t __a, float32x2_t __b)
12635 return (uint32x2_t) (__a == __b);
12638 __extension__ extern __inline uint64x1_t
12639 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12640 vceq_f64 (float64x1_t __a, float64x1_t __b)
12642 return (uint64x1_t) (__a == __b);
12645 __extension__ extern __inline uint8x8_t
12646 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12647 vceq_p8 (poly8x8_t __a, poly8x8_t __b)
12649 return (uint8x8_t) (__a == __b);
12652 __extension__ extern __inline uint64x1_t
12653 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12654 vceq_p64 (poly64x1_t __a, poly64x1_t __b)
12656 return (uint64x1_t) (__a == __b);
12659 __extension__ extern __inline uint8x8_t
12660 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12661 vceq_s8 (int8x8_t __a, int8x8_t __b)
12663 return (uint8x8_t) (__a == __b);
12666 __extension__ extern __inline uint16x4_t
12667 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12668 vceq_s16 (int16x4_t __a, int16x4_t __b)
12670 return (uint16x4_t) (__a == __b);
12673 __extension__ extern __inline uint32x2_t
12674 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12675 vceq_s32 (int32x2_t __a, int32x2_t __b)
12677 return (uint32x2_t) (__a == __b);
12680 __extension__ extern __inline uint64x1_t
12681 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12682 vceq_s64 (int64x1_t __a, int64x1_t __b)
12684 return (uint64x1_t) (__a == __b);
12687 __extension__ extern __inline uint8x8_t
12688 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12689 vceq_u8 (uint8x8_t __a, uint8x8_t __b)
12691 return (__a == __b);
12694 __extension__ extern __inline uint16x4_t
12695 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12696 vceq_u16 (uint16x4_t __a, uint16x4_t __b)
12698 return (__a == __b);
12701 __extension__ extern __inline uint32x2_t
12702 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12703 vceq_u32 (uint32x2_t __a, uint32x2_t __b)
12705 return (__a == __b);
12708 __extension__ extern __inline uint64x1_t
12709 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12710 vceq_u64 (uint64x1_t __a, uint64x1_t __b)
12712 return (__a == __b);
12715 __extension__ extern __inline uint32x4_t
12716 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12717 vceqq_f32 (float32x4_t __a, float32x4_t __b)
12719 return (uint32x4_t) (__a == __b);
12722 __extension__ extern __inline uint64x2_t
12723 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12724 vceqq_f64 (float64x2_t __a, float64x2_t __b)
12726 return (uint64x2_t) (__a == __b);
12729 __extension__ extern __inline uint8x16_t
12730 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12731 vceqq_p8 (poly8x16_t __a, poly8x16_t __b)
12733 return (uint8x16_t) (__a == __b);
12736 __extension__ extern __inline uint8x16_t
12737 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12738 vceqq_s8 (int8x16_t __a, int8x16_t __b)
12740 return (uint8x16_t) (__a == __b);
12743 __extension__ extern __inline uint16x8_t
12744 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12745 vceqq_s16 (int16x8_t __a, int16x8_t __b)
12747 return (uint16x8_t) (__a == __b);
12750 __extension__ extern __inline uint32x4_t
12751 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12752 vceqq_s32 (int32x4_t __a, int32x4_t __b)
12754 return (uint32x4_t) (__a == __b);
12757 __extension__ extern __inline uint64x2_t
12758 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12759 vceqq_s64 (int64x2_t __a, int64x2_t __b)
12761 return (uint64x2_t) (__a == __b);
12764 __extension__ extern __inline uint8x16_t
12765 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12766 vceqq_u8 (uint8x16_t __a, uint8x16_t __b)
12768 return (__a == __b);
12771 __extension__ extern __inline uint16x8_t
12772 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12773 vceqq_u16 (uint16x8_t __a, uint16x8_t __b)
12775 return (__a == __b);
12778 __extension__ extern __inline uint32x4_t
12779 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12780 vceqq_u32 (uint32x4_t __a, uint32x4_t __b)
12782 return (__a == __b);
12785 __extension__ extern __inline uint64x2_t
12786 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12787 vceqq_u64 (uint64x2_t __a, uint64x2_t __b)
12789 return (__a == __b);
12792 /* vceq - scalar. */
12794 __extension__ extern __inline uint32_t
12795 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12796 vceqs_f32 (float32_t __a, float32_t __b)
12798 return __a == __b ? -1 : 0;
12801 __extension__ extern __inline uint64_t
12802 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12803 vceqd_s64 (int64_t __a, int64_t __b)
12805 return __a == __b ? -1ll : 0ll;
12808 __extension__ extern __inline uint64_t
12809 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12810 vceqd_u64 (uint64_t __a, uint64_t __b)
12812 return __a == __b ? -1ll : 0ll;
12815 __extension__ extern __inline uint64_t
12816 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12817 vceqd_f64 (float64_t __a, float64_t __b)
12819 return __a == __b ? -1ll : 0ll;
12822 /* vceqz - vector. */
12824 __extension__ extern __inline uint32x2_t
12825 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12826 vceqz_f32 (float32x2_t __a)
12828 return (uint32x2_t) (__a == 0.0f);
12831 __extension__ extern __inline uint64x1_t
12832 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12833 vceqz_f64 (float64x1_t __a)
12835 return (uint64x1_t) (__a == (float64x1_t) {0.0});
12838 __extension__ extern __inline uint8x8_t
12839 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12840 vceqz_p8 (poly8x8_t __a)
12842 return (uint8x8_t) (__a == 0);
12845 __extension__ extern __inline uint8x8_t
12846 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12847 vceqz_s8 (int8x8_t __a)
12849 return (uint8x8_t) (__a == 0);
12852 __extension__ extern __inline uint16x4_t
12853 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12854 vceqz_s16 (int16x4_t __a)
12856 return (uint16x4_t) (__a == 0);
12859 __extension__ extern __inline uint32x2_t
12860 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12861 vceqz_s32 (int32x2_t __a)
12863 return (uint32x2_t) (__a == 0);
12866 __extension__ extern __inline uint64x1_t
12867 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12868 vceqz_s64 (int64x1_t __a)
12870 return (uint64x1_t) (__a == __AARCH64_INT64_C (0));
12873 __extension__ extern __inline uint8x8_t
12874 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12875 vceqz_u8 (uint8x8_t __a)
12877 return (__a == 0);
12880 __extension__ extern __inline uint16x4_t
12881 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12882 vceqz_u16 (uint16x4_t __a)
12884 return (__a == 0);
12887 __extension__ extern __inline uint32x2_t
12888 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12889 vceqz_u32 (uint32x2_t __a)
12891 return (__a == 0);
12894 __extension__ extern __inline uint64x1_t
12895 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12896 vceqz_u64 (uint64x1_t __a)
12898 return (__a == __AARCH64_UINT64_C (0));
12901 __extension__ extern __inline uint32x4_t
12902 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12903 vceqzq_f32 (float32x4_t __a)
12905 return (uint32x4_t) (__a == 0.0f);
12908 __extension__ extern __inline uint64x2_t
12909 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12910 vceqzq_f64 (float64x2_t __a)
12912 return (uint64x2_t) (__a == 0.0f);
12915 __extension__ extern __inline uint8x16_t
12916 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12917 vceqzq_p8 (poly8x16_t __a)
12919 return (uint8x16_t) (__a == 0);
12922 __extension__ extern __inline uint8x16_t
12923 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12924 vceqzq_s8 (int8x16_t __a)
12926 return (uint8x16_t) (__a == 0);
12929 __extension__ extern __inline uint16x8_t
12930 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12931 vceqzq_s16 (int16x8_t __a)
12933 return (uint16x8_t) (__a == 0);
12936 __extension__ extern __inline uint32x4_t
12937 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12938 vceqzq_s32 (int32x4_t __a)
12940 return (uint32x4_t) (__a == 0);
12943 __extension__ extern __inline uint64x2_t
12944 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12945 vceqzq_s64 (int64x2_t __a)
12947 return (uint64x2_t) (__a == __AARCH64_INT64_C (0));
12950 __extension__ extern __inline uint8x16_t
12951 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12952 vceqzq_u8 (uint8x16_t __a)
12954 return (__a == 0);
12957 __extension__ extern __inline uint16x8_t
12958 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12959 vceqzq_u16 (uint16x8_t __a)
12961 return (__a == 0);
12964 __extension__ extern __inline uint32x4_t
12965 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12966 vceqzq_u32 (uint32x4_t __a)
12968 return (__a == 0);
12971 __extension__ extern __inline uint64x2_t
12972 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12973 vceqzq_u64 (uint64x2_t __a)
12975 return (__a == __AARCH64_UINT64_C (0));
12978 /* vceqz - scalar. */
12980 __extension__ extern __inline uint32_t
12981 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12982 vceqzs_f32 (float32_t __a)
12984 return __a == 0.0f ? -1 : 0;
12987 __extension__ extern __inline uint64_t
12988 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12989 vceqzd_s64 (int64_t __a)
12991 return __a == 0 ? -1ll : 0ll;
12994 __extension__ extern __inline uint64_t
12995 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12996 vceqzd_u64 (uint64_t __a)
12998 return __a == 0 ? -1ll : 0ll;
13001 __extension__ extern __inline uint64_t
13002 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13003 vceqzd_f64 (float64_t __a)
13005 return __a == 0.0 ? -1ll : 0ll;
13008 /* vcge - vector. */
13010 __extension__ extern __inline uint32x2_t
13011 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13012 vcge_f32 (float32x2_t __a, float32x2_t __b)
13014 return (uint32x2_t) (__a >= __b);
13017 __extension__ extern __inline uint64x1_t
13018 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13019 vcge_f64 (float64x1_t __a, float64x1_t __b)
13021 return (uint64x1_t) (__a >= __b);
13024 __extension__ extern __inline uint8x8_t
13025 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13026 vcge_s8 (int8x8_t __a, int8x8_t __b)
13028 return (uint8x8_t) (__a >= __b);
13031 __extension__ extern __inline uint16x4_t
13032 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13033 vcge_s16 (int16x4_t __a, int16x4_t __b)
13035 return (uint16x4_t) (__a >= __b);
13038 __extension__ extern __inline uint32x2_t
13039 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13040 vcge_s32 (int32x2_t __a, int32x2_t __b)
13042 return (uint32x2_t) (__a >= __b);
13045 __extension__ extern __inline uint64x1_t
13046 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13047 vcge_s64 (int64x1_t __a, int64x1_t __b)
13049 return (uint64x1_t) (__a >= __b);
13052 __extension__ extern __inline uint8x8_t
13053 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13054 vcge_u8 (uint8x8_t __a, uint8x8_t __b)
13056 return (__a >= __b);
13059 __extension__ extern __inline uint16x4_t
13060 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13061 vcge_u16 (uint16x4_t __a, uint16x4_t __b)
13063 return (__a >= __b);
13066 __extension__ extern __inline uint32x2_t
13067 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13068 vcge_u32 (uint32x2_t __a, uint32x2_t __b)
13070 return (__a >= __b);
13073 __extension__ extern __inline uint64x1_t
13074 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13075 vcge_u64 (uint64x1_t __a, uint64x1_t __b)
13077 return (__a >= __b);
13080 __extension__ extern __inline uint32x4_t
13081 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13082 vcgeq_f32 (float32x4_t __a, float32x4_t __b)
13084 return (uint32x4_t) (__a >= __b);
13087 __extension__ extern __inline uint64x2_t
13088 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13089 vcgeq_f64 (float64x2_t __a, float64x2_t __b)
13091 return (uint64x2_t) (__a >= __b);
13094 __extension__ extern __inline uint8x16_t
13095 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13096 vcgeq_s8 (int8x16_t __a, int8x16_t __b)
13098 return (uint8x16_t) (__a >= __b);
13101 __extension__ extern __inline uint16x8_t
13102 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13103 vcgeq_s16 (int16x8_t __a, int16x8_t __b)
13105 return (uint16x8_t) (__a >= __b);
13108 __extension__ extern __inline uint32x4_t
13109 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13110 vcgeq_s32 (int32x4_t __a, int32x4_t __b)
13112 return (uint32x4_t) (__a >= __b);
13115 __extension__ extern __inline uint64x2_t
13116 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13117 vcgeq_s64 (int64x2_t __a, int64x2_t __b)
13119 return (uint64x2_t) (__a >= __b);
13122 __extension__ extern __inline uint8x16_t
13123 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13124 vcgeq_u8 (uint8x16_t __a, uint8x16_t __b)
13126 return (__a >= __b);
13129 __extension__ extern __inline uint16x8_t
13130 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13131 vcgeq_u16 (uint16x8_t __a, uint16x8_t __b)
13133 return (__a >= __b);
13136 __extension__ extern __inline uint32x4_t
13137 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13138 vcgeq_u32 (uint32x4_t __a, uint32x4_t __b)
13140 return (__a >= __b);
13143 __extension__ extern __inline uint64x2_t
13144 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13145 vcgeq_u64 (uint64x2_t __a, uint64x2_t __b)
13147 return (__a >= __b);
13150 /* vcge - scalar. */
13152 __extension__ extern __inline uint32_t
13153 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13154 vcges_f32 (float32_t __a, float32_t __b)
13156 return __a >= __b ? -1 : 0;
13159 __extension__ extern __inline uint64_t
13160 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13161 vcged_s64 (int64_t __a, int64_t __b)
13163 return __a >= __b ? -1ll : 0ll;
13166 __extension__ extern __inline uint64_t
13167 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13168 vcged_u64 (uint64_t __a, uint64_t __b)
13170 return __a >= __b ? -1ll : 0ll;
13173 __extension__ extern __inline uint64_t
13174 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13175 vcged_f64 (float64_t __a, float64_t __b)
13177 return __a >= __b ? -1ll : 0ll;
13180 /* vcgez - vector. */
13182 __extension__ extern __inline uint32x2_t
13183 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13184 vcgez_f32 (float32x2_t __a)
13186 return (uint32x2_t) (__a >= 0.0f);
13189 __extension__ extern __inline uint64x1_t
13190 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13191 vcgez_f64 (float64x1_t __a)
13193 return (uint64x1_t) (__a[0] >= (float64x1_t) {0.0});
13196 __extension__ extern __inline uint8x8_t
13197 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13198 vcgez_s8 (int8x8_t __a)
13200 return (uint8x8_t) (__a >= 0);
13203 __extension__ extern __inline uint16x4_t
13204 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13205 vcgez_s16 (int16x4_t __a)
13207 return (uint16x4_t) (__a >= 0);
13210 __extension__ extern __inline uint32x2_t
13211 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13212 vcgez_s32 (int32x2_t __a)
13214 return (uint32x2_t) (__a >= 0);
13217 __extension__ extern __inline uint64x1_t
13218 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13219 vcgez_s64 (int64x1_t __a)
13221 return (uint64x1_t) (__a >= __AARCH64_INT64_C (0));
13224 __extension__ extern __inline uint32x4_t
13225 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13226 vcgezq_f32 (float32x4_t __a)
13228 return (uint32x4_t) (__a >= 0.0f);
13231 __extension__ extern __inline uint64x2_t
13232 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13233 vcgezq_f64 (float64x2_t __a)
13235 return (uint64x2_t) (__a >= 0.0);
13238 __extension__ extern __inline uint8x16_t
13239 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13240 vcgezq_s8 (int8x16_t __a)
13242 return (uint8x16_t) (__a >= 0);
13245 __extension__ extern __inline uint16x8_t
13246 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13247 vcgezq_s16 (int16x8_t __a)
13249 return (uint16x8_t) (__a >= 0);
13252 __extension__ extern __inline uint32x4_t
13253 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13254 vcgezq_s32 (int32x4_t __a)
13256 return (uint32x4_t) (__a >= 0);
13259 __extension__ extern __inline uint64x2_t
13260 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13261 vcgezq_s64 (int64x2_t __a)
13263 return (uint64x2_t) (__a >= __AARCH64_INT64_C (0));
13266 /* vcgez - scalar. */
13268 __extension__ extern __inline uint32_t
13269 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13270 vcgezs_f32 (float32_t __a)
13272 return __a >= 0.0f ? -1 : 0;
13275 __extension__ extern __inline uint64_t
13276 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13277 vcgezd_s64 (int64_t __a)
13279 return __a >= 0 ? -1ll : 0ll;
13282 __extension__ extern __inline uint64_t
13283 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13284 vcgezd_f64 (float64_t __a)
13286 return __a >= 0.0 ? -1ll : 0ll;
13289 /* vcgt - vector. */
13291 __extension__ extern __inline uint32x2_t
13292 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13293 vcgt_f32 (float32x2_t __a, float32x2_t __b)
13295 return (uint32x2_t) (__a > __b);
13298 __extension__ extern __inline uint64x1_t
13299 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13300 vcgt_f64 (float64x1_t __a, float64x1_t __b)
13302 return (uint64x1_t) (__a > __b);
13305 __extension__ extern __inline uint8x8_t
13306 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13307 vcgt_s8 (int8x8_t __a, int8x8_t __b)
13309 return (uint8x8_t) (__a > __b);
13312 __extension__ extern __inline uint16x4_t
13313 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13314 vcgt_s16 (int16x4_t __a, int16x4_t __b)
13316 return (uint16x4_t) (__a > __b);
13319 __extension__ extern __inline uint32x2_t
13320 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13321 vcgt_s32 (int32x2_t __a, int32x2_t __b)
13323 return (uint32x2_t) (__a > __b);
13326 __extension__ extern __inline uint64x1_t
13327 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13328 vcgt_s64 (int64x1_t __a, int64x1_t __b)
13330 return (uint64x1_t) (__a > __b);
13333 __extension__ extern __inline uint8x8_t
13334 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13335 vcgt_u8 (uint8x8_t __a, uint8x8_t __b)
13337 return (__a > __b);
13340 __extension__ extern __inline uint16x4_t
13341 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13342 vcgt_u16 (uint16x4_t __a, uint16x4_t __b)
13344 return (__a > __b);
13347 __extension__ extern __inline uint32x2_t
13348 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13349 vcgt_u32 (uint32x2_t __a, uint32x2_t __b)
13351 return (__a > __b);
13354 __extension__ extern __inline uint64x1_t
13355 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13356 vcgt_u64 (uint64x1_t __a, uint64x1_t __b)
13358 return (__a > __b);
13361 __extension__ extern __inline uint32x4_t
13362 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13363 vcgtq_f32 (float32x4_t __a, float32x4_t __b)
13365 return (uint32x4_t) (__a > __b);
13368 __extension__ extern __inline uint64x2_t
13369 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13370 vcgtq_f64 (float64x2_t __a, float64x2_t __b)
13372 return (uint64x2_t) (__a > __b);
13375 __extension__ extern __inline uint8x16_t
13376 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13377 vcgtq_s8 (int8x16_t __a, int8x16_t __b)
13379 return (uint8x16_t) (__a > __b);
13382 __extension__ extern __inline uint16x8_t
13383 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13384 vcgtq_s16 (int16x8_t __a, int16x8_t __b)
13386 return (uint16x8_t) (__a > __b);
13389 __extension__ extern __inline uint32x4_t
13390 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13391 vcgtq_s32 (int32x4_t __a, int32x4_t __b)
13393 return (uint32x4_t) (__a > __b);
13396 __extension__ extern __inline uint64x2_t
13397 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13398 vcgtq_s64 (int64x2_t __a, int64x2_t __b)
13400 return (uint64x2_t) (__a > __b);
13403 __extension__ extern __inline uint8x16_t
13404 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13405 vcgtq_u8 (uint8x16_t __a, uint8x16_t __b)
13407 return (__a > __b);
13410 __extension__ extern __inline uint16x8_t
13411 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13412 vcgtq_u16 (uint16x8_t __a, uint16x8_t __b)
13414 return (__a > __b);
13417 __extension__ extern __inline uint32x4_t
13418 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13419 vcgtq_u32 (uint32x4_t __a, uint32x4_t __b)
13421 return (__a > __b);
13424 __extension__ extern __inline uint64x2_t
13425 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13426 vcgtq_u64 (uint64x2_t __a, uint64x2_t __b)
13428 return (__a > __b);
13431 /* vcgt - scalar. */
13433 __extension__ extern __inline uint32_t
13434 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13435 vcgts_f32 (float32_t __a, float32_t __b)
13437 return __a > __b ? -1 : 0;
13440 __extension__ extern __inline uint64_t
13441 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13442 vcgtd_s64 (int64_t __a, int64_t __b)
13444 return __a > __b ? -1ll : 0ll;
13447 __extension__ extern __inline uint64_t
13448 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13449 vcgtd_u64 (uint64_t __a, uint64_t __b)
13451 return __a > __b ? -1ll : 0ll;
13454 __extension__ extern __inline uint64_t
13455 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13456 vcgtd_f64 (float64_t __a, float64_t __b)
13458 return __a > __b ? -1ll : 0ll;
13461 /* vcgtz - vector. */
13463 __extension__ extern __inline uint32x2_t
13464 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13465 vcgtz_f32 (float32x2_t __a)
13467 return (uint32x2_t) (__a > 0.0f);
13470 __extension__ extern __inline uint64x1_t
13471 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13472 vcgtz_f64 (float64x1_t __a)
13474 return (uint64x1_t) (__a > (float64x1_t) {0.0});
13477 __extension__ extern __inline uint8x8_t
13478 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13479 vcgtz_s8 (int8x8_t __a)
13481 return (uint8x8_t) (__a > 0);
13484 __extension__ extern __inline uint16x4_t
13485 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13486 vcgtz_s16 (int16x4_t __a)
13488 return (uint16x4_t) (__a > 0);
13491 __extension__ extern __inline uint32x2_t
13492 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13493 vcgtz_s32 (int32x2_t __a)
13495 return (uint32x2_t) (__a > 0);
13498 __extension__ extern __inline uint64x1_t
13499 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13500 vcgtz_s64 (int64x1_t __a)
13502 return (uint64x1_t) (__a > __AARCH64_INT64_C (0));
13505 __extension__ extern __inline uint32x4_t
13506 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13507 vcgtzq_f32 (float32x4_t __a)
13509 return (uint32x4_t) (__a > 0.0f);
13512 __extension__ extern __inline uint64x2_t
13513 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13514 vcgtzq_f64 (float64x2_t __a)
13516 return (uint64x2_t) (__a > 0.0);
13519 __extension__ extern __inline uint8x16_t
13520 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13521 vcgtzq_s8 (int8x16_t __a)
13523 return (uint8x16_t) (__a > 0);
13526 __extension__ extern __inline uint16x8_t
13527 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13528 vcgtzq_s16 (int16x8_t __a)
13530 return (uint16x8_t) (__a > 0);
13533 __extension__ extern __inline uint32x4_t
13534 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13535 vcgtzq_s32 (int32x4_t __a)
13537 return (uint32x4_t) (__a > 0);
13540 __extension__ extern __inline uint64x2_t
13541 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13542 vcgtzq_s64 (int64x2_t __a)
13544 return (uint64x2_t) (__a > __AARCH64_INT64_C (0));
13547 /* vcgtz - scalar. */
13549 __extension__ extern __inline uint32_t
13550 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13551 vcgtzs_f32 (float32_t __a)
13553 return __a > 0.0f ? -1 : 0;
13556 __extension__ extern __inline uint64_t
13557 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13558 vcgtzd_s64 (int64_t __a)
13560 return __a > 0 ? -1ll : 0ll;
13563 __extension__ extern __inline uint64_t
13564 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13565 vcgtzd_f64 (float64_t __a)
13567 return __a > 0.0 ? -1ll : 0ll;
13570 /* vcle - vector. */
13572 __extension__ extern __inline uint32x2_t
13573 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13574 vcle_f32 (float32x2_t __a, float32x2_t __b)
13576 return (uint32x2_t) (__a <= __b);
13579 __extension__ extern __inline uint64x1_t
13580 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13581 vcle_f64 (float64x1_t __a, float64x1_t __b)
13583 return (uint64x1_t) (__a <= __b);
13586 __extension__ extern __inline uint8x8_t
13587 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13588 vcle_s8 (int8x8_t __a, int8x8_t __b)
13590 return (uint8x8_t) (__a <= __b);
13593 __extension__ extern __inline uint16x4_t
13594 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13595 vcle_s16 (int16x4_t __a, int16x4_t __b)
13597 return (uint16x4_t) (__a <= __b);
13600 __extension__ extern __inline uint32x2_t
13601 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13602 vcle_s32 (int32x2_t __a, int32x2_t __b)
13604 return (uint32x2_t) (__a <= __b);
13607 __extension__ extern __inline uint64x1_t
13608 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13609 vcle_s64 (int64x1_t __a, int64x1_t __b)
13611 return (uint64x1_t) (__a <= __b);
13614 __extension__ extern __inline uint8x8_t
13615 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13616 vcle_u8 (uint8x8_t __a, uint8x8_t __b)
13618 return (__a <= __b);
13621 __extension__ extern __inline uint16x4_t
13622 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13623 vcle_u16 (uint16x4_t __a, uint16x4_t __b)
13625 return (__a <= __b);
13628 __extension__ extern __inline uint32x2_t
13629 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13630 vcle_u32 (uint32x2_t __a, uint32x2_t __b)
13632 return (__a <= __b);
13635 __extension__ extern __inline uint64x1_t
13636 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13637 vcle_u64 (uint64x1_t __a, uint64x1_t __b)
13639 return (__a <= __b);
13642 __extension__ extern __inline uint32x4_t
13643 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13644 vcleq_f32 (float32x4_t __a, float32x4_t __b)
13646 return (uint32x4_t) (__a <= __b);
13649 __extension__ extern __inline uint64x2_t
13650 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13651 vcleq_f64 (float64x2_t __a, float64x2_t __b)
13653 return (uint64x2_t) (__a <= __b);
13656 __extension__ extern __inline uint8x16_t
13657 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13658 vcleq_s8 (int8x16_t __a, int8x16_t __b)
13660 return (uint8x16_t) (__a <= __b);
13663 __extension__ extern __inline uint16x8_t
13664 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13665 vcleq_s16 (int16x8_t __a, int16x8_t __b)
13667 return (uint16x8_t) (__a <= __b);
13670 __extension__ extern __inline uint32x4_t
13671 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13672 vcleq_s32 (int32x4_t __a, int32x4_t __b)
13674 return (uint32x4_t) (__a <= __b);
13677 __extension__ extern __inline uint64x2_t
13678 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13679 vcleq_s64 (int64x2_t __a, int64x2_t __b)
13681 return (uint64x2_t) (__a <= __b);
13684 __extension__ extern __inline uint8x16_t
13685 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13686 vcleq_u8 (uint8x16_t __a, uint8x16_t __b)
13688 return (__a <= __b);
13691 __extension__ extern __inline uint16x8_t
13692 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13693 vcleq_u16 (uint16x8_t __a, uint16x8_t __b)
13695 return (__a <= __b);
13698 __extension__ extern __inline uint32x4_t
13699 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13700 vcleq_u32 (uint32x4_t __a, uint32x4_t __b)
13702 return (__a <= __b);
13705 __extension__ extern __inline uint64x2_t
13706 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13707 vcleq_u64 (uint64x2_t __a, uint64x2_t __b)
13709 return (__a <= __b);
13712 /* vcle - scalar. */
13714 __extension__ extern __inline uint32_t
13715 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13716 vcles_f32 (float32_t __a, float32_t __b)
13718 return __a <= __b ? -1 : 0;
13721 __extension__ extern __inline uint64_t
13722 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13723 vcled_s64 (int64_t __a, int64_t __b)
13725 return __a <= __b ? -1ll : 0ll;
13728 __extension__ extern __inline uint64_t
13729 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13730 vcled_u64 (uint64_t __a, uint64_t __b)
13732 return __a <= __b ? -1ll : 0ll;
13735 __extension__ extern __inline uint64_t
13736 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13737 vcled_f64 (float64_t __a, float64_t __b)
13739 return __a <= __b ? -1ll : 0ll;
13742 /* vclez - vector. */
13744 __extension__ extern __inline uint32x2_t
13745 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13746 vclez_f32 (float32x2_t __a)
13748 return (uint32x2_t) (__a <= 0.0f);
13751 __extension__ extern __inline uint64x1_t
13752 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13753 vclez_f64 (float64x1_t __a)
13755 return (uint64x1_t) (__a <= (float64x1_t) {0.0});
13758 __extension__ extern __inline uint8x8_t
13759 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13760 vclez_s8 (int8x8_t __a)
13762 return (uint8x8_t) (__a <= 0);
13765 __extension__ extern __inline uint16x4_t
13766 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13767 vclez_s16 (int16x4_t __a)
13769 return (uint16x4_t) (__a <= 0);
13772 __extension__ extern __inline uint32x2_t
13773 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13774 vclez_s32 (int32x2_t __a)
13776 return (uint32x2_t) (__a <= 0);
13779 __extension__ extern __inline uint64x1_t
13780 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13781 vclez_s64 (int64x1_t __a)
13783 return (uint64x1_t) (__a <= __AARCH64_INT64_C (0));
13786 __extension__ extern __inline uint32x4_t
13787 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13788 vclezq_f32 (float32x4_t __a)
13790 return (uint32x4_t) (__a <= 0.0f);
13793 __extension__ extern __inline uint64x2_t
13794 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13795 vclezq_f64 (float64x2_t __a)
13797 return (uint64x2_t) (__a <= 0.0);
13800 __extension__ extern __inline uint8x16_t
13801 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13802 vclezq_s8 (int8x16_t __a)
13804 return (uint8x16_t) (__a <= 0);
13807 __extension__ extern __inline uint16x8_t
13808 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13809 vclezq_s16 (int16x8_t __a)
13811 return (uint16x8_t) (__a <= 0);
13814 __extension__ extern __inline uint32x4_t
13815 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13816 vclezq_s32 (int32x4_t __a)
13818 return (uint32x4_t) (__a <= 0);
13821 __extension__ extern __inline uint64x2_t
13822 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13823 vclezq_s64 (int64x2_t __a)
13825 return (uint64x2_t) (__a <= __AARCH64_INT64_C (0));
13828 /* vclez - scalar. */
13830 __extension__ extern __inline uint32_t
13831 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13832 vclezs_f32 (float32_t __a)
13834 return __a <= 0.0f ? -1 : 0;
13837 __extension__ extern __inline uint64_t
13838 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13839 vclezd_s64 (int64_t __a)
13841 return __a <= 0 ? -1ll : 0ll;
13844 __extension__ extern __inline uint64_t
13845 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13846 vclezd_f64 (float64_t __a)
13848 return __a <= 0.0 ? -1ll : 0ll;
13851 /* vclt - vector. */
13853 __extension__ extern __inline uint32x2_t
13854 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13855 vclt_f32 (float32x2_t __a, float32x2_t __b)
13857 return (uint32x2_t) (__a < __b);
13860 __extension__ extern __inline uint64x1_t
13861 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13862 vclt_f64 (float64x1_t __a, float64x1_t __b)
13864 return (uint64x1_t) (__a < __b);
13867 __extension__ extern __inline uint8x8_t
13868 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13869 vclt_s8 (int8x8_t __a, int8x8_t __b)
13871 return (uint8x8_t) (__a < __b);
13874 __extension__ extern __inline uint16x4_t
13875 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13876 vclt_s16 (int16x4_t __a, int16x4_t __b)
13878 return (uint16x4_t) (__a < __b);
13881 __extension__ extern __inline uint32x2_t
13882 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13883 vclt_s32 (int32x2_t __a, int32x2_t __b)
13885 return (uint32x2_t) (__a < __b);
13888 __extension__ extern __inline uint64x1_t
13889 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13890 vclt_s64 (int64x1_t __a, int64x1_t __b)
13892 return (uint64x1_t) (__a < __b);
13895 __extension__ extern __inline uint8x8_t
13896 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13897 vclt_u8 (uint8x8_t __a, uint8x8_t __b)
13899 return (__a < __b);
13902 __extension__ extern __inline uint16x4_t
13903 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13904 vclt_u16 (uint16x4_t __a, uint16x4_t __b)
13906 return (__a < __b);
13909 __extension__ extern __inline uint32x2_t
13910 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13911 vclt_u32 (uint32x2_t __a, uint32x2_t __b)
13913 return (__a < __b);
13916 __extension__ extern __inline uint64x1_t
13917 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13918 vclt_u64 (uint64x1_t __a, uint64x1_t __b)
13920 return (__a < __b);
13923 __extension__ extern __inline uint32x4_t
13924 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13925 vcltq_f32 (float32x4_t __a, float32x4_t __b)
13927 return (uint32x4_t) (__a < __b);
13930 __extension__ extern __inline uint64x2_t
13931 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13932 vcltq_f64 (float64x2_t __a, float64x2_t __b)
13934 return (uint64x2_t) (__a < __b);
13937 __extension__ extern __inline uint8x16_t
13938 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13939 vcltq_s8 (int8x16_t __a, int8x16_t __b)
13941 return (uint8x16_t) (__a < __b);
13944 __extension__ extern __inline uint16x8_t
13945 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13946 vcltq_s16 (int16x8_t __a, int16x8_t __b)
13948 return (uint16x8_t) (__a < __b);
13951 __extension__ extern __inline uint32x4_t
13952 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13953 vcltq_s32 (int32x4_t __a, int32x4_t __b)
13955 return (uint32x4_t) (__a < __b);
13958 __extension__ extern __inline uint64x2_t
13959 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13960 vcltq_s64 (int64x2_t __a, int64x2_t __b)
13962 return (uint64x2_t) (__a < __b);
13965 __extension__ extern __inline uint8x16_t
13966 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13967 vcltq_u8 (uint8x16_t __a, uint8x16_t __b)
13969 return (__a < __b);
13972 __extension__ extern __inline uint16x8_t
13973 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13974 vcltq_u16 (uint16x8_t __a, uint16x8_t __b)
13976 return (__a < __b);
13979 __extension__ extern __inline uint32x4_t
13980 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13981 vcltq_u32 (uint32x4_t __a, uint32x4_t __b)
13983 return (__a < __b);
13986 __extension__ extern __inline uint64x2_t
13987 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13988 vcltq_u64 (uint64x2_t __a, uint64x2_t __b)
13990 return (__a < __b);
13993 /* vclt - scalar. */
13995 __extension__ extern __inline uint32_t
13996 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13997 vclts_f32 (float32_t __a, float32_t __b)
13999 return __a < __b ? -1 : 0;
14002 __extension__ extern __inline uint64_t
14003 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14004 vcltd_s64 (int64_t __a, int64_t __b)
14006 return __a < __b ? -1ll : 0ll;
14009 __extension__ extern __inline uint64_t
14010 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14011 vcltd_u64 (uint64_t __a, uint64_t __b)
14013 return __a < __b ? -1ll : 0ll;
14016 __extension__ extern __inline uint64_t
14017 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14018 vcltd_f64 (float64_t __a, float64_t __b)
14020 return __a < __b ? -1ll : 0ll;
14023 /* vcltz - vector. */
14025 __extension__ extern __inline uint32x2_t
14026 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14027 vcltz_f32 (float32x2_t __a)
14029 return (uint32x2_t) (__a < 0.0f);
14032 __extension__ extern __inline uint64x1_t
14033 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14034 vcltz_f64 (float64x1_t __a)
14036 return (uint64x1_t) (__a < (float64x1_t) {0.0});
14039 __extension__ extern __inline uint8x8_t
14040 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14041 vcltz_s8 (int8x8_t __a)
14043 return (uint8x8_t) (__a < 0);
14046 __extension__ extern __inline uint16x4_t
14047 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14048 vcltz_s16 (int16x4_t __a)
14050 return (uint16x4_t) (__a < 0);
14053 __extension__ extern __inline uint32x2_t
14054 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14055 vcltz_s32 (int32x2_t __a)
14057 return (uint32x2_t) (__a < 0);
14060 __extension__ extern __inline uint64x1_t
14061 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14062 vcltz_s64 (int64x1_t __a)
14064 return (uint64x1_t) (__a < __AARCH64_INT64_C (0));
14067 __extension__ extern __inline uint32x4_t
14068 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14069 vcltzq_f32 (float32x4_t __a)
14071 return (uint32x4_t) (__a < 0.0f);
14074 __extension__ extern __inline uint64x2_t
14075 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14076 vcltzq_f64 (float64x2_t __a)
14078 return (uint64x2_t) (__a < 0.0);
14081 __extension__ extern __inline uint8x16_t
14082 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14083 vcltzq_s8 (int8x16_t __a)
14085 return (uint8x16_t) (__a < 0);
14088 __extension__ extern __inline uint16x8_t
14089 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14090 vcltzq_s16 (int16x8_t __a)
14092 return (uint16x8_t) (__a < 0);
14095 __extension__ extern __inline uint32x4_t
14096 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14097 vcltzq_s32 (int32x4_t __a)
14099 return (uint32x4_t) (__a < 0);
14102 __extension__ extern __inline uint64x2_t
14103 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14104 vcltzq_s64 (int64x2_t __a)
14106 return (uint64x2_t) (__a < __AARCH64_INT64_C (0));
14109 /* vcltz - scalar. */
14111 __extension__ extern __inline uint32_t
14112 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14113 vcltzs_f32 (float32_t __a)
14115 return __a < 0.0f ? -1 : 0;
14118 __extension__ extern __inline uint64_t
14119 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14120 vcltzd_s64 (int64_t __a)
14122 return __a < 0 ? -1ll : 0ll;
14125 __extension__ extern __inline uint64_t
14126 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14127 vcltzd_f64 (float64_t __a)
14129 return __a < 0.0 ? -1ll : 0ll;
14132 /* vcls. */
14134 __extension__ extern __inline int8x8_t
14135 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14136 vcls_s8 (int8x8_t __a)
14138 return __builtin_aarch64_clrsbv8qi (__a);
14141 __extension__ extern __inline int16x4_t
14142 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14143 vcls_s16 (int16x4_t __a)
14145 return __builtin_aarch64_clrsbv4hi (__a);
14148 __extension__ extern __inline int32x2_t
14149 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14150 vcls_s32 (int32x2_t __a)
14152 return __builtin_aarch64_clrsbv2si (__a);
14155 __extension__ extern __inline int8x16_t
14156 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14157 vclsq_s8 (int8x16_t __a)
14159 return __builtin_aarch64_clrsbv16qi (__a);
14162 __extension__ extern __inline int16x8_t
14163 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14164 vclsq_s16 (int16x8_t __a)
14166 return __builtin_aarch64_clrsbv8hi (__a);
14169 __extension__ extern __inline int32x4_t
14170 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14171 vclsq_s32 (int32x4_t __a)
14173 return __builtin_aarch64_clrsbv4si (__a);
14176 /* vclz. */
14178 __extension__ extern __inline int8x8_t
14179 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14180 vclz_s8 (int8x8_t __a)
14182 return __builtin_aarch64_clzv8qi (__a);
14185 __extension__ extern __inline int16x4_t
14186 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14187 vclz_s16 (int16x4_t __a)
14189 return __builtin_aarch64_clzv4hi (__a);
14192 __extension__ extern __inline int32x2_t
14193 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14194 vclz_s32 (int32x2_t __a)
14196 return __builtin_aarch64_clzv2si (__a);
14199 __extension__ extern __inline uint8x8_t
14200 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14201 vclz_u8 (uint8x8_t __a)
14203 return (uint8x8_t)__builtin_aarch64_clzv8qi ((int8x8_t)__a);
14206 __extension__ extern __inline uint16x4_t
14207 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14208 vclz_u16 (uint16x4_t __a)
14210 return (uint16x4_t)__builtin_aarch64_clzv4hi ((int16x4_t)__a);
14213 __extension__ extern __inline uint32x2_t
14214 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14215 vclz_u32 (uint32x2_t __a)
14217 return (uint32x2_t)__builtin_aarch64_clzv2si ((int32x2_t)__a);
14220 __extension__ extern __inline int8x16_t
14221 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14222 vclzq_s8 (int8x16_t __a)
14224 return __builtin_aarch64_clzv16qi (__a);
14227 __extension__ extern __inline int16x8_t
14228 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14229 vclzq_s16 (int16x8_t __a)
14231 return __builtin_aarch64_clzv8hi (__a);
14234 __extension__ extern __inline int32x4_t
14235 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14236 vclzq_s32 (int32x4_t __a)
14238 return __builtin_aarch64_clzv4si (__a);
14241 __extension__ extern __inline uint8x16_t
14242 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14243 vclzq_u8 (uint8x16_t __a)
14245 return (uint8x16_t)__builtin_aarch64_clzv16qi ((int8x16_t)__a);
14248 __extension__ extern __inline uint16x8_t
14249 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14250 vclzq_u16 (uint16x8_t __a)
14252 return (uint16x8_t)__builtin_aarch64_clzv8hi ((int16x8_t)__a);
14255 __extension__ extern __inline uint32x4_t
14256 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14257 vclzq_u32 (uint32x4_t __a)
14259 return (uint32x4_t)__builtin_aarch64_clzv4si ((int32x4_t)__a);
14262 /* vcnt. */
14264 __extension__ extern __inline poly8x8_t
14265 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14266 vcnt_p8 (poly8x8_t __a)
14268 return (poly8x8_t) __builtin_aarch64_popcountv8qi ((int8x8_t) __a);
14271 __extension__ extern __inline int8x8_t
14272 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14273 vcnt_s8 (int8x8_t __a)
14275 return __builtin_aarch64_popcountv8qi (__a);
14278 __extension__ extern __inline uint8x8_t
14279 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14280 vcnt_u8 (uint8x8_t __a)
14282 return (uint8x8_t) __builtin_aarch64_popcountv8qi ((int8x8_t) __a);
14285 __extension__ extern __inline poly8x16_t
14286 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14287 vcntq_p8 (poly8x16_t __a)
14289 return (poly8x16_t) __builtin_aarch64_popcountv16qi ((int8x16_t) __a);
14292 __extension__ extern __inline int8x16_t
14293 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14294 vcntq_s8 (int8x16_t __a)
14296 return __builtin_aarch64_popcountv16qi (__a);
14299 __extension__ extern __inline uint8x16_t
14300 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14301 vcntq_u8 (uint8x16_t __a)
14303 return (uint8x16_t) __builtin_aarch64_popcountv16qi ((int8x16_t) __a);
14306 /* vcopy_lane. */
14308 __extension__ extern __inline float32x2_t
14309 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14310 vcopy_lane_f32 (float32x2_t __a, const int __lane1,
14311 float32x2_t __b, const int __lane2)
14313 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14314 __a, __lane1);
14317 __extension__ extern __inline float64x1_t
14318 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14319 vcopy_lane_f64 (float64x1_t __a, const int __lane1,
14320 float64x1_t __b, const int __lane2)
14322 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14323 __a, __lane1);
14326 __extension__ extern __inline poly8x8_t
14327 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14328 vcopy_lane_p8 (poly8x8_t __a, const int __lane1,
14329 poly8x8_t __b, const int __lane2)
14331 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14332 __a, __lane1);
14335 __extension__ extern __inline poly16x4_t
14336 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14337 vcopy_lane_p16 (poly16x4_t __a, const int __lane1,
14338 poly16x4_t __b, const int __lane2)
14340 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14341 __a, __lane1);
14344 __extension__ extern __inline poly64x1_t
14345 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14346 vcopy_lane_p64 (poly64x1_t __a, const int __lane1,
14347 poly64x1_t __b, const int __lane2)
14349 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14350 __a, __lane1);
14353 __extension__ extern __inline int8x8_t
14354 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14355 vcopy_lane_s8 (int8x8_t __a, const int __lane1,
14356 int8x8_t __b, const int __lane2)
14358 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14359 __a, __lane1);
14362 __extension__ extern __inline int16x4_t
14363 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14364 vcopy_lane_s16 (int16x4_t __a, const int __lane1,
14365 int16x4_t __b, const int __lane2)
14367 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14368 __a, __lane1);
14371 __extension__ extern __inline int32x2_t
14372 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14373 vcopy_lane_s32 (int32x2_t __a, const int __lane1,
14374 int32x2_t __b, const int __lane2)
14376 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14377 __a, __lane1);
14380 __extension__ extern __inline int64x1_t
14381 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14382 vcopy_lane_s64 (int64x1_t __a, const int __lane1,
14383 int64x1_t __b, const int __lane2)
14385 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14386 __a, __lane1);
14389 __extension__ extern __inline uint8x8_t
14390 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14391 vcopy_lane_u8 (uint8x8_t __a, const int __lane1,
14392 uint8x8_t __b, const int __lane2)
14394 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14395 __a, __lane1);
14398 __extension__ extern __inline uint16x4_t
14399 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14400 vcopy_lane_u16 (uint16x4_t __a, const int __lane1,
14401 uint16x4_t __b, const int __lane2)
14403 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14404 __a, __lane1);
14407 __extension__ extern __inline uint32x2_t
14408 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14409 vcopy_lane_u32 (uint32x2_t __a, const int __lane1,
14410 uint32x2_t __b, const int __lane2)
14412 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14413 __a, __lane1);
14416 __extension__ extern __inline uint64x1_t
14417 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14418 vcopy_lane_u64 (uint64x1_t __a, const int __lane1,
14419 uint64x1_t __b, const int __lane2)
14421 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14422 __a, __lane1);
14425 /* vcopy_laneq. */
14427 __extension__ extern __inline float32x2_t
14428 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14429 vcopy_laneq_f32 (float32x2_t __a, const int __lane1,
14430 float32x4_t __b, const int __lane2)
14432 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14433 __a, __lane1);
14436 __extension__ extern __inline float64x1_t
14437 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14438 vcopy_laneq_f64 (float64x1_t __a, const int __lane1,
14439 float64x2_t __b, const int __lane2)
14441 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14442 __a, __lane1);
14445 __extension__ extern __inline poly8x8_t
14446 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14447 vcopy_laneq_p8 (poly8x8_t __a, const int __lane1,
14448 poly8x16_t __b, const int __lane2)
14450 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14451 __a, __lane1);
14454 __extension__ extern __inline poly16x4_t
14455 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14456 vcopy_laneq_p16 (poly16x4_t __a, const int __lane1,
14457 poly16x8_t __b, const int __lane2)
14459 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14460 __a, __lane1);
14463 __extension__ extern __inline poly64x1_t
14464 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14465 vcopy_laneq_p64 (poly64x1_t __a, const int __lane1,
14466 poly64x2_t __b, const int __lane2)
14468 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14469 __a, __lane1);
14472 __extension__ extern __inline int8x8_t
14473 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14474 vcopy_laneq_s8 (int8x8_t __a, const int __lane1,
14475 int8x16_t __b, const int __lane2)
14477 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14478 __a, __lane1);
14481 __extension__ extern __inline int16x4_t
14482 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14483 vcopy_laneq_s16 (int16x4_t __a, const int __lane1,
14484 int16x8_t __b, const int __lane2)
14486 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14487 __a, __lane1);
14490 __extension__ extern __inline int32x2_t
14491 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14492 vcopy_laneq_s32 (int32x2_t __a, const int __lane1,
14493 int32x4_t __b, const int __lane2)
14495 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14496 __a, __lane1);
14499 __extension__ extern __inline int64x1_t
14500 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14501 vcopy_laneq_s64 (int64x1_t __a, const int __lane1,
14502 int64x2_t __b, const int __lane2)
14504 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14505 __a, __lane1);
14508 __extension__ extern __inline uint8x8_t
14509 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14510 vcopy_laneq_u8 (uint8x8_t __a, const int __lane1,
14511 uint8x16_t __b, const int __lane2)
14513 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14514 __a, __lane1);
14517 __extension__ extern __inline uint16x4_t
14518 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14519 vcopy_laneq_u16 (uint16x4_t __a, const int __lane1,
14520 uint16x8_t __b, const int __lane2)
14522 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14523 __a, __lane1);
14526 __extension__ extern __inline uint32x2_t
14527 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14528 vcopy_laneq_u32 (uint32x2_t __a, const int __lane1,
14529 uint32x4_t __b, const int __lane2)
14531 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14532 __a, __lane1);
14535 __extension__ extern __inline uint64x1_t
14536 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14537 vcopy_laneq_u64 (uint64x1_t __a, const int __lane1,
14538 uint64x2_t __b, const int __lane2)
14540 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14541 __a, __lane1);
14544 /* vcopyq_lane. */
14546 __extension__ extern __inline float32x4_t
14547 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14548 vcopyq_lane_f32 (float32x4_t __a, const int __lane1,
14549 float32x2_t __b, const int __lane2)
14551 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14552 __a, __lane1);
14555 __extension__ extern __inline float64x2_t
14556 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14557 vcopyq_lane_f64 (float64x2_t __a, const int __lane1,
14558 float64x1_t __b, const int __lane2)
14560 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14561 __a, __lane1);
14564 __extension__ extern __inline poly8x16_t
14565 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14566 vcopyq_lane_p8 (poly8x16_t __a, const int __lane1,
14567 poly8x8_t __b, const int __lane2)
14569 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14570 __a, __lane1);
14573 __extension__ extern __inline poly16x8_t
14574 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14575 vcopyq_lane_p16 (poly16x8_t __a, const int __lane1,
14576 poly16x4_t __b, const int __lane2)
14578 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14579 __a, __lane1);
14582 __extension__ extern __inline poly64x2_t
14583 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14584 vcopyq_lane_p64 (poly64x2_t __a, const int __lane1,
14585 poly64x1_t __b, const int __lane2)
14587 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14588 __a, __lane1);
14591 __extension__ extern __inline int8x16_t
14592 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14593 vcopyq_lane_s8 (int8x16_t __a, const int __lane1,
14594 int8x8_t __b, const int __lane2)
14596 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14597 __a, __lane1);
14600 __extension__ extern __inline int16x8_t
14601 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14602 vcopyq_lane_s16 (int16x8_t __a, const int __lane1,
14603 int16x4_t __b, const int __lane2)
14605 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14606 __a, __lane1);
14609 __extension__ extern __inline int32x4_t
14610 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14611 vcopyq_lane_s32 (int32x4_t __a, const int __lane1,
14612 int32x2_t __b, const int __lane2)
14614 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14615 __a, __lane1);
14618 __extension__ extern __inline int64x2_t
14619 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14620 vcopyq_lane_s64 (int64x2_t __a, const int __lane1,
14621 int64x1_t __b, const int __lane2)
14623 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14624 __a, __lane1);
14627 __extension__ extern __inline uint8x16_t
14628 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14629 vcopyq_lane_u8 (uint8x16_t __a, const int __lane1,
14630 uint8x8_t __b, const int __lane2)
14632 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14633 __a, __lane1);
14636 __extension__ extern __inline uint16x8_t
14637 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14638 vcopyq_lane_u16 (uint16x8_t __a, const int __lane1,
14639 uint16x4_t __b, const int __lane2)
14641 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14642 __a, __lane1);
14645 __extension__ extern __inline uint32x4_t
14646 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14647 vcopyq_lane_u32 (uint32x4_t __a, const int __lane1,
14648 uint32x2_t __b, const int __lane2)
14650 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14651 __a, __lane1);
14654 __extension__ extern __inline uint64x2_t
14655 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14656 vcopyq_lane_u64 (uint64x2_t __a, const int __lane1,
14657 uint64x1_t __b, const int __lane2)
14659 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14660 __a, __lane1);
14663 /* vcopyq_laneq. */
14665 __extension__ extern __inline float32x4_t
14666 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14667 vcopyq_laneq_f32 (float32x4_t __a, const int __lane1,
14668 float32x4_t __b, const int __lane2)
14670 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14671 __a, __lane1);
14674 __extension__ extern __inline float64x2_t
14675 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14676 vcopyq_laneq_f64 (float64x2_t __a, const int __lane1,
14677 float64x2_t __b, const int __lane2)
14679 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14680 __a, __lane1);
14683 __extension__ extern __inline poly8x16_t
14684 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14685 vcopyq_laneq_p8 (poly8x16_t __a, const int __lane1,
14686 poly8x16_t __b, const int __lane2)
14688 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14689 __a, __lane1);
14692 __extension__ extern __inline poly16x8_t
14693 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14694 vcopyq_laneq_p16 (poly16x8_t __a, const int __lane1,
14695 poly16x8_t __b, const int __lane2)
14697 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14698 __a, __lane1);
14701 __extension__ extern __inline poly64x2_t
14702 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14703 vcopyq_laneq_p64 (poly64x2_t __a, const int __lane1,
14704 poly64x2_t __b, const int __lane2)
14706 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14707 __a, __lane1);
14710 __extension__ extern __inline int8x16_t
14711 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14712 vcopyq_laneq_s8 (int8x16_t __a, const int __lane1,
14713 int8x16_t __b, const int __lane2)
14715 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14716 __a, __lane1);
14719 __extension__ extern __inline int16x8_t
14720 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14721 vcopyq_laneq_s16 (int16x8_t __a, const int __lane1,
14722 int16x8_t __b, const int __lane2)
14724 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14725 __a, __lane1);
14728 __extension__ extern __inline int32x4_t
14729 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14730 vcopyq_laneq_s32 (int32x4_t __a, const int __lane1,
14731 int32x4_t __b, const int __lane2)
14733 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14734 __a, __lane1);
14737 __extension__ extern __inline int64x2_t
14738 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14739 vcopyq_laneq_s64 (int64x2_t __a, const int __lane1,
14740 int64x2_t __b, const int __lane2)
14742 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14743 __a, __lane1);
14746 __extension__ extern __inline uint8x16_t
14747 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14748 vcopyq_laneq_u8 (uint8x16_t __a, const int __lane1,
14749 uint8x16_t __b, const int __lane2)
14751 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14752 __a, __lane1);
14755 __extension__ extern __inline uint16x8_t
14756 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14757 vcopyq_laneq_u16 (uint16x8_t __a, const int __lane1,
14758 uint16x8_t __b, const int __lane2)
14760 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14761 __a, __lane1);
14764 __extension__ extern __inline uint32x4_t
14765 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14766 vcopyq_laneq_u32 (uint32x4_t __a, const int __lane1,
14767 uint32x4_t __b, const int __lane2)
14769 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14770 __a, __lane1);
14773 __extension__ extern __inline uint64x2_t
14774 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14775 vcopyq_laneq_u64 (uint64x2_t __a, const int __lane1,
14776 uint64x2_t __b, const int __lane2)
14778 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14779 __a, __lane1);
14782 /* vcvt (double -> float). */
14784 __extension__ extern __inline float16x4_t
14785 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14786 vcvt_f16_f32 (float32x4_t __a)
14788 return __builtin_aarch64_float_truncate_lo_v4hf (__a);
14791 __extension__ extern __inline float16x8_t
14792 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14793 vcvt_high_f16_f32 (float16x4_t __a, float32x4_t __b)
14795 return __builtin_aarch64_float_truncate_hi_v8hf (__a, __b);
14798 __extension__ extern __inline float32x2_t
14799 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14800 vcvt_f32_f64 (float64x2_t __a)
14802 return __builtin_aarch64_float_truncate_lo_v2sf (__a);
14805 __extension__ extern __inline float32x4_t
14806 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14807 vcvt_high_f32_f64 (float32x2_t __a, float64x2_t __b)
14809 return __builtin_aarch64_float_truncate_hi_v4sf (__a, __b);
14812 /* vcvt (float -> double). */
14814 __extension__ extern __inline float32x4_t
14815 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14816 vcvt_f32_f16 (float16x4_t __a)
14818 return __builtin_aarch64_float_extend_lo_v4sf (__a);
14821 __extension__ extern __inline float64x2_t
14822 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14823 vcvt_f64_f32 (float32x2_t __a)
14826 return __builtin_aarch64_float_extend_lo_v2df (__a);
14829 __extension__ extern __inline float32x4_t
14830 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14831 vcvt_high_f32_f16 (float16x8_t __a)
14833 return __builtin_aarch64_vec_unpacks_hi_v8hf (__a);
14836 __extension__ extern __inline float64x2_t
14837 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14838 vcvt_high_f64_f32 (float32x4_t __a)
14840 return __builtin_aarch64_vec_unpacks_hi_v4sf (__a);
14843 /* vcvt (<u>fixed-point -> float). */
14845 __extension__ extern __inline float64_t
14846 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14847 vcvtd_n_f64_s64 (int64_t __a, const int __b)
14849 return __builtin_aarch64_scvtfdi (__a, __b);
14852 __extension__ extern __inline float64_t
14853 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14854 vcvtd_n_f64_u64 (uint64_t __a, const int __b)
14856 return __builtin_aarch64_ucvtfdi_sus (__a, __b);
14859 __extension__ extern __inline float32_t
14860 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14861 vcvts_n_f32_s32 (int32_t __a, const int __b)
14863 return __builtin_aarch64_scvtfsi (__a, __b);
14866 __extension__ extern __inline float32_t
14867 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14868 vcvts_n_f32_u32 (uint32_t __a, const int __b)
14870 return __builtin_aarch64_ucvtfsi_sus (__a, __b);
14873 __extension__ extern __inline float32x2_t
14874 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14875 vcvt_n_f32_s32 (int32x2_t __a, const int __b)
14877 return __builtin_aarch64_scvtfv2si (__a, __b);
14880 __extension__ extern __inline float32x2_t
14881 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14882 vcvt_n_f32_u32 (uint32x2_t __a, const int __b)
14884 return __builtin_aarch64_ucvtfv2si_sus (__a, __b);
14887 __extension__ extern __inline float64x1_t
14888 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14889 vcvt_n_f64_s64 (int64x1_t __a, const int __b)
14891 return (float64x1_t)
14892 { __builtin_aarch64_scvtfdi (vget_lane_s64 (__a, 0), __b) };
14895 __extension__ extern __inline float64x1_t
14896 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14897 vcvt_n_f64_u64 (uint64x1_t __a, const int __b)
14899 return (float64x1_t)
14900 { __builtin_aarch64_ucvtfdi_sus (vget_lane_u64 (__a, 0), __b) };
14903 __extension__ extern __inline float32x4_t
14904 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14905 vcvtq_n_f32_s32 (int32x4_t __a, const int __b)
14907 return __builtin_aarch64_scvtfv4si (__a, __b);
14910 __extension__ extern __inline float32x4_t
14911 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14912 vcvtq_n_f32_u32 (uint32x4_t __a, const int __b)
14914 return __builtin_aarch64_ucvtfv4si_sus (__a, __b);
14917 __extension__ extern __inline float64x2_t
14918 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14919 vcvtq_n_f64_s64 (int64x2_t __a, const int __b)
14921 return __builtin_aarch64_scvtfv2di (__a, __b);
14924 __extension__ extern __inline float64x2_t
14925 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14926 vcvtq_n_f64_u64 (uint64x2_t __a, const int __b)
14928 return __builtin_aarch64_ucvtfv2di_sus (__a, __b);
14931 /* vcvt (float -> <u>fixed-point). */
14933 __extension__ extern __inline int64_t
14934 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14935 vcvtd_n_s64_f64 (float64_t __a, const int __b)
14937 return __builtin_aarch64_fcvtzsdf (__a, __b);
14940 __extension__ extern __inline uint64_t
14941 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14942 vcvtd_n_u64_f64 (float64_t __a, const int __b)
14944 return __builtin_aarch64_fcvtzudf_uss (__a, __b);
14947 __extension__ extern __inline int32_t
14948 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14949 vcvts_n_s32_f32 (float32_t __a, const int __b)
14951 return __builtin_aarch64_fcvtzssf (__a, __b);
14954 __extension__ extern __inline uint32_t
14955 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14956 vcvts_n_u32_f32 (float32_t __a, const int __b)
14958 return __builtin_aarch64_fcvtzusf_uss (__a, __b);
14961 __extension__ extern __inline int32x2_t
14962 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14963 vcvt_n_s32_f32 (float32x2_t __a, const int __b)
14965 return __builtin_aarch64_fcvtzsv2sf (__a, __b);
14968 __extension__ extern __inline uint32x2_t
14969 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14970 vcvt_n_u32_f32 (float32x2_t __a, const int __b)
14972 return __builtin_aarch64_fcvtzuv2sf_uss (__a, __b);
14975 __extension__ extern __inline int64x1_t
14976 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14977 vcvt_n_s64_f64 (float64x1_t __a, const int __b)
14979 return (int64x1_t)
14980 { __builtin_aarch64_fcvtzsdf (vget_lane_f64 (__a, 0), __b) };
14983 __extension__ extern __inline uint64x1_t
14984 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14985 vcvt_n_u64_f64 (float64x1_t __a, const int __b)
14987 return (uint64x1_t)
14988 { __builtin_aarch64_fcvtzudf_uss (vget_lane_f64 (__a, 0), __b) };
14991 __extension__ extern __inline int32x4_t
14992 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14993 vcvtq_n_s32_f32 (float32x4_t __a, const int __b)
14995 return __builtin_aarch64_fcvtzsv4sf (__a, __b);
14998 __extension__ extern __inline uint32x4_t
14999 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15000 vcvtq_n_u32_f32 (float32x4_t __a, const int __b)
15002 return __builtin_aarch64_fcvtzuv4sf_uss (__a, __b);
15005 __extension__ extern __inline int64x2_t
15006 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15007 vcvtq_n_s64_f64 (float64x2_t __a, const int __b)
15009 return __builtin_aarch64_fcvtzsv2df (__a, __b);
15012 __extension__ extern __inline uint64x2_t
15013 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15014 vcvtq_n_u64_f64 (float64x2_t __a, const int __b)
15016 return __builtin_aarch64_fcvtzuv2df_uss (__a, __b);
15019 /* vcvt (<u>int -> float) */
15021 __extension__ extern __inline float64_t
15022 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15023 vcvtd_f64_s64 (int64_t __a)
15025 return (float64_t) __a;
15028 __extension__ extern __inline float64_t
15029 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15030 vcvtd_f64_u64 (uint64_t __a)
15032 return (float64_t) __a;
15035 __extension__ extern __inline float32_t
15036 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15037 vcvts_f32_s32 (int32_t __a)
15039 return (float32_t) __a;
15042 __extension__ extern __inline float32_t
15043 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15044 vcvts_f32_u32 (uint32_t __a)
15046 return (float32_t) __a;
15049 __extension__ extern __inline float32x2_t
15050 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15051 vcvt_f32_s32 (int32x2_t __a)
15053 return __builtin_aarch64_floatv2siv2sf (__a);
15056 __extension__ extern __inline float32x2_t
15057 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15058 vcvt_f32_u32 (uint32x2_t __a)
15060 return __builtin_aarch64_floatunsv2siv2sf ((int32x2_t) __a);
15063 __extension__ extern __inline float64x1_t
15064 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15065 vcvt_f64_s64 (int64x1_t __a)
15067 return (float64x1_t) { vget_lane_s64 (__a, 0) };
15070 __extension__ extern __inline float64x1_t
15071 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15072 vcvt_f64_u64 (uint64x1_t __a)
15074 return (float64x1_t) { vget_lane_u64 (__a, 0) };
15077 __extension__ extern __inline float32x4_t
15078 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15079 vcvtq_f32_s32 (int32x4_t __a)
15081 return __builtin_aarch64_floatv4siv4sf (__a);
15084 __extension__ extern __inline float32x4_t
15085 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15086 vcvtq_f32_u32 (uint32x4_t __a)
15088 return __builtin_aarch64_floatunsv4siv4sf ((int32x4_t) __a);
15091 __extension__ extern __inline float64x2_t
15092 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15093 vcvtq_f64_s64 (int64x2_t __a)
15095 return __builtin_aarch64_floatv2div2df (__a);
15098 __extension__ extern __inline float64x2_t
15099 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15100 vcvtq_f64_u64 (uint64x2_t __a)
15102 return __builtin_aarch64_floatunsv2div2df ((int64x2_t) __a);
15105 /* vcvt (float -> <u>int) */
15107 __extension__ extern __inline int64_t
15108 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15109 vcvtd_s64_f64 (float64_t __a)
15111 return (int64_t) __a;
15114 __extension__ extern __inline uint64_t
15115 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15116 vcvtd_u64_f64 (float64_t __a)
15118 return (uint64_t) __a;
15121 __extension__ extern __inline int32_t
15122 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15123 vcvts_s32_f32 (float32_t __a)
15125 return (int32_t) __a;
15128 __extension__ extern __inline uint32_t
15129 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15130 vcvts_u32_f32 (float32_t __a)
15132 return (uint32_t) __a;
15135 __extension__ extern __inline int32x2_t
15136 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15137 vcvt_s32_f32 (float32x2_t __a)
15139 return __builtin_aarch64_lbtruncv2sfv2si (__a);
15142 __extension__ extern __inline uint32x2_t
15143 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15144 vcvt_u32_f32 (float32x2_t __a)
15146 return __builtin_aarch64_lbtruncuv2sfv2si_us (__a);
15149 __extension__ extern __inline int32x4_t
15150 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15151 vcvtq_s32_f32 (float32x4_t __a)
15153 return __builtin_aarch64_lbtruncv4sfv4si (__a);
15156 __extension__ extern __inline uint32x4_t
15157 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15158 vcvtq_u32_f32 (float32x4_t __a)
15160 return __builtin_aarch64_lbtruncuv4sfv4si_us (__a);
15163 __extension__ extern __inline int64x1_t
15164 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15165 vcvt_s64_f64 (float64x1_t __a)
15167 return (int64x1_t) {vcvtd_s64_f64 (__a[0])};
15170 __extension__ extern __inline uint64x1_t
15171 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15172 vcvt_u64_f64 (float64x1_t __a)
15174 return (uint64x1_t) {vcvtd_u64_f64 (__a[0])};
15177 __extension__ extern __inline int64x2_t
15178 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15179 vcvtq_s64_f64 (float64x2_t __a)
15181 return __builtin_aarch64_lbtruncv2dfv2di (__a);
15184 __extension__ extern __inline uint64x2_t
15185 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15186 vcvtq_u64_f64 (float64x2_t __a)
15188 return __builtin_aarch64_lbtruncuv2dfv2di_us (__a);
15191 /* vcvta */
15193 __extension__ extern __inline int64_t
15194 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15195 vcvtad_s64_f64 (float64_t __a)
15197 return __builtin_aarch64_lrounddfdi (__a);
15200 __extension__ extern __inline uint64_t
15201 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15202 vcvtad_u64_f64 (float64_t __a)
15204 return __builtin_aarch64_lroundudfdi_us (__a);
15207 __extension__ extern __inline int32_t
15208 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15209 vcvtas_s32_f32 (float32_t __a)
15211 return __builtin_aarch64_lroundsfsi (__a);
15214 __extension__ extern __inline uint32_t
15215 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15216 vcvtas_u32_f32 (float32_t __a)
15218 return __builtin_aarch64_lroundusfsi_us (__a);
15221 __extension__ extern __inline int32x2_t
15222 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15223 vcvta_s32_f32 (float32x2_t __a)
15225 return __builtin_aarch64_lroundv2sfv2si (__a);
15228 __extension__ extern __inline uint32x2_t
15229 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15230 vcvta_u32_f32 (float32x2_t __a)
15232 return __builtin_aarch64_lrounduv2sfv2si_us (__a);
15235 __extension__ extern __inline int32x4_t
15236 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15237 vcvtaq_s32_f32 (float32x4_t __a)
15239 return __builtin_aarch64_lroundv4sfv4si (__a);
15242 __extension__ extern __inline uint32x4_t
15243 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15244 vcvtaq_u32_f32 (float32x4_t __a)
15246 return __builtin_aarch64_lrounduv4sfv4si_us (__a);
15249 __extension__ extern __inline int64x1_t
15250 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15251 vcvta_s64_f64 (float64x1_t __a)
15253 return (int64x1_t) {vcvtad_s64_f64 (__a[0])};
15256 __extension__ extern __inline uint64x1_t
15257 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15258 vcvta_u64_f64 (float64x1_t __a)
15260 return (uint64x1_t) {vcvtad_u64_f64 (__a[0])};
15263 __extension__ extern __inline int64x2_t
15264 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15265 vcvtaq_s64_f64 (float64x2_t __a)
15267 return __builtin_aarch64_lroundv2dfv2di (__a);
15270 __extension__ extern __inline uint64x2_t
15271 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15272 vcvtaq_u64_f64 (float64x2_t __a)
15274 return __builtin_aarch64_lrounduv2dfv2di_us (__a);
15277 /* vcvtm */
15279 __extension__ extern __inline int64_t
15280 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15281 vcvtmd_s64_f64 (float64_t __a)
15283 return __builtin_llfloor (__a);
15286 __extension__ extern __inline uint64_t
15287 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15288 vcvtmd_u64_f64 (float64_t __a)
15290 return __builtin_aarch64_lfloorudfdi_us (__a);
15293 __extension__ extern __inline int32_t
15294 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15295 vcvtms_s32_f32 (float32_t __a)
15297 return __builtin_ifloorf (__a);
15300 __extension__ extern __inline uint32_t
15301 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15302 vcvtms_u32_f32 (float32_t __a)
15304 return __builtin_aarch64_lfloorusfsi_us (__a);
15307 __extension__ extern __inline int32x2_t
15308 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15309 vcvtm_s32_f32 (float32x2_t __a)
15311 return __builtin_aarch64_lfloorv2sfv2si (__a);
15314 __extension__ extern __inline uint32x2_t
15315 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15316 vcvtm_u32_f32 (float32x2_t __a)
15318 return __builtin_aarch64_lflooruv2sfv2si_us (__a);
15321 __extension__ extern __inline int32x4_t
15322 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15323 vcvtmq_s32_f32 (float32x4_t __a)
15325 return __builtin_aarch64_lfloorv4sfv4si (__a);
15328 __extension__ extern __inline uint32x4_t
15329 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15330 vcvtmq_u32_f32 (float32x4_t __a)
15332 return __builtin_aarch64_lflooruv4sfv4si_us (__a);
15335 __extension__ extern __inline int64x1_t
15336 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15337 vcvtm_s64_f64 (float64x1_t __a)
15339 return (int64x1_t) {vcvtmd_s64_f64 (__a[0])};
15342 __extension__ extern __inline uint64x1_t
15343 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15344 vcvtm_u64_f64 (float64x1_t __a)
15346 return (uint64x1_t) {vcvtmd_u64_f64 (__a[0])};
15349 __extension__ extern __inline int64x2_t
15350 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15351 vcvtmq_s64_f64 (float64x2_t __a)
15353 return __builtin_aarch64_lfloorv2dfv2di (__a);
15356 __extension__ extern __inline uint64x2_t
15357 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15358 vcvtmq_u64_f64 (float64x2_t __a)
15360 return __builtin_aarch64_lflooruv2dfv2di_us (__a);
15363 /* vcvtn */
15365 __extension__ extern __inline int64_t
15366 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15367 vcvtnd_s64_f64 (float64_t __a)
15369 return __builtin_aarch64_lfrintndfdi (__a);
15372 __extension__ extern __inline uint64_t
15373 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15374 vcvtnd_u64_f64 (float64_t __a)
15376 return __builtin_aarch64_lfrintnudfdi_us (__a);
15379 __extension__ extern __inline int32_t
15380 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15381 vcvtns_s32_f32 (float32_t __a)
15383 return __builtin_aarch64_lfrintnsfsi (__a);
15386 __extension__ extern __inline uint32_t
15387 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15388 vcvtns_u32_f32 (float32_t __a)
15390 return __builtin_aarch64_lfrintnusfsi_us (__a);
15393 __extension__ extern __inline int32x2_t
15394 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15395 vcvtn_s32_f32 (float32x2_t __a)
15397 return __builtin_aarch64_lfrintnv2sfv2si (__a);
15400 __extension__ extern __inline uint32x2_t
15401 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15402 vcvtn_u32_f32 (float32x2_t __a)
15404 return __builtin_aarch64_lfrintnuv2sfv2si_us (__a);
15407 __extension__ extern __inline int32x4_t
15408 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15409 vcvtnq_s32_f32 (float32x4_t __a)
15411 return __builtin_aarch64_lfrintnv4sfv4si (__a);
15414 __extension__ extern __inline uint32x4_t
15415 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15416 vcvtnq_u32_f32 (float32x4_t __a)
15418 return __builtin_aarch64_lfrintnuv4sfv4si_us (__a);
15421 __extension__ extern __inline int64x1_t
15422 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15423 vcvtn_s64_f64 (float64x1_t __a)
15425 return (int64x1_t) {vcvtnd_s64_f64 (__a[0])};
15428 __extension__ extern __inline uint64x1_t
15429 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15430 vcvtn_u64_f64 (float64x1_t __a)
15432 return (uint64x1_t) {vcvtnd_u64_f64 (__a[0])};
15435 __extension__ extern __inline int64x2_t
15436 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15437 vcvtnq_s64_f64 (float64x2_t __a)
15439 return __builtin_aarch64_lfrintnv2dfv2di (__a);
15442 __extension__ extern __inline uint64x2_t
15443 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15444 vcvtnq_u64_f64 (float64x2_t __a)
15446 return __builtin_aarch64_lfrintnuv2dfv2di_us (__a);
15449 /* vcvtp */
15451 __extension__ extern __inline int64_t
15452 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15453 vcvtpd_s64_f64 (float64_t __a)
15455 return __builtin_llceil (__a);
15458 __extension__ extern __inline uint64_t
15459 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15460 vcvtpd_u64_f64 (float64_t __a)
15462 return __builtin_aarch64_lceiludfdi_us (__a);
15465 __extension__ extern __inline int32_t
15466 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15467 vcvtps_s32_f32 (float32_t __a)
15469 return __builtin_iceilf (__a);
15472 __extension__ extern __inline uint32_t
15473 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15474 vcvtps_u32_f32 (float32_t __a)
15476 return __builtin_aarch64_lceilusfsi_us (__a);
15479 __extension__ extern __inline int32x2_t
15480 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15481 vcvtp_s32_f32 (float32x2_t __a)
15483 return __builtin_aarch64_lceilv2sfv2si (__a);
15486 __extension__ extern __inline uint32x2_t
15487 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15488 vcvtp_u32_f32 (float32x2_t __a)
15490 return __builtin_aarch64_lceiluv2sfv2si_us (__a);
15493 __extension__ extern __inline int32x4_t
15494 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15495 vcvtpq_s32_f32 (float32x4_t __a)
15497 return __builtin_aarch64_lceilv4sfv4si (__a);
15500 __extension__ extern __inline uint32x4_t
15501 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15502 vcvtpq_u32_f32 (float32x4_t __a)
15504 return __builtin_aarch64_lceiluv4sfv4si_us (__a);
15507 __extension__ extern __inline int64x1_t
15508 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15509 vcvtp_s64_f64 (float64x1_t __a)
15511 return (int64x1_t) {vcvtpd_s64_f64 (__a[0])};
15514 __extension__ extern __inline uint64x1_t
15515 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15516 vcvtp_u64_f64 (float64x1_t __a)
15518 return (uint64x1_t) {vcvtpd_u64_f64 (__a[0])};
15521 __extension__ extern __inline int64x2_t
15522 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15523 vcvtpq_s64_f64 (float64x2_t __a)
15525 return __builtin_aarch64_lceilv2dfv2di (__a);
15528 __extension__ extern __inline uint64x2_t
15529 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15530 vcvtpq_u64_f64 (float64x2_t __a)
15532 return __builtin_aarch64_lceiluv2dfv2di_us (__a);
15535 /* vdup_n */
15537 __extension__ extern __inline float16x4_t
15538 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15539 vdup_n_f16 (float16_t __a)
15541 return (float16x4_t) {__a, __a, __a, __a};
15544 __extension__ extern __inline float32x2_t
15545 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15546 vdup_n_f32 (float32_t __a)
15548 return (float32x2_t) {__a, __a};
15551 __extension__ extern __inline float64x1_t
15552 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15553 vdup_n_f64 (float64_t __a)
15555 return (float64x1_t) {__a};
15558 __extension__ extern __inline poly8x8_t
15559 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15560 vdup_n_p8 (poly8_t __a)
15562 return (poly8x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
15565 __extension__ extern __inline poly16x4_t
15566 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15567 vdup_n_p16 (poly16_t __a)
15569 return (poly16x4_t) {__a, __a, __a, __a};
15572 __extension__ extern __inline poly64x1_t
15573 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15574 vdup_n_p64 (poly64_t __a)
15576 return (poly64x1_t) {__a};
15579 __extension__ extern __inline int8x8_t
15580 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15581 vdup_n_s8 (int8_t __a)
15583 return (int8x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
15586 __extension__ extern __inline int16x4_t
15587 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15588 vdup_n_s16 (int16_t __a)
15590 return (int16x4_t) {__a, __a, __a, __a};
15593 __extension__ extern __inline int32x2_t
15594 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15595 vdup_n_s32 (int32_t __a)
15597 return (int32x2_t) {__a, __a};
15600 __extension__ extern __inline int64x1_t
15601 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15602 vdup_n_s64 (int64_t __a)
15604 return (int64x1_t) {__a};
15607 __extension__ extern __inline uint8x8_t
15608 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15609 vdup_n_u8 (uint8_t __a)
15611 return (uint8x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
15614 __extension__ extern __inline uint16x4_t
15615 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15616 vdup_n_u16 (uint16_t __a)
15618 return (uint16x4_t) {__a, __a, __a, __a};
15621 __extension__ extern __inline uint32x2_t
15622 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15623 vdup_n_u32 (uint32_t __a)
15625 return (uint32x2_t) {__a, __a};
15628 __extension__ extern __inline uint64x1_t
15629 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15630 vdup_n_u64 (uint64_t __a)
15632 return (uint64x1_t) {__a};
15635 /* vdupq_n */
15637 __extension__ extern __inline float16x8_t
15638 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15639 vdupq_n_f16 (float16_t __a)
15641 return (float16x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
15644 __extension__ extern __inline float32x4_t
15645 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15646 vdupq_n_f32 (float32_t __a)
15648 return (float32x4_t) {__a, __a, __a, __a};
15651 __extension__ extern __inline float64x2_t
15652 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15653 vdupq_n_f64 (float64_t __a)
15655 return (float64x2_t) {__a, __a};
15658 __extension__ extern __inline poly8x16_t
15659 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15660 vdupq_n_p8 (uint32_t __a)
15662 return (poly8x16_t) {__a, __a, __a, __a, __a, __a, __a, __a,
15663 __a, __a, __a, __a, __a, __a, __a, __a};
15666 __extension__ extern __inline poly16x8_t
15667 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15668 vdupq_n_p16 (uint32_t __a)
15670 return (poly16x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
15673 __extension__ extern __inline poly64x2_t
15674 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15675 vdupq_n_p64 (uint64_t __a)
15677 return (poly64x2_t) {__a, __a};
15680 __extension__ extern __inline int8x16_t
15681 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15682 vdupq_n_s8 (int32_t __a)
15684 return (int8x16_t) {__a, __a, __a, __a, __a, __a, __a, __a,
15685 __a, __a, __a, __a, __a, __a, __a, __a};
15688 __extension__ extern __inline int16x8_t
15689 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15690 vdupq_n_s16 (int32_t __a)
15692 return (int16x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
15695 __extension__ extern __inline int32x4_t
15696 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15697 vdupq_n_s32 (int32_t __a)
15699 return (int32x4_t) {__a, __a, __a, __a};
15702 __extension__ extern __inline int64x2_t
15703 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15704 vdupq_n_s64 (int64_t __a)
15706 return (int64x2_t) {__a, __a};
15709 __extension__ extern __inline uint8x16_t
15710 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15711 vdupq_n_u8 (uint32_t __a)
15713 return (uint8x16_t) {__a, __a, __a, __a, __a, __a, __a, __a,
15714 __a, __a, __a, __a, __a, __a, __a, __a};
15717 __extension__ extern __inline uint16x8_t
15718 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15719 vdupq_n_u16 (uint32_t __a)
15721 return (uint16x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
15724 __extension__ extern __inline uint32x4_t
15725 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15726 vdupq_n_u32 (uint32_t __a)
15728 return (uint32x4_t) {__a, __a, __a, __a};
15731 __extension__ extern __inline uint64x2_t
15732 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15733 vdupq_n_u64 (uint64_t __a)
15735 return (uint64x2_t) {__a, __a};
15738 /* vdup_lane */
15740 __extension__ extern __inline float16x4_t
15741 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15742 vdup_lane_f16 (float16x4_t __a, const int __b)
15744 return __aarch64_vdup_lane_f16 (__a, __b);
15747 __extension__ extern __inline float32x2_t
15748 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15749 vdup_lane_f32 (float32x2_t __a, const int __b)
15751 return __aarch64_vdup_lane_f32 (__a, __b);
15754 __extension__ extern __inline float64x1_t
15755 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15756 vdup_lane_f64 (float64x1_t __a, const int __b)
15758 return __aarch64_vdup_lane_f64 (__a, __b);
15761 __extension__ extern __inline poly8x8_t
15762 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15763 vdup_lane_p8 (poly8x8_t __a, const int __b)
15765 return __aarch64_vdup_lane_p8 (__a, __b);
15768 __extension__ extern __inline poly16x4_t
15769 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15770 vdup_lane_p16 (poly16x4_t __a, const int __b)
15772 return __aarch64_vdup_lane_p16 (__a, __b);
15775 __extension__ extern __inline poly64x1_t
15776 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15777 vdup_lane_p64 (poly64x1_t __a, const int __b)
15779 return __aarch64_vdup_lane_p64 (__a, __b);
15782 __extension__ extern __inline int8x8_t
15783 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15784 vdup_lane_s8 (int8x8_t __a, const int __b)
15786 return __aarch64_vdup_lane_s8 (__a, __b);
15789 __extension__ extern __inline int16x4_t
15790 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15791 vdup_lane_s16 (int16x4_t __a, const int __b)
15793 return __aarch64_vdup_lane_s16 (__a, __b);
15796 __extension__ extern __inline int32x2_t
15797 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15798 vdup_lane_s32 (int32x2_t __a, const int __b)
15800 return __aarch64_vdup_lane_s32 (__a, __b);
15803 __extension__ extern __inline int64x1_t
15804 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15805 vdup_lane_s64 (int64x1_t __a, const int __b)
15807 return __aarch64_vdup_lane_s64 (__a, __b);
15810 __extension__ extern __inline uint8x8_t
15811 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15812 vdup_lane_u8 (uint8x8_t __a, const int __b)
15814 return __aarch64_vdup_lane_u8 (__a, __b);
15817 __extension__ extern __inline uint16x4_t
15818 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15819 vdup_lane_u16 (uint16x4_t __a, const int __b)
15821 return __aarch64_vdup_lane_u16 (__a, __b);
15824 __extension__ extern __inline uint32x2_t
15825 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15826 vdup_lane_u32 (uint32x2_t __a, const int __b)
15828 return __aarch64_vdup_lane_u32 (__a, __b);
15831 __extension__ extern __inline uint64x1_t
15832 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15833 vdup_lane_u64 (uint64x1_t __a, const int __b)
15835 return __aarch64_vdup_lane_u64 (__a, __b);
15838 /* vdup_laneq */
15840 __extension__ extern __inline float16x4_t
15841 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15842 vdup_laneq_f16 (float16x8_t __a, const int __b)
15844 return __aarch64_vdup_laneq_f16 (__a, __b);
15847 __extension__ extern __inline float32x2_t
15848 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15849 vdup_laneq_f32 (float32x4_t __a, const int __b)
15851 return __aarch64_vdup_laneq_f32 (__a, __b);
15854 __extension__ extern __inline float64x1_t
15855 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15856 vdup_laneq_f64 (float64x2_t __a, const int __b)
15858 return __aarch64_vdup_laneq_f64 (__a, __b);
15861 __extension__ extern __inline poly8x8_t
15862 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15863 vdup_laneq_p8 (poly8x16_t __a, const int __b)
15865 return __aarch64_vdup_laneq_p8 (__a, __b);
15868 __extension__ extern __inline poly16x4_t
15869 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15870 vdup_laneq_p16 (poly16x8_t __a, const int __b)
15872 return __aarch64_vdup_laneq_p16 (__a, __b);
15875 __extension__ extern __inline poly64x1_t
15876 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15877 vdup_laneq_p64 (poly64x2_t __a, const int __b)
15879 return __aarch64_vdup_laneq_p64 (__a, __b);
15882 __extension__ extern __inline int8x8_t
15883 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15884 vdup_laneq_s8 (int8x16_t __a, const int __b)
15886 return __aarch64_vdup_laneq_s8 (__a, __b);
15889 __extension__ extern __inline int16x4_t
15890 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15891 vdup_laneq_s16 (int16x8_t __a, const int __b)
15893 return __aarch64_vdup_laneq_s16 (__a, __b);
15896 __extension__ extern __inline int32x2_t
15897 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15898 vdup_laneq_s32 (int32x4_t __a, const int __b)
15900 return __aarch64_vdup_laneq_s32 (__a, __b);
15903 __extension__ extern __inline int64x1_t
15904 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15905 vdup_laneq_s64 (int64x2_t __a, const int __b)
15907 return __aarch64_vdup_laneq_s64 (__a, __b);
15910 __extension__ extern __inline uint8x8_t
15911 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15912 vdup_laneq_u8 (uint8x16_t __a, const int __b)
15914 return __aarch64_vdup_laneq_u8 (__a, __b);
15917 __extension__ extern __inline uint16x4_t
15918 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15919 vdup_laneq_u16 (uint16x8_t __a, const int __b)
15921 return __aarch64_vdup_laneq_u16 (__a, __b);
15924 __extension__ extern __inline uint32x2_t
15925 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15926 vdup_laneq_u32 (uint32x4_t __a, const int __b)
15928 return __aarch64_vdup_laneq_u32 (__a, __b);
15931 __extension__ extern __inline uint64x1_t
15932 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15933 vdup_laneq_u64 (uint64x2_t __a, const int __b)
15935 return __aarch64_vdup_laneq_u64 (__a, __b);
15938 /* vdupq_lane */
15940 __extension__ extern __inline float16x8_t
15941 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15942 vdupq_lane_f16 (float16x4_t __a, const int __b)
15944 return __aarch64_vdupq_lane_f16 (__a, __b);
15947 __extension__ extern __inline float32x4_t
15948 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15949 vdupq_lane_f32 (float32x2_t __a, const int __b)
15951 return __aarch64_vdupq_lane_f32 (__a, __b);
15954 __extension__ extern __inline float64x2_t
15955 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15956 vdupq_lane_f64 (float64x1_t __a, const int __b)
15958 return __aarch64_vdupq_lane_f64 (__a, __b);
15961 __extension__ extern __inline poly8x16_t
15962 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15963 vdupq_lane_p8 (poly8x8_t __a, const int __b)
15965 return __aarch64_vdupq_lane_p8 (__a, __b);
15968 __extension__ extern __inline poly16x8_t
15969 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15970 vdupq_lane_p16 (poly16x4_t __a, const int __b)
15972 return __aarch64_vdupq_lane_p16 (__a, __b);
15975 __extension__ extern __inline poly64x2_t
15976 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15977 vdupq_lane_p64 (poly64x1_t __a, const int __b)
15979 return __aarch64_vdupq_lane_p64 (__a, __b);
15982 __extension__ extern __inline int8x16_t
15983 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15984 vdupq_lane_s8 (int8x8_t __a, const int __b)
15986 return __aarch64_vdupq_lane_s8 (__a, __b);
15989 __extension__ extern __inline int16x8_t
15990 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15991 vdupq_lane_s16 (int16x4_t __a, const int __b)
15993 return __aarch64_vdupq_lane_s16 (__a, __b);
15996 __extension__ extern __inline int32x4_t
15997 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15998 vdupq_lane_s32 (int32x2_t __a, const int __b)
16000 return __aarch64_vdupq_lane_s32 (__a, __b);
16003 __extension__ extern __inline int64x2_t
16004 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16005 vdupq_lane_s64 (int64x1_t __a, const int __b)
16007 return __aarch64_vdupq_lane_s64 (__a, __b);
16010 __extension__ extern __inline uint8x16_t
16011 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16012 vdupq_lane_u8 (uint8x8_t __a, const int __b)
16014 return __aarch64_vdupq_lane_u8 (__a, __b);
16017 __extension__ extern __inline uint16x8_t
16018 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16019 vdupq_lane_u16 (uint16x4_t __a, const int __b)
16021 return __aarch64_vdupq_lane_u16 (__a, __b);
16024 __extension__ extern __inline uint32x4_t
16025 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16026 vdupq_lane_u32 (uint32x2_t __a, const int __b)
16028 return __aarch64_vdupq_lane_u32 (__a, __b);
16031 __extension__ extern __inline uint64x2_t
16032 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16033 vdupq_lane_u64 (uint64x1_t __a, const int __b)
16035 return __aarch64_vdupq_lane_u64 (__a, __b);
16038 /* vdupq_laneq */
16040 __extension__ extern __inline float16x8_t
16041 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16042 vdupq_laneq_f16 (float16x8_t __a, const int __b)
16044 return __aarch64_vdupq_laneq_f16 (__a, __b);
16047 __extension__ extern __inline float32x4_t
16048 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16049 vdupq_laneq_f32 (float32x4_t __a, const int __b)
16051 return __aarch64_vdupq_laneq_f32 (__a, __b);
16054 __extension__ extern __inline float64x2_t
16055 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16056 vdupq_laneq_f64 (float64x2_t __a, const int __b)
16058 return __aarch64_vdupq_laneq_f64 (__a, __b);
16061 __extension__ extern __inline poly8x16_t
16062 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16063 vdupq_laneq_p8 (poly8x16_t __a, const int __b)
16065 return __aarch64_vdupq_laneq_p8 (__a, __b);
16068 __extension__ extern __inline poly16x8_t
16069 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16070 vdupq_laneq_p16 (poly16x8_t __a, const int __b)
16072 return __aarch64_vdupq_laneq_p16 (__a, __b);
16075 __extension__ extern __inline poly64x2_t
16076 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16077 vdupq_laneq_p64 (poly64x2_t __a, const int __b)
16079 return __aarch64_vdupq_laneq_p64 (__a, __b);
16082 __extension__ extern __inline int8x16_t
16083 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16084 vdupq_laneq_s8 (int8x16_t __a, const int __b)
16086 return __aarch64_vdupq_laneq_s8 (__a, __b);
16089 __extension__ extern __inline int16x8_t
16090 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16091 vdupq_laneq_s16 (int16x8_t __a, const int __b)
16093 return __aarch64_vdupq_laneq_s16 (__a, __b);
16096 __extension__ extern __inline int32x4_t
16097 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16098 vdupq_laneq_s32 (int32x4_t __a, const int __b)
16100 return __aarch64_vdupq_laneq_s32 (__a, __b);
16103 __extension__ extern __inline int64x2_t
16104 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16105 vdupq_laneq_s64 (int64x2_t __a, const int __b)
16107 return __aarch64_vdupq_laneq_s64 (__a, __b);
16110 __extension__ extern __inline uint8x16_t
16111 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16112 vdupq_laneq_u8 (uint8x16_t __a, const int __b)
16114 return __aarch64_vdupq_laneq_u8 (__a, __b);
16117 __extension__ extern __inline uint16x8_t
16118 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16119 vdupq_laneq_u16 (uint16x8_t __a, const int __b)
16121 return __aarch64_vdupq_laneq_u16 (__a, __b);
16124 __extension__ extern __inline uint32x4_t
16125 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16126 vdupq_laneq_u32 (uint32x4_t __a, const int __b)
16128 return __aarch64_vdupq_laneq_u32 (__a, __b);
16131 __extension__ extern __inline uint64x2_t
16132 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16133 vdupq_laneq_u64 (uint64x2_t __a, const int __b)
16135 return __aarch64_vdupq_laneq_u64 (__a, __b);
16138 /* vdupb_lane */
16139 __extension__ extern __inline poly8_t
16140 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16141 vdupb_lane_p8 (poly8x8_t __a, const int __b)
16143 return __aarch64_vget_lane_any (__a, __b);
16146 __extension__ extern __inline int8_t
16147 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16148 vdupb_lane_s8 (int8x8_t __a, const int __b)
16150 return __aarch64_vget_lane_any (__a, __b);
16153 __extension__ extern __inline uint8_t
16154 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16155 vdupb_lane_u8 (uint8x8_t __a, const int __b)
16157 return __aarch64_vget_lane_any (__a, __b);
16160 /* vduph_lane */
16162 __extension__ extern __inline float16_t
16163 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16164 vduph_lane_f16 (float16x4_t __a, const int __b)
16166 return __aarch64_vget_lane_any (__a, __b);
16169 __extension__ extern __inline poly16_t
16170 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16171 vduph_lane_p16 (poly16x4_t __a, const int __b)
16173 return __aarch64_vget_lane_any (__a, __b);
16176 __extension__ extern __inline int16_t
16177 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16178 vduph_lane_s16 (int16x4_t __a, const int __b)
16180 return __aarch64_vget_lane_any (__a, __b);
16183 __extension__ extern __inline uint16_t
16184 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16185 vduph_lane_u16 (uint16x4_t __a, const int __b)
16187 return __aarch64_vget_lane_any (__a, __b);
16190 /* vdups_lane */
16192 __extension__ extern __inline float32_t
16193 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16194 vdups_lane_f32 (float32x2_t __a, const int __b)
16196 return __aarch64_vget_lane_any (__a, __b);
16199 __extension__ extern __inline int32_t
16200 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16201 vdups_lane_s32 (int32x2_t __a, const int __b)
16203 return __aarch64_vget_lane_any (__a, __b);
16206 __extension__ extern __inline uint32_t
16207 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16208 vdups_lane_u32 (uint32x2_t __a, const int __b)
16210 return __aarch64_vget_lane_any (__a, __b);
16213 /* vdupd_lane */
16214 __extension__ extern __inline float64_t
16215 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16216 vdupd_lane_f64 (float64x1_t __a, const int __b)
16218 __AARCH64_LANE_CHECK (__a, __b);
16219 return __a[0];
16222 __extension__ extern __inline int64_t
16223 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16224 vdupd_lane_s64 (int64x1_t __a, const int __b)
16226 __AARCH64_LANE_CHECK (__a, __b);
16227 return __a[0];
16230 __extension__ extern __inline uint64_t
16231 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16232 vdupd_lane_u64 (uint64x1_t __a, const int __b)
16234 __AARCH64_LANE_CHECK (__a, __b);
16235 return __a[0];
16238 /* vdupb_laneq */
16239 __extension__ extern __inline poly8_t
16240 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16241 vdupb_laneq_p8 (poly8x16_t __a, const int __b)
16243 return __aarch64_vget_lane_any (__a, __b);
16246 __extension__ extern __inline int8_t
16247 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16248 vdupb_laneq_s8 (int8x16_t __a, const int __b)
16250 return __aarch64_vget_lane_any (__a, __b);
16253 __extension__ extern __inline uint8_t
16254 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16255 vdupb_laneq_u8 (uint8x16_t __a, const int __b)
16257 return __aarch64_vget_lane_any (__a, __b);
16260 /* vduph_laneq */
16262 __extension__ extern __inline float16_t
16263 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16264 vduph_laneq_f16 (float16x8_t __a, const int __b)
16266 return __aarch64_vget_lane_any (__a, __b);
16269 __extension__ extern __inline poly16_t
16270 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16271 vduph_laneq_p16 (poly16x8_t __a, const int __b)
16273 return __aarch64_vget_lane_any (__a, __b);
16276 __extension__ extern __inline int16_t
16277 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16278 vduph_laneq_s16 (int16x8_t __a, const int __b)
16280 return __aarch64_vget_lane_any (__a, __b);
16283 __extension__ extern __inline uint16_t
16284 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16285 vduph_laneq_u16 (uint16x8_t __a, const int __b)
16287 return __aarch64_vget_lane_any (__a, __b);
16290 /* vdups_laneq */
16292 __extension__ extern __inline float32_t
16293 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16294 vdups_laneq_f32 (float32x4_t __a, const int __b)
16296 return __aarch64_vget_lane_any (__a, __b);
16299 __extension__ extern __inline int32_t
16300 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16301 vdups_laneq_s32 (int32x4_t __a, const int __b)
16303 return __aarch64_vget_lane_any (__a, __b);
16306 __extension__ extern __inline uint32_t
16307 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16308 vdups_laneq_u32 (uint32x4_t __a, const int __b)
16310 return __aarch64_vget_lane_any (__a, __b);
16313 /* vdupd_laneq */
16314 __extension__ extern __inline float64_t
16315 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16316 vdupd_laneq_f64 (float64x2_t __a, const int __b)
16318 return __aarch64_vget_lane_any (__a, __b);
16321 __extension__ extern __inline int64_t
16322 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16323 vdupd_laneq_s64 (int64x2_t __a, const int __b)
16325 return __aarch64_vget_lane_any (__a, __b);
16328 __extension__ extern __inline uint64_t
16329 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16330 vdupd_laneq_u64 (uint64x2_t __a, const int __b)
16332 return __aarch64_vget_lane_any (__a, __b);
16335 /* vext */
16337 __extension__ extern __inline float16x4_t
16338 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16339 vext_f16 (float16x4_t __a, float16x4_t __b, __const int __c)
16341 __AARCH64_LANE_CHECK (__a, __c);
16342 #ifdef __AARCH64EB__
16343 return __builtin_shuffle (__b, __a,
16344 (uint16x4_t) {4 - __c, 5 - __c, 6 - __c, 7 - __c});
16345 #else
16346 return __builtin_shuffle (__a, __b,
16347 (uint16x4_t) {__c, __c + 1, __c + 2, __c + 3});
16348 #endif
16351 __extension__ extern __inline float32x2_t
16352 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16353 vext_f32 (float32x2_t __a, float32x2_t __b, __const int __c)
16355 __AARCH64_LANE_CHECK (__a, __c);
16356 #ifdef __AARCH64EB__
16357 return __builtin_shuffle (__b, __a, (uint32x2_t) {2-__c, 3-__c});
16358 #else
16359 return __builtin_shuffle (__a, __b, (uint32x2_t) {__c, __c+1});
16360 #endif
16363 __extension__ extern __inline float64x1_t
16364 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16365 vext_f64 (float64x1_t __a, float64x1_t __b, __const int __c)
16367 __AARCH64_LANE_CHECK (__a, __c);
16368 /* The only possible index to the assembler instruction returns element 0. */
16369 return __a;
16371 __extension__ extern __inline poly8x8_t
16372 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16373 vext_p8 (poly8x8_t __a, poly8x8_t __b, __const int __c)
16375 __AARCH64_LANE_CHECK (__a, __c);
16376 #ifdef __AARCH64EB__
16377 return __builtin_shuffle (__b, __a, (uint8x8_t)
16378 {8-__c, 9-__c, 10-__c, 11-__c, 12-__c, 13-__c, 14-__c, 15-__c});
16379 #else
16380 return __builtin_shuffle (__a, __b,
16381 (uint8x8_t) {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7});
16382 #endif
16385 __extension__ extern __inline poly16x4_t
16386 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16387 vext_p16 (poly16x4_t __a, poly16x4_t __b, __const int __c)
16389 __AARCH64_LANE_CHECK (__a, __c);
16390 #ifdef __AARCH64EB__
16391 return __builtin_shuffle (__b, __a,
16392 (uint16x4_t) {4-__c, 5-__c, 6-__c, 7-__c});
16393 #else
16394 return __builtin_shuffle (__a, __b, (uint16x4_t) {__c, __c+1, __c+2, __c+3});
16395 #endif
16398 __extension__ extern __inline poly64x1_t
16399 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16400 vext_p64 (poly64x1_t __a, poly64x1_t __b, __const int __c)
16402 __AARCH64_LANE_CHECK (__a, __c);
16403 /* The only possible index to the assembler instruction returns element 0. */
16404 return __a;
16407 __extension__ extern __inline int8x8_t
16408 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16409 vext_s8 (int8x8_t __a, int8x8_t __b, __const int __c)
16411 __AARCH64_LANE_CHECK (__a, __c);
16412 #ifdef __AARCH64EB__
16413 return __builtin_shuffle (__b, __a, (uint8x8_t)
16414 {8-__c, 9-__c, 10-__c, 11-__c, 12-__c, 13-__c, 14-__c, 15-__c});
16415 #else
16416 return __builtin_shuffle (__a, __b,
16417 (uint8x8_t) {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7});
16418 #endif
16421 __extension__ extern __inline int16x4_t
16422 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16423 vext_s16 (int16x4_t __a, int16x4_t __b, __const int __c)
16425 __AARCH64_LANE_CHECK (__a, __c);
16426 #ifdef __AARCH64EB__
16427 return __builtin_shuffle (__b, __a,
16428 (uint16x4_t) {4-__c, 5-__c, 6-__c, 7-__c});
16429 #else
16430 return __builtin_shuffle (__a, __b, (uint16x4_t) {__c, __c+1, __c+2, __c+3});
16431 #endif
16434 __extension__ extern __inline int32x2_t
16435 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16436 vext_s32 (int32x2_t __a, int32x2_t __b, __const int __c)
16438 __AARCH64_LANE_CHECK (__a, __c);
16439 #ifdef __AARCH64EB__
16440 return __builtin_shuffle (__b, __a, (uint32x2_t) {2-__c, 3-__c});
16441 #else
16442 return __builtin_shuffle (__a, __b, (uint32x2_t) {__c, __c+1});
16443 #endif
16446 __extension__ extern __inline int64x1_t
16447 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16448 vext_s64 (int64x1_t __a, int64x1_t __b, __const int __c)
16450 __AARCH64_LANE_CHECK (__a, __c);
16451 /* The only possible index to the assembler instruction returns element 0. */
16452 return __a;
16455 __extension__ extern __inline uint8x8_t
16456 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16457 vext_u8 (uint8x8_t __a, uint8x8_t __b, __const int __c)
16459 __AARCH64_LANE_CHECK (__a, __c);
16460 #ifdef __AARCH64EB__
16461 return __builtin_shuffle (__b, __a, (uint8x8_t)
16462 {8-__c, 9-__c, 10-__c, 11-__c, 12-__c, 13-__c, 14-__c, 15-__c});
16463 #else
16464 return __builtin_shuffle (__a, __b,
16465 (uint8x8_t) {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7});
16466 #endif
16469 __extension__ extern __inline uint16x4_t
16470 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16471 vext_u16 (uint16x4_t __a, uint16x4_t __b, __const int __c)
16473 __AARCH64_LANE_CHECK (__a, __c);
16474 #ifdef __AARCH64EB__
16475 return __builtin_shuffle (__b, __a,
16476 (uint16x4_t) {4-__c, 5-__c, 6-__c, 7-__c});
16477 #else
16478 return __builtin_shuffle (__a, __b, (uint16x4_t) {__c, __c+1, __c+2, __c+3});
16479 #endif
16482 __extension__ extern __inline uint32x2_t
16483 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16484 vext_u32 (uint32x2_t __a, uint32x2_t __b, __const int __c)
16486 __AARCH64_LANE_CHECK (__a, __c);
16487 #ifdef __AARCH64EB__
16488 return __builtin_shuffle (__b, __a, (uint32x2_t) {2-__c, 3-__c});
16489 #else
16490 return __builtin_shuffle (__a, __b, (uint32x2_t) {__c, __c+1});
16491 #endif
16494 __extension__ extern __inline uint64x1_t
16495 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16496 vext_u64 (uint64x1_t __a, uint64x1_t __b, __const int __c)
16498 __AARCH64_LANE_CHECK (__a, __c);
16499 /* The only possible index to the assembler instruction returns element 0. */
16500 return __a;
16503 __extension__ extern __inline float16x8_t
16504 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16505 vextq_f16 (float16x8_t __a, float16x8_t __b, __const int __c)
16507 __AARCH64_LANE_CHECK (__a, __c);
16508 #ifdef __AARCH64EB__
16509 return __builtin_shuffle (__b, __a,
16510 (uint16x8_t) {8 - __c, 9 - __c, 10 - __c, 11 - __c,
16511 12 - __c, 13 - __c, 14 - __c,
16512 15 - __c});
16513 #else
16514 return __builtin_shuffle (__a, __b,
16515 (uint16x8_t) {__c, __c + 1, __c + 2, __c + 3,
16516 __c + 4, __c + 5, __c + 6, __c + 7});
16517 #endif
16520 __extension__ extern __inline float32x4_t
16521 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16522 vextq_f32 (float32x4_t __a, float32x4_t __b, __const int __c)
16524 __AARCH64_LANE_CHECK (__a, __c);
16525 #ifdef __AARCH64EB__
16526 return __builtin_shuffle (__b, __a,
16527 (uint32x4_t) {4-__c, 5-__c, 6-__c, 7-__c});
16528 #else
16529 return __builtin_shuffle (__a, __b, (uint32x4_t) {__c, __c+1, __c+2, __c+3});
16530 #endif
16533 __extension__ extern __inline float64x2_t
16534 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16535 vextq_f64 (float64x2_t __a, float64x2_t __b, __const int __c)
16537 __AARCH64_LANE_CHECK (__a, __c);
16538 #ifdef __AARCH64EB__
16539 return __builtin_shuffle (__b, __a, (uint64x2_t) {2-__c, 3-__c});
16540 #else
16541 return __builtin_shuffle (__a, __b, (uint64x2_t) {__c, __c+1});
16542 #endif
16545 __extension__ extern __inline poly8x16_t
16546 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16547 vextq_p8 (poly8x16_t __a, poly8x16_t __b, __const int __c)
16549 __AARCH64_LANE_CHECK (__a, __c);
16550 #ifdef __AARCH64EB__
16551 return __builtin_shuffle (__b, __a, (uint8x16_t)
16552 {16-__c, 17-__c, 18-__c, 19-__c, 20-__c, 21-__c, 22-__c, 23-__c,
16553 24-__c, 25-__c, 26-__c, 27-__c, 28-__c, 29-__c, 30-__c, 31-__c});
16554 #else
16555 return __builtin_shuffle (__a, __b, (uint8x16_t)
16556 {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7,
16557 __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15});
16558 #endif
16561 __extension__ extern __inline poly16x8_t
16562 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16563 vextq_p16 (poly16x8_t __a, poly16x8_t __b, __const int __c)
16565 __AARCH64_LANE_CHECK (__a, __c);
16566 #ifdef __AARCH64EB__
16567 return __builtin_shuffle (__b, __a, (uint16x8_t)
16568 {8-__c, 9-__c, 10-__c, 11-__c, 12-__c, 13-__c, 14-__c, 15-__c});
16569 #else
16570 return __builtin_shuffle (__a, __b,
16571 (uint16x8_t) {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7});
16572 #endif
16575 __extension__ extern __inline poly64x2_t
16576 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16577 vextq_p64 (poly64x2_t __a, poly64x2_t __b, __const int __c)
16579 __AARCH64_LANE_CHECK (__a, __c);
16580 #ifdef __AARCH64EB__
16581 return __builtin_shuffle (__b, __a, (uint64x2_t) {2-__c, 3-__c});
16582 #else
16583 return __builtin_shuffle (__a, __b, (uint64x2_t) {__c, __c+1});
16584 #endif
16587 __extension__ extern __inline int8x16_t
16588 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16589 vextq_s8 (int8x16_t __a, int8x16_t __b, __const int __c)
16591 __AARCH64_LANE_CHECK (__a, __c);
16592 #ifdef __AARCH64EB__
16593 return __builtin_shuffle (__b, __a, (uint8x16_t)
16594 {16-__c, 17-__c, 18-__c, 19-__c, 20-__c, 21-__c, 22-__c, 23-__c,
16595 24-__c, 25-__c, 26-__c, 27-__c, 28-__c, 29-__c, 30-__c, 31-__c});
16596 #else
16597 return __builtin_shuffle (__a, __b, (uint8x16_t)
16598 {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7,
16599 __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15});
16600 #endif
16603 __extension__ extern __inline int16x8_t
16604 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16605 vextq_s16 (int16x8_t __a, int16x8_t __b, __const int __c)
16607 __AARCH64_LANE_CHECK (__a, __c);
16608 #ifdef __AARCH64EB__
16609 return __builtin_shuffle (__b, __a, (uint16x8_t)
16610 {8-__c, 9-__c, 10-__c, 11-__c, 12-__c, 13-__c, 14-__c, 15-__c});
16611 #else
16612 return __builtin_shuffle (__a, __b,
16613 (uint16x8_t) {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7});
16614 #endif
16617 __extension__ extern __inline int32x4_t
16618 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16619 vextq_s32 (int32x4_t __a, int32x4_t __b, __const int __c)
16621 __AARCH64_LANE_CHECK (__a, __c);
16622 #ifdef __AARCH64EB__
16623 return __builtin_shuffle (__b, __a,
16624 (uint32x4_t) {4-__c, 5-__c, 6-__c, 7-__c});
16625 #else
16626 return __builtin_shuffle (__a, __b, (uint32x4_t) {__c, __c+1, __c+2, __c+3});
16627 #endif
16630 __extension__ extern __inline int64x2_t
16631 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16632 vextq_s64 (int64x2_t __a, int64x2_t __b, __const int __c)
16634 __AARCH64_LANE_CHECK (__a, __c);
16635 #ifdef __AARCH64EB__
16636 return __builtin_shuffle (__b, __a, (uint64x2_t) {2-__c, 3-__c});
16637 #else
16638 return __builtin_shuffle (__a, __b, (uint64x2_t) {__c, __c+1});
16639 #endif
16642 __extension__ extern __inline uint8x16_t
16643 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16644 vextq_u8 (uint8x16_t __a, uint8x16_t __b, __const int __c)
16646 __AARCH64_LANE_CHECK (__a, __c);
16647 #ifdef __AARCH64EB__
16648 return __builtin_shuffle (__b, __a, (uint8x16_t)
16649 {16-__c, 17-__c, 18-__c, 19-__c, 20-__c, 21-__c, 22-__c, 23-__c,
16650 24-__c, 25-__c, 26-__c, 27-__c, 28-__c, 29-__c, 30-__c, 31-__c});
16651 #else
16652 return __builtin_shuffle (__a, __b, (uint8x16_t)
16653 {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7,
16654 __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15});
16655 #endif
16658 __extension__ extern __inline uint16x8_t
16659 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16660 vextq_u16 (uint16x8_t __a, uint16x8_t __b, __const int __c)
16662 __AARCH64_LANE_CHECK (__a, __c);
16663 #ifdef __AARCH64EB__
16664 return __builtin_shuffle (__b, __a, (uint16x8_t)
16665 {8-__c, 9-__c, 10-__c, 11-__c, 12-__c, 13-__c, 14-__c, 15-__c});
16666 #else
16667 return __builtin_shuffle (__a, __b,
16668 (uint16x8_t) {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7});
16669 #endif
16672 __extension__ extern __inline uint32x4_t
16673 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16674 vextq_u32 (uint32x4_t __a, uint32x4_t __b, __const int __c)
16676 __AARCH64_LANE_CHECK (__a, __c);
16677 #ifdef __AARCH64EB__
16678 return __builtin_shuffle (__b, __a,
16679 (uint32x4_t) {4-__c, 5-__c, 6-__c, 7-__c});
16680 #else
16681 return __builtin_shuffle (__a, __b, (uint32x4_t) {__c, __c+1, __c+2, __c+3});
16682 #endif
16685 __extension__ extern __inline uint64x2_t
16686 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16687 vextq_u64 (uint64x2_t __a, uint64x2_t __b, __const int __c)
16689 __AARCH64_LANE_CHECK (__a, __c);
16690 #ifdef __AARCH64EB__
16691 return __builtin_shuffle (__b, __a, (uint64x2_t) {2-__c, 3-__c});
16692 #else
16693 return __builtin_shuffle (__a, __b, (uint64x2_t) {__c, __c+1});
16694 #endif
16697 /* vfma */
16699 __extension__ extern __inline float64x1_t
16700 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16701 vfma_f64 (float64x1_t __a, float64x1_t __b, float64x1_t __c)
16703 return (float64x1_t) {__builtin_fma (__b[0], __c[0], __a[0])};
16706 __extension__ extern __inline float32x2_t
16707 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16708 vfma_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c)
16710 return __builtin_aarch64_fmav2sf (__b, __c, __a);
16713 __extension__ extern __inline float32x4_t
16714 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16715 vfmaq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c)
16717 return __builtin_aarch64_fmav4sf (__b, __c, __a);
16720 __extension__ extern __inline float64x2_t
16721 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16722 vfmaq_f64 (float64x2_t __a, float64x2_t __b, float64x2_t __c)
16724 return __builtin_aarch64_fmav2df (__b, __c, __a);
16727 __extension__ extern __inline float32x2_t
16728 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16729 vfma_n_f32 (float32x2_t __a, float32x2_t __b, float32_t __c)
16731 return __builtin_aarch64_fmav2sf (__b, vdup_n_f32 (__c), __a);
16734 __extension__ extern __inline float64x1_t
16735 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16736 vfma_n_f64 (float64x1_t __a, float64x1_t __b, float64_t __c)
16738 return (float64x1_t) {__b[0] * __c + __a[0]};
16741 __extension__ extern __inline float32x4_t
16742 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16743 vfmaq_n_f32 (float32x4_t __a, float32x4_t __b, float32_t __c)
16745 return __builtin_aarch64_fmav4sf (__b, vdupq_n_f32 (__c), __a);
16748 __extension__ extern __inline float64x2_t
16749 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16750 vfmaq_n_f64 (float64x2_t __a, float64x2_t __b, float64_t __c)
16752 return __builtin_aarch64_fmav2df (__b, vdupq_n_f64 (__c), __a);
16755 /* vfma_lane */
16757 __extension__ extern __inline float32x2_t
16758 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16759 vfma_lane_f32 (float32x2_t __a, float32x2_t __b,
16760 float32x2_t __c, const int __lane)
16762 return __builtin_aarch64_fmav2sf (__b,
16763 __aarch64_vdup_lane_f32 (__c, __lane),
16764 __a);
16767 __extension__ extern __inline float64x1_t
16768 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16769 vfma_lane_f64 (float64x1_t __a, float64x1_t __b,
16770 float64x1_t __c, const int __lane)
16772 return (float64x1_t) {__builtin_fma (__b[0], __c[0], __a[0])};
16775 __extension__ extern __inline float64_t
16776 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16777 vfmad_lane_f64 (float64_t __a, float64_t __b,
16778 float64x1_t __c, const int __lane)
16780 return __builtin_fma (__b, __c[0], __a);
16783 __extension__ extern __inline float32_t
16784 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16785 vfmas_lane_f32 (float32_t __a, float32_t __b,
16786 float32x2_t __c, const int __lane)
16788 return __builtin_fmaf (__b, __aarch64_vget_lane_any (__c, __lane), __a);
16791 /* vfma_laneq */
16793 __extension__ extern __inline float32x2_t
16794 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16795 vfma_laneq_f32 (float32x2_t __a, float32x2_t __b,
16796 float32x4_t __c, const int __lane)
16798 return __builtin_aarch64_fmav2sf (__b,
16799 __aarch64_vdup_laneq_f32 (__c, __lane),
16800 __a);
16803 __extension__ extern __inline float64x1_t
16804 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16805 vfma_laneq_f64 (float64x1_t __a, float64x1_t __b,
16806 float64x2_t __c, const int __lane)
16808 float64_t __c0 = __aarch64_vget_lane_any (__c, __lane);
16809 return (float64x1_t) {__builtin_fma (__b[0], __c0, __a[0])};
16812 __extension__ extern __inline float64_t
16813 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16814 vfmad_laneq_f64 (float64_t __a, float64_t __b,
16815 float64x2_t __c, const int __lane)
16817 return __builtin_fma (__b, __aarch64_vget_lane_any (__c, __lane), __a);
16820 __extension__ extern __inline float32_t
16821 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16822 vfmas_laneq_f32 (float32_t __a, float32_t __b,
16823 float32x4_t __c, const int __lane)
16825 return __builtin_fmaf (__b, __aarch64_vget_lane_any (__c, __lane), __a);
16828 /* vfmaq_lane */
16830 __extension__ extern __inline float32x4_t
16831 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16832 vfmaq_lane_f32 (float32x4_t __a, float32x4_t __b,
16833 float32x2_t __c, const int __lane)
16835 return __builtin_aarch64_fmav4sf (__b,
16836 __aarch64_vdupq_lane_f32 (__c, __lane),
16837 __a);
16840 __extension__ extern __inline float64x2_t
16841 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16842 vfmaq_lane_f64 (float64x2_t __a, float64x2_t __b,
16843 float64x1_t __c, const int __lane)
16845 return __builtin_aarch64_fmav2df (__b, vdupq_n_f64 (__c[0]), __a);
16848 /* vfmaq_laneq */
16850 __extension__ extern __inline float32x4_t
16851 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16852 vfmaq_laneq_f32 (float32x4_t __a, float32x4_t __b,
16853 float32x4_t __c, const int __lane)
16855 return __builtin_aarch64_fmav4sf (__b,
16856 __aarch64_vdupq_laneq_f32 (__c, __lane),
16857 __a);
16860 __extension__ extern __inline float64x2_t
16861 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16862 vfmaq_laneq_f64 (float64x2_t __a, float64x2_t __b,
16863 float64x2_t __c, const int __lane)
16865 return __builtin_aarch64_fmav2df (__b,
16866 __aarch64_vdupq_laneq_f64 (__c, __lane),
16867 __a);
16870 /* vfms */
16872 __extension__ extern __inline float64x1_t
16873 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16874 vfms_f64 (float64x1_t __a, float64x1_t __b, float64x1_t __c)
16876 return (float64x1_t) {__builtin_fma (-__b[0], __c[0], __a[0])};
16879 __extension__ extern __inline float32x2_t
16880 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16881 vfms_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c)
16883 return __builtin_aarch64_fmav2sf (-__b, __c, __a);
16886 __extension__ extern __inline float32x4_t
16887 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16888 vfmsq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c)
16890 return __builtin_aarch64_fmav4sf (-__b, __c, __a);
16893 __extension__ extern __inline float64x2_t
16894 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16895 vfmsq_f64 (float64x2_t __a, float64x2_t __b, float64x2_t __c)
16897 return __builtin_aarch64_fmav2df (-__b, __c, __a);
16900 __extension__ extern __inline float32x2_t
16901 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16902 vfms_n_f32 (float32x2_t __a, float32x2_t __b, float32_t __c)
16904 return __builtin_aarch64_fmav2sf (-__b, vdup_n_f32 (__c), __a);
16907 __extension__ extern __inline float64x1_t
16908 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16909 vfms_n_f64 (float64x1_t __a, float64x1_t __b, float64_t __c)
16911 return (float64x1_t) {-__b[0] * __c + __a[0]};
16914 __extension__ extern __inline float32x4_t
16915 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16916 vfmsq_n_f32 (float32x4_t __a, float32x4_t __b, float32_t __c)
16918 return __builtin_aarch64_fmav4sf (-__b, vdupq_n_f32 (__c), __a);
16921 __extension__ extern __inline float64x2_t
16922 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16923 vfmsq_n_f64 (float64x2_t __a, float64x2_t __b, float64_t __c)
16925 return __builtin_aarch64_fmav2df (-__b, vdupq_n_f64 (__c), __a);
16928 /* vfms_lane */
16930 __extension__ extern __inline float32x2_t
16931 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16932 vfms_lane_f32 (float32x2_t __a, float32x2_t __b,
16933 float32x2_t __c, const int __lane)
16935 return __builtin_aarch64_fmav2sf (-__b,
16936 __aarch64_vdup_lane_f32 (__c, __lane),
16937 __a);
16940 __extension__ extern __inline float64x1_t
16941 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16942 vfms_lane_f64 (float64x1_t __a, float64x1_t __b,
16943 float64x1_t __c, const int __lane)
16945 return (float64x1_t) {__builtin_fma (-__b[0], __c[0], __a[0])};
16948 __extension__ extern __inline float64_t
16949 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16950 vfmsd_lane_f64 (float64_t __a, float64_t __b,
16951 float64x1_t __c, const int __lane)
16953 return __builtin_fma (-__b, __c[0], __a);
16956 __extension__ extern __inline float32_t
16957 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16958 vfmss_lane_f32 (float32_t __a, float32_t __b,
16959 float32x2_t __c, const int __lane)
16961 return __builtin_fmaf (-__b, __aarch64_vget_lane_any (__c, __lane), __a);
16964 /* vfms_laneq */
16966 __extension__ extern __inline float32x2_t
16967 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16968 vfms_laneq_f32 (float32x2_t __a, float32x2_t __b,
16969 float32x4_t __c, const int __lane)
16971 return __builtin_aarch64_fmav2sf (-__b,
16972 __aarch64_vdup_laneq_f32 (__c, __lane),
16973 __a);
16976 __extension__ extern __inline float64x1_t
16977 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16978 vfms_laneq_f64 (float64x1_t __a, float64x1_t __b,
16979 float64x2_t __c, const int __lane)
16981 float64_t __c0 = __aarch64_vget_lane_any (__c, __lane);
16982 return (float64x1_t) {__builtin_fma (-__b[0], __c0, __a[0])};
16985 __extension__ extern __inline float64_t
16986 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16987 vfmsd_laneq_f64 (float64_t __a, float64_t __b,
16988 float64x2_t __c, const int __lane)
16990 return __builtin_fma (-__b, __aarch64_vget_lane_any (__c, __lane), __a);
16993 __extension__ extern __inline float32_t
16994 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16995 vfmss_laneq_f32 (float32_t __a, float32_t __b,
16996 float32x4_t __c, const int __lane)
16998 return __builtin_fmaf (-__b, __aarch64_vget_lane_any (__c, __lane), __a);
17001 /* vfmsq_lane */
17003 __extension__ extern __inline float32x4_t
17004 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17005 vfmsq_lane_f32 (float32x4_t __a, float32x4_t __b,
17006 float32x2_t __c, const int __lane)
17008 return __builtin_aarch64_fmav4sf (-__b,
17009 __aarch64_vdupq_lane_f32 (__c, __lane),
17010 __a);
17013 __extension__ extern __inline float64x2_t
17014 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17015 vfmsq_lane_f64 (float64x2_t __a, float64x2_t __b,
17016 float64x1_t __c, const int __lane)
17018 return __builtin_aarch64_fmav2df (-__b, vdupq_n_f64 (__c[0]), __a);
17021 /* vfmsq_laneq */
17023 __extension__ extern __inline float32x4_t
17024 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17025 vfmsq_laneq_f32 (float32x4_t __a, float32x4_t __b,
17026 float32x4_t __c, const int __lane)
17028 return __builtin_aarch64_fmav4sf (-__b,
17029 __aarch64_vdupq_laneq_f32 (__c, __lane),
17030 __a);
17033 __extension__ extern __inline float64x2_t
17034 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17035 vfmsq_laneq_f64 (float64x2_t __a, float64x2_t __b,
17036 float64x2_t __c, const int __lane)
17038 return __builtin_aarch64_fmav2df (-__b,
17039 __aarch64_vdupq_laneq_f64 (__c, __lane),
17040 __a);
17043 /* vld1 */
17045 __extension__ extern __inline float16x4_t
17046 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17047 vld1_f16 (const float16_t *__a)
17049 return __builtin_aarch64_ld1v4hf (__a);
17052 __extension__ extern __inline float32x2_t
17053 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17054 vld1_f32 (const float32_t *a)
17056 return __builtin_aarch64_ld1v2sf ((const __builtin_aarch64_simd_sf *) a);
17059 __extension__ extern __inline float64x1_t
17060 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17061 vld1_f64 (const float64_t *a)
17063 return (float64x1_t) {*a};
17066 __extension__ extern __inline poly8x8_t
17067 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17068 vld1_p8 (const poly8_t *a)
17070 return (poly8x8_t)
17071 __builtin_aarch64_ld1v8qi ((const __builtin_aarch64_simd_qi *) a);
17074 __extension__ extern __inline poly16x4_t
17075 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17076 vld1_p16 (const poly16_t *a)
17078 return (poly16x4_t)
17079 __builtin_aarch64_ld1v4hi ((const __builtin_aarch64_simd_hi *) a);
17082 __extension__ extern __inline poly64x1_t
17083 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17084 vld1_p64 (const poly64_t *a)
17086 return (poly64x1_t) {*a};
17089 __extension__ extern __inline int8x8_t
17090 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17091 vld1_s8 (const int8_t *a)
17093 return __builtin_aarch64_ld1v8qi ((const __builtin_aarch64_simd_qi *) a);
17096 __extension__ extern __inline int16x4_t
17097 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17098 vld1_s16 (const int16_t *a)
17100 return __builtin_aarch64_ld1v4hi ((const __builtin_aarch64_simd_hi *) a);
17103 __extension__ extern __inline int32x2_t
17104 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17105 vld1_s32 (const int32_t *a)
17107 return __builtin_aarch64_ld1v2si ((const __builtin_aarch64_simd_si *) a);
17110 __extension__ extern __inline int64x1_t
17111 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17112 vld1_s64 (const int64_t *a)
17114 return (int64x1_t) {*a};
17117 __extension__ extern __inline uint8x8_t
17118 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17119 vld1_u8 (const uint8_t *a)
17121 return (uint8x8_t)
17122 __builtin_aarch64_ld1v8qi ((const __builtin_aarch64_simd_qi *) a);
17125 __extension__ extern __inline uint16x4_t
17126 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17127 vld1_u16 (const uint16_t *a)
17129 return (uint16x4_t)
17130 __builtin_aarch64_ld1v4hi ((const __builtin_aarch64_simd_hi *) a);
17133 __extension__ extern __inline uint32x2_t
17134 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17135 vld1_u32 (const uint32_t *a)
17137 return (uint32x2_t)
17138 __builtin_aarch64_ld1v2si ((const __builtin_aarch64_simd_si *) a);
17141 __extension__ extern __inline uint64x1_t
17142 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17143 vld1_u64 (const uint64_t *a)
17145 return (uint64x1_t) {*a};
17148 /* vld1x3 */
17150 __extension__ extern __inline uint8x8x3_t
17151 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17152 vld1_u8_x3 (const uint8_t *__a)
17154 uint8x8x3_t __i;
17155 __builtin_aarch64_simd_ci __o;
17156 __o = (__builtin_aarch64_simd_ci)__builtin_aarch64_ld1x3v8qi ((const __builtin_aarch64_simd_qi *) __a);
17157 __i.val[0] = (uint8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 0);
17158 __i.val[1] = (uint8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 1);
17159 __i.val[2] = (uint8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 2);
17160 return __i;
17163 __extension__ extern __inline int8x8x3_t
17164 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17165 vld1_s8_x3 (const uint8_t *__a)
17167 int8x8x3_t __i;
17168 __builtin_aarch64_simd_ci __o;
17169 __o = __builtin_aarch64_ld1x3v8qi ((const __builtin_aarch64_simd_qi *) __a);
17170 __i.val[0] = (int8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 0);
17171 __i.val[1] = (int8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 1);
17172 __i.val[2] = (int8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 2);
17173 return __i;
17176 __extension__ extern __inline uint16x4x3_t
17177 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17178 vld1_u16_x3 (const uint16_t *__a)
17180 uint16x4x3_t __i;
17181 __builtin_aarch64_simd_ci __o;
17182 __o = __builtin_aarch64_ld1x3v4hi ((const __builtin_aarch64_simd_hi *) __a);
17183 __i.val[0] = (uint16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 0);
17184 __i.val[1] = (uint16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 1);
17185 __i.val[2] = (uint16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 2);
17186 return __i;
17189 __extension__ extern __inline int16x4x3_t
17190 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17191 vld1_s16_x3 (const int16_t *__a)
17193 int16x4x3_t __i;
17194 __builtin_aarch64_simd_ci __o;
17195 __o = __builtin_aarch64_ld1x3v4hi ((const __builtin_aarch64_simd_hi *) __a);
17196 __i.val[0] = (int16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 0);
17197 __i.val[1] = (int16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 1);
17198 __i.val[2] = (int16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 2);
17199 return __i;
17202 __extension__ extern __inline uint32x2x3_t
17203 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17204 vld1_u32_x3 (const uint32_t *__a)
17206 uint32x2x3_t __i;
17207 __builtin_aarch64_simd_ci __o;
17208 __o = __builtin_aarch64_ld1x3v2si ((const __builtin_aarch64_simd_si *) __a);
17209 __i.val[0] = (uint32x2_t) __builtin_aarch64_get_dregciv2si (__o, 0);
17210 __i.val[1] = (uint32x2_t) __builtin_aarch64_get_dregciv2si (__o, 1);
17211 __i.val[2] = (uint32x2_t) __builtin_aarch64_get_dregciv2si (__o, 2);
17212 return __i;
17215 __extension__ extern __inline int32x2x3_t
17216 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17217 vld1_s32_x3 (const uint32_t *__a)
17219 int32x2x3_t __i;
17220 __builtin_aarch64_simd_ci __o;
17221 __o = __builtin_aarch64_ld1x3v2si ((const __builtin_aarch64_simd_si *) __a);
17222 __i.val[0] = (int32x2_t) __builtin_aarch64_get_dregciv2si (__o, 0);
17223 __i.val[1] = (int32x2_t) __builtin_aarch64_get_dregciv2si (__o, 1);
17224 __i.val[2] = (int32x2_t) __builtin_aarch64_get_dregciv2si (__o, 2);
17225 return __i;
17228 __extension__ extern __inline uint64x1x3_t
17229 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17230 vld1_u64_x3 (const uint64_t *__a)
17232 uint64x1x3_t __i;
17233 __builtin_aarch64_simd_ci __o;
17234 __o = __builtin_aarch64_ld1x3di ((const __builtin_aarch64_simd_di *) __a);
17235 __i.val[0] = (uint64x1_t) __builtin_aarch64_get_dregcidi (__o, 0);
17236 __i.val[1] = (uint64x1_t) __builtin_aarch64_get_dregcidi (__o, 1);
17237 __i.val[2] = (uint64x1_t) __builtin_aarch64_get_dregcidi (__o, 2);
17238 return __i;
17241 __extension__ extern __inline int64x1x3_t
17242 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17243 vld1_s64_x3 (const int64_t *__a)
17245 int64x1x3_t __i;
17246 __builtin_aarch64_simd_ci __o;
17247 __o = __builtin_aarch64_ld1x3di ((const __builtin_aarch64_simd_di *) __a);
17248 __i.val[0] = (int64x1_t) __builtin_aarch64_get_dregcidi (__o, 0);
17249 __i.val[1] = (int64x1_t) __builtin_aarch64_get_dregcidi (__o, 1);
17250 __i.val[2] = (int64x1_t) __builtin_aarch64_get_dregcidi (__o, 2);
17252 return __i;
17255 __extension__ extern __inline float16x4x3_t
17256 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17257 vld1_f16_x3 (const float16_t *__a)
17259 float16x4x3_t __i;
17260 __builtin_aarch64_simd_ci __o;
17261 __o = __builtin_aarch64_ld1x3v4hf ((const __builtin_aarch64_simd_hf *) __a);
17262 __i.val[0] = (float16x4_t) __builtin_aarch64_get_dregciv4hf (__o, 0);
17263 __i.val[1] = (float16x4_t) __builtin_aarch64_get_dregciv4hf (__o, 1);
17264 __i.val[2] = (float16x4_t) __builtin_aarch64_get_dregciv4hf (__o, 2);
17265 return __i;
17268 __extension__ extern __inline float32x2x3_t
17269 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17270 vld1_f32_x3 (const float32_t *__a)
17272 float32x2x3_t __i;
17273 __builtin_aarch64_simd_ci __o;
17274 __o = __builtin_aarch64_ld1x3v2sf ((const __builtin_aarch64_simd_sf *) __a);
17275 __i.val[0] = (float32x2_t) __builtin_aarch64_get_dregciv2sf (__o, 0);
17276 __i.val[1] = (float32x2_t) __builtin_aarch64_get_dregciv2sf (__o, 1);
17277 __i.val[2] = (float32x2_t) __builtin_aarch64_get_dregciv2sf (__o, 2);
17278 return __i;
17281 __extension__ extern __inline float64x1x3_t
17282 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17283 vld1_f64_x3 (const float64_t *__a)
17285 float64x1x3_t __i;
17286 __builtin_aarch64_simd_ci __o;
17287 __o = __builtin_aarch64_ld1x3df ((const __builtin_aarch64_simd_df *) __a);
17288 __i.val[0] = (float64x1_t) __builtin_aarch64_get_dregcidi (__o, 0);
17289 __i.val[1] = (float64x1_t) __builtin_aarch64_get_dregcidi (__o, 1);
17290 __i.val[2] = (float64x1_t) __builtin_aarch64_get_dregcidi (__o, 2);
17291 return __i;
17294 __extension__ extern __inline poly8x8x3_t
17295 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17296 vld1_p8_x3 (const poly8_t *__a)
17298 poly8x8x3_t __i;
17299 __builtin_aarch64_simd_ci __o;
17300 __o = __builtin_aarch64_ld1x3v8qi ((const __builtin_aarch64_simd_qi *) __a);
17301 __i.val[0] = (poly8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 0);
17302 __i.val[1] = (poly8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 1);
17303 __i.val[2] = (poly8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 2);
17304 return __i;
17307 __extension__ extern __inline poly16x4x3_t
17308 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17309 vld1_p16_x3 (const poly16_t *__a)
17311 poly16x4x3_t __i;
17312 __builtin_aarch64_simd_ci __o;
17313 __o = __builtin_aarch64_ld1x3v4hi ((const __builtin_aarch64_simd_hi *) __a);
17314 __i.val[0] = (poly16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 0);
17315 __i.val[1] = (poly16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 1);
17316 __i.val[2] = (poly16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 2);
17317 return __i;
17320 __extension__ extern __inline poly64x1x3_t
17321 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17322 vld1_p64_x3 (const poly64_t *__a)
17324 poly64x1x3_t __i;
17325 __builtin_aarch64_simd_ci __o;
17326 __o = __builtin_aarch64_ld1x3di ((const __builtin_aarch64_simd_di *) __a);
17327 __i.val[0] = (poly64x1_t) __builtin_aarch64_get_dregcidi (__o, 0);
17328 __i.val[1] = (poly64x1_t) __builtin_aarch64_get_dregcidi (__o, 1);
17329 __i.val[2] = (poly64x1_t) __builtin_aarch64_get_dregcidi (__o, 2);
17331 return __i;
17334 __extension__ extern __inline uint8x16x3_t
17335 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17336 vld1q_u8_x3 (const uint8_t *__a)
17338 uint8x16x3_t __i;
17339 __builtin_aarch64_simd_ci __o;
17340 __o = __builtin_aarch64_ld1x3v16qi ((const __builtin_aarch64_simd_qi *) __a);
17341 __i.val[0] = (uint8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 0);
17342 __i.val[1] = (uint8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 1);
17343 __i.val[2] = (uint8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 2);
17344 return __i;
17347 __extension__ extern __inline int8x16x3_t
17348 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17349 vld1q_s8_x3 (const int8_t *__a)
17351 int8x16x3_t __i;
17352 __builtin_aarch64_simd_ci __o;
17353 __o = __builtin_aarch64_ld1x3v16qi ((const __builtin_aarch64_simd_qi *) __a);
17354 __i.val[0] = (int8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 0);
17355 __i.val[1] = (int8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 1);
17356 __i.val[2] = (int8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 2);
17357 return __i;
17360 __extension__ extern __inline uint16x8x3_t
17361 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17362 vld1q_u16_x3 (const uint16_t *__a)
17364 uint16x8x3_t __i;
17365 __builtin_aarch64_simd_ci __o;
17366 __o = __builtin_aarch64_ld1x3v8hi ((const __builtin_aarch64_simd_hi *) __a);
17367 __i.val[0] = (uint16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 0);
17368 __i.val[1] = (uint16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 1);
17369 __i.val[2] = (uint16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 2);
17370 return __i;
17373 __extension__ extern __inline int16x8x3_t
17374 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17375 vld1q_s16_x3 (const int16_t *__a)
17377 int16x8x3_t __i;
17378 __builtin_aarch64_simd_ci __o;
17379 __o = __builtin_aarch64_ld1x3v8hi ((const __builtin_aarch64_simd_hi *) __a);
17380 __i.val[0] = (int16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 0);
17381 __i.val[1] = (int16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 1);
17382 __i.val[2] = (int16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 2);
17383 return __i;
17386 __extension__ extern __inline uint32x4x3_t
17387 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17388 vld1q_u32_x3 (const uint32_t *__a)
17390 uint32x4x3_t __i;
17391 __builtin_aarch64_simd_ci __o;
17392 __o = __builtin_aarch64_ld1x3v4si ((const __builtin_aarch64_simd_si *) __a);
17393 __i.val[0] = (uint32x4_t) __builtin_aarch64_get_qregciv4si (__o, 0);
17394 __i.val[1] = (uint32x4_t) __builtin_aarch64_get_qregciv4si (__o, 1);
17395 __i.val[2] = (uint32x4_t) __builtin_aarch64_get_qregciv4si (__o, 2);
17396 return __i;
17399 __extension__ extern __inline int32x4x3_t
17400 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17401 vld1q_s32_x3 (const int32_t *__a)
17403 int32x4x3_t __i;
17404 __builtin_aarch64_simd_ci __o;
17405 __o = __builtin_aarch64_ld1x3v4si ((const __builtin_aarch64_simd_si *) __a);
17406 __i.val[0] = (int32x4_t) __builtin_aarch64_get_qregciv4si (__o, 0);
17407 __i.val[1] = (int32x4_t) __builtin_aarch64_get_qregciv4si (__o, 1);
17408 __i.val[2] = (int32x4_t) __builtin_aarch64_get_qregciv4si (__o, 2);
17409 return __i;
17412 __extension__ extern __inline uint64x2x3_t
17413 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17414 vld1q_u64_x3 (const uint64_t *__a)
17416 uint64x2x3_t __i;
17417 __builtin_aarch64_simd_ci __o;
17418 __o = __builtin_aarch64_ld1x3v2di ((const __builtin_aarch64_simd_di *) __a);
17419 __i.val[0] = (uint64x2_t) __builtin_aarch64_get_qregciv2di (__o, 0);
17420 __i.val[1] = (uint64x2_t) __builtin_aarch64_get_qregciv2di (__o, 1);
17421 __i.val[2] = (uint64x2_t) __builtin_aarch64_get_qregciv2di (__o, 2);
17422 return __i;
17425 __extension__ extern __inline int64x2x3_t
17426 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17427 vld1q_s64_x3 (const int64_t *__a)
17429 int64x2x3_t __i;
17430 __builtin_aarch64_simd_ci __o;
17431 __o = __builtin_aarch64_ld1x3v2di ((const __builtin_aarch64_simd_di *) __a);
17432 __i.val[0] = (int64x2_t) __builtin_aarch64_get_qregciv2di (__o, 0);
17433 __i.val[1] = (int64x2_t) __builtin_aarch64_get_qregciv2di (__o, 1);
17434 __i.val[2] = (int64x2_t) __builtin_aarch64_get_qregciv2di (__o, 2);
17435 return __i;
17438 __extension__ extern __inline float16x8x3_t
17439 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17440 vld1q_f16_x3 (const float16_t *__a)
17442 float16x8x3_t __i;
17443 __builtin_aarch64_simd_ci __o;
17444 __o = __builtin_aarch64_ld1x3v8hf ((const __builtin_aarch64_simd_hf *) __a);
17445 __i.val[0] = (float16x8_t) __builtin_aarch64_get_qregciv8hf (__o, 0);
17446 __i.val[1] = (float16x8_t) __builtin_aarch64_get_qregciv8hf (__o, 1);
17447 __i.val[2] = (float16x8_t) __builtin_aarch64_get_qregciv8hf (__o, 2);
17448 return __i;
17451 __extension__ extern __inline float32x4x3_t
17452 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17453 vld1q_f32_x3 (const float32_t *__a)
17455 float32x4x3_t __i;
17456 __builtin_aarch64_simd_ci __o;
17457 __o = __builtin_aarch64_ld1x3v4sf ((const __builtin_aarch64_simd_sf *) __a);
17458 __i.val[0] = (float32x4_t) __builtin_aarch64_get_qregciv4sf (__o, 0);
17459 __i.val[1] = (float32x4_t) __builtin_aarch64_get_qregciv4sf (__o, 1);
17460 __i.val[2] = (float32x4_t) __builtin_aarch64_get_qregciv4sf (__o, 2);
17461 return __i;
17464 __extension__ extern __inline float64x2x3_t
17465 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17466 vld1q_f64_x3 (const float64_t *__a)
17468 float64x2x3_t __i;
17469 __builtin_aarch64_simd_ci __o;
17470 __o = __builtin_aarch64_ld1x3v2df ((const __builtin_aarch64_simd_df *) __a);
17471 __i.val[0] = (float64x2_t) __builtin_aarch64_get_qregciv2df (__o, 0);
17472 __i.val[1] = (float64x2_t) __builtin_aarch64_get_qregciv2df (__o, 1);
17473 __i.val[2] = (float64x2_t) __builtin_aarch64_get_qregciv2df (__o, 2);
17474 return __i;
17477 __extension__ extern __inline poly8x16x3_t
17478 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17479 vld1q_p8_x3 (const poly8_t *__a)
17481 poly8x16x3_t __i;
17482 __builtin_aarch64_simd_ci __o;
17483 __o = __builtin_aarch64_ld1x3v16qi ((const __builtin_aarch64_simd_qi *) __a);
17484 __i.val[0] = (poly8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 0);
17485 __i.val[1] = (poly8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 1);
17486 __i.val[2] = (poly8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 2);
17487 return __i;
17490 __extension__ extern __inline poly16x8x3_t
17491 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17492 vld1q_p16_x3 (const poly16_t *__a)
17494 poly16x8x3_t __i;
17495 __builtin_aarch64_simd_ci __o;
17496 __o = __builtin_aarch64_ld1x3v8hi ((const __builtin_aarch64_simd_hi *) __a);
17497 __i.val[0] = (poly16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 0);
17498 __i.val[1] = (poly16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 1);
17499 __i.val[2] = (poly16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 2);
17500 return __i;
17503 __extension__ extern __inline poly64x2x3_t
17504 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17505 vld1q_p64_x3 (const poly64_t *__a)
17507 poly64x2x3_t __i;
17508 __builtin_aarch64_simd_ci __o;
17509 __o = __builtin_aarch64_ld1x3v2di ((const __builtin_aarch64_simd_di *) __a);
17510 __i.val[0] = (poly64x2_t) __builtin_aarch64_get_qregciv2di (__o, 0);
17511 __i.val[1] = (poly64x2_t) __builtin_aarch64_get_qregciv2di (__o, 1);
17512 __i.val[2] = (poly64x2_t) __builtin_aarch64_get_qregciv2di (__o, 2);
17513 return __i;
17516 /* vld1q */
17518 __extension__ extern __inline float16x8_t
17519 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17520 vld1q_f16 (const float16_t *__a)
17522 return __builtin_aarch64_ld1v8hf (__a);
17525 __extension__ extern __inline float32x4_t
17526 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17527 vld1q_f32 (const float32_t *a)
17529 return __builtin_aarch64_ld1v4sf ((const __builtin_aarch64_simd_sf *) a);
17532 __extension__ extern __inline float64x2_t
17533 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17534 vld1q_f64 (const float64_t *a)
17536 return __builtin_aarch64_ld1v2df ((const __builtin_aarch64_simd_df *) a);
17539 __extension__ extern __inline poly8x16_t
17540 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17541 vld1q_p8 (const poly8_t *a)
17543 return (poly8x16_t)
17544 __builtin_aarch64_ld1v16qi ((const __builtin_aarch64_simd_qi *) a);
17547 __extension__ extern __inline poly16x8_t
17548 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17549 vld1q_p16 (const poly16_t *a)
17551 return (poly16x8_t)
17552 __builtin_aarch64_ld1v8hi ((const __builtin_aarch64_simd_hi *) a);
17555 __extension__ extern __inline poly64x2_t
17556 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17557 vld1q_p64 (const poly64_t *a)
17559 return (poly64x2_t)
17560 __builtin_aarch64_ld1v2di ((const __builtin_aarch64_simd_di *) a);
17563 __extension__ extern __inline int8x16_t
17564 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17565 vld1q_s8 (const int8_t *a)
17567 return __builtin_aarch64_ld1v16qi ((const __builtin_aarch64_simd_qi *) a);
17570 __extension__ extern __inline int16x8_t
17571 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17572 vld1q_s16 (const int16_t *a)
17574 return __builtin_aarch64_ld1v8hi ((const __builtin_aarch64_simd_hi *) a);
17577 __extension__ extern __inline int32x4_t
17578 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17579 vld1q_s32 (const int32_t *a)
17581 return __builtin_aarch64_ld1v4si ((const __builtin_aarch64_simd_si *) a);
17584 __extension__ extern __inline int64x2_t
17585 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17586 vld1q_s64 (const int64_t *a)
17588 return __builtin_aarch64_ld1v2di ((const __builtin_aarch64_simd_di *) a);
17591 __extension__ extern __inline uint8x16_t
17592 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17593 vld1q_u8 (const uint8_t *a)
17595 return (uint8x16_t)
17596 __builtin_aarch64_ld1v16qi ((const __builtin_aarch64_simd_qi *) a);
17599 __extension__ extern __inline uint8x8x2_t
17600 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17601 vld1_u8_x2 (const uint8_t *__a)
17603 uint8x8x2_t ret;
17604 __builtin_aarch64_simd_oi __o;
17605 __o = __builtin_aarch64_ld1x2v8qi ((const __builtin_aarch64_simd_qi *) __a);
17606 ret.val[0] = (uint8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 0);
17607 ret.val[1] = (uint8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 1);
17608 return ret;
17611 __extension__ extern __inline int8x8x2_t
17612 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17613 vld1_s8_x2 (const int8_t *__a)
17615 int8x8x2_t ret;
17616 __builtin_aarch64_simd_oi __o;
17617 __o = __builtin_aarch64_ld1x2v8qi ((const __builtin_aarch64_simd_qi *) __a);
17618 ret.val[0] = (int8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 0);
17619 ret.val[1] = (int8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 1);
17620 return ret;
17623 __extension__ extern __inline uint16x4x2_t
17624 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17625 vld1_u16_x2 (const uint16_t *__a)
17627 uint16x4x2_t ret;
17628 __builtin_aarch64_simd_oi __o;
17629 __o = __builtin_aarch64_ld1x2v4hi ((const __builtin_aarch64_simd_hi *) __a);
17630 ret.val[0] = (uint16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 0);
17631 ret.val[1] = (uint16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 1);
17632 return ret;
17635 __extension__ extern __inline int16x4x2_t
17636 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17637 vld1_s16_x2 (const int16_t *__a)
17639 int16x4x2_t ret;
17640 __builtin_aarch64_simd_oi __o;
17641 __o = __builtin_aarch64_ld1x2v4hi ((const __builtin_aarch64_simd_hi *) __a);
17642 ret.val[0] = (int16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 0);
17643 ret.val[1] = (int16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 1);
17644 return ret;
17647 __extension__ extern __inline uint32x2x2_t
17648 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17649 vld1_u32_x2 (const uint32_t *__a)
17651 uint32x2x2_t ret;
17652 __builtin_aarch64_simd_oi __o;
17653 __o = __builtin_aarch64_ld1x2v2si ((const __builtin_aarch64_simd_si *) __a);
17654 ret.val[0] = (uint32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 0);
17655 ret.val[1] = (uint32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 1);
17656 return ret;
17659 __extension__ extern __inline int32x2x2_t
17660 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17661 vld1_s32_x2 (const int32_t *__a)
17663 int32x2x2_t ret;
17664 __builtin_aarch64_simd_oi __o;
17665 __o = __builtin_aarch64_ld1x2v2si ((const __builtin_aarch64_simd_si *) __a);
17666 ret.val[0] = (int32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 0);
17667 ret.val[1] = (int32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 1);
17668 return ret;
17671 __extension__ extern __inline uint64x1x2_t
17672 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17673 vld1_u64_x2 (const uint64_t *__a)
17675 uint64x1x2_t ret;
17676 __builtin_aarch64_simd_oi __o;
17677 __o = __builtin_aarch64_ld1x2di ((const __builtin_aarch64_simd_di *) __a);
17678 ret.val[0] = (uint64x1_t) __builtin_aarch64_get_dregoidi (__o, 0);
17679 ret.val[1] = (uint64x1_t) __builtin_aarch64_get_dregoidi (__o, 1);
17680 return ret;
17683 __extension__ extern __inline int64x1x2_t
17684 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17685 vld1_s64_x2 (const int64_t *__a)
17687 int64x1x2_t ret;
17688 __builtin_aarch64_simd_oi __o;
17689 __o = __builtin_aarch64_ld1x2di ((const __builtin_aarch64_simd_di *) __a);
17690 ret.val[0] = (int64x1_t) __builtin_aarch64_get_dregoidi (__o, 0);
17691 ret.val[1] = (int64x1_t) __builtin_aarch64_get_dregoidi (__o, 1);
17692 return ret;
17695 __extension__ extern __inline float16x4x2_t
17696 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17697 vld1_f16_x2 (const float16_t *__a)
17699 float16x4x2_t ret;
17700 __builtin_aarch64_simd_oi __o;
17701 __o = __builtin_aarch64_ld1x2v4hf ((const __builtin_aarch64_simd_hf *) __a);
17702 ret.val[0] = (float16x4_t) __builtin_aarch64_get_dregoiv4hf (__o, 0);
17703 ret.val[1] = (float16x4_t) __builtin_aarch64_get_dregoiv4hf (__o, 1);
17704 return ret;
17707 __extension__ extern __inline float32x2x2_t
17708 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17709 vld1_f32_x2 (const float32_t *__a)
17711 float32x2x2_t ret;
17712 __builtin_aarch64_simd_oi __o;
17713 __o = __builtin_aarch64_ld1x2v2sf ((const __builtin_aarch64_simd_sf *) __a);
17714 ret.val[0] = (float32x2_t) __builtin_aarch64_get_dregoiv2sf (__o, 0);
17715 ret.val[1] = (float32x2_t) __builtin_aarch64_get_dregoiv2sf (__o, 1);
17716 return ret;
17719 __extension__ extern __inline float64x1x2_t
17720 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17721 vld1_f64_x2 (const float64_t *__a)
17723 float64x1x2_t ret;
17724 __builtin_aarch64_simd_oi __o;
17725 __o = __builtin_aarch64_ld1x2df ((const __builtin_aarch64_simd_df *) __a);
17726 ret.val[0] = (float64x1_t) {__builtin_aarch64_get_dregoidf (__o, 0)};
17727 ret.val[1] = (float64x1_t) {__builtin_aarch64_get_dregoidf (__o, 1)};
17728 return ret;
17731 __extension__ extern __inline poly8x8x2_t
17732 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17733 vld1_p8_x2 (const poly8_t *__a)
17735 poly8x8x2_t ret;
17736 __builtin_aarch64_simd_oi __o;
17737 __o = __builtin_aarch64_ld1x2v8qi ((const __builtin_aarch64_simd_qi *) __a);
17738 ret.val[0] = (poly8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 0);
17739 ret.val[1] = (poly8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 1);
17740 return ret;
17743 __extension__ extern __inline poly16x4x2_t
17744 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17745 vld1_p16_x2 (const poly16_t *__a)
17747 poly16x4x2_t ret;
17748 __builtin_aarch64_simd_oi __o;
17749 __o = __builtin_aarch64_ld1x2v4hi ((const __builtin_aarch64_simd_hi *) __a);
17750 ret.val[0] = (poly16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 0);
17751 ret.val[1] = (poly16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 1);
17752 return ret;
17755 __extension__ extern __inline poly64x1x2_t
17756 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17757 vld1_p64_x2 (const poly64_t *__a)
17759 poly64x1x2_t ret;
17760 __builtin_aarch64_simd_oi __o;
17761 __o = __builtin_aarch64_ld1x2di ((const __builtin_aarch64_simd_di *) __a);
17762 ret.val[0] = (poly64x1_t) __builtin_aarch64_get_dregoidi (__o, 0);
17763 ret.val[1] = (poly64x1_t) __builtin_aarch64_get_dregoidi (__o, 1);
17764 return ret;
17767 __extension__ extern __inline uint8x16x2_t
17768 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17769 vld1q_u8_x2 (const uint8_t *__a)
17771 uint8x16x2_t ret;
17772 __builtin_aarch64_simd_oi __o;
17773 __o = __builtin_aarch64_ld1x2v16qi ((const __builtin_aarch64_simd_qi *) __a);
17774 ret.val[0] = (uint8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 0);
17775 ret.val[1] = (uint8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 1);
17776 return ret;
17779 __extension__ extern __inline int8x16x2_t
17780 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17781 vld1q_s8_x2 (const int8_t *__a)
17783 int8x16x2_t ret;
17784 __builtin_aarch64_simd_oi __o;
17785 __o = __builtin_aarch64_ld1x2v16qi ((const __builtin_aarch64_simd_qi *) __a);
17786 ret.val[0] = (int8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 0);
17787 ret.val[1] = (int8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 1);
17788 return ret;
17791 __extension__ extern __inline uint16x8x2_t
17792 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17793 vld1q_u16_x2 (const uint16_t *__a)
17795 uint16x8x2_t ret;
17796 __builtin_aarch64_simd_oi __o;
17797 __o = __builtin_aarch64_ld1x2v8hi ((const __builtin_aarch64_simd_hi *) __a);
17798 ret.val[0] = (uint16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 0);
17799 ret.val[1] = (uint16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 1);
17800 return ret;
17803 __extension__ extern __inline int16x8x2_t
17804 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17805 vld1q_s16_x2 (const int16_t *__a)
17807 int16x8x2_t ret;
17808 __builtin_aarch64_simd_oi __o;
17809 __o = __builtin_aarch64_ld1x2v8hi ((const __builtin_aarch64_simd_hi *) __a);
17810 ret.val[0] = (int16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 0);
17811 ret.val[1] = (int16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 1);
17812 return ret;
17815 __extension__ extern __inline uint32x4x2_t
17816 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17817 vld1q_u32_x2 (const uint32_t *__a)
17819 uint32x4x2_t ret;
17820 __builtin_aarch64_simd_oi __o;
17821 __o = __builtin_aarch64_ld1x2v4si ((const __builtin_aarch64_simd_si *) __a);
17822 ret.val[0] = (uint32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 0);
17823 ret.val[1] = (uint32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 1);
17824 return ret;
17827 __extension__ extern __inline int32x4x2_t
17828 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17829 vld1q_s32_x2 (const int32_t *__a)
17831 int32x4x2_t ret;
17832 __builtin_aarch64_simd_oi __o;
17833 __o = __builtin_aarch64_ld1x2v4si ((const __builtin_aarch64_simd_si *) __a);
17834 ret.val[0] = (int32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 0);
17835 ret.val[1] = (int32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 1);
17836 return ret;
17839 __extension__ extern __inline uint64x2x2_t
17840 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17841 vld1q_u64_x2 (const uint64_t *__a)
17843 uint64x2x2_t ret;
17844 __builtin_aarch64_simd_oi __o;
17845 __o = __builtin_aarch64_ld1x2v2di ((const __builtin_aarch64_simd_di *) __a);
17846 ret.val[0] = (uint64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 0);
17847 ret.val[1] = (uint64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 1);
17848 return ret;
17851 __extension__ extern __inline int64x2x2_t
17852 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17853 vld1q_s64_x2 (const int64_t *__a)
17855 int64x2x2_t ret;
17856 __builtin_aarch64_simd_oi __o;
17857 __o = __builtin_aarch64_ld1x2v2di ((const __builtin_aarch64_simd_di *) __a);
17858 ret.val[0] = (int64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 0);
17859 ret.val[1] = (int64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 1);
17860 return ret;
17863 __extension__ extern __inline float16x8x2_t
17864 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17865 vld1q_f16_x2 (const float16_t *__a)
17867 float16x8x2_t ret;
17868 __builtin_aarch64_simd_oi __o;
17869 __o = __builtin_aarch64_ld1x2v8hf ((const __builtin_aarch64_simd_hf *) __a);
17870 ret.val[0] = (float16x8_t) __builtin_aarch64_get_qregoiv8hf (__o, 0);
17871 ret.val[1] = (float16x8_t) __builtin_aarch64_get_qregoiv8hf (__o, 1);
17872 return ret;
17875 __extension__ extern __inline float32x4x2_t
17876 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17877 vld1q_f32_x2 (const float32_t *__a)
17879 float32x4x2_t ret;
17880 __builtin_aarch64_simd_oi __o;
17881 __o = __builtin_aarch64_ld1x2v4sf ((const __builtin_aarch64_simd_sf *) __a);
17882 ret.val[0] = (float32x4_t) __builtin_aarch64_get_qregoiv4sf (__o, 0);
17883 ret.val[1] = (float32x4_t) __builtin_aarch64_get_qregoiv4sf (__o, 1);
17884 return ret;
17887 __extension__ extern __inline float64x2x2_t
17888 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17889 vld1q_f64_x2 (const float64_t *__a)
17891 float64x2x2_t ret;
17892 __builtin_aarch64_simd_oi __o;
17893 __o = __builtin_aarch64_ld1x2v2df ((const __builtin_aarch64_simd_df *) __a);
17894 ret.val[0] = (float64x2_t) __builtin_aarch64_get_qregoiv2df (__o, 0);
17895 ret.val[1] = (float64x2_t) __builtin_aarch64_get_qregoiv2df (__o, 1);
17896 return ret;
17899 __extension__ extern __inline poly8x16x2_t
17900 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17901 vld1q_p8_x2 (const poly8_t *__a)
17903 poly8x16x2_t ret;
17904 __builtin_aarch64_simd_oi __o;
17905 __o = __builtin_aarch64_ld1x2v16qi ((const __builtin_aarch64_simd_qi *) __a);
17906 ret.val[0] = (poly8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 0);
17907 ret.val[1] = (poly8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 1);
17908 return ret;
17911 __extension__ extern __inline poly16x8x2_t
17912 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17913 vld1q_p16_x2 (const poly16_t *__a)
17915 poly16x8x2_t ret;
17916 __builtin_aarch64_simd_oi __o;
17917 __o = __builtin_aarch64_ld1x2v8hi ((const __builtin_aarch64_simd_hi *) __a);
17918 ret.val[0] = (poly16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 0);
17919 ret.val[1] = (poly16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 1);
17920 return ret;
17923 __extension__ extern __inline poly64x2x2_t
17924 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17925 vld1q_p64_x2 (const poly64_t *__a)
17927 poly64x2x2_t ret;
17928 __builtin_aarch64_simd_oi __o;
17929 __o = __builtin_aarch64_ld1x2v2di ((const __builtin_aarch64_simd_di *) __a);
17930 ret.val[0] = (poly64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 0);
17931 ret.val[1] = (poly64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 1);
17932 return ret;
17935 __extension__ extern __inline uint16x8_t
17936 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17937 vld1q_u16 (const uint16_t *a)
17939 return (uint16x8_t)
17940 __builtin_aarch64_ld1v8hi ((const __builtin_aarch64_simd_hi *) a);
17943 __extension__ extern __inline uint32x4_t
17944 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17945 vld1q_u32 (const uint32_t *a)
17947 return (uint32x4_t)
17948 __builtin_aarch64_ld1v4si ((const __builtin_aarch64_simd_si *) a);
17951 __extension__ extern __inline uint64x2_t
17952 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17953 vld1q_u64 (const uint64_t *a)
17955 return (uint64x2_t)
17956 __builtin_aarch64_ld1v2di ((const __builtin_aarch64_simd_di *) a);
17959 /* vld1_dup */
17961 __extension__ extern __inline float16x4_t
17962 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17963 vld1_dup_f16 (const float16_t* __a)
17965 return vdup_n_f16 (*__a);
17968 __extension__ extern __inline float32x2_t
17969 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17970 vld1_dup_f32 (const float32_t* __a)
17972 return vdup_n_f32 (*__a);
17975 __extension__ extern __inline float64x1_t
17976 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17977 vld1_dup_f64 (const float64_t* __a)
17979 return vdup_n_f64 (*__a);
17982 __extension__ extern __inline poly8x8_t
17983 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17984 vld1_dup_p8 (const poly8_t* __a)
17986 return vdup_n_p8 (*__a);
17989 __extension__ extern __inline poly16x4_t
17990 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17991 vld1_dup_p16 (const poly16_t* __a)
17993 return vdup_n_p16 (*__a);
17996 __extension__ extern __inline poly64x1_t
17997 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17998 vld1_dup_p64 (const poly64_t* __a)
18000 return vdup_n_p64 (*__a);
18003 __extension__ extern __inline int8x8_t
18004 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18005 vld1_dup_s8 (const int8_t* __a)
18007 return vdup_n_s8 (*__a);
18010 __extension__ extern __inline int16x4_t
18011 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18012 vld1_dup_s16 (const int16_t* __a)
18014 return vdup_n_s16 (*__a);
18017 __extension__ extern __inline int32x2_t
18018 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18019 vld1_dup_s32 (const int32_t* __a)
18021 return vdup_n_s32 (*__a);
18024 __extension__ extern __inline int64x1_t
18025 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18026 vld1_dup_s64 (const int64_t* __a)
18028 return vdup_n_s64 (*__a);
18031 __extension__ extern __inline uint8x8_t
18032 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18033 vld1_dup_u8 (const uint8_t* __a)
18035 return vdup_n_u8 (*__a);
18038 __extension__ extern __inline uint16x4_t
18039 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18040 vld1_dup_u16 (const uint16_t* __a)
18042 return vdup_n_u16 (*__a);
18045 __extension__ extern __inline uint32x2_t
18046 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18047 vld1_dup_u32 (const uint32_t* __a)
18049 return vdup_n_u32 (*__a);
18052 __extension__ extern __inline uint64x1_t
18053 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18054 vld1_dup_u64 (const uint64_t* __a)
18056 return vdup_n_u64 (*__a);
18059 /* vld1q_dup */
18061 __extension__ extern __inline float16x8_t
18062 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18063 vld1q_dup_f16 (const float16_t* __a)
18065 return vdupq_n_f16 (*__a);
18068 __extension__ extern __inline float32x4_t
18069 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18070 vld1q_dup_f32 (const float32_t* __a)
18072 return vdupq_n_f32 (*__a);
18075 __extension__ extern __inline float64x2_t
18076 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18077 vld1q_dup_f64 (const float64_t* __a)
18079 return vdupq_n_f64 (*__a);
18082 __extension__ extern __inline poly8x16_t
18083 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18084 vld1q_dup_p8 (const poly8_t* __a)
18086 return vdupq_n_p8 (*__a);
18089 __extension__ extern __inline poly16x8_t
18090 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18091 vld1q_dup_p16 (const poly16_t* __a)
18093 return vdupq_n_p16 (*__a);
18096 __extension__ extern __inline poly64x2_t
18097 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18098 vld1q_dup_p64 (const poly64_t* __a)
18100 return vdupq_n_p64 (*__a);
18103 __extension__ extern __inline int8x16_t
18104 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18105 vld1q_dup_s8 (const int8_t* __a)
18107 return vdupq_n_s8 (*__a);
18110 __extension__ extern __inline int16x8_t
18111 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18112 vld1q_dup_s16 (const int16_t* __a)
18114 return vdupq_n_s16 (*__a);
18117 __extension__ extern __inline int32x4_t
18118 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18119 vld1q_dup_s32 (const int32_t* __a)
18121 return vdupq_n_s32 (*__a);
18124 __extension__ extern __inline int64x2_t
18125 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18126 vld1q_dup_s64 (const int64_t* __a)
18128 return vdupq_n_s64 (*__a);
18131 __extension__ extern __inline uint8x16_t
18132 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18133 vld1q_dup_u8 (const uint8_t* __a)
18135 return vdupq_n_u8 (*__a);
18138 __extension__ extern __inline uint16x8_t
18139 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18140 vld1q_dup_u16 (const uint16_t* __a)
18142 return vdupq_n_u16 (*__a);
18145 __extension__ extern __inline uint32x4_t
18146 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18147 vld1q_dup_u32 (const uint32_t* __a)
18149 return vdupq_n_u32 (*__a);
18152 __extension__ extern __inline uint64x2_t
18153 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18154 vld1q_dup_u64 (const uint64_t* __a)
18156 return vdupq_n_u64 (*__a);
18159 /* vld1_lane */
18161 __extension__ extern __inline float16x4_t
18162 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18163 vld1_lane_f16 (const float16_t *__src, float16x4_t __vec, const int __lane)
18165 return __aarch64_vset_lane_any (*__src, __vec, __lane);
18168 __extension__ extern __inline float32x2_t
18169 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18170 vld1_lane_f32 (const float32_t *__src, float32x2_t __vec, const int __lane)
18172 return __aarch64_vset_lane_any (*__src, __vec, __lane);
18175 __extension__ extern __inline float64x1_t
18176 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18177 vld1_lane_f64 (const float64_t *__src, float64x1_t __vec, const int __lane)
18179 return __aarch64_vset_lane_any (*__src, __vec, __lane);
18182 __extension__ extern __inline poly8x8_t
18183 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18184 vld1_lane_p8 (const poly8_t *__src, poly8x8_t __vec, const int __lane)
18186 return __aarch64_vset_lane_any (*__src, __vec, __lane);
18189 __extension__ extern __inline poly16x4_t
18190 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18191 vld1_lane_p16 (const poly16_t *__src, poly16x4_t __vec, const int __lane)
18193 return __aarch64_vset_lane_any (*__src, __vec, __lane);
18196 __extension__ extern __inline poly64x1_t
18197 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18198 vld1_lane_p64 (const poly64_t *__src, poly64x1_t __vec, const int __lane)
18200 return __aarch64_vset_lane_any (*__src, __vec, __lane);
18203 __extension__ extern __inline int8x8_t
18204 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18205 vld1_lane_s8 (const int8_t *__src, int8x8_t __vec, const int __lane)
18207 return __aarch64_vset_lane_any (*__src, __vec, __lane);
18210 __extension__ extern __inline int16x4_t
18211 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18212 vld1_lane_s16 (const int16_t *__src, int16x4_t __vec, const int __lane)
18214 return __aarch64_vset_lane_any (*__src, __vec, __lane);
18217 __extension__ extern __inline int32x2_t
18218 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18219 vld1_lane_s32 (const int32_t *__src, int32x2_t __vec, const int __lane)
18221 return __aarch64_vset_lane_any (*__src, __vec, __lane);
18224 __extension__ extern __inline int64x1_t
18225 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18226 vld1_lane_s64 (const int64_t *__src, int64x1_t __vec, const int __lane)
18228 return __aarch64_vset_lane_any (*__src, __vec, __lane);
18231 __extension__ extern __inline uint8x8_t
18232 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18233 vld1_lane_u8 (const uint8_t *__src, uint8x8_t __vec, const int __lane)
18235 return __aarch64_vset_lane_any (*__src, __vec, __lane);
18238 __extension__ extern __inline uint16x4_t
18239 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18240 vld1_lane_u16 (const uint16_t *__src, uint16x4_t __vec, const int __lane)
18242 return __aarch64_vset_lane_any (*__src, __vec, __lane);
18245 __extension__ extern __inline uint32x2_t
18246 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18247 vld1_lane_u32 (const uint32_t *__src, uint32x2_t __vec, const int __lane)
18249 return __aarch64_vset_lane_any (*__src, __vec, __lane);
18252 __extension__ extern __inline uint64x1_t
18253 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18254 vld1_lane_u64 (const uint64_t *__src, uint64x1_t __vec, const int __lane)
18256 return __aarch64_vset_lane_any (*__src, __vec, __lane);
18259 /* vld1q_lane */
18261 __extension__ extern __inline float16x8_t
18262 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18263 vld1q_lane_f16 (const float16_t *__src, float16x8_t __vec, const int __lane)
18265 return __aarch64_vset_lane_any (*__src, __vec, __lane);
18268 __extension__ extern __inline float32x4_t
18269 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18270 vld1q_lane_f32 (const float32_t *__src, float32x4_t __vec, const int __lane)
18272 return __aarch64_vset_lane_any (*__src, __vec, __lane);
18275 __extension__ extern __inline float64x2_t
18276 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18277 vld1q_lane_f64 (const float64_t *__src, float64x2_t __vec, const int __lane)
18279 return __aarch64_vset_lane_any (*__src, __vec, __lane);
18282 __extension__ extern __inline poly8x16_t
18283 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18284 vld1q_lane_p8 (const poly8_t *__src, poly8x16_t __vec, const int __lane)
18286 return __aarch64_vset_lane_any (*__src, __vec, __lane);
18289 __extension__ extern __inline poly16x8_t
18290 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18291 vld1q_lane_p16 (const poly16_t *__src, poly16x8_t __vec, const int __lane)
18293 return __aarch64_vset_lane_any (*__src, __vec, __lane);
18296 __extension__ extern __inline poly64x2_t
18297 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18298 vld1q_lane_p64 (const poly64_t *__src, poly64x2_t __vec, const int __lane)
18300 return __aarch64_vset_lane_any (*__src, __vec, __lane);
18303 __extension__ extern __inline int8x16_t
18304 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18305 vld1q_lane_s8 (const int8_t *__src, int8x16_t __vec, const int __lane)
18307 return __aarch64_vset_lane_any (*__src, __vec, __lane);
18310 __extension__ extern __inline int16x8_t
18311 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18312 vld1q_lane_s16 (const int16_t *__src, int16x8_t __vec, const int __lane)
18314 return __aarch64_vset_lane_any (*__src, __vec, __lane);
18317 __extension__ extern __inline int32x4_t
18318 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18319 vld1q_lane_s32 (const int32_t *__src, int32x4_t __vec, const int __lane)
18321 return __aarch64_vset_lane_any (*__src, __vec, __lane);
18324 __extension__ extern __inline int64x2_t
18325 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18326 vld1q_lane_s64 (const int64_t *__src, int64x2_t __vec, const int __lane)
18328 return __aarch64_vset_lane_any (*__src, __vec, __lane);
18331 __extension__ extern __inline uint8x16_t
18332 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18333 vld1q_lane_u8 (const uint8_t *__src, uint8x16_t __vec, const int __lane)
18335 return __aarch64_vset_lane_any (*__src, __vec, __lane);
18338 __extension__ extern __inline uint16x8_t
18339 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18340 vld1q_lane_u16 (const uint16_t *__src, uint16x8_t __vec, const int __lane)
18342 return __aarch64_vset_lane_any (*__src, __vec, __lane);
18345 __extension__ extern __inline uint32x4_t
18346 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18347 vld1q_lane_u32 (const uint32_t *__src, uint32x4_t __vec, const int __lane)
18349 return __aarch64_vset_lane_any (*__src, __vec, __lane);
18352 __extension__ extern __inline uint64x2_t
18353 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18354 vld1q_lane_u64 (const uint64_t *__src, uint64x2_t __vec, const int __lane)
18356 return __aarch64_vset_lane_any (*__src, __vec, __lane);
18359 /* vldn */
18361 __extension__ extern __inline int64x1x2_t
18362 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18363 vld2_s64 (const int64_t * __a)
18365 int64x1x2_t ret;
18366 __builtin_aarch64_simd_oi __o;
18367 __o = __builtin_aarch64_ld2di ((const __builtin_aarch64_simd_di *) __a);
18368 ret.val[0] = (int64x1_t) __builtin_aarch64_get_dregoidi (__o, 0);
18369 ret.val[1] = (int64x1_t) __builtin_aarch64_get_dregoidi (__o, 1);
18370 return ret;
18373 __extension__ extern __inline uint64x1x2_t
18374 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18375 vld2_u64 (const uint64_t * __a)
18377 uint64x1x2_t ret;
18378 __builtin_aarch64_simd_oi __o;
18379 __o = __builtin_aarch64_ld2di ((const __builtin_aarch64_simd_di *) __a);
18380 ret.val[0] = (uint64x1_t) __builtin_aarch64_get_dregoidi (__o, 0);
18381 ret.val[1] = (uint64x1_t) __builtin_aarch64_get_dregoidi (__o, 1);
18382 return ret;
18385 __extension__ extern __inline float64x1x2_t
18386 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18387 vld2_f64 (const float64_t * __a)
18389 float64x1x2_t ret;
18390 __builtin_aarch64_simd_oi __o;
18391 __o = __builtin_aarch64_ld2df ((const __builtin_aarch64_simd_df *) __a);
18392 ret.val[0] = (float64x1_t) {__builtin_aarch64_get_dregoidf (__o, 0)};
18393 ret.val[1] = (float64x1_t) {__builtin_aarch64_get_dregoidf (__o, 1)};
18394 return ret;
18397 __extension__ extern __inline int8x8x2_t
18398 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18399 vld2_s8 (const int8_t * __a)
18401 int8x8x2_t ret;
18402 __builtin_aarch64_simd_oi __o;
18403 __o = __builtin_aarch64_ld2v8qi ((const __builtin_aarch64_simd_qi *) __a);
18404 ret.val[0] = (int8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 0);
18405 ret.val[1] = (int8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 1);
18406 return ret;
18409 __extension__ extern __inline poly8x8x2_t
18410 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18411 vld2_p8 (const poly8_t * __a)
18413 poly8x8x2_t ret;
18414 __builtin_aarch64_simd_oi __o;
18415 __o = __builtin_aarch64_ld2v8qi ((const __builtin_aarch64_simd_qi *) __a);
18416 ret.val[0] = (poly8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 0);
18417 ret.val[1] = (poly8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 1);
18418 return ret;
18421 __extension__ extern __inline poly64x1x2_t
18422 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18423 vld2_p64 (const poly64_t * __a)
18425 poly64x1x2_t ret;
18426 __builtin_aarch64_simd_oi __o;
18427 __o = __builtin_aarch64_ld2di ((const __builtin_aarch64_simd_di *) __a);
18428 ret.val[0] = (poly64x1_t) __builtin_aarch64_get_dregoidi_pss (__o, 0);
18429 ret.val[1] = (poly64x1_t) __builtin_aarch64_get_dregoidi_pss (__o, 1);
18430 return ret;
18433 __extension__ extern __inline int16x4x2_t
18434 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18435 vld2_s16 (const int16_t * __a)
18437 int16x4x2_t ret;
18438 __builtin_aarch64_simd_oi __o;
18439 __o = __builtin_aarch64_ld2v4hi ((const __builtin_aarch64_simd_hi *) __a);
18440 ret.val[0] = (int16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 0);
18441 ret.val[1] = (int16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 1);
18442 return ret;
18445 __extension__ extern __inline poly16x4x2_t
18446 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18447 vld2_p16 (const poly16_t * __a)
18449 poly16x4x2_t ret;
18450 __builtin_aarch64_simd_oi __o;
18451 __o = __builtin_aarch64_ld2v4hi ((const __builtin_aarch64_simd_hi *) __a);
18452 ret.val[0] = (poly16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 0);
18453 ret.val[1] = (poly16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 1);
18454 return ret;
18457 __extension__ extern __inline int32x2x2_t
18458 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18459 vld2_s32 (const int32_t * __a)
18461 int32x2x2_t ret;
18462 __builtin_aarch64_simd_oi __o;
18463 __o = __builtin_aarch64_ld2v2si ((const __builtin_aarch64_simd_si *) __a);
18464 ret.val[0] = (int32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 0);
18465 ret.val[1] = (int32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 1);
18466 return ret;
18469 __extension__ extern __inline uint8x8x2_t
18470 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18471 vld2_u8 (const uint8_t * __a)
18473 uint8x8x2_t ret;
18474 __builtin_aarch64_simd_oi __o;
18475 __o = __builtin_aarch64_ld2v8qi ((const __builtin_aarch64_simd_qi *) __a);
18476 ret.val[0] = (uint8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 0);
18477 ret.val[1] = (uint8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 1);
18478 return ret;
18481 __extension__ extern __inline uint16x4x2_t
18482 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18483 vld2_u16 (const uint16_t * __a)
18485 uint16x4x2_t ret;
18486 __builtin_aarch64_simd_oi __o;
18487 __o = __builtin_aarch64_ld2v4hi ((const __builtin_aarch64_simd_hi *) __a);
18488 ret.val[0] = (uint16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 0);
18489 ret.val[1] = (uint16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 1);
18490 return ret;
18493 __extension__ extern __inline uint32x2x2_t
18494 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18495 vld2_u32 (const uint32_t * __a)
18497 uint32x2x2_t ret;
18498 __builtin_aarch64_simd_oi __o;
18499 __o = __builtin_aarch64_ld2v2si ((const __builtin_aarch64_simd_si *) __a);
18500 ret.val[0] = (uint32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 0);
18501 ret.val[1] = (uint32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 1);
18502 return ret;
18505 __extension__ extern __inline float16x4x2_t
18506 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18507 vld2_f16 (const float16_t * __a)
18509 float16x4x2_t ret;
18510 __builtin_aarch64_simd_oi __o;
18511 __o = __builtin_aarch64_ld2v4hf (__a);
18512 ret.val[0] = __builtin_aarch64_get_dregoiv4hf (__o, 0);
18513 ret.val[1] = __builtin_aarch64_get_dregoiv4hf (__o, 1);
18514 return ret;
18517 __extension__ extern __inline float32x2x2_t
18518 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18519 vld2_f32 (const float32_t * __a)
18521 float32x2x2_t ret;
18522 __builtin_aarch64_simd_oi __o;
18523 __o = __builtin_aarch64_ld2v2sf ((const __builtin_aarch64_simd_sf *) __a);
18524 ret.val[0] = (float32x2_t) __builtin_aarch64_get_dregoiv2sf (__o, 0);
18525 ret.val[1] = (float32x2_t) __builtin_aarch64_get_dregoiv2sf (__o, 1);
18526 return ret;
18529 __extension__ extern __inline int8x16x2_t
18530 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18531 vld2q_s8 (const int8_t * __a)
18533 int8x16x2_t ret;
18534 __builtin_aarch64_simd_oi __o;
18535 __o = __builtin_aarch64_ld2v16qi ((const __builtin_aarch64_simd_qi *) __a);
18536 ret.val[0] = (int8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 0);
18537 ret.val[1] = (int8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 1);
18538 return ret;
18541 __extension__ extern __inline poly8x16x2_t
18542 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18543 vld2q_p8 (const poly8_t * __a)
18545 poly8x16x2_t ret;
18546 __builtin_aarch64_simd_oi __o;
18547 __o = __builtin_aarch64_ld2v16qi ((const __builtin_aarch64_simd_qi *) __a);
18548 ret.val[0] = (poly8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 0);
18549 ret.val[1] = (poly8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 1);
18550 return ret;
18553 __extension__ extern __inline int16x8x2_t
18554 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18555 vld2q_s16 (const int16_t * __a)
18557 int16x8x2_t ret;
18558 __builtin_aarch64_simd_oi __o;
18559 __o = __builtin_aarch64_ld2v8hi ((const __builtin_aarch64_simd_hi *) __a);
18560 ret.val[0] = (int16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 0);
18561 ret.val[1] = (int16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 1);
18562 return ret;
18565 __extension__ extern __inline poly16x8x2_t
18566 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18567 vld2q_p16 (const poly16_t * __a)
18569 poly16x8x2_t ret;
18570 __builtin_aarch64_simd_oi __o;
18571 __o = __builtin_aarch64_ld2v8hi ((const __builtin_aarch64_simd_hi *) __a);
18572 ret.val[0] = (poly16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 0);
18573 ret.val[1] = (poly16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 1);
18574 return ret;
18577 __extension__ extern __inline poly64x2x2_t
18578 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18579 vld2q_p64 (const poly64_t * __a)
18581 poly64x2x2_t ret;
18582 __builtin_aarch64_simd_oi __o;
18583 __o = __builtin_aarch64_ld2v2di ((const __builtin_aarch64_simd_di *) __a);
18584 ret.val[0] = (poly64x2_t) __builtin_aarch64_get_qregoiv2di_pss (__o, 0);
18585 ret.val[1] = (poly64x2_t) __builtin_aarch64_get_qregoiv2di_pss (__o, 1);
18586 return ret;
18589 __extension__ extern __inline int32x4x2_t
18590 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18591 vld2q_s32 (const int32_t * __a)
18593 int32x4x2_t ret;
18594 __builtin_aarch64_simd_oi __o;
18595 __o = __builtin_aarch64_ld2v4si ((const __builtin_aarch64_simd_si *) __a);
18596 ret.val[0] = (int32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 0);
18597 ret.val[1] = (int32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 1);
18598 return ret;
18601 __extension__ extern __inline int64x2x2_t
18602 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18603 vld2q_s64 (const int64_t * __a)
18605 int64x2x2_t ret;
18606 __builtin_aarch64_simd_oi __o;
18607 __o = __builtin_aarch64_ld2v2di ((const __builtin_aarch64_simd_di *) __a);
18608 ret.val[0] = (int64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 0);
18609 ret.val[1] = (int64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 1);
18610 return ret;
18613 __extension__ extern __inline uint8x16x2_t
18614 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18615 vld2q_u8 (const uint8_t * __a)
18617 uint8x16x2_t ret;
18618 __builtin_aarch64_simd_oi __o;
18619 __o = __builtin_aarch64_ld2v16qi ((const __builtin_aarch64_simd_qi *) __a);
18620 ret.val[0] = (uint8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 0);
18621 ret.val[1] = (uint8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 1);
18622 return ret;
18625 __extension__ extern __inline uint16x8x2_t
18626 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18627 vld2q_u16 (const uint16_t * __a)
18629 uint16x8x2_t ret;
18630 __builtin_aarch64_simd_oi __o;
18631 __o = __builtin_aarch64_ld2v8hi ((const __builtin_aarch64_simd_hi *) __a);
18632 ret.val[0] = (uint16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 0);
18633 ret.val[1] = (uint16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 1);
18634 return ret;
18637 __extension__ extern __inline uint32x4x2_t
18638 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18639 vld2q_u32 (const uint32_t * __a)
18641 uint32x4x2_t ret;
18642 __builtin_aarch64_simd_oi __o;
18643 __o = __builtin_aarch64_ld2v4si ((const __builtin_aarch64_simd_si *) __a);
18644 ret.val[0] = (uint32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 0);
18645 ret.val[1] = (uint32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 1);
18646 return ret;
18649 __extension__ extern __inline uint64x2x2_t
18650 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18651 vld2q_u64 (const uint64_t * __a)
18653 uint64x2x2_t ret;
18654 __builtin_aarch64_simd_oi __o;
18655 __o = __builtin_aarch64_ld2v2di ((const __builtin_aarch64_simd_di *) __a);
18656 ret.val[0] = (uint64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 0);
18657 ret.val[1] = (uint64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 1);
18658 return ret;
18661 __extension__ extern __inline float16x8x2_t
18662 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18663 vld2q_f16 (const float16_t * __a)
18665 float16x8x2_t ret;
18666 __builtin_aarch64_simd_oi __o;
18667 __o = __builtin_aarch64_ld2v8hf (__a);
18668 ret.val[0] = __builtin_aarch64_get_qregoiv8hf (__o, 0);
18669 ret.val[1] = __builtin_aarch64_get_qregoiv8hf (__o, 1);
18670 return ret;
18673 __extension__ extern __inline float32x4x2_t
18674 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18675 vld2q_f32 (const float32_t * __a)
18677 float32x4x2_t ret;
18678 __builtin_aarch64_simd_oi __o;
18679 __o = __builtin_aarch64_ld2v4sf ((const __builtin_aarch64_simd_sf *) __a);
18680 ret.val[0] = (float32x4_t) __builtin_aarch64_get_qregoiv4sf (__o, 0);
18681 ret.val[1] = (float32x4_t) __builtin_aarch64_get_qregoiv4sf (__o, 1);
18682 return ret;
18685 __extension__ extern __inline float64x2x2_t
18686 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18687 vld2q_f64 (const float64_t * __a)
18689 float64x2x2_t ret;
18690 __builtin_aarch64_simd_oi __o;
18691 __o = __builtin_aarch64_ld2v2df ((const __builtin_aarch64_simd_df *) __a);
18692 ret.val[0] = (float64x2_t) __builtin_aarch64_get_qregoiv2df (__o, 0);
18693 ret.val[1] = (float64x2_t) __builtin_aarch64_get_qregoiv2df (__o, 1);
18694 return ret;
18697 __extension__ extern __inline int64x1x3_t
18698 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18699 vld3_s64 (const int64_t * __a)
18701 int64x1x3_t ret;
18702 __builtin_aarch64_simd_ci __o;
18703 __o = __builtin_aarch64_ld3di ((const __builtin_aarch64_simd_di *) __a);
18704 ret.val[0] = (int64x1_t) __builtin_aarch64_get_dregcidi (__o, 0);
18705 ret.val[1] = (int64x1_t) __builtin_aarch64_get_dregcidi (__o, 1);
18706 ret.val[2] = (int64x1_t) __builtin_aarch64_get_dregcidi (__o, 2);
18707 return ret;
18710 __extension__ extern __inline uint64x1x3_t
18711 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18712 vld3_u64 (const uint64_t * __a)
18714 uint64x1x3_t ret;
18715 __builtin_aarch64_simd_ci __o;
18716 __o = __builtin_aarch64_ld3di ((const __builtin_aarch64_simd_di *) __a);
18717 ret.val[0] = (uint64x1_t) __builtin_aarch64_get_dregcidi (__o, 0);
18718 ret.val[1] = (uint64x1_t) __builtin_aarch64_get_dregcidi (__o, 1);
18719 ret.val[2] = (uint64x1_t) __builtin_aarch64_get_dregcidi (__o, 2);
18720 return ret;
18723 __extension__ extern __inline float64x1x3_t
18724 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18725 vld3_f64 (const float64_t * __a)
18727 float64x1x3_t ret;
18728 __builtin_aarch64_simd_ci __o;
18729 __o = __builtin_aarch64_ld3df ((const __builtin_aarch64_simd_df *) __a);
18730 ret.val[0] = (float64x1_t) {__builtin_aarch64_get_dregcidf (__o, 0)};
18731 ret.val[1] = (float64x1_t) {__builtin_aarch64_get_dregcidf (__o, 1)};
18732 ret.val[2] = (float64x1_t) {__builtin_aarch64_get_dregcidf (__o, 2)};
18733 return ret;
18736 __extension__ extern __inline int8x8x3_t
18737 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18738 vld3_s8 (const int8_t * __a)
18740 int8x8x3_t ret;
18741 __builtin_aarch64_simd_ci __o;
18742 __o = __builtin_aarch64_ld3v8qi ((const __builtin_aarch64_simd_qi *) __a);
18743 ret.val[0] = (int8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 0);
18744 ret.val[1] = (int8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 1);
18745 ret.val[2] = (int8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 2);
18746 return ret;
18749 __extension__ extern __inline poly8x8x3_t
18750 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18751 vld3_p8 (const poly8_t * __a)
18753 poly8x8x3_t ret;
18754 __builtin_aarch64_simd_ci __o;
18755 __o = __builtin_aarch64_ld3v8qi ((const __builtin_aarch64_simd_qi *) __a);
18756 ret.val[0] = (poly8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 0);
18757 ret.val[1] = (poly8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 1);
18758 ret.val[2] = (poly8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 2);
18759 return ret;
18762 __extension__ extern __inline int16x4x3_t
18763 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18764 vld3_s16 (const int16_t * __a)
18766 int16x4x3_t ret;
18767 __builtin_aarch64_simd_ci __o;
18768 __o = __builtin_aarch64_ld3v4hi ((const __builtin_aarch64_simd_hi *) __a);
18769 ret.val[0] = (int16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 0);
18770 ret.val[1] = (int16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 1);
18771 ret.val[2] = (int16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 2);
18772 return ret;
18775 __extension__ extern __inline poly16x4x3_t
18776 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18777 vld3_p16 (const poly16_t * __a)
18779 poly16x4x3_t ret;
18780 __builtin_aarch64_simd_ci __o;
18781 __o = __builtin_aarch64_ld3v4hi ((const __builtin_aarch64_simd_hi *) __a);
18782 ret.val[0] = (poly16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 0);
18783 ret.val[1] = (poly16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 1);
18784 ret.val[2] = (poly16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 2);
18785 return ret;
18788 __extension__ extern __inline int32x2x3_t
18789 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18790 vld3_s32 (const int32_t * __a)
18792 int32x2x3_t ret;
18793 __builtin_aarch64_simd_ci __o;
18794 __o = __builtin_aarch64_ld3v2si ((const __builtin_aarch64_simd_si *) __a);
18795 ret.val[0] = (int32x2_t) __builtin_aarch64_get_dregciv2si (__o, 0);
18796 ret.val[1] = (int32x2_t) __builtin_aarch64_get_dregciv2si (__o, 1);
18797 ret.val[2] = (int32x2_t) __builtin_aarch64_get_dregciv2si (__o, 2);
18798 return ret;
18801 __extension__ extern __inline uint8x8x3_t
18802 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18803 vld3_u8 (const uint8_t * __a)
18805 uint8x8x3_t ret;
18806 __builtin_aarch64_simd_ci __o;
18807 __o = __builtin_aarch64_ld3v8qi ((const __builtin_aarch64_simd_qi *) __a);
18808 ret.val[0] = (uint8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 0);
18809 ret.val[1] = (uint8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 1);
18810 ret.val[2] = (uint8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 2);
18811 return ret;
18814 __extension__ extern __inline uint16x4x3_t
18815 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18816 vld3_u16 (const uint16_t * __a)
18818 uint16x4x3_t ret;
18819 __builtin_aarch64_simd_ci __o;
18820 __o = __builtin_aarch64_ld3v4hi ((const __builtin_aarch64_simd_hi *) __a);
18821 ret.val[0] = (uint16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 0);
18822 ret.val[1] = (uint16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 1);
18823 ret.val[2] = (uint16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 2);
18824 return ret;
18827 __extension__ extern __inline uint32x2x3_t
18828 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18829 vld3_u32 (const uint32_t * __a)
18831 uint32x2x3_t ret;
18832 __builtin_aarch64_simd_ci __o;
18833 __o = __builtin_aarch64_ld3v2si ((const __builtin_aarch64_simd_si *) __a);
18834 ret.val[0] = (uint32x2_t) __builtin_aarch64_get_dregciv2si (__o, 0);
18835 ret.val[1] = (uint32x2_t) __builtin_aarch64_get_dregciv2si (__o, 1);
18836 ret.val[2] = (uint32x2_t) __builtin_aarch64_get_dregciv2si (__o, 2);
18837 return ret;
18840 __extension__ extern __inline float16x4x3_t
18841 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18842 vld3_f16 (const float16_t * __a)
18844 float16x4x3_t ret;
18845 __builtin_aarch64_simd_ci __o;
18846 __o = __builtin_aarch64_ld3v4hf (__a);
18847 ret.val[0] = __builtin_aarch64_get_dregciv4hf (__o, 0);
18848 ret.val[1] = __builtin_aarch64_get_dregciv4hf (__o, 1);
18849 ret.val[2] = __builtin_aarch64_get_dregciv4hf (__o, 2);
18850 return ret;
18853 __extension__ extern __inline float32x2x3_t
18854 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18855 vld3_f32 (const float32_t * __a)
18857 float32x2x3_t ret;
18858 __builtin_aarch64_simd_ci __o;
18859 __o = __builtin_aarch64_ld3v2sf ((const __builtin_aarch64_simd_sf *) __a);
18860 ret.val[0] = (float32x2_t) __builtin_aarch64_get_dregciv2sf (__o, 0);
18861 ret.val[1] = (float32x2_t) __builtin_aarch64_get_dregciv2sf (__o, 1);
18862 ret.val[2] = (float32x2_t) __builtin_aarch64_get_dregciv2sf (__o, 2);
18863 return ret;
18866 __extension__ extern __inline poly64x1x3_t
18867 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18868 vld3_p64 (const poly64_t * __a)
18870 poly64x1x3_t ret;
18871 __builtin_aarch64_simd_ci __o;
18872 __o = __builtin_aarch64_ld3di ((const __builtin_aarch64_simd_di *) __a);
18873 ret.val[0] = (poly64x1_t) __builtin_aarch64_get_dregcidi_pss (__o, 0);
18874 ret.val[1] = (poly64x1_t) __builtin_aarch64_get_dregcidi_pss (__o, 1);
18875 ret.val[2] = (poly64x1_t) __builtin_aarch64_get_dregcidi_pss (__o, 2);
18876 return ret;
18879 __extension__ extern __inline int8x16x3_t
18880 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18881 vld3q_s8 (const int8_t * __a)
18883 int8x16x3_t ret;
18884 __builtin_aarch64_simd_ci __o;
18885 __o = __builtin_aarch64_ld3v16qi ((const __builtin_aarch64_simd_qi *) __a);
18886 ret.val[0] = (int8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 0);
18887 ret.val[1] = (int8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 1);
18888 ret.val[2] = (int8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 2);
18889 return ret;
18892 __extension__ extern __inline poly8x16x3_t
18893 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18894 vld3q_p8 (const poly8_t * __a)
18896 poly8x16x3_t ret;
18897 __builtin_aarch64_simd_ci __o;
18898 __o = __builtin_aarch64_ld3v16qi ((const __builtin_aarch64_simd_qi *) __a);
18899 ret.val[0] = (poly8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 0);
18900 ret.val[1] = (poly8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 1);
18901 ret.val[2] = (poly8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 2);
18902 return ret;
18905 __extension__ extern __inline int16x8x3_t
18906 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18907 vld3q_s16 (const int16_t * __a)
18909 int16x8x3_t ret;
18910 __builtin_aarch64_simd_ci __o;
18911 __o = __builtin_aarch64_ld3v8hi ((const __builtin_aarch64_simd_hi *) __a);
18912 ret.val[0] = (int16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 0);
18913 ret.val[1] = (int16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 1);
18914 ret.val[2] = (int16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 2);
18915 return ret;
18918 __extension__ extern __inline poly16x8x3_t
18919 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18920 vld3q_p16 (const poly16_t * __a)
18922 poly16x8x3_t ret;
18923 __builtin_aarch64_simd_ci __o;
18924 __o = __builtin_aarch64_ld3v8hi ((const __builtin_aarch64_simd_hi *) __a);
18925 ret.val[0] = (poly16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 0);
18926 ret.val[1] = (poly16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 1);
18927 ret.val[2] = (poly16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 2);
18928 return ret;
18931 __extension__ extern __inline int32x4x3_t
18932 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18933 vld3q_s32 (const int32_t * __a)
18935 int32x4x3_t ret;
18936 __builtin_aarch64_simd_ci __o;
18937 __o = __builtin_aarch64_ld3v4si ((const __builtin_aarch64_simd_si *) __a);
18938 ret.val[0] = (int32x4_t) __builtin_aarch64_get_qregciv4si (__o, 0);
18939 ret.val[1] = (int32x4_t) __builtin_aarch64_get_qregciv4si (__o, 1);
18940 ret.val[2] = (int32x4_t) __builtin_aarch64_get_qregciv4si (__o, 2);
18941 return ret;
18944 __extension__ extern __inline int64x2x3_t
18945 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18946 vld3q_s64 (const int64_t * __a)
18948 int64x2x3_t ret;
18949 __builtin_aarch64_simd_ci __o;
18950 __o = __builtin_aarch64_ld3v2di ((const __builtin_aarch64_simd_di *) __a);
18951 ret.val[0] = (int64x2_t) __builtin_aarch64_get_qregciv2di (__o, 0);
18952 ret.val[1] = (int64x2_t) __builtin_aarch64_get_qregciv2di (__o, 1);
18953 ret.val[2] = (int64x2_t) __builtin_aarch64_get_qregciv2di (__o, 2);
18954 return ret;
18957 __extension__ extern __inline uint8x16x3_t
18958 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18959 vld3q_u8 (const uint8_t * __a)
18961 uint8x16x3_t ret;
18962 __builtin_aarch64_simd_ci __o;
18963 __o = __builtin_aarch64_ld3v16qi ((const __builtin_aarch64_simd_qi *) __a);
18964 ret.val[0] = (uint8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 0);
18965 ret.val[1] = (uint8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 1);
18966 ret.val[2] = (uint8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 2);
18967 return ret;
18970 __extension__ extern __inline uint16x8x3_t
18971 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18972 vld3q_u16 (const uint16_t * __a)
18974 uint16x8x3_t ret;
18975 __builtin_aarch64_simd_ci __o;
18976 __o = __builtin_aarch64_ld3v8hi ((const __builtin_aarch64_simd_hi *) __a);
18977 ret.val[0] = (uint16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 0);
18978 ret.val[1] = (uint16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 1);
18979 ret.val[2] = (uint16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 2);
18980 return ret;
18983 __extension__ extern __inline uint32x4x3_t
18984 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18985 vld3q_u32 (const uint32_t * __a)
18987 uint32x4x3_t ret;
18988 __builtin_aarch64_simd_ci __o;
18989 __o = __builtin_aarch64_ld3v4si ((const __builtin_aarch64_simd_si *) __a);
18990 ret.val[0] = (uint32x4_t) __builtin_aarch64_get_qregciv4si (__o, 0);
18991 ret.val[1] = (uint32x4_t) __builtin_aarch64_get_qregciv4si (__o, 1);
18992 ret.val[2] = (uint32x4_t) __builtin_aarch64_get_qregciv4si (__o, 2);
18993 return ret;
18996 __extension__ extern __inline uint64x2x3_t
18997 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18998 vld3q_u64 (const uint64_t * __a)
19000 uint64x2x3_t ret;
19001 __builtin_aarch64_simd_ci __o;
19002 __o = __builtin_aarch64_ld3v2di ((const __builtin_aarch64_simd_di *) __a);
19003 ret.val[0] = (uint64x2_t) __builtin_aarch64_get_qregciv2di (__o, 0);
19004 ret.val[1] = (uint64x2_t) __builtin_aarch64_get_qregciv2di (__o, 1);
19005 ret.val[2] = (uint64x2_t) __builtin_aarch64_get_qregciv2di (__o, 2);
19006 return ret;
19009 __extension__ extern __inline float16x8x3_t
19010 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19011 vld3q_f16 (const float16_t * __a)
19013 float16x8x3_t ret;
19014 __builtin_aarch64_simd_ci __o;
19015 __o = __builtin_aarch64_ld3v8hf (__a);
19016 ret.val[0] = __builtin_aarch64_get_qregciv8hf (__o, 0);
19017 ret.val[1] = __builtin_aarch64_get_qregciv8hf (__o, 1);
19018 ret.val[2] = __builtin_aarch64_get_qregciv8hf (__o, 2);
19019 return ret;
19022 __extension__ extern __inline float32x4x3_t
19023 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19024 vld3q_f32 (const float32_t * __a)
19026 float32x4x3_t ret;
19027 __builtin_aarch64_simd_ci __o;
19028 __o = __builtin_aarch64_ld3v4sf ((const __builtin_aarch64_simd_sf *) __a);
19029 ret.val[0] = (float32x4_t) __builtin_aarch64_get_qregciv4sf (__o, 0);
19030 ret.val[1] = (float32x4_t) __builtin_aarch64_get_qregciv4sf (__o, 1);
19031 ret.val[2] = (float32x4_t) __builtin_aarch64_get_qregciv4sf (__o, 2);
19032 return ret;
19035 __extension__ extern __inline float64x2x3_t
19036 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19037 vld3q_f64 (const float64_t * __a)
19039 float64x2x3_t ret;
19040 __builtin_aarch64_simd_ci __o;
19041 __o = __builtin_aarch64_ld3v2df ((const __builtin_aarch64_simd_df *) __a);
19042 ret.val[0] = (float64x2_t) __builtin_aarch64_get_qregciv2df (__o, 0);
19043 ret.val[1] = (float64x2_t) __builtin_aarch64_get_qregciv2df (__o, 1);
19044 ret.val[2] = (float64x2_t) __builtin_aarch64_get_qregciv2df (__o, 2);
19045 return ret;
19048 __extension__ extern __inline poly64x2x3_t
19049 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19050 vld3q_p64 (const poly64_t * __a)
19052 poly64x2x3_t ret;
19053 __builtin_aarch64_simd_ci __o;
19054 __o = __builtin_aarch64_ld3v2di ((const __builtin_aarch64_simd_di *) __a);
19055 ret.val[0] = (poly64x2_t) __builtin_aarch64_get_qregciv2di_pss (__o, 0);
19056 ret.val[1] = (poly64x2_t) __builtin_aarch64_get_qregciv2di_pss (__o, 1);
19057 ret.val[2] = (poly64x2_t) __builtin_aarch64_get_qregciv2di_pss (__o, 2);
19058 return ret;
19061 __extension__ extern __inline int64x1x4_t
19062 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19063 vld4_s64 (const int64_t * __a)
19065 int64x1x4_t ret;
19066 __builtin_aarch64_simd_xi __o;
19067 __o = __builtin_aarch64_ld4di ((const __builtin_aarch64_simd_di *) __a);
19068 ret.val[0] = (int64x1_t) __builtin_aarch64_get_dregxidi (__o, 0);
19069 ret.val[1] = (int64x1_t) __builtin_aarch64_get_dregxidi (__o, 1);
19070 ret.val[2] = (int64x1_t) __builtin_aarch64_get_dregxidi (__o, 2);
19071 ret.val[3] = (int64x1_t) __builtin_aarch64_get_dregxidi (__o, 3);
19072 return ret;
19075 __extension__ extern __inline uint64x1x4_t
19076 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19077 vld4_u64 (const uint64_t * __a)
19079 uint64x1x4_t ret;
19080 __builtin_aarch64_simd_xi __o;
19081 __o = __builtin_aarch64_ld4di ((const __builtin_aarch64_simd_di *) __a);
19082 ret.val[0] = (uint64x1_t) __builtin_aarch64_get_dregxidi (__o, 0);
19083 ret.val[1] = (uint64x1_t) __builtin_aarch64_get_dregxidi (__o, 1);
19084 ret.val[2] = (uint64x1_t) __builtin_aarch64_get_dregxidi (__o, 2);
19085 ret.val[3] = (uint64x1_t) __builtin_aarch64_get_dregxidi (__o, 3);
19086 return ret;
19089 __extension__ extern __inline float64x1x4_t
19090 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19091 vld4_f64 (const float64_t * __a)
19093 float64x1x4_t ret;
19094 __builtin_aarch64_simd_xi __o;
19095 __o = __builtin_aarch64_ld4df ((const __builtin_aarch64_simd_df *) __a);
19096 ret.val[0] = (float64x1_t) {__builtin_aarch64_get_dregxidf (__o, 0)};
19097 ret.val[1] = (float64x1_t) {__builtin_aarch64_get_dregxidf (__o, 1)};
19098 ret.val[2] = (float64x1_t) {__builtin_aarch64_get_dregxidf (__o, 2)};
19099 ret.val[3] = (float64x1_t) {__builtin_aarch64_get_dregxidf (__o, 3)};
19100 return ret;
19103 __extension__ extern __inline int8x8x4_t
19104 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19105 vld4_s8 (const int8_t * __a)
19107 int8x8x4_t ret;
19108 __builtin_aarch64_simd_xi __o;
19109 __o = __builtin_aarch64_ld4v8qi ((const __builtin_aarch64_simd_qi *) __a);
19110 ret.val[0] = (int8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 0);
19111 ret.val[1] = (int8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 1);
19112 ret.val[2] = (int8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 2);
19113 ret.val[3] = (int8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 3);
19114 return ret;
19117 __extension__ extern __inline poly8x8x4_t
19118 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19119 vld4_p8 (const poly8_t * __a)
19121 poly8x8x4_t ret;
19122 __builtin_aarch64_simd_xi __o;
19123 __o = __builtin_aarch64_ld4v8qi ((const __builtin_aarch64_simd_qi *) __a);
19124 ret.val[0] = (poly8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 0);
19125 ret.val[1] = (poly8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 1);
19126 ret.val[2] = (poly8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 2);
19127 ret.val[3] = (poly8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 3);
19128 return ret;
19131 __extension__ extern __inline int16x4x4_t
19132 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19133 vld4_s16 (const int16_t * __a)
19135 int16x4x4_t ret;
19136 __builtin_aarch64_simd_xi __o;
19137 __o = __builtin_aarch64_ld4v4hi ((const __builtin_aarch64_simd_hi *) __a);
19138 ret.val[0] = (int16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 0);
19139 ret.val[1] = (int16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 1);
19140 ret.val[2] = (int16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 2);
19141 ret.val[3] = (int16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 3);
19142 return ret;
19145 __extension__ extern __inline poly16x4x4_t
19146 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19147 vld4_p16 (const poly16_t * __a)
19149 poly16x4x4_t ret;
19150 __builtin_aarch64_simd_xi __o;
19151 __o = __builtin_aarch64_ld4v4hi ((const __builtin_aarch64_simd_hi *) __a);
19152 ret.val[0] = (poly16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 0);
19153 ret.val[1] = (poly16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 1);
19154 ret.val[2] = (poly16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 2);
19155 ret.val[3] = (poly16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 3);
19156 return ret;
19159 __extension__ extern __inline int32x2x4_t
19160 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19161 vld4_s32 (const int32_t * __a)
19163 int32x2x4_t ret;
19164 __builtin_aarch64_simd_xi __o;
19165 __o = __builtin_aarch64_ld4v2si ((const __builtin_aarch64_simd_si *) __a);
19166 ret.val[0] = (int32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 0);
19167 ret.val[1] = (int32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 1);
19168 ret.val[2] = (int32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 2);
19169 ret.val[3] = (int32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 3);
19170 return ret;
19173 __extension__ extern __inline uint8x8x4_t
19174 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19175 vld4_u8 (const uint8_t * __a)
19177 uint8x8x4_t ret;
19178 __builtin_aarch64_simd_xi __o;
19179 __o = __builtin_aarch64_ld4v8qi ((const __builtin_aarch64_simd_qi *) __a);
19180 ret.val[0] = (uint8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 0);
19181 ret.val[1] = (uint8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 1);
19182 ret.val[2] = (uint8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 2);
19183 ret.val[3] = (uint8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 3);
19184 return ret;
19187 __extension__ extern __inline uint16x4x4_t
19188 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19189 vld4_u16 (const uint16_t * __a)
19191 uint16x4x4_t ret;
19192 __builtin_aarch64_simd_xi __o;
19193 __o = __builtin_aarch64_ld4v4hi ((const __builtin_aarch64_simd_hi *) __a);
19194 ret.val[0] = (uint16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 0);
19195 ret.val[1] = (uint16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 1);
19196 ret.val[2] = (uint16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 2);
19197 ret.val[3] = (uint16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 3);
19198 return ret;
19201 __extension__ extern __inline uint32x2x4_t
19202 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19203 vld4_u32 (const uint32_t * __a)
19205 uint32x2x4_t ret;
19206 __builtin_aarch64_simd_xi __o;
19207 __o = __builtin_aarch64_ld4v2si ((const __builtin_aarch64_simd_si *) __a);
19208 ret.val[0] = (uint32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 0);
19209 ret.val[1] = (uint32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 1);
19210 ret.val[2] = (uint32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 2);
19211 ret.val[3] = (uint32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 3);
19212 return ret;
19215 __extension__ extern __inline float16x4x4_t
19216 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19217 vld4_f16 (const float16_t * __a)
19219 float16x4x4_t ret;
19220 __builtin_aarch64_simd_xi __o;
19221 __o = __builtin_aarch64_ld4v4hf (__a);
19222 ret.val[0] = __builtin_aarch64_get_dregxiv4hf (__o, 0);
19223 ret.val[1] = __builtin_aarch64_get_dregxiv4hf (__o, 1);
19224 ret.val[2] = __builtin_aarch64_get_dregxiv4hf (__o, 2);
19225 ret.val[3] = __builtin_aarch64_get_dregxiv4hf (__o, 3);
19226 return ret;
19229 __extension__ extern __inline float32x2x4_t
19230 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19231 vld4_f32 (const float32_t * __a)
19233 float32x2x4_t ret;
19234 __builtin_aarch64_simd_xi __o;
19235 __o = __builtin_aarch64_ld4v2sf ((const __builtin_aarch64_simd_sf *) __a);
19236 ret.val[0] = (float32x2_t) __builtin_aarch64_get_dregxiv2sf (__o, 0);
19237 ret.val[1] = (float32x2_t) __builtin_aarch64_get_dregxiv2sf (__o, 1);
19238 ret.val[2] = (float32x2_t) __builtin_aarch64_get_dregxiv2sf (__o, 2);
19239 ret.val[3] = (float32x2_t) __builtin_aarch64_get_dregxiv2sf (__o, 3);
19240 return ret;
19243 __extension__ extern __inline poly64x1x4_t
19244 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19245 vld4_p64 (const poly64_t * __a)
19247 poly64x1x4_t ret;
19248 __builtin_aarch64_simd_xi __o;
19249 __o = __builtin_aarch64_ld4di ((const __builtin_aarch64_simd_di *) __a);
19250 ret.val[0] = (poly64x1_t) __builtin_aarch64_get_dregxidi_pss (__o, 0);
19251 ret.val[1] = (poly64x1_t) __builtin_aarch64_get_dregxidi_pss (__o, 1);
19252 ret.val[2] = (poly64x1_t) __builtin_aarch64_get_dregxidi_pss (__o, 2);
19253 ret.val[3] = (poly64x1_t) __builtin_aarch64_get_dregxidi_pss (__o, 3);
19254 return ret;
19257 __extension__ extern __inline int8x16x4_t
19258 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19259 vld4q_s8 (const int8_t * __a)
19261 int8x16x4_t ret;
19262 __builtin_aarch64_simd_xi __o;
19263 __o = __builtin_aarch64_ld4v16qi ((const __builtin_aarch64_simd_qi *) __a);
19264 ret.val[0] = (int8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 0);
19265 ret.val[1] = (int8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 1);
19266 ret.val[2] = (int8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 2);
19267 ret.val[3] = (int8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 3);
19268 return ret;
19271 __extension__ extern __inline poly8x16x4_t
19272 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19273 vld4q_p8 (const poly8_t * __a)
19275 poly8x16x4_t ret;
19276 __builtin_aarch64_simd_xi __o;
19277 __o = __builtin_aarch64_ld4v16qi ((const __builtin_aarch64_simd_qi *) __a);
19278 ret.val[0] = (poly8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 0);
19279 ret.val[1] = (poly8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 1);
19280 ret.val[2] = (poly8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 2);
19281 ret.val[3] = (poly8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 3);
19282 return ret;
19285 __extension__ extern __inline int16x8x4_t
19286 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19287 vld4q_s16 (const int16_t * __a)
19289 int16x8x4_t ret;
19290 __builtin_aarch64_simd_xi __o;
19291 __o = __builtin_aarch64_ld4v8hi ((const __builtin_aarch64_simd_hi *) __a);
19292 ret.val[0] = (int16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 0);
19293 ret.val[1] = (int16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 1);
19294 ret.val[2] = (int16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 2);
19295 ret.val[3] = (int16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 3);
19296 return ret;
19299 __extension__ extern __inline poly16x8x4_t
19300 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19301 vld4q_p16 (const poly16_t * __a)
19303 poly16x8x4_t ret;
19304 __builtin_aarch64_simd_xi __o;
19305 __o = __builtin_aarch64_ld4v8hi ((const __builtin_aarch64_simd_hi *) __a);
19306 ret.val[0] = (poly16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 0);
19307 ret.val[1] = (poly16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 1);
19308 ret.val[2] = (poly16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 2);
19309 ret.val[3] = (poly16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 3);
19310 return ret;
19313 __extension__ extern __inline int32x4x4_t
19314 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19315 vld4q_s32 (const int32_t * __a)
19317 int32x4x4_t ret;
19318 __builtin_aarch64_simd_xi __o;
19319 __o = __builtin_aarch64_ld4v4si ((const __builtin_aarch64_simd_si *) __a);
19320 ret.val[0] = (int32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 0);
19321 ret.val[1] = (int32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 1);
19322 ret.val[2] = (int32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 2);
19323 ret.val[3] = (int32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 3);
19324 return ret;
19327 __extension__ extern __inline int64x2x4_t
19328 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19329 vld4q_s64 (const int64_t * __a)
19331 int64x2x4_t ret;
19332 __builtin_aarch64_simd_xi __o;
19333 __o = __builtin_aarch64_ld4v2di ((const __builtin_aarch64_simd_di *) __a);
19334 ret.val[0] = (int64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 0);
19335 ret.val[1] = (int64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 1);
19336 ret.val[2] = (int64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 2);
19337 ret.val[3] = (int64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 3);
19338 return ret;
19341 __extension__ extern __inline uint8x16x4_t
19342 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19343 vld4q_u8 (const uint8_t * __a)
19345 uint8x16x4_t ret;
19346 __builtin_aarch64_simd_xi __o;
19347 __o = __builtin_aarch64_ld4v16qi ((const __builtin_aarch64_simd_qi *) __a);
19348 ret.val[0] = (uint8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 0);
19349 ret.val[1] = (uint8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 1);
19350 ret.val[2] = (uint8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 2);
19351 ret.val[3] = (uint8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 3);
19352 return ret;
19355 __extension__ extern __inline uint16x8x4_t
19356 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19357 vld4q_u16 (const uint16_t * __a)
19359 uint16x8x4_t ret;
19360 __builtin_aarch64_simd_xi __o;
19361 __o = __builtin_aarch64_ld4v8hi ((const __builtin_aarch64_simd_hi *) __a);
19362 ret.val[0] = (uint16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 0);
19363 ret.val[1] = (uint16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 1);
19364 ret.val[2] = (uint16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 2);
19365 ret.val[3] = (uint16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 3);
19366 return ret;
19369 __extension__ extern __inline uint32x4x4_t
19370 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19371 vld4q_u32 (const uint32_t * __a)
19373 uint32x4x4_t ret;
19374 __builtin_aarch64_simd_xi __o;
19375 __o = __builtin_aarch64_ld4v4si ((const __builtin_aarch64_simd_si *) __a);
19376 ret.val[0] = (uint32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 0);
19377 ret.val[1] = (uint32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 1);
19378 ret.val[2] = (uint32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 2);
19379 ret.val[3] = (uint32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 3);
19380 return ret;
19383 __extension__ extern __inline uint64x2x4_t
19384 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19385 vld4q_u64 (const uint64_t * __a)
19387 uint64x2x4_t ret;
19388 __builtin_aarch64_simd_xi __o;
19389 __o = __builtin_aarch64_ld4v2di ((const __builtin_aarch64_simd_di *) __a);
19390 ret.val[0] = (uint64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 0);
19391 ret.val[1] = (uint64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 1);
19392 ret.val[2] = (uint64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 2);
19393 ret.val[3] = (uint64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 3);
19394 return ret;
19397 __extension__ extern __inline float16x8x4_t
19398 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19399 vld4q_f16 (const float16_t * __a)
19401 float16x8x4_t ret;
19402 __builtin_aarch64_simd_xi __o;
19403 __o = __builtin_aarch64_ld4v8hf (__a);
19404 ret.val[0] = __builtin_aarch64_get_qregxiv8hf (__o, 0);
19405 ret.val[1] = __builtin_aarch64_get_qregxiv8hf (__o, 1);
19406 ret.val[2] = __builtin_aarch64_get_qregxiv8hf (__o, 2);
19407 ret.val[3] = __builtin_aarch64_get_qregxiv8hf (__o, 3);
19408 return ret;
19411 __extension__ extern __inline float32x4x4_t
19412 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19413 vld4q_f32 (const float32_t * __a)
19415 float32x4x4_t ret;
19416 __builtin_aarch64_simd_xi __o;
19417 __o = __builtin_aarch64_ld4v4sf ((const __builtin_aarch64_simd_sf *) __a);
19418 ret.val[0] = (float32x4_t) __builtin_aarch64_get_qregxiv4sf (__o, 0);
19419 ret.val[1] = (float32x4_t) __builtin_aarch64_get_qregxiv4sf (__o, 1);
19420 ret.val[2] = (float32x4_t) __builtin_aarch64_get_qregxiv4sf (__o, 2);
19421 ret.val[3] = (float32x4_t) __builtin_aarch64_get_qregxiv4sf (__o, 3);
19422 return ret;
19425 __extension__ extern __inline float64x2x4_t
19426 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19427 vld4q_f64 (const float64_t * __a)
19429 float64x2x4_t ret;
19430 __builtin_aarch64_simd_xi __o;
19431 __o = __builtin_aarch64_ld4v2df ((const __builtin_aarch64_simd_df *) __a);
19432 ret.val[0] = (float64x2_t) __builtin_aarch64_get_qregxiv2df (__o, 0);
19433 ret.val[1] = (float64x2_t) __builtin_aarch64_get_qregxiv2df (__o, 1);
19434 ret.val[2] = (float64x2_t) __builtin_aarch64_get_qregxiv2df (__o, 2);
19435 ret.val[3] = (float64x2_t) __builtin_aarch64_get_qregxiv2df (__o, 3);
19436 return ret;
19439 __extension__ extern __inline poly64x2x4_t
19440 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19441 vld4q_p64 (const poly64_t * __a)
19443 poly64x2x4_t ret;
19444 __builtin_aarch64_simd_xi __o;
19445 __o = __builtin_aarch64_ld4v2di ((const __builtin_aarch64_simd_di *) __a);
19446 ret.val[0] = (poly64x2_t) __builtin_aarch64_get_qregxiv2di_pss (__o, 0);
19447 ret.val[1] = (poly64x2_t) __builtin_aarch64_get_qregxiv2di_pss (__o, 1);
19448 ret.val[2] = (poly64x2_t) __builtin_aarch64_get_qregxiv2di_pss (__o, 2);
19449 ret.val[3] = (poly64x2_t) __builtin_aarch64_get_qregxiv2di_pss (__o, 3);
19450 return ret;
19453 /* vldn_dup */
19455 __extension__ extern __inline int8x8x2_t
19456 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19457 vld2_dup_s8 (const int8_t * __a)
19459 int8x8x2_t ret;
19460 __builtin_aarch64_simd_oi __o;
19461 __o = __builtin_aarch64_ld2rv8qi ((const __builtin_aarch64_simd_qi *) __a);
19462 ret.val[0] = (int8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 0);
19463 ret.val[1] = (int8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 1);
19464 return ret;
19467 __extension__ extern __inline int16x4x2_t
19468 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19469 vld2_dup_s16 (const int16_t * __a)
19471 int16x4x2_t ret;
19472 __builtin_aarch64_simd_oi __o;
19473 __o = __builtin_aarch64_ld2rv4hi ((const __builtin_aarch64_simd_hi *) __a);
19474 ret.val[0] = (int16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 0);
19475 ret.val[1] = (int16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 1);
19476 return ret;
19479 __extension__ extern __inline int32x2x2_t
19480 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19481 vld2_dup_s32 (const int32_t * __a)
19483 int32x2x2_t ret;
19484 __builtin_aarch64_simd_oi __o;
19485 __o = __builtin_aarch64_ld2rv2si ((const __builtin_aarch64_simd_si *) __a);
19486 ret.val[0] = (int32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 0);
19487 ret.val[1] = (int32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 1);
19488 return ret;
19491 __extension__ extern __inline float16x4x2_t
19492 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19493 vld2_dup_f16 (const float16_t * __a)
19495 float16x4x2_t ret;
19496 __builtin_aarch64_simd_oi __o;
19497 __o = __builtin_aarch64_ld2rv4hf ((const __builtin_aarch64_simd_hf *) __a);
19498 ret.val[0] = __builtin_aarch64_get_dregoiv4hf (__o, 0);
19499 ret.val[1] = (float16x4_t) __builtin_aarch64_get_dregoiv4hf (__o, 1);
19500 return ret;
19503 __extension__ extern __inline float32x2x2_t
19504 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19505 vld2_dup_f32 (const float32_t * __a)
19507 float32x2x2_t ret;
19508 __builtin_aarch64_simd_oi __o;
19509 __o = __builtin_aarch64_ld2rv2sf ((const __builtin_aarch64_simd_sf *) __a);
19510 ret.val[0] = (float32x2_t) __builtin_aarch64_get_dregoiv2sf (__o, 0);
19511 ret.val[1] = (float32x2_t) __builtin_aarch64_get_dregoiv2sf (__o, 1);
19512 return ret;
19515 __extension__ extern __inline float64x1x2_t
19516 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19517 vld2_dup_f64 (const float64_t * __a)
19519 float64x1x2_t ret;
19520 __builtin_aarch64_simd_oi __o;
19521 __o = __builtin_aarch64_ld2rdf ((const __builtin_aarch64_simd_df *) __a);
19522 ret.val[0] = (float64x1_t) {__builtin_aarch64_get_dregoidf (__o, 0)};
19523 ret.val[1] = (float64x1_t) {__builtin_aarch64_get_dregoidf (__o, 1)};
19524 return ret;
19527 __extension__ extern __inline uint8x8x2_t
19528 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19529 vld2_dup_u8 (const uint8_t * __a)
19531 uint8x8x2_t ret;
19532 __builtin_aarch64_simd_oi __o;
19533 __o = __builtin_aarch64_ld2rv8qi ((const __builtin_aarch64_simd_qi *) __a);
19534 ret.val[0] = (uint8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 0);
19535 ret.val[1] = (uint8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 1);
19536 return ret;
19539 __extension__ extern __inline uint16x4x2_t
19540 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19541 vld2_dup_u16 (const uint16_t * __a)
19543 uint16x4x2_t ret;
19544 __builtin_aarch64_simd_oi __o;
19545 __o = __builtin_aarch64_ld2rv4hi ((const __builtin_aarch64_simd_hi *) __a);
19546 ret.val[0] = (uint16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 0);
19547 ret.val[1] = (uint16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 1);
19548 return ret;
19551 __extension__ extern __inline uint32x2x2_t
19552 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19553 vld2_dup_u32 (const uint32_t * __a)
19555 uint32x2x2_t ret;
19556 __builtin_aarch64_simd_oi __o;
19557 __o = __builtin_aarch64_ld2rv2si ((const __builtin_aarch64_simd_si *) __a);
19558 ret.val[0] = (uint32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 0);
19559 ret.val[1] = (uint32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 1);
19560 return ret;
19563 __extension__ extern __inline poly8x8x2_t
19564 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19565 vld2_dup_p8 (const poly8_t * __a)
19567 poly8x8x2_t ret;
19568 __builtin_aarch64_simd_oi __o;
19569 __o = __builtin_aarch64_ld2rv8qi ((const __builtin_aarch64_simd_qi *) __a);
19570 ret.val[0] = (poly8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 0);
19571 ret.val[1] = (poly8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 1);
19572 return ret;
19575 __extension__ extern __inline poly16x4x2_t
19576 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19577 vld2_dup_p16 (const poly16_t * __a)
19579 poly16x4x2_t ret;
19580 __builtin_aarch64_simd_oi __o;
19581 __o = __builtin_aarch64_ld2rv4hi ((const __builtin_aarch64_simd_hi *) __a);
19582 ret.val[0] = (poly16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 0);
19583 ret.val[1] = (poly16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 1);
19584 return ret;
19587 __extension__ extern __inline poly64x1x2_t
19588 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19589 vld2_dup_p64 (const poly64_t * __a)
19591 poly64x1x2_t ret;
19592 __builtin_aarch64_simd_oi __o;
19593 __o = __builtin_aarch64_ld2rv2di ((const __builtin_aarch64_simd_di *) __a);
19594 ret.val[0] = (poly64x1_t) __builtin_aarch64_get_dregoidi_pss (__o, 0);
19595 ret.val[1] = (poly64x1_t) __builtin_aarch64_get_dregoidi_pss (__o, 1);
19596 return ret;
19600 __extension__ extern __inline int64x1x2_t
19601 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19602 vld2_dup_s64 (const int64_t * __a)
19604 int64x1x2_t ret;
19605 __builtin_aarch64_simd_oi __o;
19606 __o = __builtin_aarch64_ld2rdi ((const __builtin_aarch64_simd_di *) __a);
19607 ret.val[0] = (int64x1_t) __builtin_aarch64_get_dregoidi (__o, 0);
19608 ret.val[1] = (int64x1_t) __builtin_aarch64_get_dregoidi (__o, 1);
19609 return ret;
19612 __extension__ extern __inline uint64x1x2_t
19613 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19614 vld2_dup_u64 (const uint64_t * __a)
19616 uint64x1x2_t ret;
19617 __builtin_aarch64_simd_oi __o;
19618 __o = __builtin_aarch64_ld2rdi ((const __builtin_aarch64_simd_di *) __a);
19619 ret.val[0] = (uint64x1_t) __builtin_aarch64_get_dregoidi (__o, 0);
19620 ret.val[1] = (uint64x1_t) __builtin_aarch64_get_dregoidi (__o, 1);
19621 return ret;
19624 __extension__ extern __inline int8x16x2_t
19625 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19626 vld2q_dup_s8 (const int8_t * __a)
19628 int8x16x2_t ret;
19629 __builtin_aarch64_simd_oi __o;
19630 __o = __builtin_aarch64_ld2rv16qi ((const __builtin_aarch64_simd_qi *) __a);
19631 ret.val[0] = (int8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 0);
19632 ret.val[1] = (int8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 1);
19633 return ret;
19636 __extension__ extern __inline poly8x16x2_t
19637 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19638 vld2q_dup_p8 (const poly8_t * __a)
19640 poly8x16x2_t ret;
19641 __builtin_aarch64_simd_oi __o;
19642 __o = __builtin_aarch64_ld2rv16qi ((const __builtin_aarch64_simd_qi *) __a);
19643 ret.val[0] = (poly8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 0);
19644 ret.val[1] = (poly8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 1);
19645 return ret;
19648 __extension__ extern __inline int16x8x2_t
19649 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19650 vld2q_dup_s16 (const int16_t * __a)
19652 int16x8x2_t ret;
19653 __builtin_aarch64_simd_oi __o;
19654 __o = __builtin_aarch64_ld2rv8hi ((const __builtin_aarch64_simd_hi *) __a);
19655 ret.val[0] = (int16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 0);
19656 ret.val[1] = (int16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 1);
19657 return ret;
19660 __extension__ extern __inline poly16x8x2_t
19661 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19662 vld2q_dup_p16 (const poly16_t * __a)
19664 poly16x8x2_t ret;
19665 __builtin_aarch64_simd_oi __o;
19666 __o = __builtin_aarch64_ld2rv8hi ((const __builtin_aarch64_simd_hi *) __a);
19667 ret.val[0] = (poly16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 0);
19668 ret.val[1] = (poly16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 1);
19669 return ret;
19672 __extension__ extern __inline int32x4x2_t
19673 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19674 vld2q_dup_s32 (const int32_t * __a)
19676 int32x4x2_t ret;
19677 __builtin_aarch64_simd_oi __o;
19678 __o = __builtin_aarch64_ld2rv4si ((const __builtin_aarch64_simd_si *) __a);
19679 ret.val[0] = (int32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 0);
19680 ret.val[1] = (int32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 1);
19681 return ret;
19684 __extension__ extern __inline int64x2x2_t
19685 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19686 vld2q_dup_s64 (const int64_t * __a)
19688 int64x2x2_t ret;
19689 __builtin_aarch64_simd_oi __o;
19690 __o = __builtin_aarch64_ld2rv2di ((const __builtin_aarch64_simd_di *) __a);
19691 ret.val[0] = (int64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 0);
19692 ret.val[1] = (int64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 1);
19693 return ret;
19696 __extension__ extern __inline uint8x16x2_t
19697 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19698 vld2q_dup_u8 (const uint8_t * __a)
19700 uint8x16x2_t ret;
19701 __builtin_aarch64_simd_oi __o;
19702 __o = __builtin_aarch64_ld2rv16qi ((const __builtin_aarch64_simd_qi *) __a);
19703 ret.val[0] = (uint8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 0);
19704 ret.val[1] = (uint8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 1);
19705 return ret;
19708 __extension__ extern __inline uint16x8x2_t
19709 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19710 vld2q_dup_u16 (const uint16_t * __a)
19712 uint16x8x2_t ret;
19713 __builtin_aarch64_simd_oi __o;
19714 __o = __builtin_aarch64_ld2rv8hi ((const __builtin_aarch64_simd_hi *) __a);
19715 ret.val[0] = (uint16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 0);
19716 ret.val[1] = (uint16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 1);
19717 return ret;
19720 __extension__ extern __inline uint32x4x2_t
19721 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19722 vld2q_dup_u32 (const uint32_t * __a)
19724 uint32x4x2_t ret;
19725 __builtin_aarch64_simd_oi __o;
19726 __o = __builtin_aarch64_ld2rv4si ((const __builtin_aarch64_simd_si *) __a);
19727 ret.val[0] = (uint32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 0);
19728 ret.val[1] = (uint32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 1);
19729 return ret;
19732 __extension__ extern __inline uint64x2x2_t
19733 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19734 vld2q_dup_u64 (const uint64_t * __a)
19736 uint64x2x2_t ret;
19737 __builtin_aarch64_simd_oi __o;
19738 __o = __builtin_aarch64_ld2rv2di ((const __builtin_aarch64_simd_di *) __a);
19739 ret.val[0] = (uint64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 0);
19740 ret.val[1] = (uint64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 1);
19741 return ret;
19744 __extension__ extern __inline float16x8x2_t
19745 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19746 vld2q_dup_f16 (const float16_t * __a)
19748 float16x8x2_t ret;
19749 __builtin_aarch64_simd_oi __o;
19750 __o = __builtin_aarch64_ld2rv8hf ((const __builtin_aarch64_simd_hf *) __a);
19751 ret.val[0] = (float16x8_t) __builtin_aarch64_get_qregoiv8hf (__o, 0);
19752 ret.val[1] = __builtin_aarch64_get_qregoiv8hf (__o, 1);
19753 return ret;
19756 __extension__ extern __inline float32x4x2_t
19757 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19758 vld2q_dup_f32 (const float32_t * __a)
19760 float32x4x2_t ret;
19761 __builtin_aarch64_simd_oi __o;
19762 __o = __builtin_aarch64_ld2rv4sf ((const __builtin_aarch64_simd_sf *) __a);
19763 ret.val[0] = (float32x4_t) __builtin_aarch64_get_qregoiv4sf (__o, 0);
19764 ret.val[1] = (float32x4_t) __builtin_aarch64_get_qregoiv4sf (__o, 1);
19765 return ret;
19768 __extension__ extern __inline float64x2x2_t
19769 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19770 vld2q_dup_f64 (const float64_t * __a)
19772 float64x2x2_t ret;
19773 __builtin_aarch64_simd_oi __o;
19774 __o = __builtin_aarch64_ld2rv2df ((const __builtin_aarch64_simd_df *) __a);
19775 ret.val[0] = (float64x2_t) __builtin_aarch64_get_qregoiv2df (__o, 0);
19776 ret.val[1] = (float64x2_t) __builtin_aarch64_get_qregoiv2df (__o, 1);
19777 return ret;
19780 __extension__ extern __inline poly64x2x2_t
19781 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19782 vld2q_dup_p64 (const poly64_t * __a)
19784 poly64x2x2_t ret;
19785 __builtin_aarch64_simd_oi __o;
19786 __o = __builtin_aarch64_ld2rv2di ((const __builtin_aarch64_simd_di *) __a);
19787 ret.val[0] = (poly64x2_t) __builtin_aarch64_get_qregoiv2di_pss (__o, 0);
19788 ret.val[1] = (poly64x2_t) __builtin_aarch64_get_qregoiv2di_pss (__o, 1);
19789 return ret;
19792 __extension__ extern __inline int64x1x3_t
19793 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19794 vld3_dup_s64 (const int64_t * __a)
19796 int64x1x3_t ret;
19797 __builtin_aarch64_simd_ci __o;
19798 __o = __builtin_aarch64_ld3rdi ((const __builtin_aarch64_simd_di *) __a);
19799 ret.val[0] = (int64x1_t) __builtin_aarch64_get_dregcidi (__o, 0);
19800 ret.val[1] = (int64x1_t) __builtin_aarch64_get_dregcidi (__o, 1);
19801 ret.val[2] = (int64x1_t) __builtin_aarch64_get_dregcidi (__o, 2);
19802 return ret;
19805 __extension__ extern __inline uint64x1x3_t
19806 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19807 vld3_dup_u64 (const uint64_t * __a)
19809 uint64x1x3_t ret;
19810 __builtin_aarch64_simd_ci __o;
19811 __o = __builtin_aarch64_ld3rdi ((const __builtin_aarch64_simd_di *) __a);
19812 ret.val[0] = (uint64x1_t) __builtin_aarch64_get_dregcidi (__o, 0);
19813 ret.val[1] = (uint64x1_t) __builtin_aarch64_get_dregcidi (__o, 1);
19814 ret.val[2] = (uint64x1_t) __builtin_aarch64_get_dregcidi (__o, 2);
19815 return ret;
19818 __extension__ extern __inline float64x1x3_t
19819 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19820 vld3_dup_f64 (const float64_t * __a)
19822 float64x1x3_t ret;
19823 __builtin_aarch64_simd_ci __o;
19824 __o = __builtin_aarch64_ld3rdf ((const __builtin_aarch64_simd_df *) __a);
19825 ret.val[0] = (float64x1_t) {__builtin_aarch64_get_dregcidf (__o, 0)};
19826 ret.val[1] = (float64x1_t) {__builtin_aarch64_get_dregcidf (__o, 1)};
19827 ret.val[2] = (float64x1_t) {__builtin_aarch64_get_dregcidf (__o, 2)};
19828 return ret;
19831 __extension__ extern __inline int8x8x3_t
19832 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19833 vld3_dup_s8 (const int8_t * __a)
19835 int8x8x3_t ret;
19836 __builtin_aarch64_simd_ci __o;
19837 __o = __builtin_aarch64_ld3rv8qi ((const __builtin_aarch64_simd_qi *) __a);
19838 ret.val[0] = (int8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 0);
19839 ret.val[1] = (int8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 1);
19840 ret.val[2] = (int8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 2);
19841 return ret;
19844 __extension__ extern __inline poly8x8x3_t
19845 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19846 vld3_dup_p8 (const poly8_t * __a)
19848 poly8x8x3_t ret;
19849 __builtin_aarch64_simd_ci __o;
19850 __o = __builtin_aarch64_ld3rv8qi ((const __builtin_aarch64_simd_qi *) __a);
19851 ret.val[0] = (poly8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 0);
19852 ret.val[1] = (poly8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 1);
19853 ret.val[2] = (poly8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 2);
19854 return ret;
19857 __extension__ extern __inline int16x4x3_t
19858 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19859 vld3_dup_s16 (const int16_t * __a)
19861 int16x4x3_t ret;
19862 __builtin_aarch64_simd_ci __o;
19863 __o = __builtin_aarch64_ld3rv4hi ((const __builtin_aarch64_simd_hi *) __a);
19864 ret.val[0] = (int16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 0);
19865 ret.val[1] = (int16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 1);
19866 ret.val[2] = (int16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 2);
19867 return ret;
19870 __extension__ extern __inline poly16x4x3_t
19871 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19872 vld3_dup_p16 (const poly16_t * __a)
19874 poly16x4x3_t ret;
19875 __builtin_aarch64_simd_ci __o;
19876 __o = __builtin_aarch64_ld3rv4hi ((const __builtin_aarch64_simd_hi *) __a);
19877 ret.val[0] = (poly16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 0);
19878 ret.val[1] = (poly16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 1);
19879 ret.val[2] = (poly16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 2);
19880 return ret;
19883 __extension__ extern __inline int32x2x3_t
19884 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19885 vld3_dup_s32 (const int32_t * __a)
19887 int32x2x3_t ret;
19888 __builtin_aarch64_simd_ci __o;
19889 __o = __builtin_aarch64_ld3rv2si ((const __builtin_aarch64_simd_si *) __a);
19890 ret.val[0] = (int32x2_t) __builtin_aarch64_get_dregciv2si (__o, 0);
19891 ret.val[1] = (int32x2_t) __builtin_aarch64_get_dregciv2si (__o, 1);
19892 ret.val[2] = (int32x2_t) __builtin_aarch64_get_dregciv2si (__o, 2);
19893 return ret;
19896 __extension__ extern __inline uint8x8x3_t
19897 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19898 vld3_dup_u8 (const uint8_t * __a)
19900 uint8x8x3_t ret;
19901 __builtin_aarch64_simd_ci __o;
19902 __o = __builtin_aarch64_ld3rv8qi ((const __builtin_aarch64_simd_qi *) __a);
19903 ret.val[0] = (uint8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 0);
19904 ret.val[1] = (uint8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 1);
19905 ret.val[2] = (uint8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 2);
19906 return ret;
19909 __extension__ extern __inline uint16x4x3_t
19910 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19911 vld3_dup_u16 (const uint16_t * __a)
19913 uint16x4x3_t ret;
19914 __builtin_aarch64_simd_ci __o;
19915 __o = __builtin_aarch64_ld3rv4hi ((const __builtin_aarch64_simd_hi *) __a);
19916 ret.val[0] = (uint16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 0);
19917 ret.val[1] = (uint16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 1);
19918 ret.val[2] = (uint16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 2);
19919 return ret;
19922 __extension__ extern __inline uint32x2x3_t
19923 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19924 vld3_dup_u32 (const uint32_t * __a)
19926 uint32x2x3_t ret;
19927 __builtin_aarch64_simd_ci __o;
19928 __o = __builtin_aarch64_ld3rv2si ((const __builtin_aarch64_simd_si *) __a);
19929 ret.val[0] = (uint32x2_t) __builtin_aarch64_get_dregciv2si (__o, 0);
19930 ret.val[1] = (uint32x2_t) __builtin_aarch64_get_dregciv2si (__o, 1);
19931 ret.val[2] = (uint32x2_t) __builtin_aarch64_get_dregciv2si (__o, 2);
19932 return ret;
19935 __extension__ extern __inline float16x4x3_t
19936 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19937 vld3_dup_f16 (const float16_t * __a)
19939 float16x4x3_t ret;
19940 __builtin_aarch64_simd_ci __o;
19941 __o = __builtin_aarch64_ld3rv4hf ((const __builtin_aarch64_simd_hf *) __a);
19942 ret.val[0] = (float16x4_t) __builtin_aarch64_get_dregciv4hf (__o, 0);
19943 ret.val[1] = (float16x4_t) __builtin_aarch64_get_dregciv4hf (__o, 1);
19944 ret.val[2] = (float16x4_t) __builtin_aarch64_get_dregciv4hf (__o, 2);
19945 return ret;
19948 __extension__ extern __inline float32x2x3_t
19949 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19950 vld3_dup_f32 (const float32_t * __a)
19952 float32x2x3_t ret;
19953 __builtin_aarch64_simd_ci __o;
19954 __o = __builtin_aarch64_ld3rv2sf ((const __builtin_aarch64_simd_sf *) __a);
19955 ret.val[0] = (float32x2_t) __builtin_aarch64_get_dregciv2sf (__o, 0);
19956 ret.val[1] = (float32x2_t) __builtin_aarch64_get_dregciv2sf (__o, 1);
19957 ret.val[2] = (float32x2_t) __builtin_aarch64_get_dregciv2sf (__o, 2);
19958 return ret;
19961 __extension__ extern __inline poly64x1x3_t
19962 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19963 vld3_dup_p64 (const poly64_t * __a)
19965 poly64x1x3_t ret;
19966 __builtin_aarch64_simd_ci __o;
19967 __o = __builtin_aarch64_ld3rv2di ((const __builtin_aarch64_simd_di *) __a);
19968 ret.val[0] = (poly64x1_t) __builtin_aarch64_get_dregcidi_pss (__o, 0);
19969 ret.val[1] = (poly64x1_t) __builtin_aarch64_get_dregcidi_pss (__o, 1);
19970 ret.val[2] = (poly64x1_t) __builtin_aarch64_get_dregcidi_pss (__o, 2);
19971 return ret;
19974 __extension__ extern __inline int8x16x3_t
19975 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19976 vld3q_dup_s8 (const int8_t * __a)
19978 int8x16x3_t ret;
19979 __builtin_aarch64_simd_ci __o;
19980 __o = __builtin_aarch64_ld3rv16qi ((const __builtin_aarch64_simd_qi *) __a);
19981 ret.val[0] = (int8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 0);
19982 ret.val[1] = (int8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 1);
19983 ret.val[2] = (int8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 2);
19984 return ret;
19987 __extension__ extern __inline poly8x16x3_t
19988 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19989 vld3q_dup_p8 (const poly8_t * __a)
19991 poly8x16x3_t ret;
19992 __builtin_aarch64_simd_ci __o;
19993 __o = __builtin_aarch64_ld3rv16qi ((const __builtin_aarch64_simd_qi *) __a);
19994 ret.val[0] = (poly8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 0);
19995 ret.val[1] = (poly8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 1);
19996 ret.val[2] = (poly8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 2);
19997 return ret;
20000 __extension__ extern __inline int16x8x3_t
20001 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20002 vld3q_dup_s16 (const int16_t * __a)
20004 int16x8x3_t ret;
20005 __builtin_aarch64_simd_ci __o;
20006 __o = __builtin_aarch64_ld3rv8hi ((const __builtin_aarch64_simd_hi *) __a);
20007 ret.val[0] = (int16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 0);
20008 ret.val[1] = (int16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 1);
20009 ret.val[2] = (int16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 2);
20010 return ret;
20013 __extension__ extern __inline poly16x8x3_t
20014 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20015 vld3q_dup_p16 (const poly16_t * __a)
20017 poly16x8x3_t ret;
20018 __builtin_aarch64_simd_ci __o;
20019 __o = __builtin_aarch64_ld3rv8hi ((const __builtin_aarch64_simd_hi *) __a);
20020 ret.val[0] = (poly16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 0);
20021 ret.val[1] = (poly16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 1);
20022 ret.val[2] = (poly16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 2);
20023 return ret;
20026 __extension__ extern __inline int32x4x3_t
20027 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20028 vld3q_dup_s32 (const int32_t * __a)
20030 int32x4x3_t ret;
20031 __builtin_aarch64_simd_ci __o;
20032 __o = __builtin_aarch64_ld3rv4si ((const __builtin_aarch64_simd_si *) __a);
20033 ret.val[0] = (int32x4_t) __builtin_aarch64_get_qregciv4si (__o, 0);
20034 ret.val[1] = (int32x4_t) __builtin_aarch64_get_qregciv4si (__o, 1);
20035 ret.val[2] = (int32x4_t) __builtin_aarch64_get_qregciv4si (__o, 2);
20036 return ret;
20039 __extension__ extern __inline int64x2x3_t
20040 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20041 vld3q_dup_s64 (const int64_t * __a)
20043 int64x2x3_t ret;
20044 __builtin_aarch64_simd_ci __o;
20045 __o = __builtin_aarch64_ld3rv2di ((const __builtin_aarch64_simd_di *) __a);
20046 ret.val[0] = (int64x2_t) __builtin_aarch64_get_qregciv2di (__o, 0);
20047 ret.val[1] = (int64x2_t) __builtin_aarch64_get_qregciv2di (__o, 1);
20048 ret.val[2] = (int64x2_t) __builtin_aarch64_get_qregciv2di (__o, 2);
20049 return ret;
20052 __extension__ extern __inline uint8x16x3_t
20053 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20054 vld3q_dup_u8 (const uint8_t * __a)
20056 uint8x16x3_t ret;
20057 __builtin_aarch64_simd_ci __o;
20058 __o = __builtin_aarch64_ld3rv16qi ((const __builtin_aarch64_simd_qi *) __a);
20059 ret.val[0] = (uint8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 0);
20060 ret.val[1] = (uint8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 1);
20061 ret.val[2] = (uint8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 2);
20062 return ret;
20065 __extension__ extern __inline uint16x8x3_t
20066 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20067 vld3q_dup_u16 (const uint16_t * __a)
20069 uint16x8x3_t ret;
20070 __builtin_aarch64_simd_ci __o;
20071 __o = __builtin_aarch64_ld3rv8hi ((const __builtin_aarch64_simd_hi *) __a);
20072 ret.val[0] = (uint16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 0);
20073 ret.val[1] = (uint16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 1);
20074 ret.val[2] = (uint16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 2);
20075 return ret;
20078 __extension__ extern __inline uint32x4x3_t
20079 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20080 vld3q_dup_u32 (const uint32_t * __a)
20082 uint32x4x3_t ret;
20083 __builtin_aarch64_simd_ci __o;
20084 __o = __builtin_aarch64_ld3rv4si ((const __builtin_aarch64_simd_si *) __a);
20085 ret.val[0] = (uint32x4_t) __builtin_aarch64_get_qregciv4si (__o, 0);
20086 ret.val[1] = (uint32x4_t) __builtin_aarch64_get_qregciv4si (__o, 1);
20087 ret.val[2] = (uint32x4_t) __builtin_aarch64_get_qregciv4si (__o, 2);
20088 return ret;
20091 __extension__ extern __inline uint64x2x3_t
20092 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20093 vld3q_dup_u64 (const uint64_t * __a)
20095 uint64x2x3_t ret;
20096 __builtin_aarch64_simd_ci __o;
20097 __o = __builtin_aarch64_ld3rv2di ((const __builtin_aarch64_simd_di *) __a);
20098 ret.val[0] = (uint64x2_t) __builtin_aarch64_get_qregciv2di (__o, 0);
20099 ret.val[1] = (uint64x2_t) __builtin_aarch64_get_qregciv2di (__o, 1);
20100 ret.val[2] = (uint64x2_t) __builtin_aarch64_get_qregciv2di (__o, 2);
20101 return ret;
20104 __extension__ extern __inline float16x8x3_t
20105 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20106 vld3q_dup_f16 (const float16_t * __a)
20108 float16x8x3_t ret;
20109 __builtin_aarch64_simd_ci __o;
20110 __o = __builtin_aarch64_ld3rv8hf ((const __builtin_aarch64_simd_hf *) __a);
20111 ret.val[0] = (float16x8_t) __builtin_aarch64_get_qregciv8hf (__o, 0);
20112 ret.val[1] = (float16x8_t) __builtin_aarch64_get_qregciv8hf (__o, 1);
20113 ret.val[2] = (float16x8_t) __builtin_aarch64_get_qregciv8hf (__o, 2);
20114 return ret;
20117 __extension__ extern __inline float32x4x3_t
20118 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20119 vld3q_dup_f32 (const float32_t * __a)
20121 float32x4x3_t ret;
20122 __builtin_aarch64_simd_ci __o;
20123 __o = __builtin_aarch64_ld3rv4sf ((const __builtin_aarch64_simd_sf *) __a);
20124 ret.val[0] = (float32x4_t) __builtin_aarch64_get_qregciv4sf (__o, 0);
20125 ret.val[1] = (float32x4_t) __builtin_aarch64_get_qregciv4sf (__o, 1);
20126 ret.val[2] = (float32x4_t) __builtin_aarch64_get_qregciv4sf (__o, 2);
20127 return ret;
20130 __extension__ extern __inline float64x2x3_t
20131 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20132 vld3q_dup_f64 (const float64_t * __a)
20134 float64x2x3_t ret;
20135 __builtin_aarch64_simd_ci __o;
20136 __o = __builtin_aarch64_ld3rv2df ((const __builtin_aarch64_simd_df *) __a);
20137 ret.val[0] = (float64x2_t) __builtin_aarch64_get_qregciv2df (__o, 0);
20138 ret.val[1] = (float64x2_t) __builtin_aarch64_get_qregciv2df (__o, 1);
20139 ret.val[2] = (float64x2_t) __builtin_aarch64_get_qregciv2df (__o, 2);
20140 return ret;
20143 __extension__ extern __inline poly64x2x3_t
20144 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20145 vld3q_dup_p64 (const poly64_t * __a)
20147 poly64x2x3_t ret;
20148 __builtin_aarch64_simd_ci __o;
20149 __o = __builtin_aarch64_ld3rv2di ((const __builtin_aarch64_simd_di *) __a);
20150 ret.val[0] = (poly64x2_t) __builtin_aarch64_get_qregciv2di_pss (__o, 0);
20151 ret.val[1] = (poly64x2_t) __builtin_aarch64_get_qregciv2di_pss (__o, 1);
20152 ret.val[2] = (poly64x2_t) __builtin_aarch64_get_qregciv2di_pss (__o, 2);
20153 return ret;
20156 __extension__ extern __inline int64x1x4_t
20157 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20158 vld4_dup_s64 (const int64_t * __a)
20160 int64x1x4_t ret;
20161 __builtin_aarch64_simd_xi __o;
20162 __o = __builtin_aarch64_ld4rdi ((const __builtin_aarch64_simd_di *) __a);
20163 ret.val[0] = (int64x1_t) __builtin_aarch64_get_dregxidi (__o, 0);
20164 ret.val[1] = (int64x1_t) __builtin_aarch64_get_dregxidi (__o, 1);
20165 ret.val[2] = (int64x1_t) __builtin_aarch64_get_dregxidi (__o, 2);
20166 ret.val[3] = (int64x1_t) __builtin_aarch64_get_dregxidi (__o, 3);
20167 return ret;
20170 __extension__ extern __inline uint64x1x4_t
20171 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20172 vld4_dup_u64 (const uint64_t * __a)
20174 uint64x1x4_t ret;
20175 __builtin_aarch64_simd_xi __o;
20176 __o = __builtin_aarch64_ld4rdi ((const __builtin_aarch64_simd_di *) __a);
20177 ret.val[0] = (uint64x1_t) __builtin_aarch64_get_dregxidi (__o, 0);
20178 ret.val[1] = (uint64x1_t) __builtin_aarch64_get_dregxidi (__o, 1);
20179 ret.val[2] = (uint64x1_t) __builtin_aarch64_get_dregxidi (__o, 2);
20180 ret.val[3] = (uint64x1_t) __builtin_aarch64_get_dregxidi (__o, 3);
20181 return ret;
20184 __extension__ extern __inline float64x1x4_t
20185 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20186 vld4_dup_f64 (const float64_t * __a)
20188 float64x1x4_t ret;
20189 __builtin_aarch64_simd_xi __o;
20190 __o = __builtin_aarch64_ld4rdf ((const __builtin_aarch64_simd_df *) __a);
20191 ret.val[0] = (float64x1_t) {__builtin_aarch64_get_dregxidf (__o, 0)};
20192 ret.val[1] = (float64x1_t) {__builtin_aarch64_get_dregxidf (__o, 1)};
20193 ret.val[2] = (float64x1_t) {__builtin_aarch64_get_dregxidf (__o, 2)};
20194 ret.val[3] = (float64x1_t) {__builtin_aarch64_get_dregxidf (__o, 3)};
20195 return ret;
20198 __extension__ extern __inline int8x8x4_t
20199 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20200 vld4_dup_s8 (const int8_t * __a)
20202 int8x8x4_t ret;
20203 __builtin_aarch64_simd_xi __o;
20204 __o = __builtin_aarch64_ld4rv8qi ((const __builtin_aarch64_simd_qi *) __a);
20205 ret.val[0] = (int8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 0);
20206 ret.val[1] = (int8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 1);
20207 ret.val[2] = (int8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 2);
20208 ret.val[3] = (int8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 3);
20209 return ret;
20212 __extension__ extern __inline poly8x8x4_t
20213 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20214 vld4_dup_p8 (const poly8_t * __a)
20216 poly8x8x4_t ret;
20217 __builtin_aarch64_simd_xi __o;
20218 __o = __builtin_aarch64_ld4rv8qi ((const __builtin_aarch64_simd_qi *) __a);
20219 ret.val[0] = (poly8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 0);
20220 ret.val[1] = (poly8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 1);
20221 ret.val[2] = (poly8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 2);
20222 ret.val[3] = (poly8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 3);
20223 return ret;
20226 __extension__ extern __inline int16x4x4_t
20227 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20228 vld4_dup_s16 (const int16_t * __a)
20230 int16x4x4_t ret;
20231 __builtin_aarch64_simd_xi __o;
20232 __o = __builtin_aarch64_ld4rv4hi ((const __builtin_aarch64_simd_hi *) __a);
20233 ret.val[0] = (int16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 0);
20234 ret.val[1] = (int16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 1);
20235 ret.val[2] = (int16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 2);
20236 ret.val[3] = (int16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 3);
20237 return ret;
20240 __extension__ extern __inline poly16x4x4_t
20241 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20242 vld4_dup_p16 (const poly16_t * __a)
20244 poly16x4x4_t ret;
20245 __builtin_aarch64_simd_xi __o;
20246 __o = __builtin_aarch64_ld4rv4hi ((const __builtin_aarch64_simd_hi *) __a);
20247 ret.val[0] = (poly16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 0);
20248 ret.val[1] = (poly16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 1);
20249 ret.val[2] = (poly16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 2);
20250 ret.val[3] = (poly16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 3);
20251 return ret;
20254 __extension__ extern __inline int32x2x4_t
20255 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20256 vld4_dup_s32 (const int32_t * __a)
20258 int32x2x4_t ret;
20259 __builtin_aarch64_simd_xi __o;
20260 __o = __builtin_aarch64_ld4rv2si ((const __builtin_aarch64_simd_si *) __a);
20261 ret.val[0] = (int32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 0);
20262 ret.val[1] = (int32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 1);
20263 ret.val[2] = (int32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 2);
20264 ret.val[3] = (int32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 3);
20265 return ret;
20268 __extension__ extern __inline uint8x8x4_t
20269 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20270 vld4_dup_u8 (const uint8_t * __a)
20272 uint8x8x4_t ret;
20273 __builtin_aarch64_simd_xi __o;
20274 __o = __builtin_aarch64_ld4rv8qi ((const __builtin_aarch64_simd_qi *) __a);
20275 ret.val[0] = (uint8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 0);
20276 ret.val[1] = (uint8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 1);
20277 ret.val[2] = (uint8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 2);
20278 ret.val[3] = (uint8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 3);
20279 return ret;
20282 __extension__ extern __inline uint16x4x4_t
20283 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20284 vld4_dup_u16 (const uint16_t * __a)
20286 uint16x4x4_t ret;
20287 __builtin_aarch64_simd_xi __o;
20288 __o = __builtin_aarch64_ld4rv4hi ((const __builtin_aarch64_simd_hi *) __a);
20289 ret.val[0] = (uint16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 0);
20290 ret.val[1] = (uint16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 1);
20291 ret.val[2] = (uint16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 2);
20292 ret.val[3] = (uint16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 3);
20293 return ret;
20296 __extension__ extern __inline uint32x2x4_t
20297 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20298 vld4_dup_u32 (const uint32_t * __a)
20300 uint32x2x4_t ret;
20301 __builtin_aarch64_simd_xi __o;
20302 __o = __builtin_aarch64_ld4rv2si ((const __builtin_aarch64_simd_si *) __a);
20303 ret.val[0] = (uint32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 0);
20304 ret.val[1] = (uint32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 1);
20305 ret.val[2] = (uint32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 2);
20306 ret.val[3] = (uint32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 3);
20307 return ret;
20310 __extension__ extern __inline float16x4x4_t
20311 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20312 vld4_dup_f16 (const float16_t * __a)
20314 float16x4x4_t ret;
20315 __builtin_aarch64_simd_xi __o;
20316 __o = __builtin_aarch64_ld4rv4hf ((const __builtin_aarch64_simd_hf *) __a);
20317 ret.val[0] = (float16x4_t) __builtin_aarch64_get_dregxiv4hf (__o, 0);
20318 ret.val[1] = (float16x4_t) __builtin_aarch64_get_dregxiv4hf (__o, 1);
20319 ret.val[2] = (float16x4_t) __builtin_aarch64_get_dregxiv4hf (__o, 2);
20320 ret.val[3] = (float16x4_t) __builtin_aarch64_get_dregxiv4hf (__o, 3);
20321 return ret;
20324 __extension__ extern __inline float32x2x4_t
20325 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20326 vld4_dup_f32 (const float32_t * __a)
20328 float32x2x4_t ret;
20329 __builtin_aarch64_simd_xi __o;
20330 __o = __builtin_aarch64_ld4rv2sf ((const __builtin_aarch64_simd_sf *) __a);
20331 ret.val[0] = (float32x2_t) __builtin_aarch64_get_dregxiv2sf (__o, 0);
20332 ret.val[1] = (float32x2_t) __builtin_aarch64_get_dregxiv2sf (__o, 1);
20333 ret.val[2] = (float32x2_t) __builtin_aarch64_get_dregxiv2sf (__o, 2);
20334 ret.val[3] = (float32x2_t) __builtin_aarch64_get_dregxiv2sf (__o, 3);
20335 return ret;
20338 __extension__ extern __inline poly64x1x4_t
20339 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20340 vld4_dup_p64 (const poly64_t * __a)
20342 poly64x1x4_t ret;
20343 __builtin_aarch64_simd_xi __o;
20344 __o = __builtin_aarch64_ld4rv2di ((const __builtin_aarch64_simd_di *) __a);
20345 ret.val[0] = (poly64x1_t) __builtin_aarch64_get_dregxidi_pss (__o, 0);
20346 ret.val[1] = (poly64x1_t) __builtin_aarch64_get_dregxidi_pss (__o, 1);
20347 ret.val[2] = (poly64x1_t) __builtin_aarch64_get_dregxidi_pss (__o, 2);
20348 ret.val[3] = (poly64x1_t) __builtin_aarch64_get_dregxidi_pss (__o, 3);
20349 return ret;
20352 __extension__ extern __inline int8x16x4_t
20353 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20354 vld4q_dup_s8 (const int8_t * __a)
20356 int8x16x4_t ret;
20357 __builtin_aarch64_simd_xi __o;
20358 __o = __builtin_aarch64_ld4rv16qi ((const __builtin_aarch64_simd_qi *) __a);
20359 ret.val[0] = (int8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 0);
20360 ret.val[1] = (int8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 1);
20361 ret.val[2] = (int8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 2);
20362 ret.val[3] = (int8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 3);
20363 return ret;
20366 __extension__ extern __inline poly8x16x4_t
20367 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20368 vld4q_dup_p8 (const poly8_t * __a)
20370 poly8x16x4_t ret;
20371 __builtin_aarch64_simd_xi __o;
20372 __o = __builtin_aarch64_ld4rv16qi ((const __builtin_aarch64_simd_qi *) __a);
20373 ret.val[0] = (poly8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 0);
20374 ret.val[1] = (poly8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 1);
20375 ret.val[2] = (poly8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 2);
20376 ret.val[3] = (poly8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 3);
20377 return ret;
20380 __extension__ extern __inline int16x8x4_t
20381 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20382 vld4q_dup_s16 (const int16_t * __a)
20384 int16x8x4_t ret;
20385 __builtin_aarch64_simd_xi __o;
20386 __o = __builtin_aarch64_ld4rv8hi ((const __builtin_aarch64_simd_hi *) __a);
20387 ret.val[0] = (int16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 0);
20388 ret.val[1] = (int16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 1);
20389 ret.val[2] = (int16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 2);
20390 ret.val[3] = (int16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 3);
20391 return ret;
20394 __extension__ extern __inline poly16x8x4_t
20395 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20396 vld4q_dup_p16 (const poly16_t * __a)
20398 poly16x8x4_t ret;
20399 __builtin_aarch64_simd_xi __o;
20400 __o = __builtin_aarch64_ld4rv8hi ((const __builtin_aarch64_simd_hi *) __a);
20401 ret.val[0] = (poly16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 0);
20402 ret.val[1] = (poly16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 1);
20403 ret.val[2] = (poly16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 2);
20404 ret.val[3] = (poly16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 3);
20405 return ret;
20408 __extension__ extern __inline int32x4x4_t
20409 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20410 vld4q_dup_s32 (const int32_t * __a)
20412 int32x4x4_t ret;
20413 __builtin_aarch64_simd_xi __o;
20414 __o = __builtin_aarch64_ld4rv4si ((const __builtin_aarch64_simd_si *) __a);
20415 ret.val[0] = (int32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 0);
20416 ret.val[1] = (int32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 1);
20417 ret.val[2] = (int32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 2);
20418 ret.val[3] = (int32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 3);
20419 return ret;
20422 __extension__ extern __inline int64x2x4_t
20423 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20424 vld4q_dup_s64 (const int64_t * __a)
20426 int64x2x4_t ret;
20427 __builtin_aarch64_simd_xi __o;
20428 __o = __builtin_aarch64_ld4rv2di ((const __builtin_aarch64_simd_di *) __a);
20429 ret.val[0] = (int64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 0);
20430 ret.val[1] = (int64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 1);
20431 ret.val[2] = (int64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 2);
20432 ret.val[3] = (int64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 3);
20433 return ret;
20436 __extension__ extern __inline uint8x16x4_t
20437 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20438 vld4q_dup_u8 (const uint8_t * __a)
20440 uint8x16x4_t ret;
20441 __builtin_aarch64_simd_xi __o;
20442 __o = __builtin_aarch64_ld4rv16qi ((const __builtin_aarch64_simd_qi *) __a);
20443 ret.val[0] = (uint8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 0);
20444 ret.val[1] = (uint8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 1);
20445 ret.val[2] = (uint8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 2);
20446 ret.val[3] = (uint8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 3);
20447 return ret;
20450 __extension__ extern __inline uint16x8x4_t
20451 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20452 vld4q_dup_u16 (const uint16_t * __a)
20454 uint16x8x4_t ret;
20455 __builtin_aarch64_simd_xi __o;
20456 __o = __builtin_aarch64_ld4rv8hi ((const __builtin_aarch64_simd_hi *) __a);
20457 ret.val[0] = (uint16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 0);
20458 ret.val[1] = (uint16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 1);
20459 ret.val[2] = (uint16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 2);
20460 ret.val[3] = (uint16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 3);
20461 return ret;
20464 __extension__ extern __inline uint32x4x4_t
20465 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20466 vld4q_dup_u32 (const uint32_t * __a)
20468 uint32x4x4_t ret;
20469 __builtin_aarch64_simd_xi __o;
20470 __o = __builtin_aarch64_ld4rv4si ((const __builtin_aarch64_simd_si *) __a);
20471 ret.val[0] = (uint32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 0);
20472 ret.val[1] = (uint32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 1);
20473 ret.val[2] = (uint32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 2);
20474 ret.val[3] = (uint32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 3);
20475 return ret;
20478 __extension__ extern __inline uint64x2x4_t
20479 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20480 vld4q_dup_u64 (const uint64_t * __a)
20482 uint64x2x4_t ret;
20483 __builtin_aarch64_simd_xi __o;
20484 __o = __builtin_aarch64_ld4rv2di ((const __builtin_aarch64_simd_di *) __a);
20485 ret.val[0] = (uint64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 0);
20486 ret.val[1] = (uint64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 1);
20487 ret.val[2] = (uint64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 2);
20488 ret.val[3] = (uint64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 3);
20489 return ret;
20492 __extension__ extern __inline float16x8x4_t
20493 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20494 vld4q_dup_f16 (const float16_t * __a)
20496 float16x8x4_t ret;
20497 __builtin_aarch64_simd_xi __o;
20498 __o = __builtin_aarch64_ld4rv8hf ((const __builtin_aarch64_simd_hf *) __a);
20499 ret.val[0] = (float16x8_t) __builtin_aarch64_get_qregxiv8hf (__o, 0);
20500 ret.val[1] = (float16x8_t) __builtin_aarch64_get_qregxiv8hf (__o, 1);
20501 ret.val[2] = (float16x8_t) __builtin_aarch64_get_qregxiv8hf (__o, 2);
20502 ret.val[3] = (float16x8_t) __builtin_aarch64_get_qregxiv8hf (__o, 3);
20503 return ret;
20506 __extension__ extern __inline float32x4x4_t
20507 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20508 vld4q_dup_f32 (const float32_t * __a)
20510 float32x4x4_t ret;
20511 __builtin_aarch64_simd_xi __o;
20512 __o = __builtin_aarch64_ld4rv4sf ((const __builtin_aarch64_simd_sf *) __a);
20513 ret.val[0] = (float32x4_t) __builtin_aarch64_get_qregxiv4sf (__o, 0);
20514 ret.val[1] = (float32x4_t) __builtin_aarch64_get_qregxiv4sf (__o, 1);
20515 ret.val[2] = (float32x4_t) __builtin_aarch64_get_qregxiv4sf (__o, 2);
20516 ret.val[3] = (float32x4_t) __builtin_aarch64_get_qregxiv4sf (__o, 3);
20517 return ret;
20520 __extension__ extern __inline float64x2x4_t
20521 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20522 vld4q_dup_f64 (const float64_t * __a)
20524 float64x2x4_t ret;
20525 __builtin_aarch64_simd_xi __o;
20526 __o = __builtin_aarch64_ld4rv2df ((const __builtin_aarch64_simd_df *) __a);
20527 ret.val[0] = (float64x2_t) __builtin_aarch64_get_qregxiv2df (__o, 0);
20528 ret.val[1] = (float64x2_t) __builtin_aarch64_get_qregxiv2df (__o, 1);
20529 ret.val[2] = (float64x2_t) __builtin_aarch64_get_qregxiv2df (__o, 2);
20530 ret.val[3] = (float64x2_t) __builtin_aarch64_get_qregxiv2df (__o, 3);
20531 return ret;
20534 __extension__ extern __inline poly64x2x4_t
20535 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20536 vld4q_dup_p64 (const poly64_t * __a)
20538 poly64x2x4_t ret;
20539 __builtin_aarch64_simd_xi __o;
20540 __o = __builtin_aarch64_ld4rv2di ((const __builtin_aarch64_simd_di *) __a);
20541 ret.val[0] = (poly64x2_t) __builtin_aarch64_get_qregxiv2di_pss (__o, 0);
20542 ret.val[1] = (poly64x2_t) __builtin_aarch64_get_qregxiv2di_pss (__o, 1);
20543 ret.val[2] = (poly64x2_t) __builtin_aarch64_get_qregxiv2di_pss (__o, 2);
20544 ret.val[3] = (poly64x2_t) __builtin_aarch64_get_qregxiv2di_pss (__o, 3);
20545 return ret;
20548 /* vld2_lane */
20550 #define __LD2_LANE_FUNC(intype, vectype, largetype, ptrtype, mode, \
20551 qmode, ptrmode, funcsuffix, signedtype) \
20552 __extension__ extern __inline intype \
20553 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__)) \
20554 vld2_lane_##funcsuffix (const ptrtype * __ptr, intype __b, const int __c) \
20556 __builtin_aarch64_simd_oi __o; \
20557 largetype __temp; \
20558 __temp.val[0] = \
20559 vcombine_##funcsuffix (__b.val[0], vcreate_##funcsuffix (0)); \
20560 __temp.val[1] = \
20561 vcombine_##funcsuffix (__b.val[1], vcreate_##funcsuffix (0)); \
20562 __o = __builtin_aarch64_set_qregoi##qmode (__o, \
20563 (signedtype) __temp.val[0], \
20564 0); \
20565 __o = __builtin_aarch64_set_qregoi##qmode (__o, \
20566 (signedtype) __temp.val[1], \
20567 1); \
20568 __o = __builtin_aarch64_ld2_lane##mode ( \
20569 (__builtin_aarch64_simd_##ptrmode *) __ptr, __o, __c); \
20570 __b.val[0] = (vectype) __builtin_aarch64_get_dregoidi (__o, 0); \
20571 __b.val[1] = (vectype) __builtin_aarch64_get_dregoidi (__o, 1); \
20572 return __b; \
20575 __LD2_LANE_FUNC (float16x4x2_t, float16x4_t, float16x8x2_t, float16_t, v4hf,
20576 v8hf, hf, f16, float16x8_t)
20577 __LD2_LANE_FUNC (float32x2x2_t, float32x2_t, float32x4x2_t, float32_t, v2sf, v4sf,
20578 sf, f32, float32x4_t)
20579 __LD2_LANE_FUNC (float64x1x2_t, float64x1_t, float64x2x2_t, float64_t, df, v2df,
20580 df, f64, float64x2_t)
20581 __LD2_LANE_FUNC (poly8x8x2_t, poly8x8_t, poly8x16x2_t, poly8_t, v8qi, v16qi, qi, p8,
20582 int8x16_t)
20583 __LD2_LANE_FUNC (poly16x4x2_t, poly16x4_t, poly16x8x2_t, poly16_t, v4hi, v8hi, hi,
20584 p16, int16x8_t)
20585 __LD2_LANE_FUNC (poly64x1x2_t, poly64x1_t, poly64x2x2_t, poly64_t, di,
20586 v2di_ssps, di, p64, poly64x2_t)
20587 __LD2_LANE_FUNC (int8x8x2_t, int8x8_t, int8x16x2_t, int8_t, v8qi, v16qi, qi, s8,
20588 int8x16_t)
20589 __LD2_LANE_FUNC (int16x4x2_t, int16x4_t, int16x8x2_t, int16_t, v4hi, v8hi, hi, s16,
20590 int16x8_t)
20591 __LD2_LANE_FUNC (int32x2x2_t, int32x2_t, int32x4x2_t, int32_t, v2si, v4si, si, s32,
20592 int32x4_t)
20593 __LD2_LANE_FUNC (int64x1x2_t, int64x1_t, int64x2x2_t, int64_t, di, v2di, di, s64,
20594 int64x2_t)
20595 __LD2_LANE_FUNC (uint8x8x2_t, uint8x8_t, uint8x16x2_t, uint8_t, v8qi, v16qi, qi, u8,
20596 int8x16_t)
20597 __LD2_LANE_FUNC (uint16x4x2_t, uint16x4_t, uint16x8x2_t, uint16_t, v4hi, v8hi, hi,
20598 u16, int16x8_t)
20599 __LD2_LANE_FUNC (uint32x2x2_t, uint32x2_t, uint32x4x2_t, uint32_t, v2si, v4si, si,
20600 u32, int32x4_t)
20601 __LD2_LANE_FUNC (uint64x1x2_t, uint64x1_t, uint64x2x2_t, uint64_t, di, v2di, di,
20602 u64, int64x2_t)
20604 #undef __LD2_LANE_FUNC
20606 /* vld2q_lane */
20608 #define __LD2_LANE_FUNC(intype, vtype, ptrtype, mode, ptrmode, funcsuffix) \
20609 __extension__ extern __inline intype \
20610 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__)) \
20611 vld2q_lane_##funcsuffix (const ptrtype * __ptr, intype __b, const int __c) \
20613 __builtin_aarch64_simd_oi __o; \
20614 intype ret; \
20615 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) __b.val[0], 0); \
20616 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) __b.val[1], 1); \
20617 __o = __builtin_aarch64_ld2_lane##mode ( \
20618 (__builtin_aarch64_simd_##ptrmode *) __ptr, __o, __c); \
20619 ret.val[0] = (vtype) __builtin_aarch64_get_qregoiv4si (__o, 0); \
20620 ret.val[1] = (vtype) __builtin_aarch64_get_qregoiv4si (__o, 1); \
20621 return ret; \
20624 __LD2_LANE_FUNC (float16x8x2_t, float16x8_t, float16_t, v8hf, hf, f16)
20625 __LD2_LANE_FUNC (float32x4x2_t, float32x4_t, float32_t, v4sf, sf, f32)
20626 __LD2_LANE_FUNC (float64x2x2_t, float64x2_t, float64_t, v2df, df, f64)
20627 __LD2_LANE_FUNC (poly8x16x2_t, poly8x16_t, poly8_t, v16qi, qi, p8)
20628 __LD2_LANE_FUNC (poly16x8x2_t, poly16x8_t, poly16_t, v8hi, hi, p16)
20629 __LD2_LANE_FUNC (poly64x2x2_t, poly64x2_t, poly64_t, v2di, di, p64)
20630 __LD2_LANE_FUNC (int8x16x2_t, int8x16_t, int8_t, v16qi, qi, s8)
20631 __LD2_LANE_FUNC (int16x8x2_t, int16x8_t, int16_t, v8hi, hi, s16)
20632 __LD2_LANE_FUNC (int32x4x2_t, int32x4_t, int32_t, v4si, si, s32)
20633 __LD2_LANE_FUNC (int64x2x2_t, int64x2_t, int64_t, v2di, di, s64)
20634 __LD2_LANE_FUNC (uint8x16x2_t, uint8x16_t, uint8_t, v16qi, qi, u8)
20635 __LD2_LANE_FUNC (uint16x8x2_t, uint16x8_t, uint16_t, v8hi, hi, u16)
20636 __LD2_LANE_FUNC (uint32x4x2_t, uint32x4_t, uint32_t, v4si, si, u32)
20637 __LD2_LANE_FUNC (uint64x2x2_t, uint64x2_t, uint64_t, v2di, di, u64)
20639 #undef __LD2_LANE_FUNC
20641 /* vld3_lane */
20643 #define __LD3_LANE_FUNC(intype, vectype, largetype, ptrtype, mode, \
20644 qmode, ptrmode, funcsuffix, signedtype) \
20645 __extension__ extern __inline intype \
20646 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__)) \
20647 vld3_lane_##funcsuffix (const ptrtype * __ptr, intype __b, const int __c) \
20649 __builtin_aarch64_simd_ci __o; \
20650 largetype __temp; \
20651 __temp.val[0] = \
20652 vcombine_##funcsuffix (__b.val[0], vcreate_##funcsuffix (0)); \
20653 __temp.val[1] = \
20654 vcombine_##funcsuffix (__b.val[1], vcreate_##funcsuffix (0)); \
20655 __temp.val[2] = \
20656 vcombine_##funcsuffix (__b.val[2], vcreate_##funcsuffix (0)); \
20657 __o = __builtin_aarch64_set_qregci##qmode (__o, \
20658 (signedtype) __temp.val[0], \
20659 0); \
20660 __o = __builtin_aarch64_set_qregci##qmode (__o, \
20661 (signedtype) __temp.val[1], \
20662 1); \
20663 __o = __builtin_aarch64_set_qregci##qmode (__o, \
20664 (signedtype) __temp.val[2], \
20665 2); \
20666 __o = __builtin_aarch64_ld3_lane##mode ( \
20667 (__builtin_aarch64_simd_##ptrmode *) __ptr, __o, __c); \
20668 __b.val[0] = (vectype) __builtin_aarch64_get_dregcidi (__o, 0); \
20669 __b.val[1] = (vectype) __builtin_aarch64_get_dregcidi (__o, 1); \
20670 __b.val[2] = (vectype) __builtin_aarch64_get_dregcidi (__o, 2); \
20671 return __b; \
20674 __LD3_LANE_FUNC (float16x4x3_t, float16x4_t, float16x8x3_t, float16_t, v4hf,
20675 v8hf, hf, f16, float16x8_t)
20676 __LD3_LANE_FUNC (float32x2x3_t, float32x2_t, float32x4x3_t, float32_t, v2sf, v4sf,
20677 sf, f32, float32x4_t)
20678 __LD3_LANE_FUNC (float64x1x3_t, float64x1_t, float64x2x3_t, float64_t, df, v2df,
20679 df, f64, float64x2_t)
20680 __LD3_LANE_FUNC (poly8x8x3_t, poly8x8_t, poly8x16x3_t, poly8_t, v8qi, v16qi, qi, p8,
20681 int8x16_t)
20682 __LD3_LANE_FUNC (poly16x4x3_t, poly16x4_t, poly16x8x3_t, poly16_t, v4hi, v8hi, hi,
20683 p16, int16x8_t)
20684 __LD3_LANE_FUNC (poly64x1x3_t, poly64x1_t, poly64x2x3_t, poly64_t, di,
20685 v2di_ssps, di, p64, poly64x2_t)
20686 __LD3_LANE_FUNC (int8x8x3_t, int8x8_t, int8x16x3_t, int8_t, v8qi, v16qi, qi, s8,
20687 int8x16_t)
20688 __LD3_LANE_FUNC (int16x4x3_t, int16x4_t, int16x8x3_t, int16_t, v4hi, v8hi, hi, s16,
20689 int16x8_t)
20690 __LD3_LANE_FUNC (int32x2x3_t, int32x2_t, int32x4x3_t, int32_t, v2si, v4si, si, s32,
20691 int32x4_t)
20692 __LD3_LANE_FUNC (int64x1x3_t, int64x1_t, int64x2x3_t, int64_t, di, v2di, di, s64,
20693 int64x2_t)
20694 __LD3_LANE_FUNC (uint8x8x3_t, uint8x8_t, uint8x16x3_t, uint8_t, v8qi, v16qi, qi, u8,
20695 int8x16_t)
20696 __LD3_LANE_FUNC (uint16x4x3_t, uint16x4_t, uint16x8x3_t, uint16_t, v4hi, v8hi, hi,
20697 u16, int16x8_t)
20698 __LD3_LANE_FUNC (uint32x2x3_t, uint32x2_t, uint32x4x3_t, uint32_t, v2si, v4si, si,
20699 u32, int32x4_t)
20700 __LD3_LANE_FUNC (uint64x1x3_t, uint64x1_t, uint64x2x3_t, uint64_t, di, v2di, di,
20701 u64, int64x2_t)
20703 #undef __LD3_LANE_FUNC
20705 /* vld3q_lane */
20707 #define __LD3_LANE_FUNC(intype, vtype, ptrtype, mode, ptrmode, funcsuffix) \
20708 __extension__ extern __inline intype \
20709 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__)) \
20710 vld3q_lane_##funcsuffix (const ptrtype * __ptr, intype __b, const int __c) \
20712 __builtin_aarch64_simd_ci __o; \
20713 intype ret; \
20714 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __b.val[0], 0); \
20715 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __b.val[1], 1); \
20716 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __b.val[2], 2); \
20717 __o = __builtin_aarch64_ld3_lane##mode ( \
20718 (__builtin_aarch64_simd_##ptrmode *) __ptr, __o, __c); \
20719 ret.val[0] = (vtype) __builtin_aarch64_get_qregciv4si (__o, 0); \
20720 ret.val[1] = (vtype) __builtin_aarch64_get_qregciv4si (__o, 1); \
20721 ret.val[2] = (vtype) __builtin_aarch64_get_qregciv4si (__o, 2); \
20722 return ret; \
20725 __LD3_LANE_FUNC (float16x8x3_t, float16x8_t, float16_t, v8hf, hf, f16)
20726 __LD3_LANE_FUNC (float32x4x3_t, float32x4_t, float32_t, v4sf, sf, f32)
20727 __LD3_LANE_FUNC (float64x2x3_t, float64x2_t, float64_t, v2df, df, f64)
20728 __LD3_LANE_FUNC (poly8x16x3_t, poly8x16_t, poly8_t, v16qi, qi, p8)
20729 __LD3_LANE_FUNC (poly16x8x3_t, poly16x8_t, poly16_t, v8hi, hi, p16)
20730 __LD3_LANE_FUNC (poly64x2x3_t, poly64x2_t, poly64_t, v2di, di, p64)
20731 __LD3_LANE_FUNC (int8x16x3_t, int8x16_t, int8_t, v16qi, qi, s8)
20732 __LD3_LANE_FUNC (int16x8x3_t, int16x8_t, int16_t, v8hi, hi, s16)
20733 __LD3_LANE_FUNC (int32x4x3_t, int32x4_t, int32_t, v4si, si, s32)
20734 __LD3_LANE_FUNC (int64x2x3_t, int64x2_t, int64_t, v2di, di, s64)
20735 __LD3_LANE_FUNC (uint8x16x3_t, uint8x16_t, uint8_t, v16qi, qi, u8)
20736 __LD3_LANE_FUNC (uint16x8x3_t, uint16x8_t, uint16_t, v8hi, hi, u16)
20737 __LD3_LANE_FUNC (uint32x4x3_t, uint32x4_t, uint32_t, v4si, si, u32)
20738 __LD3_LANE_FUNC (uint64x2x3_t, uint64x2_t, uint64_t, v2di, di, u64)
20740 #undef __LD3_LANE_FUNC
20742 /* vld4_lane */
20744 #define __LD4_LANE_FUNC(intype, vectype, largetype, ptrtype, mode, \
20745 qmode, ptrmode, funcsuffix, signedtype) \
20746 __extension__ extern __inline intype \
20747 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__)) \
20748 vld4_lane_##funcsuffix (const ptrtype * __ptr, intype __b, const int __c) \
20750 __builtin_aarch64_simd_xi __o; \
20751 largetype __temp; \
20752 __temp.val[0] = \
20753 vcombine_##funcsuffix (__b.val[0], vcreate_##funcsuffix (0)); \
20754 __temp.val[1] = \
20755 vcombine_##funcsuffix (__b.val[1], vcreate_##funcsuffix (0)); \
20756 __temp.val[2] = \
20757 vcombine_##funcsuffix (__b.val[2], vcreate_##funcsuffix (0)); \
20758 __temp.val[3] = \
20759 vcombine_##funcsuffix (__b.val[3], vcreate_##funcsuffix (0)); \
20760 __o = __builtin_aarch64_set_qregxi##qmode (__o, \
20761 (signedtype) __temp.val[0], \
20762 0); \
20763 __o = __builtin_aarch64_set_qregxi##qmode (__o, \
20764 (signedtype) __temp.val[1], \
20765 1); \
20766 __o = __builtin_aarch64_set_qregxi##qmode (__o, \
20767 (signedtype) __temp.val[2], \
20768 2); \
20769 __o = __builtin_aarch64_set_qregxi##qmode (__o, \
20770 (signedtype) __temp.val[3], \
20771 3); \
20772 __o = __builtin_aarch64_ld4_lane##mode ( \
20773 (__builtin_aarch64_simd_##ptrmode *) __ptr, __o, __c); \
20774 __b.val[0] = (vectype) __builtin_aarch64_get_dregxidi (__o, 0); \
20775 __b.val[1] = (vectype) __builtin_aarch64_get_dregxidi (__o, 1); \
20776 __b.val[2] = (vectype) __builtin_aarch64_get_dregxidi (__o, 2); \
20777 __b.val[3] = (vectype) __builtin_aarch64_get_dregxidi (__o, 3); \
20778 return __b; \
20781 /* vld4q_lane */
20783 __LD4_LANE_FUNC (float16x4x4_t, float16x4_t, float16x8x4_t, float16_t, v4hf,
20784 v8hf, hf, f16, float16x8_t)
20785 __LD4_LANE_FUNC (float32x2x4_t, float32x2_t, float32x4x4_t, float32_t, v2sf, v4sf,
20786 sf, f32, float32x4_t)
20787 __LD4_LANE_FUNC (float64x1x4_t, float64x1_t, float64x2x4_t, float64_t, df, v2df,
20788 df, f64, float64x2_t)
20789 __LD4_LANE_FUNC (poly8x8x4_t, poly8x8_t, poly8x16x4_t, poly8_t, v8qi, v16qi, qi, p8,
20790 int8x16_t)
20791 __LD4_LANE_FUNC (poly16x4x4_t, poly16x4_t, poly16x8x4_t, poly16_t, v4hi, v8hi, hi,
20792 p16, int16x8_t)
20793 __LD4_LANE_FUNC (poly64x1x4_t, poly64x1_t, poly64x2x4_t, poly64_t, di,
20794 v2di_ssps, di, p64, poly64x2_t)
20795 __LD4_LANE_FUNC (int8x8x4_t, int8x8_t, int8x16x4_t, int8_t, v8qi, v16qi, qi, s8,
20796 int8x16_t)
20797 __LD4_LANE_FUNC (int16x4x4_t, int16x4_t, int16x8x4_t, int16_t, v4hi, v8hi, hi, s16,
20798 int16x8_t)
20799 __LD4_LANE_FUNC (int32x2x4_t, int32x2_t, int32x4x4_t, int32_t, v2si, v4si, si, s32,
20800 int32x4_t)
20801 __LD4_LANE_FUNC (int64x1x4_t, int64x1_t, int64x2x4_t, int64_t, di, v2di, di, s64,
20802 int64x2_t)
20803 __LD4_LANE_FUNC (uint8x8x4_t, uint8x8_t, uint8x16x4_t, uint8_t, v8qi, v16qi, qi, u8,
20804 int8x16_t)
20805 __LD4_LANE_FUNC (uint16x4x4_t, uint16x4_t, uint16x8x4_t, uint16_t, v4hi, v8hi, hi,
20806 u16, int16x8_t)
20807 __LD4_LANE_FUNC (uint32x2x4_t, uint32x2_t, uint32x4x4_t, uint32_t, v2si, v4si, si,
20808 u32, int32x4_t)
20809 __LD4_LANE_FUNC (uint64x1x4_t, uint64x1_t, uint64x2x4_t, uint64_t, di, v2di, di,
20810 u64, int64x2_t)
20812 #undef __LD4_LANE_FUNC
20814 /* vld4q_lane */
20816 #define __LD4_LANE_FUNC(intype, vtype, ptrtype, mode, ptrmode, funcsuffix) \
20817 __extension__ extern __inline intype \
20818 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__)) \
20819 vld4q_lane_##funcsuffix (const ptrtype * __ptr, intype __b, const int __c) \
20821 __builtin_aarch64_simd_xi __o; \
20822 intype ret; \
20823 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __b.val[0], 0); \
20824 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __b.val[1], 1); \
20825 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __b.val[2], 2); \
20826 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __b.val[3], 3); \
20827 __o = __builtin_aarch64_ld4_lane##mode ( \
20828 (__builtin_aarch64_simd_##ptrmode *) __ptr, __o, __c); \
20829 ret.val[0] = (vtype) __builtin_aarch64_get_qregxiv4si (__o, 0); \
20830 ret.val[1] = (vtype) __builtin_aarch64_get_qregxiv4si (__o, 1); \
20831 ret.val[2] = (vtype) __builtin_aarch64_get_qregxiv4si (__o, 2); \
20832 ret.val[3] = (vtype) __builtin_aarch64_get_qregxiv4si (__o, 3); \
20833 return ret; \
20836 __LD4_LANE_FUNC (float16x8x4_t, float16x8_t, float16_t, v8hf, hf, f16)
20837 __LD4_LANE_FUNC (float32x4x4_t, float32x4_t, float32_t, v4sf, sf, f32)
20838 __LD4_LANE_FUNC (float64x2x4_t, float64x2_t, float64_t, v2df, df, f64)
20839 __LD4_LANE_FUNC (poly8x16x4_t, poly8x16_t, poly8_t, v16qi, qi, p8)
20840 __LD4_LANE_FUNC (poly16x8x4_t, poly16x8_t, poly16_t, v8hi, hi, p16)
20841 __LD4_LANE_FUNC (poly64x2x4_t, poly64x2_t, poly64_t, v2di, di, p64)
20842 __LD4_LANE_FUNC (int8x16x4_t, int8x16_t, int8_t, v16qi, qi, s8)
20843 __LD4_LANE_FUNC (int16x8x4_t, int16x8_t, int16_t, v8hi, hi, s16)
20844 __LD4_LANE_FUNC (int32x4x4_t, int32x4_t, int32_t, v4si, si, s32)
20845 __LD4_LANE_FUNC (int64x2x4_t, int64x2_t, int64_t, v2di, di, s64)
20846 __LD4_LANE_FUNC (uint8x16x4_t, uint8x16_t, uint8_t, v16qi, qi, u8)
20847 __LD4_LANE_FUNC (uint16x8x4_t, uint16x8_t, uint16_t, v8hi, hi, u16)
20848 __LD4_LANE_FUNC (uint32x4x4_t, uint32x4_t, uint32_t, v4si, si, u32)
20849 __LD4_LANE_FUNC (uint64x2x4_t, uint64x2_t, uint64_t, v2di, di, u64)
20851 #undef __LD4_LANE_FUNC
20853 /* vmax */
20855 __extension__ extern __inline float32x2_t
20856 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20857 vmax_f32 (float32x2_t __a, float32x2_t __b)
20859 return __builtin_aarch64_smax_nanv2sf (__a, __b);
20862 __extension__ extern __inline float64x1_t
20863 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20864 vmax_f64 (float64x1_t __a, float64x1_t __b)
20866 return (float64x1_t)
20867 { __builtin_aarch64_smax_nandf (vget_lane_f64 (__a, 0),
20868 vget_lane_f64 (__b, 0)) };
20871 __extension__ extern __inline int8x8_t
20872 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20873 vmax_s8 (int8x8_t __a, int8x8_t __b)
20875 return __builtin_aarch64_smaxv8qi (__a, __b);
20878 __extension__ extern __inline int16x4_t
20879 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20880 vmax_s16 (int16x4_t __a, int16x4_t __b)
20882 return __builtin_aarch64_smaxv4hi (__a, __b);
20885 __extension__ extern __inline int32x2_t
20886 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20887 vmax_s32 (int32x2_t __a, int32x2_t __b)
20889 return __builtin_aarch64_smaxv2si (__a, __b);
20892 __extension__ extern __inline uint8x8_t
20893 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20894 vmax_u8 (uint8x8_t __a, uint8x8_t __b)
20896 return (uint8x8_t) __builtin_aarch64_umaxv8qi ((int8x8_t) __a,
20897 (int8x8_t) __b);
20900 __extension__ extern __inline uint16x4_t
20901 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20902 vmax_u16 (uint16x4_t __a, uint16x4_t __b)
20904 return (uint16x4_t) __builtin_aarch64_umaxv4hi ((int16x4_t) __a,
20905 (int16x4_t) __b);
20908 __extension__ extern __inline uint32x2_t
20909 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20910 vmax_u32 (uint32x2_t __a, uint32x2_t __b)
20912 return (uint32x2_t) __builtin_aarch64_umaxv2si ((int32x2_t) __a,
20913 (int32x2_t) __b);
20916 __extension__ extern __inline float32x4_t
20917 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20918 vmaxq_f32 (float32x4_t __a, float32x4_t __b)
20920 return __builtin_aarch64_smax_nanv4sf (__a, __b);
20923 __extension__ extern __inline float64x2_t
20924 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20925 vmaxq_f64 (float64x2_t __a, float64x2_t __b)
20927 return __builtin_aarch64_smax_nanv2df (__a, __b);
20930 __extension__ extern __inline int8x16_t
20931 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20932 vmaxq_s8 (int8x16_t __a, int8x16_t __b)
20934 return __builtin_aarch64_smaxv16qi (__a, __b);
20937 __extension__ extern __inline int16x8_t
20938 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20939 vmaxq_s16 (int16x8_t __a, int16x8_t __b)
20941 return __builtin_aarch64_smaxv8hi (__a, __b);
20944 __extension__ extern __inline int32x4_t
20945 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20946 vmaxq_s32 (int32x4_t __a, int32x4_t __b)
20948 return __builtin_aarch64_smaxv4si (__a, __b);
20951 __extension__ extern __inline uint8x16_t
20952 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20953 vmaxq_u8 (uint8x16_t __a, uint8x16_t __b)
20955 return (uint8x16_t) __builtin_aarch64_umaxv16qi ((int8x16_t) __a,
20956 (int8x16_t) __b);
20959 __extension__ extern __inline uint16x8_t
20960 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20961 vmaxq_u16 (uint16x8_t __a, uint16x8_t __b)
20963 return (uint16x8_t) __builtin_aarch64_umaxv8hi ((int16x8_t) __a,
20964 (int16x8_t) __b);
20967 __extension__ extern __inline uint32x4_t
20968 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20969 vmaxq_u32 (uint32x4_t __a, uint32x4_t __b)
20971 return (uint32x4_t) __builtin_aarch64_umaxv4si ((int32x4_t) __a,
20972 (int32x4_t) __b);
20974 /* vmulx */
20976 __extension__ extern __inline float32x2_t
20977 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20978 vmulx_f32 (float32x2_t __a, float32x2_t __b)
20980 return __builtin_aarch64_fmulxv2sf (__a, __b);
20983 __extension__ extern __inline float32x4_t
20984 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20985 vmulxq_f32 (float32x4_t __a, float32x4_t __b)
20987 return __builtin_aarch64_fmulxv4sf (__a, __b);
20990 __extension__ extern __inline float64x1_t
20991 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20992 vmulx_f64 (float64x1_t __a, float64x1_t __b)
20994 return (float64x1_t) {__builtin_aarch64_fmulxdf (__a[0], __b[0])};
20997 __extension__ extern __inline float64x2_t
20998 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20999 vmulxq_f64 (float64x2_t __a, float64x2_t __b)
21001 return __builtin_aarch64_fmulxv2df (__a, __b);
21004 __extension__ extern __inline float32_t
21005 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21006 vmulxs_f32 (float32_t __a, float32_t __b)
21008 return __builtin_aarch64_fmulxsf (__a, __b);
21011 __extension__ extern __inline float64_t
21012 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21013 vmulxd_f64 (float64_t __a, float64_t __b)
21015 return __builtin_aarch64_fmulxdf (__a, __b);
21018 __extension__ extern __inline float32x2_t
21019 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21020 vmulx_lane_f32 (float32x2_t __a, float32x2_t __v, const int __lane)
21022 return vmulx_f32 (__a, __aarch64_vdup_lane_f32 (__v, __lane));
21025 __extension__ extern __inline float64x1_t
21026 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21027 vmulx_lane_f64 (float64x1_t __a, float64x1_t __v, const int __lane)
21029 return vmulx_f64 (__a, __aarch64_vdup_lane_f64 (__v, __lane));
21032 __extension__ extern __inline float32x4_t
21033 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21034 vmulxq_lane_f32 (float32x4_t __a, float32x2_t __v, const int __lane)
21036 return vmulxq_f32 (__a, __aarch64_vdupq_lane_f32 (__v, __lane));
21039 __extension__ extern __inline float64x2_t
21040 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21041 vmulxq_lane_f64 (float64x2_t __a, float64x1_t __v, const int __lane)
21043 return vmulxq_f64 (__a, __aarch64_vdupq_lane_f64 (__v, __lane));
21046 __extension__ extern __inline float32x2_t
21047 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21048 vmulx_laneq_f32 (float32x2_t __a, float32x4_t __v, const int __lane)
21050 return vmulx_f32 (__a, __aarch64_vdup_laneq_f32 (__v, __lane));
21053 __extension__ extern __inline float64x1_t
21054 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21055 vmulx_laneq_f64 (float64x1_t __a, float64x2_t __v, const int __lane)
21057 return vmulx_f64 (__a, __aarch64_vdup_laneq_f64 (__v, __lane));
21060 __extension__ extern __inline float32x4_t
21061 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21062 vmulxq_laneq_f32 (float32x4_t __a, float32x4_t __v, const int __lane)
21064 return vmulxq_f32 (__a, __aarch64_vdupq_laneq_f32 (__v, __lane));
21067 __extension__ extern __inline float64x2_t
21068 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21069 vmulxq_laneq_f64 (float64x2_t __a, float64x2_t __v, const int __lane)
21071 return vmulxq_f64 (__a, __aarch64_vdupq_laneq_f64 (__v, __lane));
21074 __extension__ extern __inline float32_t
21075 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21076 vmulxs_lane_f32 (float32_t __a, float32x2_t __v, const int __lane)
21078 return vmulxs_f32 (__a, __aarch64_vget_lane_any (__v, __lane));
21081 __extension__ extern __inline float32_t
21082 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21083 vmulxs_laneq_f32 (float32_t __a, float32x4_t __v, const int __lane)
21085 return vmulxs_f32 (__a, __aarch64_vget_lane_any (__v, __lane));
21088 __extension__ extern __inline float64_t
21089 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21090 vmulxd_lane_f64 (float64_t __a, float64x1_t __v, const int __lane)
21092 return vmulxd_f64 (__a, __aarch64_vget_lane_any (__v, __lane));
21095 __extension__ extern __inline float64_t
21096 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21097 vmulxd_laneq_f64 (float64_t __a, float64x2_t __v, const int __lane)
21099 return vmulxd_f64 (__a, __aarch64_vget_lane_any (__v, __lane));
21102 /* vpmax */
21104 __extension__ extern __inline int8x8_t
21105 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21106 vpmax_s8 (int8x8_t a, int8x8_t b)
21108 return __builtin_aarch64_smaxpv8qi (a, b);
21111 __extension__ extern __inline int16x4_t
21112 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21113 vpmax_s16 (int16x4_t a, int16x4_t b)
21115 return __builtin_aarch64_smaxpv4hi (a, b);
21118 __extension__ extern __inline int32x2_t
21119 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21120 vpmax_s32 (int32x2_t a, int32x2_t b)
21122 return __builtin_aarch64_smaxpv2si (a, b);
21125 __extension__ extern __inline uint8x8_t
21126 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21127 vpmax_u8 (uint8x8_t a, uint8x8_t b)
21129 return (uint8x8_t) __builtin_aarch64_umaxpv8qi ((int8x8_t) a,
21130 (int8x8_t) b);
21133 __extension__ extern __inline uint16x4_t
21134 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21135 vpmax_u16 (uint16x4_t a, uint16x4_t b)
21137 return (uint16x4_t) __builtin_aarch64_umaxpv4hi ((int16x4_t) a,
21138 (int16x4_t) b);
21141 __extension__ extern __inline uint32x2_t
21142 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21143 vpmax_u32 (uint32x2_t a, uint32x2_t b)
21145 return (uint32x2_t) __builtin_aarch64_umaxpv2si ((int32x2_t) a,
21146 (int32x2_t) b);
21149 __extension__ extern __inline int8x16_t
21150 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21151 vpmaxq_s8 (int8x16_t a, int8x16_t b)
21153 return __builtin_aarch64_smaxpv16qi (a, b);
21156 __extension__ extern __inline int16x8_t
21157 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21158 vpmaxq_s16 (int16x8_t a, int16x8_t b)
21160 return __builtin_aarch64_smaxpv8hi (a, b);
21163 __extension__ extern __inline int32x4_t
21164 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21165 vpmaxq_s32 (int32x4_t a, int32x4_t b)
21167 return __builtin_aarch64_smaxpv4si (a, b);
21170 __extension__ extern __inline uint8x16_t
21171 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21172 vpmaxq_u8 (uint8x16_t a, uint8x16_t b)
21174 return (uint8x16_t) __builtin_aarch64_umaxpv16qi ((int8x16_t) a,
21175 (int8x16_t) b);
21178 __extension__ extern __inline uint16x8_t
21179 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21180 vpmaxq_u16 (uint16x8_t a, uint16x8_t b)
21182 return (uint16x8_t) __builtin_aarch64_umaxpv8hi ((int16x8_t) a,
21183 (int16x8_t) b);
21186 __extension__ extern __inline uint32x4_t
21187 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21188 vpmaxq_u32 (uint32x4_t a, uint32x4_t b)
21190 return (uint32x4_t) __builtin_aarch64_umaxpv4si ((int32x4_t) a,
21191 (int32x4_t) b);
21194 __extension__ extern __inline float32x2_t
21195 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21196 vpmax_f32 (float32x2_t a, float32x2_t b)
21198 return __builtin_aarch64_smax_nanpv2sf (a, b);
21201 __extension__ extern __inline float32x4_t
21202 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21203 vpmaxq_f32 (float32x4_t a, float32x4_t b)
21205 return __builtin_aarch64_smax_nanpv4sf (a, b);
21208 __extension__ extern __inline float64x2_t
21209 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21210 vpmaxq_f64 (float64x2_t a, float64x2_t b)
21212 return __builtin_aarch64_smax_nanpv2df (a, b);
21215 __extension__ extern __inline float64_t
21216 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21217 vpmaxqd_f64 (float64x2_t a)
21219 return __builtin_aarch64_reduc_smax_nan_scal_v2df (a);
21222 __extension__ extern __inline float32_t
21223 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21224 vpmaxs_f32 (float32x2_t a)
21226 return __builtin_aarch64_reduc_smax_nan_scal_v2sf (a);
21229 /* vpmaxnm */
21231 __extension__ extern __inline float32x2_t
21232 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21233 vpmaxnm_f32 (float32x2_t a, float32x2_t b)
21235 return __builtin_aarch64_smaxpv2sf (a, b);
21238 __extension__ extern __inline float32x4_t
21239 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21240 vpmaxnmq_f32 (float32x4_t a, float32x4_t b)
21242 return __builtin_aarch64_smaxpv4sf (a, b);
21245 __extension__ extern __inline float64x2_t
21246 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21247 vpmaxnmq_f64 (float64x2_t a, float64x2_t b)
21249 return __builtin_aarch64_smaxpv2df (a, b);
21252 __extension__ extern __inline float64_t
21253 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21254 vpmaxnmqd_f64 (float64x2_t a)
21256 return __builtin_aarch64_reduc_smax_scal_v2df (a);
21259 __extension__ extern __inline float32_t
21260 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21261 vpmaxnms_f32 (float32x2_t a)
21263 return __builtin_aarch64_reduc_smax_scal_v2sf (a);
21266 /* vpmin */
21268 __extension__ extern __inline int8x8_t
21269 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21270 vpmin_s8 (int8x8_t a, int8x8_t b)
21272 return __builtin_aarch64_sminpv8qi (a, b);
21275 __extension__ extern __inline int16x4_t
21276 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21277 vpmin_s16 (int16x4_t a, int16x4_t b)
21279 return __builtin_aarch64_sminpv4hi (a, b);
21282 __extension__ extern __inline int32x2_t
21283 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21284 vpmin_s32 (int32x2_t a, int32x2_t b)
21286 return __builtin_aarch64_sminpv2si (a, b);
21289 __extension__ extern __inline uint8x8_t
21290 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21291 vpmin_u8 (uint8x8_t a, uint8x8_t b)
21293 return (uint8x8_t) __builtin_aarch64_uminpv8qi ((int8x8_t) a,
21294 (int8x8_t) b);
21297 __extension__ extern __inline uint16x4_t
21298 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21299 vpmin_u16 (uint16x4_t a, uint16x4_t b)
21301 return (uint16x4_t) __builtin_aarch64_uminpv4hi ((int16x4_t) a,
21302 (int16x4_t) b);
21305 __extension__ extern __inline uint32x2_t
21306 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21307 vpmin_u32 (uint32x2_t a, uint32x2_t b)
21309 return (uint32x2_t) __builtin_aarch64_uminpv2si ((int32x2_t) a,
21310 (int32x2_t) b);
21313 __extension__ extern __inline int8x16_t
21314 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21315 vpminq_s8 (int8x16_t a, int8x16_t b)
21317 return __builtin_aarch64_sminpv16qi (a, b);
21320 __extension__ extern __inline int16x8_t
21321 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21322 vpminq_s16 (int16x8_t a, int16x8_t b)
21324 return __builtin_aarch64_sminpv8hi (a, b);
21327 __extension__ extern __inline int32x4_t
21328 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21329 vpminq_s32 (int32x4_t a, int32x4_t b)
21331 return __builtin_aarch64_sminpv4si (a, b);
21334 __extension__ extern __inline uint8x16_t
21335 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21336 vpminq_u8 (uint8x16_t a, uint8x16_t b)
21338 return (uint8x16_t) __builtin_aarch64_uminpv16qi ((int8x16_t) a,
21339 (int8x16_t) b);
21342 __extension__ extern __inline uint16x8_t
21343 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21344 vpminq_u16 (uint16x8_t a, uint16x8_t b)
21346 return (uint16x8_t) __builtin_aarch64_uminpv8hi ((int16x8_t) a,
21347 (int16x8_t) b);
21350 __extension__ extern __inline uint32x4_t
21351 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21352 vpminq_u32 (uint32x4_t a, uint32x4_t b)
21354 return (uint32x4_t) __builtin_aarch64_uminpv4si ((int32x4_t) a,
21355 (int32x4_t) b);
21358 __extension__ extern __inline float32x2_t
21359 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21360 vpmin_f32 (float32x2_t a, float32x2_t b)
21362 return __builtin_aarch64_smin_nanpv2sf (a, b);
21365 __extension__ extern __inline float32x4_t
21366 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21367 vpminq_f32 (float32x4_t a, float32x4_t b)
21369 return __builtin_aarch64_smin_nanpv4sf (a, b);
21372 __extension__ extern __inline float64x2_t
21373 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21374 vpminq_f64 (float64x2_t a, float64x2_t b)
21376 return __builtin_aarch64_smin_nanpv2df (a, b);
21379 __extension__ extern __inline float64_t
21380 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21381 vpminqd_f64 (float64x2_t a)
21383 return __builtin_aarch64_reduc_smin_nan_scal_v2df (a);
21386 __extension__ extern __inline float32_t
21387 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21388 vpmins_f32 (float32x2_t a)
21390 return __builtin_aarch64_reduc_smin_nan_scal_v2sf (a);
21393 /* vpminnm */
21395 __extension__ extern __inline float32x2_t
21396 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21397 vpminnm_f32 (float32x2_t a, float32x2_t b)
21399 return __builtin_aarch64_sminpv2sf (a, b);
21402 __extension__ extern __inline float32x4_t
21403 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21404 vpminnmq_f32 (float32x4_t a, float32x4_t b)
21406 return __builtin_aarch64_sminpv4sf (a, b);
21409 __extension__ extern __inline float64x2_t
21410 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21411 vpminnmq_f64 (float64x2_t a, float64x2_t b)
21413 return __builtin_aarch64_sminpv2df (a, b);
21416 __extension__ extern __inline float64_t
21417 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21418 vpminnmqd_f64 (float64x2_t a)
21420 return __builtin_aarch64_reduc_smin_scal_v2df (a);
21423 __extension__ extern __inline float32_t
21424 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21425 vpminnms_f32 (float32x2_t a)
21427 return __builtin_aarch64_reduc_smin_scal_v2sf (a);
21430 /* vmaxnm */
21432 __extension__ extern __inline float32x2_t
21433 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21434 vmaxnm_f32 (float32x2_t __a, float32x2_t __b)
21436 return __builtin_aarch64_fmaxv2sf (__a, __b);
21439 __extension__ extern __inline float64x1_t
21440 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21441 vmaxnm_f64 (float64x1_t __a, float64x1_t __b)
21443 return (float64x1_t)
21444 { __builtin_aarch64_fmaxdf (vget_lane_f64 (__a, 0),
21445 vget_lane_f64 (__b, 0)) };
21448 __extension__ extern __inline float32x4_t
21449 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21450 vmaxnmq_f32 (float32x4_t __a, float32x4_t __b)
21452 return __builtin_aarch64_fmaxv4sf (__a, __b);
21455 __extension__ extern __inline float64x2_t
21456 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21457 vmaxnmq_f64 (float64x2_t __a, float64x2_t __b)
21459 return __builtin_aarch64_fmaxv2df (__a, __b);
21462 /* vmaxv */
21464 __extension__ extern __inline float32_t
21465 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21466 vmaxv_f32 (float32x2_t __a)
21468 return __builtin_aarch64_reduc_smax_nan_scal_v2sf (__a);
21471 __extension__ extern __inline int8_t
21472 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21473 vmaxv_s8 (int8x8_t __a)
21475 return __builtin_aarch64_reduc_smax_scal_v8qi (__a);
21478 __extension__ extern __inline int16_t
21479 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21480 vmaxv_s16 (int16x4_t __a)
21482 return __builtin_aarch64_reduc_smax_scal_v4hi (__a);
21485 __extension__ extern __inline int32_t
21486 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21487 vmaxv_s32 (int32x2_t __a)
21489 return __builtin_aarch64_reduc_smax_scal_v2si (__a);
21492 __extension__ extern __inline uint8_t
21493 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21494 vmaxv_u8 (uint8x8_t __a)
21496 return __builtin_aarch64_reduc_umax_scal_v8qi_uu (__a);
21499 __extension__ extern __inline uint16_t
21500 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21501 vmaxv_u16 (uint16x4_t __a)
21503 return __builtin_aarch64_reduc_umax_scal_v4hi_uu (__a);
21506 __extension__ extern __inline uint32_t
21507 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21508 vmaxv_u32 (uint32x2_t __a)
21510 return __builtin_aarch64_reduc_umax_scal_v2si_uu (__a);
21513 __extension__ extern __inline float32_t
21514 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21515 vmaxvq_f32 (float32x4_t __a)
21517 return __builtin_aarch64_reduc_smax_nan_scal_v4sf (__a);
21520 __extension__ extern __inline float64_t
21521 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21522 vmaxvq_f64 (float64x2_t __a)
21524 return __builtin_aarch64_reduc_smax_nan_scal_v2df (__a);
21527 __extension__ extern __inline int8_t
21528 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21529 vmaxvq_s8 (int8x16_t __a)
21531 return __builtin_aarch64_reduc_smax_scal_v16qi (__a);
21534 __extension__ extern __inline int16_t
21535 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21536 vmaxvq_s16 (int16x8_t __a)
21538 return __builtin_aarch64_reduc_smax_scal_v8hi (__a);
21541 __extension__ extern __inline int32_t
21542 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21543 vmaxvq_s32 (int32x4_t __a)
21545 return __builtin_aarch64_reduc_smax_scal_v4si (__a);
21548 __extension__ extern __inline uint8_t
21549 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21550 vmaxvq_u8 (uint8x16_t __a)
21552 return __builtin_aarch64_reduc_umax_scal_v16qi_uu (__a);
21555 __extension__ extern __inline uint16_t
21556 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21557 vmaxvq_u16 (uint16x8_t __a)
21559 return __builtin_aarch64_reduc_umax_scal_v8hi_uu (__a);
21562 __extension__ extern __inline uint32_t
21563 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21564 vmaxvq_u32 (uint32x4_t __a)
21566 return __builtin_aarch64_reduc_umax_scal_v4si_uu (__a);
21569 /* vmaxnmv */
21571 __extension__ extern __inline float32_t
21572 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21573 vmaxnmv_f32 (float32x2_t __a)
21575 return __builtin_aarch64_reduc_smax_scal_v2sf (__a);
21578 __extension__ extern __inline float32_t
21579 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21580 vmaxnmvq_f32 (float32x4_t __a)
21582 return __builtin_aarch64_reduc_smax_scal_v4sf (__a);
21585 __extension__ extern __inline float64_t
21586 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21587 vmaxnmvq_f64 (float64x2_t __a)
21589 return __builtin_aarch64_reduc_smax_scal_v2df (__a);
21592 /* vmin */
21594 __extension__ extern __inline float32x2_t
21595 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21596 vmin_f32 (float32x2_t __a, float32x2_t __b)
21598 return __builtin_aarch64_smin_nanv2sf (__a, __b);
21601 __extension__ extern __inline float64x1_t
21602 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21603 vmin_f64 (float64x1_t __a, float64x1_t __b)
21605 return (float64x1_t)
21606 { __builtin_aarch64_smin_nandf (vget_lane_f64 (__a, 0),
21607 vget_lane_f64 (__b, 0)) };
21610 __extension__ extern __inline int8x8_t
21611 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21612 vmin_s8 (int8x8_t __a, int8x8_t __b)
21614 return __builtin_aarch64_sminv8qi (__a, __b);
21617 __extension__ extern __inline int16x4_t
21618 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21619 vmin_s16 (int16x4_t __a, int16x4_t __b)
21621 return __builtin_aarch64_sminv4hi (__a, __b);
21624 __extension__ extern __inline int32x2_t
21625 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21626 vmin_s32 (int32x2_t __a, int32x2_t __b)
21628 return __builtin_aarch64_sminv2si (__a, __b);
21631 __extension__ extern __inline uint8x8_t
21632 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21633 vmin_u8 (uint8x8_t __a, uint8x8_t __b)
21635 return (uint8x8_t) __builtin_aarch64_uminv8qi ((int8x8_t) __a,
21636 (int8x8_t) __b);
21639 __extension__ extern __inline uint16x4_t
21640 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21641 vmin_u16 (uint16x4_t __a, uint16x4_t __b)
21643 return (uint16x4_t) __builtin_aarch64_uminv4hi ((int16x4_t) __a,
21644 (int16x4_t) __b);
21647 __extension__ extern __inline uint32x2_t
21648 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21649 vmin_u32 (uint32x2_t __a, uint32x2_t __b)
21651 return (uint32x2_t) __builtin_aarch64_uminv2si ((int32x2_t) __a,
21652 (int32x2_t) __b);
21655 __extension__ extern __inline float32x4_t
21656 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21657 vminq_f32 (float32x4_t __a, float32x4_t __b)
21659 return __builtin_aarch64_smin_nanv4sf (__a, __b);
21662 __extension__ extern __inline float64x2_t
21663 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21664 vminq_f64 (float64x2_t __a, float64x2_t __b)
21666 return __builtin_aarch64_smin_nanv2df (__a, __b);
21669 __extension__ extern __inline int8x16_t
21670 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21671 vminq_s8 (int8x16_t __a, int8x16_t __b)
21673 return __builtin_aarch64_sminv16qi (__a, __b);
21676 __extension__ extern __inline int16x8_t
21677 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21678 vminq_s16 (int16x8_t __a, int16x8_t __b)
21680 return __builtin_aarch64_sminv8hi (__a, __b);
21683 __extension__ extern __inline int32x4_t
21684 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21685 vminq_s32 (int32x4_t __a, int32x4_t __b)
21687 return __builtin_aarch64_sminv4si (__a, __b);
21690 __extension__ extern __inline uint8x16_t
21691 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21692 vminq_u8 (uint8x16_t __a, uint8x16_t __b)
21694 return (uint8x16_t) __builtin_aarch64_uminv16qi ((int8x16_t) __a,
21695 (int8x16_t) __b);
21698 __extension__ extern __inline uint16x8_t
21699 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21700 vminq_u16 (uint16x8_t __a, uint16x8_t __b)
21702 return (uint16x8_t) __builtin_aarch64_uminv8hi ((int16x8_t) __a,
21703 (int16x8_t) __b);
21706 __extension__ extern __inline uint32x4_t
21707 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21708 vminq_u32 (uint32x4_t __a, uint32x4_t __b)
21710 return (uint32x4_t) __builtin_aarch64_uminv4si ((int32x4_t) __a,
21711 (int32x4_t) __b);
21714 /* vminnm */
21716 __extension__ extern __inline float32x2_t
21717 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21718 vminnm_f32 (float32x2_t __a, float32x2_t __b)
21720 return __builtin_aarch64_fminv2sf (__a, __b);
21723 __extension__ extern __inline float64x1_t
21724 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21725 vminnm_f64 (float64x1_t __a, float64x1_t __b)
21727 return (float64x1_t)
21728 { __builtin_aarch64_fmindf (vget_lane_f64 (__a, 0),
21729 vget_lane_f64 (__b, 0)) };
21732 __extension__ extern __inline float32x4_t
21733 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21734 vminnmq_f32 (float32x4_t __a, float32x4_t __b)
21736 return __builtin_aarch64_fminv4sf (__a, __b);
21739 __extension__ extern __inline float64x2_t
21740 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21741 vminnmq_f64 (float64x2_t __a, float64x2_t __b)
21743 return __builtin_aarch64_fminv2df (__a, __b);
21746 /* vminv */
21748 __extension__ extern __inline float32_t
21749 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21750 vminv_f32 (float32x2_t __a)
21752 return __builtin_aarch64_reduc_smin_nan_scal_v2sf (__a);
21755 __extension__ extern __inline int8_t
21756 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21757 vminv_s8 (int8x8_t __a)
21759 return __builtin_aarch64_reduc_smin_scal_v8qi (__a);
21762 __extension__ extern __inline int16_t
21763 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21764 vminv_s16 (int16x4_t __a)
21766 return __builtin_aarch64_reduc_smin_scal_v4hi (__a);
21769 __extension__ extern __inline int32_t
21770 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21771 vminv_s32 (int32x2_t __a)
21773 return __builtin_aarch64_reduc_smin_scal_v2si (__a);
21776 __extension__ extern __inline uint8_t
21777 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21778 vminv_u8 (uint8x8_t __a)
21780 return __builtin_aarch64_reduc_umin_scal_v8qi_uu (__a);
21783 __extension__ extern __inline uint16_t
21784 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21785 vminv_u16 (uint16x4_t __a)
21787 return __builtin_aarch64_reduc_umin_scal_v4hi_uu (__a);
21790 __extension__ extern __inline uint32_t
21791 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21792 vminv_u32 (uint32x2_t __a)
21794 return __builtin_aarch64_reduc_umin_scal_v2si_uu (__a);
21797 __extension__ extern __inline float32_t
21798 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21799 vminvq_f32 (float32x4_t __a)
21801 return __builtin_aarch64_reduc_smin_nan_scal_v4sf (__a);
21804 __extension__ extern __inline float64_t
21805 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21806 vminvq_f64 (float64x2_t __a)
21808 return __builtin_aarch64_reduc_smin_nan_scal_v2df (__a);
21811 __extension__ extern __inline int8_t
21812 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21813 vminvq_s8 (int8x16_t __a)
21815 return __builtin_aarch64_reduc_smin_scal_v16qi (__a);
21818 __extension__ extern __inline int16_t
21819 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21820 vminvq_s16 (int16x8_t __a)
21822 return __builtin_aarch64_reduc_smin_scal_v8hi (__a);
21825 __extension__ extern __inline int32_t
21826 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21827 vminvq_s32 (int32x4_t __a)
21829 return __builtin_aarch64_reduc_smin_scal_v4si (__a);
21832 __extension__ extern __inline uint8_t
21833 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21834 vminvq_u8 (uint8x16_t __a)
21836 return __builtin_aarch64_reduc_umin_scal_v16qi_uu (__a);
21839 __extension__ extern __inline uint16_t
21840 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21841 vminvq_u16 (uint16x8_t __a)
21843 return __builtin_aarch64_reduc_umin_scal_v8hi_uu (__a);
21846 __extension__ extern __inline uint32_t
21847 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21848 vminvq_u32 (uint32x4_t __a)
21850 return __builtin_aarch64_reduc_umin_scal_v4si_uu (__a);
21853 /* vminnmv */
21855 __extension__ extern __inline float32_t
21856 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21857 vminnmv_f32 (float32x2_t __a)
21859 return __builtin_aarch64_reduc_smin_scal_v2sf (__a);
21862 __extension__ extern __inline float32_t
21863 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21864 vminnmvq_f32 (float32x4_t __a)
21866 return __builtin_aarch64_reduc_smin_scal_v4sf (__a);
21869 __extension__ extern __inline float64_t
21870 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21871 vminnmvq_f64 (float64x2_t __a)
21873 return __builtin_aarch64_reduc_smin_scal_v2df (__a);
21876 /* vmla */
21878 __extension__ extern __inline float32x2_t
21879 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21880 vmla_f32 (float32x2_t a, float32x2_t b, float32x2_t c)
21882 return a + b * c;
21885 __extension__ extern __inline float64x1_t
21886 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21887 vmla_f64 (float64x1_t __a, float64x1_t __b, float64x1_t __c)
21889 return __a + __b * __c;
21892 __extension__ extern __inline float32x4_t
21893 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21894 vmlaq_f32 (float32x4_t a, float32x4_t b, float32x4_t c)
21896 return a + b * c;
21899 __extension__ extern __inline float64x2_t
21900 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21901 vmlaq_f64 (float64x2_t a, float64x2_t b, float64x2_t c)
21903 return a + b * c;
21906 /* vmla_lane */
21908 __extension__ extern __inline float32x2_t
21909 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21910 vmla_lane_f32 (float32x2_t __a, float32x2_t __b,
21911 float32x2_t __c, const int __lane)
21913 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21916 __extension__ extern __inline int16x4_t
21917 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21918 vmla_lane_s16 (int16x4_t __a, int16x4_t __b,
21919 int16x4_t __c, const int __lane)
21921 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21924 __extension__ extern __inline int32x2_t
21925 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21926 vmla_lane_s32 (int32x2_t __a, int32x2_t __b,
21927 int32x2_t __c, const int __lane)
21929 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21932 __extension__ extern __inline uint16x4_t
21933 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21934 vmla_lane_u16 (uint16x4_t __a, uint16x4_t __b,
21935 uint16x4_t __c, const int __lane)
21937 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21940 __extension__ extern __inline uint32x2_t
21941 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21942 vmla_lane_u32 (uint32x2_t __a, uint32x2_t __b,
21943 uint32x2_t __c, const int __lane)
21945 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21948 /* vmla_laneq */
21950 __extension__ extern __inline float32x2_t
21951 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21952 vmla_laneq_f32 (float32x2_t __a, float32x2_t __b,
21953 float32x4_t __c, const int __lane)
21955 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21958 __extension__ extern __inline int16x4_t
21959 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21960 vmla_laneq_s16 (int16x4_t __a, int16x4_t __b,
21961 int16x8_t __c, const int __lane)
21963 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21966 __extension__ extern __inline int32x2_t
21967 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21968 vmla_laneq_s32 (int32x2_t __a, int32x2_t __b,
21969 int32x4_t __c, const int __lane)
21971 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21974 __extension__ extern __inline uint16x4_t
21975 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21976 vmla_laneq_u16 (uint16x4_t __a, uint16x4_t __b,
21977 uint16x8_t __c, const int __lane)
21979 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21982 __extension__ extern __inline uint32x2_t
21983 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21984 vmla_laneq_u32 (uint32x2_t __a, uint32x2_t __b,
21985 uint32x4_t __c, const int __lane)
21987 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21990 /* vmlaq_lane */
21992 __extension__ extern __inline float32x4_t
21993 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21994 vmlaq_lane_f32 (float32x4_t __a, float32x4_t __b,
21995 float32x2_t __c, const int __lane)
21997 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
22000 __extension__ extern __inline int16x8_t
22001 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22002 vmlaq_lane_s16 (int16x8_t __a, int16x8_t __b,
22003 int16x4_t __c, const int __lane)
22005 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
22008 __extension__ extern __inline int32x4_t
22009 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22010 vmlaq_lane_s32 (int32x4_t __a, int32x4_t __b,
22011 int32x2_t __c, const int __lane)
22013 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
22016 __extension__ extern __inline uint16x8_t
22017 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22018 vmlaq_lane_u16 (uint16x8_t __a, uint16x8_t __b,
22019 uint16x4_t __c, const int __lane)
22021 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
22024 __extension__ extern __inline uint32x4_t
22025 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22026 vmlaq_lane_u32 (uint32x4_t __a, uint32x4_t __b,
22027 uint32x2_t __c, const int __lane)
22029 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
22032 /* vmlaq_laneq */
22034 __extension__ extern __inline float32x4_t
22035 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22036 vmlaq_laneq_f32 (float32x4_t __a, float32x4_t __b,
22037 float32x4_t __c, const int __lane)
22039 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
22042 __extension__ extern __inline int16x8_t
22043 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22044 vmlaq_laneq_s16 (int16x8_t __a, int16x8_t __b,
22045 int16x8_t __c, const int __lane)
22047 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
22050 __extension__ extern __inline int32x4_t
22051 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22052 vmlaq_laneq_s32 (int32x4_t __a, int32x4_t __b,
22053 int32x4_t __c, const int __lane)
22055 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
22058 __extension__ extern __inline uint16x8_t
22059 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22060 vmlaq_laneq_u16 (uint16x8_t __a, uint16x8_t __b,
22061 uint16x8_t __c, const int __lane)
22063 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
22066 __extension__ extern __inline uint32x4_t
22067 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22068 vmlaq_laneq_u32 (uint32x4_t __a, uint32x4_t __b,
22069 uint32x4_t __c, const int __lane)
22071 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
22074 /* vmls */
22076 __extension__ extern __inline float32x2_t
22077 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22078 vmls_f32 (float32x2_t a, float32x2_t b, float32x2_t c)
22080 return a - b * c;
22083 __extension__ extern __inline float64x1_t
22084 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22085 vmls_f64 (float64x1_t __a, float64x1_t __b, float64x1_t __c)
22087 return __a - __b * __c;
22090 __extension__ extern __inline float32x4_t
22091 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22092 vmlsq_f32 (float32x4_t a, float32x4_t b, float32x4_t c)
22094 return a - b * c;
22097 __extension__ extern __inline float64x2_t
22098 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22099 vmlsq_f64 (float64x2_t a, float64x2_t b, float64x2_t c)
22101 return a - b * c;
22104 /* vmls_lane */
22106 __extension__ extern __inline float32x2_t
22107 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22108 vmls_lane_f32 (float32x2_t __a, float32x2_t __b,
22109 float32x2_t __c, const int __lane)
22111 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22114 __extension__ extern __inline int16x4_t
22115 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22116 vmls_lane_s16 (int16x4_t __a, int16x4_t __b,
22117 int16x4_t __c, const int __lane)
22119 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22122 __extension__ extern __inline int32x2_t
22123 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22124 vmls_lane_s32 (int32x2_t __a, int32x2_t __b,
22125 int32x2_t __c, const int __lane)
22127 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22130 __extension__ extern __inline uint16x4_t
22131 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22132 vmls_lane_u16 (uint16x4_t __a, uint16x4_t __b,
22133 uint16x4_t __c, const int __lane)
22135 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22138 __extension__ extern __inline uint32x2_t
22139 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22140 vmls_lane_u32 (uint32x2_t __a, uint32x2_t __b,
22141 uint32x2_t __c, const int __lane)
22143 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22146 /* vmls_laneq */
22148 __extension__ extern __inline float32x2_t
22149 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22150 vmls_laneq_f32 (float32x2_t __a, float32x2_t __b,
22151 float32x4_t __c, const int __lane)
22153 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22156 __extension__ extern __inline int16x4_t
22157 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22158 vmls_laneq_s16 (int16x4_t __a, int16x4_t __b,
22159 int16x8_t __c, const int __lane)
22161 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22164 __extension__ extern __inline int32x2_t
22165 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22166 vmls_laneq_s32 (int32x2_t __a, int32x2_t __b,
22167 int32x4_t __c, const int __lane)
22169 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22172 __extension__ extern __inline uint16x4_t
22173 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22174 vmls_laneq_u16 (uint16x4_t __a, uint16x4_t __b,
22175 uint16x8_t __c, const int __lane)
22177 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22180 __extension__ extern __inline uint32x2_t
22181 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22182 vmls_laneq_u32 (uint32x2_t __a, uint32x2_t __b,
22183 uint32x4_t __c, const int __lane)
22185 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22188 /* vmlsq_lane */
22190 __extension__ extern __inline float32x4_t
22191 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22192 vmlsq_lane_f32 (float32x4_t __a, float32x4_t __b,
22193 float32x2_t __c, const int __lane)
22195 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22198 __extension__ extern __inline int16x8_t
22199 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22200 vmlsq_lane_s16 (int16x8_t __a, int16x8_t __b,
22201 int16x4_t __c, const int __lane)
22203 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22206 __extension__ extern __inline int32x4_t
22207 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22208 vmlsq_lane_s32 (int32x4_t __a, int32x4_t __b,
22209 int32x2_t __c, const int __lane)
22211 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22214 __extension__ extern __inline uint16x8_t
22215 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22216 vmlsq_lane_u16 (uint16x8_t __a, uint16x8_t __b,
22217 uint16x4_t __c, const int __lane)
22219 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22222 __extension__ extern __inline uint32x4_t
22223 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22224 vmlsq_lane_u32 (uint32x4_t __a, uint32x4_t __b,
22225 uint32x2_t __c, const int __lane)
22227 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22230 /* vmlsq_laneq */
22232 __extension__ extern __inline float32x4_t
22233 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22234 vmlsq_laneq_f32 (float32x4_t __a, float32x4_t __b,
22235 float32x4_t __c, const int __lane)
22237 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22240 __extension__ extern __inline int16x8_t
22241 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22242 vmlsq_laneq_s16 (int16x8_t __a, int16x8_t __b,
22243 int16x8_t __c, const int __lane)
22245 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22248 __extension__ extern __inline int32x4_t
22249 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22250 vmlsq_laneq_s32 (int32x4_t __a, int32x4_t __b,
22251 int32x4_t __c, const int __lane)
22253 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22255 __extension__ extern __inline uint16x8_t
22256 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22257 vmlsq_laneq_u16 (uint16x8_t __a, uint16x8_t __b,
22258 uint16x8_t __c, const int __lane)
22260 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22263 __extension__ extern __inline uint32x4_t
22264 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22265 vmlsq_laneq_u32 (uint32x4_t __a, uint32x4_t __b,
22266 uint32x4_t __c, const int __lane)
22268 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22271 /* vmov_n_ */
22273 __extension__ extern __inline float16x4_t
22274 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22275 vmov_n_f16 (float16_t __a)
22277 return vdup_n_f16 (__a);
22280 __extension__ extern __inline float32x2_t
22281 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22282 vmov_n_f32 (float32_t __a)
22284 return vdup_n_f32 (__a);
22287 __extension__ extern __inline float64x1_t
22288 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22289 vmov_n_f64 (float64_t __a)
22291 return (float64x1_t) {__a};
22294 __extension__ extern __inline poly8x8_t
22295 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22296 vmov_n_p8 (poly8_t __a)
22298 return vdup_n_p8 (__a);
22301 __extension__ extern __inline poly16x4_t
22302 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22303 vmov_n_p16 (poly16_t __a)
22305 return vdup_n_p16 (__a);
22308 __extension__ extern __inline poly64x1_t
22309 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22310 vmov_n_p64 (poly64_t __a)
22312 return vdup_n_p64 (__a);
22315 __extension__ extern __inline int8x8_t
22316 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22317 vmov_n_s8 (int8_t __a)
22319 return vdup_n_s8 (__a);
22322 __extension__ extern __inline int16x4_t
22323 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22324 vmov_n_s16 (int16_t __a)
22326 return vdup_n_s16 (__a);
22329 __extension__ extern __inline int32x2_t
22330 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22331 vmov_n_s32 (int32_t __a)
22333 return vdup_n_s32 (__a);
22336 __extension__ extern __inline int64x1_t
22337 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22338 vmov_n_s64 (int64_t __a)
22340 return (int64x1_t) {__a};
22343 __extension__ extern __inline uint8x8_t
22344 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22345 vmov_n_u8 (uint8_t __a)
22347 return vdup_n_u8 (__a);
22350 __extension__ extern __inline uint16x4_t
22351 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22352 vmov_n_u16 (uint16_t __a)
22354 return vdup_n_u16 (__a);
22357 __extension__ extern __inline uint32x2_t
22358 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22359 vmov_n_u32 (uint32_t __a)
22361 return vdup_n_u32 (__a);
22364 __extension__ extern __inline uint64x1_t
22365 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22366 vmov_n_u64 (uint64_t __a)
22368 return (uint64x1_t) {__a};
22371 __extension__ extern __inline float16x8_t
22372 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22373 vmovq_n_f16 (float16_t __a)
22375 return vdupq_n_f16 (__a);
22378 __extension__ extern __inline float32x4_t
22379 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22380 vmovq_n_f32 (float32_t __a)
22382 return vdupq_n_f32 (__a);
22385 __extension__ extern __inline float64x2_t
22386 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22387 vmovq_n_f64 (float64_t __a)
22389 return vdupq_n_f64 (__a);
22392 __extension__ extern __inline poly8x16_t
22393 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22394 vmovq_n_p8 (poly8_t __a)
22396 return vdupq_n_p8 (__a);
22399 __extension__ extern __inline poly16x8_t
22400 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22401 vmovq_n_p16 (poly16_t __a)
22403 return vdupq_n_p16 (__a);
22406 __extension__ extern __inline poly64x2_t
22407 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22408 vmovq_n_p64 (poly64_t __a)
22410 return vdupq_n_p64 (__a);
22413 __extension__ extern __inline int8x16_t
22414 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22415 vmovq_n_s8 (int8_t __a)
22417 return vdupq_n_s8 (__a);
22420 __extension__ extern __inline int16x8_t
22421 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22422 vmovq_n_s16 (int16_t __a)
22424 return vdupq_n_s16 (__a);
22427 __extension__ extern __inline int32x4_t
22428 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22429 vmovq_n_s32 (int32_t __a)
22431 return vdupq_n_s32 (__a);
22434 __extension__ extern __inline int64x2_t
22435 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22436 vmovq_n_s64 (int64_t __a)
22438 return vdupq_n_s64 (__a);
22441 __extension__ extern __inline uint8x16_t
22442 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22443 vmovq_n_u8 (uint8_t __a)
22445 return vdupq_n_u8 (__a);
22448 __extension__ extern __inline uint16x8_t
22449 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22450 vmovq_n_u16 (uint16_t __a)
22452 return vdupq_n_u16 (__a);
22455 __extension__ extern __inline uint32x4_t
22456 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22457 vmovq_n_u32 (uint32_t __a)
22459 return vdupq_n_u32 (__a);
22462 __extension__ extern __inline uint64x2_t
22463 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22464 vmovq_n_u64 (uint64_t __a)
22466 return vdupq_n_u64 (__a);
22469 /* vmul_lane */
22471 __extension__ extern __inline float32x2_t
22472 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22473 vmul_lane_f32 (float32x2_t __a, float32x2_t __b, const int __lane)
22475 return __a * __aarch64_vget_lane_any (__b, __lane);
22478 __extension__ extern __inline float64x1_t
22479 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22480 vmul_lane_f64 (float64x1_t __a, float64x1_t __b, const int __lane)
22482 return __a * __b;
22485 __extension__ extern __inline int16x4_t
22486 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22487 vmul_lane_s16 (int16x4_t __a, int16x4_t __b, const int __lane)
22489 return __a * __aarch64_vget_lane_any (__b, __lane);
22492 __extension__ extern __inline int32x2_t
22493 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22494 vmul_lane_s32 (int32x2_t __a, int32x2_t __b, const int __lane)
22496 return __a * __aarch64_vget_lane_any (__b, __lane);
22499 __extension__ extern __inline uint16x4_t
22500 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22501 vmul_lane_u16 (uint16x4_t __a, uint16x4_t __b, const int __lane)
22503 return __a * __aarch64_vget_lane_any (__b, __lane);
22506 __extension__ extern __inline uint32x2_t
22507 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22508 vmul_lane_u32 (uint32x2_t __a, uint32x2_t __b, const int __lane)
22510 return __a * __aarch64_vget_lane_any (__b, __lane);
22513 /* vmuld_lane */
22515 __extension__ extern __inline float64_t
22516 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22517 vmuld_lane_f64 (float64_t __a, float64x1_t __b, const int __lane)
22519 return __a * __aarch64_vget_lane_any (__b, __lane);
22522 __extension__ extern __inline float64_t
22523 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22524 vmuld_laneq_f64 (float64_t __a, float64x2_t __b, const int __lane)
22526 return __a * __aarch64_vget_lane_any (__b, __lane);
22529 /* vmuls_lane */
22531 __extension__ extern __inline float32_t
22532 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22533 vmuls_lane_f32 (float32_t __a, float32x2_t __b, const int __lane)
22535 return __a * __aarch64_vget_lane_any (__b, __lane);
22538 __extension__ extern __inline float32_t
22539 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22540 vmuls_laneq_f32 (float32_t __a, float32x4_t __b, const int __lane)
22542 return __a * __aarch64_vget_lane_any (__b, __lane);
22545 /* vmul_laneq */
22547 __extension__ extern __inline float32x2_t
22548 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22549 vmul_laneq_f32 (float32x2_t __a, float32x4_t __b, const int __lane)
22551 return __a * __aarch64_vget_lane_any (__b, __lane);
22554 __extension__ extern __inline float64x1_t
22555 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22556 vmul_laneq_f64 (float64x1_t __a, float64x2_t __b, const int __lane)
22558 return __a * __aarch64_vget_lane_any (__b, __lane);
22561 __extension__ extern __inline int16x4_t
22562 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22563 vmul_laneq_s16 (int16x4_t __a, int16x8_t __b, const int __lane)
22565 return __a * __aarch64_vget_lane_any (__b, __lane);
22568 __extension__ extern __inline int32x2_t
22569 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22570 vmul_laneq_s32 (int32x2_t __a, int32x4_t __b, const int __lane)
22572 return __a * __aarch64_vget_lane_any (__b, __lane);
22575 __extension__ extern __inline uint16x4_t
22576 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22577 vmul_laneq_u16 (uint16x4_t __a, uint16x8_t __b, const int __lane)
22579 return __a * __aarch64_vget_lane_any (__b, __lane);
22582 __extension__ extern __inline uint32x2_t
22583 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22584 vmul_laneq_u32 (uint32x2_t __a, uint32x4_t __b, const int __lane)
22586 return __a * __aarch64_vget_lane_any (__b, __lane);
22589 /* vmul_n */
22591 __extension__ extern __inline float64x1_t
22592 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22593 vmul_n_f64 (float64x1_t __a, float64_t __b)
22595 return (float64x1_t) { vget_lane_f64 (__a, 0) * __b };
22598 /* vmulq_lane */
22600 __extension__ extern __inline float32x4_t
22601 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22602 vmulq_lane_f32 (float32x4_t __a, float32x2_t __b, const int __lane)
22604 return __a * __aarch64_vget_lane_any (__b, __lane);
22607 __extension__ extern __inline float64x2_t
22608 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22609 vmulq_lane_f64 (float64x2_t __a, float64x1_t __b, const int __lane)
22611 __AARCH64_LANE_CHECK (__a, __lane);
22612 return __a * __b[0];
22615 __extension__ extern __inline int16x8_t
22616 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22617 vmulq_lane_s16 (int16x8_t __a, int16x4_t __b, const int __lane)
22619 return __a * __aarch64_vget_lane_any (__b, __lane);
22622 __extension__ extern __inline int32x4_t
22623 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22624 vmulq_lane_s32 (int32x4_t __a, int32x2_t __b, const int __lane)
22626 return __a * __aarch64_vget_lane_any (__b, __lane);
22629 __extension__ extern __inline uint16x8_t
22630 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22631 vmulq_lane_u16 (uint16x8_t __a, uint16x4_t __b, const int __lane)
22633 return __a * __aarch64_vget_lane_any (__b, __lane);
22636 __extension__ extern __inline uint32x4_t
22637 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22638 vmulq_lane_u32 (uint32x4_t __a, uint32x2_t __b, const int __lane)
22640 return __a * __aarch64_vget_lane_any (__b, __lane);
22643 /* vmulq_laneq */
22645 __extension__ extern __inline float32x4_t
22646 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22647 vmulq_laneq_f32 (float32x4_t __a, float32x4_t __b, const int __lane)
22649 return __a * __aarch64_vget_lane_any (__b, __lane);
22652 __extension__ extern __inline float64x2_t
22653 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22654 vmulq_laneq_f64 (float64x2_t __a, float64x2_t __b, const int __lane)
22656 return __a * __aarch64_vget_lane_any (__b, __lane);
22659 __extension__ extern __inline int16x8_t
22660 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22661 vmulq_laneq_s16 (int16x8_t __a, int16x8_t __b, const int __lane)
22663 return __a * __aarch64_vget_lane_any (__b, __lane);
22666 __extension__ extern __inline int32x4_t
22667 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22668 vmulq_laneq_s32 (int32x4_t __a, int32x4_t __b, const int __lane)
22670 return __a * __aarch64_vget_lane_any (__b, __lane);
22673 __extension__ extern __inline uint16x8_t
22674 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22675 vmulq_laneq_u16 (uint16x8_t __a, uint16x8_t __b, const int __lane)
22677 return __a * __aarch64_vget_lane_any (__b, __lane);
22680 __extension__ extern __inline uint32x4_t
22681 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22682 vmulq_laneq_u32 (uint32x4_t __a, uint32x4_t __b, const int __lane)
22684 return __a * __aarch64_vget_lane_any (__b, __lane);
22687 /* vmul_n. */
22689 __extension__ extern __inline float32x2_t
22690 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22691 vmul_n_f32 (float32x2_t __a, float32_t __b)
22693 return __a * __b;
22696 __extension__ extern __inline float32x4_t
22697 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22698 vmulq_n_f32 (float32x4_t __a, float32_t __b)
22700 return __a * __b;
22703 __extension__ extern __inline float64x2_t
22704 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22705 vmulq_n_f64 (float64x2_t __a, float64_t __b)
22707 return __a * __b;
22710 __extension__ extern __inline int16x4_t
22711 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22712 vmul_n_s16 (int16x4_t __a, int16_t __b)
22714 return __a * __b;
22717 __extension__ extern __inline int16x8_t
22718 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22719 vmulq_n_s16 (int16x8_t __a, int16_t __b)
22721 return __a * __b;
22724 __extension__ extern __inline int32x2_t
22725 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22726 vmul_n_s32 (int32x2_t __a, int32_t __b)
22728 return __a * __b;
22731 __extension__ extern __inline int32x4_t
22732 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22733 vmulq_n_s32 (int32x4_t __a, int32_t __b)
22735 return __a * __b;
22738 __extension__ extern __inline uint16x4_t
22739 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22740 vmul_n_u16 (uint16x4_t __a, uint16_t __b)
22742 return __a * __b;
22745 __extension__ extern __inline uint16x8_t
22746 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22747 vmulq_n_u16 (uint16x8_t __a, uint16_t __b)
22749 return __a * __b;
22752 __extension__ extern __inline uint32x2_t
22753 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22754 vmul_n_u32 (uint32x2_t __a, uint32_t __b)
22756 return __a * __b;
22759 __extension__ extern __inline uint32x4_t
22760 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22761 vmulq_n_u32 (uint32x4_t __a, uint32_t __b)
22763 return __a * __b;
22766 /* vmvn */
22768 __extension__ extern __inline poly8x8_t
22769 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22770 vmvn_p8 (poly8x8_t __a)
22772 return (poly8x8_t) ~((int8x8_t) __a);
22775 __extension__ extern __inline int8x8_t
22776 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22777 vmvn_s8 (int8x8_t __a)
22779 return ~__a;
22782 __extension__ extern __inline int16x4_t
22783 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22784 vmvn_s16 (int16x4_t __a)
22786 return ~__a;
22789 __extension__ extern __inline int32x2_t
22790 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22791 vmvn_s32 (int32x2_t __a)
22793 return ~__a;
22796 __extension__ extern __inline uint8x8_t
22797 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22798 vmvn_u8 (uint8x8_t __a)
22800 return ~__a;
22803 __extension__ extern __inline uint16x4_t
22804 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22805 vmvn_u16 (uint16x4_t __a)
22807 return ~__a;
22810 __extension__ extern __inline uint32x2_t
22811 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22812 vmvn_u32 (uint32x2_t __a)
22814 return ~__a;
22817 __extension__ extern __inline poly8x16_t
22818 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22819 vmvnq_p8 (poly8x16_t __a)
22821 return (poly8x16_t) ~((int8x16_t) __a);
22824 __extension__ extern __inline int8x16_t
22825 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22826 vmvnq_s8 (int8x16_t __a)
22828 return ~__a;
22831 __extension__ extern __inline int16x8_t
22832 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22833 vmvnq_s16 (int16x8_t __a)
22835 return ~__a;
22838 __extension__ extern __inline int32x4_t
22839 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22840 vmvnq_s32 (int32x4_t __a)
22842 return ~__a;
22845 __extension__ extern __inline uint8x16_t
22846 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22847 vmvnq_u8 (uint8x16_t __a)
22849 return ~__a;
22852 __extension__ extern __inline uint16x8_t
22853 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22854 vmvnq_u16 (uint16x8_t __a)
22856 return ~__a;
22859 __extension__ extern __inline uint32x4_t
22860 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22861 vmvnq_u32 (uint32x4_t __a)
22863 return ~__a;
22866 /* vneg */
22868 __extension__ extern __inline float32x2_t
22869 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22870 vneg_f32 (float32x2_t __a)
22872 return -__a;
22875 __extension__ extern __inline float64x1_t
22876 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22877 vneg_f64 (float64x1_t __a)
22879 return -__a;
22882 __extension__ extern __inline int8x8_t
22883 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22884 vneg_s8 (int8x8_t __a)
22886 return -__a;
22889 __extension__ extern __inline int16x4_t
22890 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22891 vneg_s16 (int16x4_t __a)
22893 return -__a;
22896 __extension__ extern __inline int32x2_t
22897 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22898 vneg_s32 (int32x2_t __a)
22900 return -__a;
22903 __extension__ extern __inline int64x1_t
22904 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22905 vneg_s64 (int64x1_t __a)
22907 return -__a;
22910 __extension__ extern __inline float32x4_t
22911 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22912 vnegq_f32 (float32x4_t __a)
22914 return -__a;
22917 __extension__ extern __inline float64x2_t
22918 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22919 vnegq_f64 (float64x2_t __a)
22921 return -__a;
22924 __extension__ extern __inline int8x16_t
22925 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22926 vnegq_s8 (int8x16_t __a)
22928 return -__a;
22931 __extension__ extern __inline int16x8_t
22932 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22933 vnegq_s16 (int16x8_t __a)
22935 return -__a;
22938 __extension__ extern __inline int32x4_t
22939 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22940 vnegq_s32 (int32x4_t __a)
22942 return -__a;
22945 __extension__ extern __inline int64x2_t
22946 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22947 vnegq_s64 (int64x2_t __a)
22949 return -__a;
22952 /* vpadd */
22954 __extension__ extern __inline float32x2_t
22955 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22956 vpadd_f32 (float32x2_t __a, float32x2_t __b)
22958 return __builtin_aarch64_faddpv2sf (__a, __b);
22961 __extension__ extern __inline float32x4_t
22962 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22963 vpaddq_f32 (float32x4_t __a, float32x4_t __b)
22965 return __builtin_aarch64_faddpv4sf (__a, __b);
22968 __extension__ extern __inline float64x2_t
22969 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22970 vpaddq_f64 (float64x2_t __a, float64x2_t __b)
22972 return __builtin_aarch64_faddpv2df (__a, __b);
22975 __extension__ extern __inline int8x8_t
22976 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22977 vpadd_s8 (int8x8_t __a, int8x8_t __b)
22979 return __builtin_aarch64_addpv8qi (__a, __b);
22982 __extension__ extern __inline int16x4_t
22983 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22984 vpadd_s16 (int16x4_t __a, int16x4_t __b)
22986 return __builtin_aarch64_addpv4hi (__a, __b);
22989 __extension__ extern __inline int32x2_t
22990 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22991 vpadd_s32 (int32x2_t __a, int32x2_t __b)
22993 return __builtin_aarch64_addpv2si (__a, __b);
22996 __extension__ extern __inline uint8x8_t
22997 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22998 vpadd_u8 (uint8x8_t __a, uint8x8_t __b)
23000 return (uint8x8_t) __builtin_aarch64_addpv8qi ((int8x8_t) __a,
23001 (int8x8_t) __b);
23004 __extension__ extern __inline uint16x4_t
23005 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23006 vpadd_u16 (uint16x4_t __a, uint16x4_t __b)
23008 return (uint16x4_t) __builtin_aarch64_addpv4hi ((int16x4_t) __a,
23009 (int16x4_t) __b);
23012 __extension__ extern __inline uint32x2_t
23013 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23014 vpadd_u32 (uint32x2_t __a, uint32x2_t __b)
23016 return (uint32x2_t) __builtin_aarch64_addpv2si ((int32x2_t) __a,
23017 (int32x2_t) __b);
23020 __extension__ extern __inline float32_t
23021 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23022 vpadds_f32 (float32x2_t __a)
23024 return __builtin_aarch64_reduc_plus_scal_v2sf (__a);
23027 __extension__ extern __inline float64_t
23028 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23029 vpaddd_f64 (float64x2_t __a)
23031 return __builtin_aarch64_reduc_plus_scal_v2df (__a);
23034 __extension__ extern __inline int64_t
23035 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23036 vpaddd_s64 (int64x2_t __a)
23038 return __builtin_aarch64_addpdi (__a);
23041 __extension__ extern __inline uint64_t
23042 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23043 vpaddd_u64 (uint64x2_t __a)
23045 return __builtin_aarch64_addpdi ((int64x2_t) __a);
23048 /* vqabs */
23050 __extension__ extern __inline int64x2_t
23051 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23052 vqabsq_s64 (int64x2_t __a)
23054 return (int64x2_t) __builtin_aarch64_sqabsv2di (__a);
23057 __extension__ extern __inline int8_t
23058 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23059 vqabsb_s8 (int8_t __a)
23061 return (int8_t) __builtin_aarch64_sqabsqi (__a);
23064 __extension__ extern __inline int16_t
23065 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23066 vqabsh_s16 (int16_t __a)
23068 return (int16_t) __builtin_aarch64_sqabshi (__a);
23071 __extension__ extern __inline int32_t
23072 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23073 vqabss_s32 (int32_t __a)
23075 return (int32_t) __builtin_aarch64_sqabssi (__a);
23078 __extension__ extern __inline int64_t
23079 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23080 vqabsd_s64 (int64_t __a)
23082 return __builtin_aarch64_sqabsdi (__a);
23085 /* vqadd */
23087 __extension__ extern __inline int8_t
23088 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23089 vqaddb_s8 (int8_t __a, int8_t __b)
23091 return (int8_t) __builtin_aarch64_sqaddqi (__a, __b);
23094 __extension__ extern __inline int16_t
23095 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23096 vqaddh_s16 (int16_t __a, int16_t __b)
23098 return (int16_t) __builtin_aarch64_sqaddhi (__a, __b);
23101 __extension__ extern __inline int32_t
23102 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23103 vqadds_s32 (int32_t __a, int32_t __b)
23105 return (int32_t) __builtin_aarch64_sqaddsi (__a, __b);
23108 __extension__ extern __inline int64_t
23109 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23110 vqaddd_s64 (int64_t __a, int64_t __b)
23112 return __builtin_aarch64_sqadddi (__a, __b);
23115 __extension__ extern __inline uint8_t
23116 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23117 vqaddb_u8 (uint8_t __a, uint8_t __b)
23119 return (uint8_t) __builtin_aarch64_uqaddqi_uuu (__a, __b);
23122 __extension__ extern __inline uint16_t
23123 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23124 vqaddh_u16 (uint16_t __a, uint16_t __b)
23126 return (uint16_t) __builtin_aarch64_uqaddhi_uuu (__a, __b);
23129 __extension__ extern __inline uint32_t
23130 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23131 vqadds_u32 (uint32_t __a, uint32_t __b)
23133 return (uint32_t) __builtin_aarch64_uqaddsi_uuu (__a, __b);
23136 __extension__ extern __inline uint64_t
23137 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23138 vqaddd_u64 (uint64_t __a, uint64_t __b)
23140 return __builtin_aarch64_uqadddi_uuu (__a, __b);
23143 /* vqdmlal */
23145 __extension__ extern __inline int32x4_t
23146 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23147 vqdmlal_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
23149 return __builtin_aarch64_sqdmlalv4hi (__a, __b, __c);
23152 __extension__ extern __inline int32x4_t
23153 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23154 vqdmlal_high_s16 (int32x4_t __a, int16x8_t __b, int16x8_t __c)
23156 return __builtin_aarch64_sqdmlal2v8hi (__a, __b, __c);
23159 __extension__ extern __inline int32x4_t
23160 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23161 vqdmlal_high_lane_s16 (int32x4_t __a, int16x8_t __b, int16x4_t __c,
23162 int const __d)
23164 return __builtin_aarch64_sqdmlal2_lanev8hi (__a, __b, __c, __d);
23167 __extension__ extern __inline int32x4_t
23168 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23169 vqdmlal_high_laneq_s16 (int32x4_t __a, int16x8_t __b, int16x8_t __c,
23170 int const __d)
23172 return __builtin_aarch64_sqdmlal2_laneqv8hi (__a, __b, __c, __d);
23175 __extension__ extern __inline int32x4_t
23176 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23177 vqdmlal_high_n_s16 (int32x4_t __a, int16x8_t __b, int16_t __c)
23179 return __builtin_aarch64_sqdmlal2_nv8hi (__a, __b, __c);
23182 __extension__ extern __inline int32x4_t
23183 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23184 vqdmlal_lane_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c, int const __d)
23186 return __builtin_aarch64_sqdmlal_lanev4hi (__a, __b, __c, __d);
23189 __extension__ extern __inline int32x4_t
23190 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23191 vqdmlal_laneq_s16 (int32x4_t __a, int16x4_t __b, int16x8_t __c, int const __d)
23193 return __builtin_aarch64_sqdmlal_laneqv4hi (__a, __b, __c, __d);
23196 __extension__ extern __inline int32x4_t
23197 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23198 vqdmlal_n_s16 (int32x4_t __a, int16x4_t __b, int16_t __c)
23200 return __builtin_aarch64_sqdmlal_nv4hi (__a, __b, __c);
23203 __extension__ extern __inline int64x2_t
23204 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23205 vqdmlal_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
23207 return __builtin_aarch64_sqdmlalv2si (__a, __b, __c);
23210 __extension__ extern __inline int64x2_t
23211 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23212 vqdmlal_high_s32 (int64x2_t __a, int32x4_t __b, int32x4_t __c)
23214 return __builtin_aarch64_sqdmlal2v4si (__a, __b, __c);
23217 __extension__ extern __inline int64x2_t
23218 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23219 vqdmlal_high_lane_s32 (int64x2_t __a, int32x4_t __b, int32x2_t __c,
23220 int const __d)
23222 return __builtin_aarch64_sqdmlal2_lanev4si (__a, __b, __c, __d);
23225 __extension__ extern __inline int64x2_t
23226 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23227 vqdmlal_high_laneq_s32 (int64x2_t __a, int32x4_t __b, int32x4_t __c,
23228 int const __d)
23230 return __builtin_aarch64_sqdmlal2_laneqv4si (__a, __b, __c, __d);
23233 __extension__ extern __inline int64x2_t
23234 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23235 vqdmlal_high_n_s32 (int64x2_t __a, int32x4_t __b, int32_t __c)
23237 return __builtin_aarch64_sqdmlal2_nv4si (__a, __b, __c);
23240 __extension__ extern __inline int64x2_t
23241 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23242 vqdmlal_lane_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c, int const __d)
23244 return __builtin_aarch64_sqdmlal_lanev2si (__a, __b, __c, __d);
23247 __extension__ extern __inline int64x2_t
23248 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23249 vqdmlal_laneq_s32 (int64x2_t __a, int32x2_t __b, int32x4_t __c, int const __d)
23251 return __builtin_aarch64_sqdmlal_laneqv2si (__a, __b, __c, __d);
23254 __extension__ extern __inline int64x2_t
23255 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23256 vqdmlal_n_s32 (int64x2_t __a, int32x2_t __b, int32_t __c)
23258 return __builtin_aarch64_sqdmlal_nv2si (__a, __b, __c);
23261 __extension__ extern __inline int32_t
23262 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23263 vqdmlalh_s16 (int32_t __a, int16_t __b, int16_t __c)
23265 return __builtin_aarch64_sqdmlalhi (__a, __b, __c);
23268 __extension__ extern __inline int32_t
23269 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23270 vqdmlalh_lane_s16 (int32_t __a, int16_t __b, int16x4_t __c, const int __d)
23272 return __builtin_aarch64_sqdmlal_lanehi (__a, __b, __c, __d);
23275 __extension__ extern __inline int32_t
23276 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23277 vqdmlalh_laneq_s16 (int32_t __a, int16_t __b, int16x8_t __c, const int __d)
23279 return __builtin_aarch64_sqdmlal_laneqhi (__a, __b, __c, __d);
23282 __extension__ extern __inline int64_t
23283 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23284 vqdmlals_s32 (int64_t __a, int32_t __b, int32_t __c)
23286 return __builtin_aarch64_sqdmlalsi (__a, __b, __c);
23289 __extension__ extern __inline int64_t
23290 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23291 vqdmlals_lane_s32 (int64_t __a, int32_t __b, int32x2_t __c, const int __d)
23293 return __builtin_aarch64_sqdmlal_lanesi (__a, __b, __c, __d);
23296 __extension__ extern __inline int64_t
23297 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23298 vqdmlals_laneq_s32 (int64_t __a, int32_t __b, int32x4_t __c, const int __d)
23300 return __builtin_aarch64_sqdmlal_laneqsi (__a, __b, __c, __d);
23303 /* vqdmlsl */
23305 __extension__ extern __inline int32x4_t
23306 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23307 vqdmlsl_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
23309 return __builtin_aarch64_sqdmlslv4hi (__a, __b, __c);
23312 __extension__ extern __inline int32x4_t
23313 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23314 vqdmlsl_high_s16 (int32x4_t __a, int16x8_t __b, int16x8_t __c)
23316 return __builtin_aarch64_sqdmlsl2v8hi (__a, __b, __c);
23319 __extension__ extern __inline int32x4_t
23320 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23321 vqdmlsl_high_lane_s16 (int32x4_t __a, int16x8_t __b, int16x4_t __c,
23322 int const __d)
23324 return __builtin_aarch64_sqdmlsl2_lanev8hi (__a, __b, __c, __d);
23327 __extension__ extern __inline int32x4_t
23328 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23329 vqdmlsl_high_laneq_s16 (int32x4_t __a, int16x8_t __b, int16x8_t __c,
23330 int const __d)
23332 return __builtin_aarch64_sqdmlsl2_laneqv8hi (__a, __b, __c, __d);
23335 __extension__ extern __inline int32x4_t
23336 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23337 vqdmlsl_high_n_s16 (int32x4_t __a, int16x8_t __b, int16_t __c)
23339 return __builtin_aarch64_sqdmlsl2_nv8hi (__a, __b, __c);
23342 __extension__ extern __inline int32x4_t
23343 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23344 vqdmlsl_lane_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c, int const __d)
23346 return __builtin_aarch64_sqdmlsl_lanev4hi (__a, __b, __c, __d);
23349 __extension__ extern __inline int32x4_t
23350 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23351 vqdmlsl_laneq_s16 (int32x4_t __a, int16x4_t __b, int16x8_t __c, int const __d)
23353 return __builtin_aarch64_sqdmlsl_laneqv4hi (__a, __b, __c, __d);
23356 __extension__ extern __inline int32x4_t
23357 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23358 vqdmlsl_n_s16 (int32x4_t __a, int16x4_t __b, int16_t __c)
23360 return __builtin_aarch64_sqdmlsl_nv4hi (__a, __b, __c);
23363 __extension__ extern __inline int64x2_t
23364 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23365 vqdmlsl_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
23367 return __builtin_aarch64_sqdmlslv2si (__a, __b, __c);
23370 __extension__ extern __inline int64x2_t
23371 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23372 vqdmlsl_high_s32 (int64x2_t __a, int32x4_t __b, int32x4_t __c)
23374 return __builtin_aarch64_sqdmlsl2v4si (__a, __b, __c);
23377 __extension__ extern __inline int64x2_t
23378 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23379 vqdmlsl_high_lane_s32 (int64x2_t __a, int32x4_t __b, int32x2_t __c,
23380 int const __d)
23382 return __builtin_aarch64_sqdmlsl2_lanev4si (__a, __b, __c, __d);
23385 __extension__ extern __inline int64x2_t
23386 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23387 vqdmlsl_high_laneq_s32 (int64x2_t __a, int32x4_t __b, int32x4_t __c,
23388 int const __d)
23390 return __builtin_aarch64_sqdmlsl2_laneqv4si (__a, __b, __c, __d);
23393 __extension__ extern __inline int64x2_t
23394 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23395 vqdmlsl_high_n_s32 (int64x2_t __a, int32x4_t __b, int32_t __c)
23397 return __builtin_aarch64_sqdmlsl2_nv4si (__a, __b, __c);
23400 __extension__ extern __inline int64x2_t
23401 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23402 vqdmlsl_lane_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c, int const __d)
23404 return __builtin_aarch64_sqdmlsl_lanev2si (__a, __b, __c, __d);
23407 __extension__ extern __inline int64x2_t
23408 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23409 vqdmlsl_laneq_s32 (int64x2_t __a, int32x2_t __b, int32x4_t __c, int const __d)
23411 return __builtin_aarch64_sqdmlsl_laneqv2si (__a, __b, __c, __d);
23414 __extension__ extern __inline int64x2_t
23415 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23416 vqdmlsl_n_s32 (int64x2_t __a, int32x2_t __b, int32_t __c)
23418 return __builtin_aarch64_sqdmlsl_nv2si (__a, __b, __c);
23421 __extension__ extern __inline int32_t
23422 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23423 vqdmlslh_s16 (int32_t __a, int16_t __b, int16_t __c)
23425 return __builtin_aarch64_sqdmlslhi (__a, __b, __c);
23428 __extension__ extern __inline int32_t
23429 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23430 vqdmlslh_lane_s16 (int32_t __a, int16_t __b, int16x4_t __c, const int __d)
23432 return __builtin_aarch64_sqdmlsl_lanehi (__a, __b, __c, __d);
23435 __extension__ extern __inline int32_t
23436 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23437 vqdmlslh_laneq_s16 (int32_t __a, int16_t __b, int16x8_t __c, const int __d)
23439 return __builtin_aarch64_sqdmlsl_laneqhi (__a, __b, __c, __d);
23442 __extension__ extern __inline int64_t
23443 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23444 vqdmlsls_s32 (int64_t __a, int32_t __b, int32_t __c)
23446 return __builtin_aarch64_sqdmlslsi (__a, __b, __c);
23449 __extension__ extern __inline int64_t
23450 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23451 vqdmlsls_lane_s32 (int64_t __a, int32_t __b, int32x2_t __c, const int __d)
23453 return __builtin_aarch64_sqdmlsl_lanesi (__a, __b, __c, __d);
23456 __extension__ extern __inline int64_t
23457 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23458 vqdmlsls_laneq_s32 (int64_t __a, int32_t __b, int32x4_t __c, const int __d)
23460 return __builtin_aarch64_sqdmlsl_laneqsi (__a, __b, __c, __d);
23463 /* vqdmulh */
23465 __extension__ extern __inline int16x4_t
23466 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23467 vqdmulh_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c)
23469 return __builtin_aarch64_sqdmulh_lanev4hi (__a, __b, __c);
23472 __extension__ extern __inline int32x2_t
23473 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23474 vqdmulh_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c)
23476 return __builtin_aarch64_sqdmulh_lanev2si (__a, __b, __c);
23479 __extension__ extern __inline int16x8_t
23480 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23481 vqdmulhq_lane_s16 (int16x8_t __a, int16x4_t __b, const int __c)
23483 return __builtin_aarch64_sqdmulh_lanev8hi (__a, __b, __c);
23486 __extension__ extern __inline int32x4_t
23487 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23488 vqdmulhq_lane_s32 (int32x4_t __a, int32x2_t __b, const int __c)
23490 return __builtin_aarch64_sqdmulh_lanev4si (__a, __b, __c);
23493 __extension__ extern __inline int16_t
23494 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23495 vqdmulhh_s16 (int16_t __a, int16_t __b)
23497 return (int16_t) __builtin_aarch64_sqdmulhhi (__a, __b);
23500 __extension__ extern __inline int16_t
23501 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23502 vqdmulhh_lane_s16 (int16_t __a, int16x4_t __b, const int __c)
23504 return __builtin_aarch64_sqdmulh_lanehi (__a, __b, __c);
23507 __extension__ extern __inline int16_t
23508 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23509 vqdmulhh_laneq_s16 (int16_t __a, int16x8_t __b, const int __c)
23511 return __builtin_aarch64_sqdmulh_laneqhi (__a, __b, __c);
23514 __extension__ extern __inline int32_t
23515 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23516 vqdmulhs_s32 (int32_t __a, int32_t __b)
23518 return (int32_t) __builtin_aarch64_sqdmulhsi (__a, __b);
23521 __extension__ extern __inline int32_t
23522 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23523 vqdmulhs_lane_s32 (int32_t __a, int32x2_t __b, const int __c)
23525 return __builtin_aarch64_sqdmulh_lanesi (__a, __b, __c);
23528 __extension__ extern __inline int32_t
23529 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23530 vqdmulhs_laneq_s32 (int32_t __a, int32x4_t __b, const int __c)
23532 return __builtin_aarch64_sqdmulh_laneqsi (__a, __b, __c);
23535 /* vqdmull */
23537 __extension__ extern __inline int32x4_t
23538 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23539 vqdmull_s16 (int16x4_t __a, int16x4_t __b)
23541 return __builtin_aarch64_sqdmullv4hi (__a, __b);
23544 __extension__ extern __inline int32x4_t
23545 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23546 vqdmull_high_s16 (int16x8_t __a, int16x8_t __b)
23548 return __builtin_aarch64_sqdmull2v8hi (__a, __b);
23551 __extension__ extern __inline int32x4_t
23552 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23553 vqdmull_high_lane_s16 (int16x8_t __a, int16x4_t __b, int const __c)
23555 return __builtin_aarch64_sqdmull2_lanev8hi (__a, __b,__c);
23558 __extension__ extern __inline int32x4_t
23559 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23560 vqdmull_high_laneq_s16 (int16x8_t __a, int16x8_t __b, int const __c)
23562 return __builtin_aarch64_sqdmull2_laneqv8hi (__a, __b,__c);
23565 __extension__ extern __inline int32x4_t
23566 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23567 vqdmull_high_n_s16 (int16x8_t __a, int16_t __b)
23569 return __builtin_aarch64_sqdmull2_nv8hi (__a, __b);
23572 __extension__ extern __inline int32x4_t
23573 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23574 vqdmull_lane_s16 (int16x4_t __a, int16x4_t __b, int const __c)
23576 return __builtin_aarch64_sqdmull_lanev4hi (__a, __b, __c);
23579 __extension__ extern __inline int32x4_t
23580 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23581 vqdmull_laneq_s16 (int16x4_t __a, int16x8_t __b, int const __c)
23583 return __builtin_aarch64_sqdmull_laneqv4hi (__a, __b, __c);
23586 __extension__ extern __inline int32x4_t
23587 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23588 vqdmull_n_s16 (int16x4_t __a, int16_t __b)
23590 return __builtin_aarch64_sqdmull_nv4hi (__a, __b);
23593 __extension__ extern __inline int64x2_t
23594 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23595 vqdmull_s32 (int32x2_t __a, int32x2_t __b)
23597 return __builtin_aarch64_sqdmullv2si (__a, __b);
23600 __extension__ extern __inline int64x2_t
23601 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23602 vqdmull_high_s32 (int32x4_t __a, int32x4_t __b)
23604 return __builtin_aarch64_sqdmull2v4si (__a, __b);
23607 __extension__ extern __inline int64x2_t
23608 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23609 vqdmull_high_lane_s32 (int32x4_t __a, int32x2_t __b, int const __c)
23611 return __builtin_aarch64_sqdmull2_lanev4si (__a, __b, __c);
23614 __extension__ extern __inline int64x2_t
23615 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23616 vqdmull_high_laneq_s32 (int32x4_t __a, int32x4_t __b, int const __c)
23618 return __builtin_aarch64_sqdmull2_laneqv4si (__a, __b, __c);
23621 __extension__ extern __inline int64x2_t
23622 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23623 vqdmull_high_n_s32 (int32x4_t __a, int32_t __b)
23625 return __builtin_aarch64_sqdmull2_nv4si (__a, __b);
23628 __extension__ extern __inline int64x2_t
23629 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23630 vqdmull_lane_s32 (int32x2_t __a, int32x2_t __b, int const __c)
23632 return __builtin_aarch64_sqdmull_lanev2si (__a, __b, __c);
23635 __extension__ extern __inline int64x2_t
23636 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23637 vqdmull_laneq_s32 (int32x2_t __a, int32x4_t __b, int const __c)
23639 return __builtin_aarch64_sqdmull_laneqv2si (__a, __b, __c);
23642 __extension__ extern __inline int64x2_t
23643 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23644 vqdmull_n_s32 (int32x2_t __a, int32_t __b)
23646 return __builtin_aarch64_sqdmull_nv2si (__a, __b);
23649 __extension__ extern __inline int32_t
23650 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23651 vqdmullh_s16 (int16_t __a, int16_t __b)
23653 return (int32_t) __builtin_aarch64_sqdmullhi (__a, __b);
23656 __extension__ extern __inline int32_t
23657 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23658 vqdmullh_lane_s16 (int16_t __a, int16x4_t __b, const int __c)
23660 return __builtin_aarch64_sqdmull_lanehi (__a, __b, __c);
23663 __extension__ extern __inline int32_t
23664 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23665 vqdmullh_laneq_s16 (int16_t __a, int16x8_t __b, const int __c)
23667 return __builtin_aarch64_sqdmull_laneqhi (__a, __b, __c);
23670 __extension__ extern __inline int64_t
23671 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23672 vqdmulls_s32 (int32_t __a, int32_t __b)
23674 return __builtin_aarch64_sqdmullsi (__a, __b);
23677 __extension__ extern __inline int64_t
23678 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23679 vqdmulls_lane_s32 (int32_t __a, int32x2_t __b, const int __c)
23681 return __builtin_aarch64_sqdmull_lanesi (__a, __b, __c);
23684 __extension__ extern __inline int64_t
23685 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23686 vqdmulls_laneq_s32 (int32_t __a, int32x4_t __b, const int __c)
23688 return __builtin_aarch64_sqdmull_laneqsi (__a, __b, __c);
23691 /* vqmovn */
23693 __extension__ extern __inline int8x8_t
23694 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23695 vqmovn_s16 (int16x8_t __a)
23697 return (int8x8_t) __builtin_aarch64_sqmovnv8hi (__a);
23700 __extension__ extern __inline int16x4_t
23701 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23702 vqmovn_s32 (int32x4_t __a)
23704 return (int16x4_t) __builtin_aarch64_sqmovnv4si (__a);
23707 __extension__ extern __inline int32x2_t
23708 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23709 vqmovn_s64 (int64x2_t __a)
23711 return (int32x2_t) __builtin_aarch64_sqmovnv2di (__a);
23714 __extension__ extern __inline uint8x8_t
23715 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23716 vqmovn_u16 (uint16x8_t __a)
23718 return (uint8x8_t) __builtin_aarch64_uqmovnv8hi ((int16x8_t) __a);
23721 __extension__ extern __inline uint16x4_t
23722 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23723 vqmovn_u32 (uint32x4_t __a)
23725 return (uint16x4_t) __builtin_aarch64_uqmovnv4si ((int32x4_t) __a);
23728 __extension__ extern __inline uint32x2_t
23729 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23730 vqmovn_u64 (uint64x2_t __a)
23732 return (uint32x2_t) __builtin_aarch64_uqmovnv2di ((int64x2_t) __a);
23735 __extension__ extern __inline int8_t
23736 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23737 vqmovnh_s16 (int16_t __a)
23739 return (int8_t) __builtin_aarch64_sqmovnhi (__a);
23742 __extension__ extern __inline int16_t
23743 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23744 vqmovns_s32 (int32_t __a)
23746 return (int16_t) __builtin_aarch64_sqmovnsi (__a);
23749 __extension__ extern __inline int32_t
23750 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23751 vqmovnd_s64 (int64_t __a)
23753 return (int32_t) __builtin_aarch64_sqmovndi (__a);
23756 __extension__ extern __inline uint8_t
23757 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23758 vqmovnh_u16 (uint16_t __a)
23760 return (uint8_t) __builtin_aarch64_uqmovnhi (__a);
23763 __extension__ extern __inline uint16_t
23764 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23765 vqmovns_u32 (uint32_t __a)
23767 return (uint16_t) __builtin_aarch64_uqmovnsi (__a);
23770 __extension__ extern __inline uint32_t
23771 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23772 vqmovnd_u64 (uint64_t __a)
23774 return (uint32_t) __builtin_aarch64_uqmovndi (__a);
23777 /* vqmovun */
23779 __extension__ extern __inline uint8x8_t
23780 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23781 vqmovun_s16 (int16x8_t __a)
23783 return (uint8x8_t) __builtin_aarch64_sqmovunv8hi (__a);
23786 __extension__ extern __inline uint16x4_t
23787 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23788 vqmovun_s32 (int32x4_t __a)
23790 return (uint16x4_t) __builtin_aarch64_sqmovunv4si (__a);
23793 __extension__ extern __inline uint32x2_t
23794 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23795 vqmovun_s64 (int64x2_t __a)
23797 return (uint32x2_t) __builtin_aarch64_sqmovunv2di (__a);
23800 __extension__ extern __inline int8_t
23801 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23802 vqmovunh_s16 (int16_t __a)
23804 return (int8_t) __builtin_aarch64_sqmovunhi (__a);
23807 __extension__ extern __inline int16_t
23808 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23809 vqmovuns_s32 (int32_t __a)
23811 return (int16_t) __builtin_aarch64_sqmovunsi (__a);
23814 __extension__ extern __inline int32_t
23815 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23816 vqmovund_s64 (int64_t __a)
23818 return (int32_t) __builtin_aarch64_sqmovundi (__a);
23821 /* vqneg */
23823 __extension__ extern __inline int64x2_t
23824 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23825 vqnegq_s64 (int64x2_t __a)
23827 return (int64x2_t) __builtin_aarch64_sqnegv2di (__a);
23830 __extension__ extern __inline int8_t
23831 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23832 vqnegb_s8 (int8_t __a)
23834 return (int8_t) __builtin_aarch64_sqnegqi (__a);
23837 __extension__ extern __inline int16_t
23838 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23839 vqnegh_s16 (int16_t __a)
23841 return (int16_t) __builtin_aarch64_sqneghi (__a);
23844 __extension__ extern __inline int32_t
23845 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23846 vqnegs_s32 (int32_t __a)
23848 return (int32_t) __builtin_aarch64_sqnegsi (__a);
23851 __extension__ extern __inline int64_t
23852 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23853 vqnegd_s64 (int64_t __a)
23855 return __builtin_aarch64_sqnegdi (__a);
23858 /* vqrdmulh */
23860 __extension__ extern __inline int16x4_t
23861 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23862 vqrdmulh_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c)
23864 return __builtin_aarch64_sqrdmulh_lanev4hi (__a, __b, __c);
23867 __extension__ extern __inline int32x2_t
23868 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23869 vqrdmulh_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c)
23871 return __builtin_aarch64_sqrdmulh_lanev2si (__a, __b, __c);
23874 __extension__ extern __inline int16x8_t
23875 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23876 vqrdmulhq_lane_s16 (int16x8_t __a, int16x4_t __b, const int __c)
23878 return __builtin_aarch64_sqrdmulh_lanev8hi (__a, __b, __c);
23881 __extension__ extern __inline int32x4_t
23882 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23883 vqrdmulhq_lane_s32 (int32x4_t __a, int32x2_t __b, const int __c)
23885 return __builtin_aarch64_sqrdmulh_lanev4si (__a, __b, __c);
23888 __extension__ extern __inline int16_t
23889 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23890 vqrdmulhh_s16 (int16_t __a, int16_t __b)
23892 return (int16_t) __builtin_aarch64_sqrdmulhhi (__a, __b);
23895 __extension__ extern __inline int16_t
23896 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23897 vqrdmulhh_lane_s16 (int16_t __a, int16x4_t __b, const int __c)
23899 return __builtin_aarch64_sqrdmulh_lanehi (__a, __b, __c);
23902 __extension__ extern __inline int16_t
23903 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23904 vqrdmulhh_laneq_s16 (int16_t __a, int16x8_t __b, const int __c)
23906 return __builtin_aarch64_sqrdmulh_laneqhi (__a, __b, __c);
23909 __extension__ extern __inline int32_t
23910 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23911 vqrdmulhs_s32 (int32_t __a, int32_t __b)
23913 return (int32_t) __builtin_aarch64_sqrdmulhsi (__a, __b);
23916 __extension__ extern __inline int32_t
23917 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23918 vqrdmulhs_lane_s32 (int32_t __a, int32x2_t __b, const int __c)
23920 return __builtin_aarch64_sqrdmulh_lanesi (__a, __b, __c);
23923 __extension__ extern __inline int32_t
23924 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23925 vqrdmulhs_laneq_s32 (int32_t __a, int32x4_t __b, const int __c)
23927 return __builtin_aarch64_sqrdmulh_laneqsi (__a, __b, __c);
23930 /* vqrshl */
23932 __extension__ extern __inline int8x8_t
23933 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23934 vqrshl_s8 (int8x8_t __a, int8x8_t __b)
23936 return __builtin_aarch64_sqrshlv8qi (__a, __b);
23939 __extension__ extern __inline int16x4_t
23940 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23941 vqrshl_s16 (int16x4_t __a, int16x4_t __b)
23943 return __builtin_aarch64_sqrshlv4hi (__a, __b);
23946 __extension__ extern __inline int32x2_t
23947 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23948 vqrshl_s32 (int32x2_t __a, int32x2_t __b)
23950 return __builtin_aarch64_sqrshlv2si (__a, __b);
23953 __extension__ extern __inline int64x1_t
23954 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23955 vqrshl_s64 (int64x1_t __a, int64x1_t __b)
23957 return (int64x1_t) {__builtin_aarch64_sqrshldi (__a[0], __b[0])};
23960 __extension__ extern __inline uint8x8_t
23961 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23962 vqrshl_u8 (uint8x8_t __a, int8x8_t __b)
23964 return __builtin_aarch64_uqrshlv8qi_uus ( __a, __b);
23967 __extension__ extern __inline uint16x4_t
23968 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23969 vqrshl_u16 (uint16x4_t __a, int16x4_t __b)
23971 return __builtin_aarch64_uqrshlv4hi_uus ( __a, __b);
23974 __extension__ extern __inline uint32x2_t
23975 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23976 vqrshl_u32 (uint32x2_t __a, int32x2_t __b)
23978 return __builtin_aarch64_uqrshlv2si_uus ( __a, __b);
23981 __extension__ extern __inline uint64x1_t
23982 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23983 vqrshl_u64 (uint64x1_t __a, int64x1_t __b)
23985 return (uint64x1_t) {__builtin_aarch64_uqrshldi_uus (__a[0], __b[0])};
23988 __extension__ extern __inline int8x16_t
23989 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23990 vqrshlq_s8 (int8x16_t __a, int8x16_t __b)
23992 return __builtin_aarch64_sqrshlv16qi (__a, __b);
23995 __extension__ extern __inline int16x8_t
23996 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23997 vqrshlq_s16 (int16x8_t __a, int16x8_t __b)
23999 return __builtin_aarch64_sqrshlv8hi (__a, __b);
24002 __extension__ extern __inline int32x4_t
24003 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24004 vqrshlq_s32 (int32x4_t __a, int32x4_t __b)
24006 return __builtin_aarch64_sqrshlv4si (__a, __b);
24009 __extension__ extern __inline int64x2_t
24010 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24011 vqrshlq_s64 (int64x2_t __a, int64x2_t __b)
24013 return __builtin_aarch64_sqrshlv2di (__a, __b);
24016 __extension__ extern __inline uint8x16_t
24017 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24018 vqrshlq_u8 (uint8x16_t __a, int8x16_t __b)
24020 return __builtin_aarch64_uqrshlv16qi_uus ( __a, __b);
24023 __extension__ extern __inline uint16x8_t
24024 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24025 vqrshlq_u16 (uint16x8_t __a, int16x8_t __b)
24027 return __builtin_aarch64_uqrshlv8hi_uus ( __a, __b);
24030 __extension__ extern __inline uint32x4_t
24031 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24032 vqrshlq_u32 (uint32x4_t __a, int32x4_t __b)
24034 return __builtin_aarch64_uqrshlv4si_uus ( __a, __b);
24037 __extension__ extern __inline uint64x2_t
24038 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24039 vqrshlq_u64 (uint64x2_t __a, int64x2_t __b)
24041 return __builtin_aarch64_uqrshlv2di_uus ( __a, __b);
24044 __extension__ extern __inline int8_t
24045 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24046 vqrshlb_s8 (int8_t __a, int8_t __b)
24048 return __builtin_aarch64_sqrshlqi (__a, __b);
24051 __extension__ extern __inline int16_t
24052 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24053 vqrshlh_s16 (int16_t __a, int16_t __b)
24055 return __builtin_aarch64_sqrshlhi (__a, __b);
24058 __extension__ extern __inline int32_t
24059 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24060 vqrshls_s32 (int32_t __a, int32_t __b)
24062 return __builtin_aarch64_sqrshlsi (__a, __b);
24065 __extension__ extern __inline int64_t
24066 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24067 vqrshld_s64 (int64_t __a, int64_t __b)
24069 return __builtin_aarch64_sqrshldi (__a, __b);
24072 __extension__ extern __inline uint8_t
24073 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24074 vqrshlb_u8 (uint8_t __a, uint8_t __b)
24076 return __builtin_aarch64_uqrshlqi_uus (__a, __b);
24079 __extension__ extern __inline uint16_t
24080 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24081 vqrshlh_u16 (uint16_t __a, uint16_t __b)
24083 return __builtin_aarch64_uqrshlhi_uus (__a, __b);
24086 __extension__ extern __inline uint32_t
24087 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24088 vqrshls_u32 (uint32_t __a, uint32_t __b)
24090 return __builtin_aarch64_uqrshlsi_uus (__a, __b);
24093 __extension__ extern __inline uint64_t
24094 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24095 vqrshld_u64 (uint64_t __a, uint64_t __b)
24097 return __builtin_aarch64_uqrshldi_uus (__a, __b);
24100 /* vqrshrn */
24102 __extension__ extern __inline int8x8_t
24103 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24104 vqrshrn_n_s16 (int16x8_t __a, const int __b)
24106 return (int8x8_t) __builtin_aarch64_sqrshrn_nv8hi (__a, __b);
24109 __extension__ extern __inline int16x4_t
24110 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24111 vqrshrn_n_s32 (int32x4_t __a, const int __b)
24113 return (int16x4_t) __builtin_aarch64_sqrshrn_nv4si (__a, __b);
24116 __extension__ extern __inline int32x2_t
24117 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24118 vqrshrn_n_s64 (int64x2_t __a, const int __b)
24120 return (int32x2_t) __builtin_aarch64_sqrshrn_nv2di (__a, __b);
24123 __extension__ extern __inline uint8x8_t
24124 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24125 vqrshrn_n_u16 (uint16x8_t __a, const int __b)
24127 return __builtin_aarch64_uqrshrn_nv8hi_uus ( __a, __b);
24130 __extension__ extern __inline uint16x4_t
24131 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24132 vqrshrn_n_u32 (uint32x4_t __a, const int __b)
24134 return __builtin_aarch64_uqrshrn_nv4si_uus ( __a, __b);
24137 __extension__ extern __inline uint32x2_t
24138 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24139 vqrshrn_n_u64 (uint64x2_t __a, const int __b)
24141 return __builtin_aarch64_uqrshrn_nv2di_uus ( __a, __b);
24144 __extension__ extern __inline int8_t
24145 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24146 vqrshrnh_n_s16 (int16_t __a, const int __b)
24148 return (int8_t) __builtin_aarch64_sqrshrn_nhi (__a, __b);
24151 __extension__ extern __inline int16_t
24152 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24153 vqrshrns_n_s32 (int32_t __a, const int __b)
24155 return (int16_t) __builtin_aarch64_sqrshrn_nsi (__a, __b);
24158 __extension__ extern __inline int32_t
24159 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24160 vqrshrnd_n_s64 (int64_t __a, const int __b)
24162 return (int32_t) __builtin_aarch64_sqrshrn_ndi (__a, __b);
24165 __extension__ extern __inline uint8_t
24166 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24167 vqrshrnh_n_u16 (uint16_t __a, const int __b)
24169 return __builtin_aarch64_uqrshrn_nhi_uus (__a, __b);
24172 __extension__ extern __inline uint16_t
24173 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24174 vqrshrns_n_u32 (uint32_t __a, const int __b)
24176 return __builtin_aarch64_uqrshrn_nsi_uus (__a, __b);
24179 __extension__ extern __inline uint32_t
24180 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24181 vqrshrnd_n_u64 (uint64_t __a, const int __b)
24183 return __builtin_aarch64_uqrshrn_ndi_uus (__a, __b);
24186 /* vqrshrun */
24188 __extension__ extern __inline uint8x8_t
24189 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24190 vqrshrun_n_s16 (int16x8_t __a, const int __b)
24192 return (uint8x8_t) __builtin_aarch64_sqrshrun_nv8hi (__a, __b);
24195 __extension__ extern __inline uint16x4_t
24196 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24197 vqrshrun_n_s32 (int32x4_t __a, const int __b)
24199 return (uint16x4_t) __builtin_aarch64_sqrshrun_nv4si (__a, __b);
24202 __extension__ extern __inline uint32x2_t
24203 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24204 vqrshrun_n_s64 (int64x2_t __a, const int __b)
24206 return (uint32x2_t) __builtin_aarch64_sqrshrun_nv2di (__a, __b);
24209 __extension__ extern __inline int8_t
24210 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24211 vqrshrunh_n_s16 (int16_t __a, const int __b)
24213 return (int8_t) __builtin_aarch64_sqrshrun_nhi (__a, __b);
24216 __extension__ extern __inline int16_t
24217 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24218 vqrshruns_n_s32 (int32_t __a, const int __b)
24220 return (int16_t) __builtin_aarch64_sqrshrun_nsi (__a, __b);
24223 __extension__ extern __inline int32_t
24224 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24225 vqrshrund_n_s64 (int64_t __a, const int __b)
24227 return (int32_t) __builtin_aarch64_sqrshrun_ndi (__a, __b);
24230 /* vqshl */
24232 __extension__ extern __inline int8x8_t
24233 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24234 vqshl_s8 (int8x8_t __a, int8x8_t __b)
24236 return __builtin_aarch64_sqshlv8qi (__a, __b);
24239 __extension__ extern __inline int16x4_t
24240 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24241 vqshl_s16 (int16x4_t __a, int16x4_t __b)
24243 return __builtin_aarch64_sqshlv4hi (__a, __b);
24246 __extension__ extern __inline int32x2_t
24247 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24248 vqshl_s32 (int32x2_t __a, int32x2_t __b)
24250 return __builtin_aarch64_sqshlv2si (__a, __b);
24253 __extension__ extern __inline int64x1_t
24254 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24255 vqshl_s64 (int64x1_t __a, int64x1_t __b)
24257 return (int64x1_t) {__builtin_aarch64_sqshldi (__a[0], __b[0])};
24260 __extension__ extern __inline uint8x8_t
24261 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24262 vqshl_u8 (uint8x8_t __a, int8x8_t __b)
24264 return __builtin_aarch64_uqshlv8qi_uus ( __a, __b);
24267 __extension__ extern __inline uint16x4_t
24268 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24269 vqshl_u16 (uint16x4_t __a, int16x4_t __b)
24271 return __builtin_aarch64_uqshlv4hi_uus ( __a, __b);
24274 __extension__ extern __inline uint32x2_t
24275 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24276 vqshl_u32 (uint32x2_t __a, int32x2_t __b)
24278 return __builtin_aarch64_uqshlv2si_uus ( __a, __b);
24281 __extension__ extern __inline uint64x1_t
24282 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24283 vqshl_u64 (uint64x1_t __a, int64x1_t __b)
24285 return (uint64x1_t) {__builtin_aarch64_uqshldi_uus (__a[0], __b[0])};
24288 __extension__ extern __inline int8x16_t
24289 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24290 vqshlq_s8 (int8x16_t __a, int8x16_t __b)
24292 return __builtin_aarch64_sqshlv16qi (__a, __b);
24295 __extension__ extern __inline int16x8_t
24296 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24297 vqshlq_s16 (int16x8_t __a, int16x8_t __b)
24299 return __builtin_aarch64_sqshlv8hi (__a, __b);
24302 __extension__ extern __inline int32x4_t
24303 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24304 vqshlq_s32 (int32x4_t __a, int32x4_t __b)
24306 return __builtin_aarch64_sqshlv4si (__a, __b);
24309 __extension__ extern __inline int64x2_t
24310 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24311 vqshlq_s64 (int64x2_t __a, int64x2_t __b)
24313 return __builtin_aarch64_sqshlv2di (__a, __b);
24316 __extension__ extern __inline uint8x16_t
24317 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24318 vqshlq_u8 (uint8x16_t __a, int8x16_t __b)
24320 return __builtin_aarch64_uqshlv16qi_uus ( __a, __b);
24323 __extension__ extern __inline uint16x8_t
24324 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24325 vqshlq_u16 (uint16x8_t __a, int16x8_t __b)
24327 return __builtin_aarch64_uqshlv8hi_uus ( __a, __b);
24330 __extension__ extern __inline uint32x4_t
24331 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24332 vqshlq_u32 (uint32x4_t __a, int32x4_t __b)
24334 return __builtin_aarch64_uqshlv4si_uus ( __a, __b);
24337 __extension__ extern __inline uint64x2_t
24338 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24339 vqshlq_u64 (uint64x2_t __a, int64x2_t __b)
24341 return __builtin_aarch64_uqshlv2di_uus ( __a, __b);
24344 __extension__ extern __inline int8_t
24345 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24346 vqshlb_s8 (int8_t __a, int8_t __b)
24348 return __builtin_aarch64_sqshlqi (__a, __b);
24351 __extension__ extern __inline int16_t
24352 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24353 vqshlh_s16 (int16_t __a, int16_t __b)
24355 return __builtin_aarch64_sqshlhi (__a, __b);
24358 __extension__ extern __inline int32_t
24359 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24360 vqshls_s32 (int32_t __a, int32_t __b)
24362 return __builtin_aarch64_sqshlsi (__a, __b);
24365 __extension__ extern __inline int64_t
24366 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24367 vqshld_s64 (int64_t __a, int64_t __b)
24369 return __builtin_aarch64_sqshldi (__a, __b);
24372 __extension__ extern __inline uint8_t
24373 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24374 vqshlb_u8 (uint8_t __a, uint8_t __b)
24376 return __builtin_aarch64_uqshlqi_uus (__a, __b);
24379 __extension__ extern __inline uint16_t
24380 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24381 vqshlh_u16 (uint16_t __a, uint16_t __b)
24383 return __builtin_aarch64_uqshlhi_uus (__a, __b);
24386 __extension__ extern __inline uint32_t
24387 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24388 vqshls_u32 (uint32_t __a, uint32_t __b)
24390 return __builtin_aarch64_uqshlsi_uus (__a, __b);
24393 __extension__ extern __inline uint64_t
24394 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24395 vqshld_u64 (uint64_t __a, uint64_t __b)
24397 return __builtin_aarch64_uqshldi_uus (__a, __b);
24400 __extension__ extern __inline int8x8_t
24401 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24402 vqshl_n_s8 (int8x8_t __a, const int __b)
24404 return (int8x8_t) __builtin_aarch64_sqshl_nv8qi (__a, __b);
24407 __extension__ extern __inline int16x4_t
24408 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24409 vqshl_n_s16 (int16x4_t __a, const int __b)
24411 return (int16x4_t) __builtin_aarch64_sqshl_nv4hi (__a, __b);
24414 __extension__ extern __inline int32x2_t
24415 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24416 vqshl_n_s32 (int32x2_t __a, const int __b)
24418 return (int32x2_t) __builtin_aarch64_sqshl_nv2si (__a, __b);
24421 __extension__ extern __inline int64x1_t
24422 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24423 vqshl_n_s64 (int64x1_t __a, const int __b)
24425 return (int64x1_t) {__builtin_aarch64_sqshl_ndi (__a[0], __b)};
24428 __extension__ extern __inline uint8x8_t
24429 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24430 vqshl_n_u8 (uint8x8_t __a, const int __b)
24432 return __builtin_aarch64_uqshl_nv8qi_uus (__a, __b);
24435 __extension__ extern __inline uint16x4_t
24436 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24437 vqshl_n_u16 (uint16x4_t __a, const int __b)
24439 return __builtin_aarch64_uqshl_nv4hi_uus (__a, __b);
24442 __extension__ extern __inline uint32x2_t
24443 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24444 vqshl_n_u32 (uint32x2_t __a, const int __b)
24446 return __builtin_aarch64_uqshl_nv2si_uus (__a, __b);
24449 __extension__ extern __inline uint64x1_t
24450 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24451 vqshl_n_u64 (uint64x1_t __a, const int __b)
24453 return (uint64x1_t) {__builtin_aarch64_uqshl_ndi_uus (__a[0], __b)};
24456 __extension__ extern __inline int8x16_t
24457 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24458 vqshlq_n_s8 (int8x16_t __a, const int __b)
24460 return (int8x16_t) __builtin_aarch64_sqshl_nv16qi (__a, __b);
24463 __extension__ extern __inline int16x8_t
24464 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24465 vqshlq_n_s16 (int16x8_t __a, const int __b)
24467 return (int16x8_t) __builtin_aarch64_sqshl_nv8hi (__a, __b);
24470 __extension__ extern __inline int32x4_t
24471 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24472 vqshlq_n_s32 (int32x4_t __a, const int __b)
24474 return (int32x4_t) __builtin_aarch64_sqshl_nv4si (__a, __b);
24477 __extension__ extern __inline int64x2_t
24478 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24479 vqshlq_n_s64 (int64x2_t __a, const int __b)
24481 return (int64x2_t) __builtin_aarch64_sqshl_nv2di (__a, __b);
24484 __extension__ extern __inline uint8x16_t
24485 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24486 vqshlq_n_u8 (uint8x16_t __a, const int __b)
24488 return __builtin_aarch64_uqshl_nv16qi_uus (__a, __b);
24491 __extension__ extern __inline uint16x8_t
24492 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24493 vqshlq_n_u16 (uint16x8_t __a, const int __b)
24495 return __builtin_aarch64_uqshl_nv8hi_uus (__a, __b);
24498 __extension__ extern __inline uint32x4_t
24499 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24500 vqshlq_n_u32 (uint32x4_t __a, const int __b)
24502 return __builtin_aarch64_uqshl_nv4si_uus (__a, __b);
24505 __extension__ extern __inline uint64x2_t
24506 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24507 vqshlq_n_u64 (uint64x2_t __a, const int __b)
24509 return __builtin_aarch64_uqshl_nv2di_uus (__a, __b);
24512 __extension__ extern __inline int8_t
24513 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24514 vqshlb_n_s8 (int8_t __a, const int __b)
24516 return (int8_t) __builtin_aarch64_sqshl_nqi (__a, __b);
24519 __extension__ extern __inline int16_t
24520 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24521 vqshlh_n_s16 (int16_t __a, const int __b)
24523 return (int16_t) __builtin_aarch64_sqshl_nhi (__a, __b);
24526 __extension__ extern __inline int32_t
24527 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24528 vqshls_n_s32 (int32_t __a, const int __b)
24530 return (int32_t) __builtin_aarch64_sqshl_nsi (__a, __b);
24533 __extension__ extern __inline int64_t
24534 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24535 vqshld_n_s64 (int64_t __a, const int __b)
24537 return __builtin_aarch64_sqshl_ndi (__a, __b);
24540 __extension__ extern __inline uint8_t
24541 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24542 vqshlb_n_u8 (uint8_t __a, const int __b)
24544 return __builtin_aarch64_uqshl_nqi_uus (__a, __b);
24547 __extension__ extern __inline uint16_t
24548 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24549 vqshlh_n_u16 (uint16_t __a, const int __b)
24551 return __builtin_aarch64_uqshl_nhi_uus (__a, __b);
24554 __extension__ extern __inline uint32_t
24555 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24556 vqshls_n_u32 (uint32_t __a, const int __b)
24558 return __builtin_aarch64_uqshl_nsi_uus (__a, __b);
24561 __extension__ extern __inline uint64_t
24562 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24563 vqshld_n_u64 (uint64_t __a, const int __b)
24565 return __builtin_aarch64_uqshl_ndi_uus (__a, __b);
24568 /* vqshlu */
24570 __extension__ extern __inline uint8x8_t
24571 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24572 vqshlu_n_s8 (int8x8_t __a, const int __b)
24574 return __builtin_aarch64_sqshlu_nv8qi_uss (__a, __b);
24577 __extension__ extern __inline uint16x4_t
24578 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24579 vqshlu_n_s16 (int16x4_t __a, const int __b)
24581 return __builtin_aarch64_sqshlu_nv4hi_uss (__a, __b);
24584 __extension__ extern __inline uint32x2_t
24585 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24586 vqshlu_n_s32 (int32x2_t __a, const int __b)
24588 return __builtin_aarch64_sqshlu_nv2si_uss (__a, __b);
24591 __extension__ extern __inline uint64x1_t
24592 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24593 vqshlu_n_s64 (int64x1_t __a, const int __b)
24595 return (uint64x1_t) {__builtin_aarch64_sqshlu_ndi_uss (__a[0], __b)};
24598 __extension__ extern __inline uint8x16_t
24599 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24600 vqshluq_n_s8 (int8x16_t __a, const int __b)
24602 return __builtin_aarch64_sqshlu_nv16qi_uss (__a, __b);
24605 __extension__ extern __inline uint16x8_t
24606 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24607 vqshluq_n_s16 (int16x8_t __a, const int __b)
24609 return __builtin_aarch64_sqshlu_nv8hi_uss (__a, __b);
24612 __extension__ extern __inline uint32x4_t
24613 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24614 vqshluq_n_s32 (int32x4_t __a, const int __b)
24616 return __builtin_aarch64_sqshlu_nv4si_uss (__a, __b);
24619 __extension__ extern __inline uint64x2_t
24620 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24621 vqshluq_n_s64 (int64x2_t __a, const int __b)
24623 return __builtin_aarch64_sqshlu_nv2di_uss (__a, __b);
24626 __extension__ extern __inline int8_t
24627 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24628 vqshlub_n_s8 (int8_t __a, const int __b)
24630 return (int8_t) __builtin_aarch64_sqshlu_nqi_uss (__a, __b);
24633 __extension__ extern __inline int16_t
24634 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24635 vqshluh_n_s16 (int16_t __a, const int __b)
24637 return (int16_t) __builtin_aarch64_sqshlu_nhi_uss (__a, __b);
24640 __extension__ extern __inline int32_t
24641 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24642 vqshlus_n_s32 (int32_t __a, const int __b)
24644 return (int32_t) __builtin_aarch64_sqshlu_nsi_uss (__a, __b);
24647 __extension__ extern __inline uint64_t
24648 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24649 vqshlud_n_s64 (int64_t __a, const int __b)
24651 return __builtin_aarch64_sqshlu_ndi_uss (__a, __b);
24654 /* vqshrn */
24656 __extension__ extern __inline int8x8_t
24657 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24658 vqshrn_n_s16 (int16x8_t __a, const int __b)
24660 return (int8x8_t) __builtin_aarch64_sqshrn_nv8hi (__a, __b);
24663 __extension__ extern __inline int16x4_t
24664 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24665 vqshrn_n_s32 (int32x4_t __a, const int __b)
24667 return (int16x4_t) __builtin_aarch64_sqshrn_nv4si (__a, __b);
24670 __extension__ extern __inline int32x2_t
24671 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24672 vqshrn_n_s64 (int64x2_t __a, const int __b)
24674 return (int32x2_t) __builtin_aarch64_sqshrn_nv2di (__a, __b);
24677 __extension__ extern __inline uint8x8_t
24678 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24679 vqshrn_n_u16 (uint16x8_t __a, const int __b)
24681 return __builtin_aarch64_uqshrn_nv8hi_uus ( __a, __b);
24684 __extension__ extern __inline uint16x4_t
24685 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24686 vqshrn_n_u32 (uint32x4_t __a, const int __b)
24688 return __builtin_aarch64_uqshrn_nv4si_uus ( __a, __b);
24691 __extension__ extern __inline uint32x2_t
24692 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24693 vqshrn_n_u64 (uint64x2_t __a, const int __b)
24695 return __builtin_aarch64_uqshrn_nv2di_uus ( __a, __b);
24698 __extension__ extern __inline int8_t
24699 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24700 vqshrnh_n_s16 (int16_t __a, const int __b)
24702 return (int8_t) __builtin_aarch64_sqshrn_nhi (__a, __b);
24705 __extension__ extern __inline int16_t
24706 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24707 vqshrns_n_s32 (int32_t __a, const int __b)
24709 return (int16_t) __builtin_aarch64_sqshrn_nsi (__a, __b);
24712 __extension__ extern __inline int32_t
24713 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24714 vqshrnd_n_s64 (int64_t __a, const int __b)
24716 return (int32_t) __builtin_aarch64_sqshrn_ndi (__a, __b);
24719 __extension__ extern __inline uint8_t
24720 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24721 vqshrnh_n_u16 (uint16_t __a, const int __b)
24723 return __builtin_aarch64_uqshrn_nhi_uus (__a, __b);
24726 __extension__ extern __inline uint16_t
24727 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24728 vqshrns_n_u32 (uint32_t __a, const int __b)
24730 return __builtin_aarch64_uqshrn_nsi_uus (__a, __b);
24733 __extension__ extern __inline uint32_t
24734 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24735 vqshrnd_n_u64 (uint64_t __a, const int __b)
24737 return __builtin_aarch64_uqshrn_ndi_uus (__a, __b);
24740 /* vqshrun */
24742 __extension__ extern __inline uint8x8_t
24743 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24744 vqshrun_n_s16 (int16x8_t __a, const int __b)
24746 return (uint8x8_t) __builtin_aarch64_sqshrun_nv8hi (__a, __b);
24749 __extension__ extern __inline uint16x4_t
24750 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24751 vqshrun_n_s32 (int32x4_t __a, const int __b)
24753 return (uint16x4_t) __builtin_aarch64_sqshrun_nv4si (__a, __b);
24756 __extension__ extern __inline uint32x2_t
24757 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24758 vqshrun_n_s64 (int64x2_t __a, const int __b)
24760 return (uint32x2_t) __builtin_aarch64_sqshrun_nv2di (__a, __b);
24763 __extension__ extern __inline int8_t
24764 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24765 vqshrunh_n_s16 (int16_t __a, const int __b)
24767 return (int8_t) __builtin_aarch64_sqshrun_nhi (__a, __b);
24770 __extension__ extern __inline int16_t
24771 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24772 vqshruns_n_s32 (int32_t __a, const int __b)
24774 return (int16_t) __builtin_aarch64_sqshrun_nsi (__a, __b);
24777 __extension__ extern __inline int32_t
24778 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24779 vqshrund_n_s64 (int64_t __a, const int __b)
24781 return (int32_t) __builtin_aarch64_sqshrun_ndi (__a, __b);
24784 /* vqsub */
24786 __extension__ extern __inline int8_t
24787 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24788 vqsubb_s8 (int8_t __a, int8_t __b)
24790 return (int8_t) __builtin_aarch64_sqsubqi (__a, __b);
24793 __extension__ extern __inline int16_t
24794 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24795 vqsubh_s16 (int16_t __a, int16_t __b)
24797 return (int16_t) __builtin_aarch64_sqsubhi (__a, __b);
24800 __extension__ extern __inline int32_t
24801 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24802 vqsubs_s32 (int32_t __a, int32_t __b)
24804 return (int32_t) __builtin_aarch64_sqsubsi (__a, __b);
24807 __extension__ extern __inline int64_t
24808 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24809 vqsubd_s64 (int64_t __a, int64_t __b)
24811 return __builtin_aarch64_sqsubdi (__a, __b);
24814 __extension__ extern __inline uint8_t
24815 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24816 vqsubb_u8 (uint8_t __a, uint8_t __b)
24818 return (uint8_t) __builtin_aarch64_uqsubqi_uuu (__a, __b);
24821 __extension__ extern __inline uint16_t
24822 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24823 vqsubh_u16 (uint16_t __a, uint16_t __b)
24825 return (uint16_t) __builtin_aarch64_uqsubhi_uuu (__a, __b);
24828 __extension__ extern __inline uint32_t
24829 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24830 vqsubs_u32 (uint32_t __a, uint32_t __b)
24832 return (uint32_t) __builtin_aarch64_uqsubsi_uuu (__a, __b);
24835 __extension__ extern __inline uint64_t
24836 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24837 vqsubd_u64 (uint64_t __a, uint64_t __b)
24839 return __builtin_aarch64_uqsubdi_uuu (__a, __b);
24842 /* vqtbl2 */
24844 __extension__ extern __inline int8x8_t
24845 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24846 vqtbl2_s8 (int8x16x2_t tab, uint8x8_t idx)
24848 __builtin_aarch64_simd_oi __o;
24849 __o = __builtin_aarch64_set_qregoiv16qi (__o, tab.val[0], 0);
24850 __o = __builtin_aarch64_set_qregoiv16qi (__o, tab.val[1], 1);
24851 return __builtin_aarch64_tbl3v8qi (__o, (int8x8_t)idx);
24854 __extension__ extern __inline uint8x8_t
24855 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24856 vqtbl2_u8 (uint8x16x2_t tab, uint8x8_t idx)
24858 __builtin_aarch64_simd_oi __o;
24859 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[0], 0);
24860 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[1], 1);
24861 return (uint8x8_t)__builtin_aarch64_tbl3v8qi (__o, (int8x8_t)idx);
24864 __extension__ extern __inline poly8x8_t
24865 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24866 vqtbl2_p8 (poly8x16x2_t tab, uint8x8_t idx)
24868 __builtin_aarch64_simd_oi __o;
24869 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[0], 0);
24870 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[1], 1);
24871 return (poly8x8_t)__builtin_aarch64_tbl3v8qi (__o, (int8x8_t)idx);
24874 __extension__ extern __inline int8x16_t
24875 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24876 vqtbl2q_s8 (int8x16x2_t tab, uint8x16_t idx)
24878 __builtin_aarch64_simd_oi __o;
24879 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[0], 0);
24880 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[1], 1);
24881 return __builtin_aarch64_tbl3v16qi (__o, (int8x16_t)idx);
24884 __extension__ extern __inline uint8x16_t
24885 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24886 vqtbl2q_u8 (uint8x16x2_t tab, uint8x16_t idx)
24888 __builtin_aarch64_simd_oi __o;
24889 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[0], 0);
24890 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[1], 1);
24891 return (uint8x16_t)__builtin_aarch64_tbl3v16qi (__o, (int8x16_t)idx);
24894 __extension__ extern __inline poly8x16_t
24895 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24896 vqtbl2q_p8 (poly8x16x2_t tab, uint8x16_t idx)
24898 __builtin_aarch64_simd_oi __o;
24899 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[0], 0);
24900 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[1], 1);
24901 return (poly8x16_t)__builtin_aarch64_tbl3v16qi (__o, (int8x16_t)idx);
24904 /* vqtbl3 */
24906 __extension__ extern __inline int8x8_t
24907 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24908 vqtbl3_s8 (int8x16x3_t tab, uint8x8_t idx)
24910 __builtin_aarch64_simd_ci __o;
24911 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[0], 0);
24912 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[1], 1);
24913 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[2], 2);
24914 return __builtin_aarch64_qtbl3v8qi (__o, (int8x8_t)idx);
24917 __extension__ extern __inline uint8x8_t
24918 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24919 vqtbl3_u8 (uint8x16x3_t tab, uint8x8_t idx)
24921 __builtin_aarch64_simd_ci __o;
24922 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[0], 0);
24923 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[1], 1);
24924 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[2], 2);
24925 return (uint8x8_t)__builtin_aarch64_qtbl3v8qi (__o, (int8x8_t)idx);
24928 __extension__ extern __inline poly8x8_t
24929 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24930 vqtbl3_p8 (poly8x16x3_t tab, uint8x8_t idx)
24932 __builtin_aarch64_simd_ci __o;
24933 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[0], 0);
24934 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[1], 1);
24935 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[2], 2);
24936 return (poly8x8_t)__builtin_aarch64_qtbl3v8qi (__o, (int8x8_t)idx);
24939 __extension__ extern __inline int8x16_t
24940 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24941 vqtbl3q_s8 (int8x16x3_t tab, uint8x16_t idx)
24943 __builtin_aarch64_simd_ci __o;
24944 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[0], 0);
24945 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[1], 1);
24946 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[2], 2);
24947 return __builtin_aarch64_qtbl3v16qi (__o, (int8x16_t)idx);
24950 __extension__ extern __inline uint8x16_t
24951 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24952 vqtbl3q_u8 (uint8x16x3_t tab, uint8x16_t idx)
24954 __builtin_aarch64_simd_ci __o;
24955 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[0], 0);
24956 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[1], 1);
24957 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[2], 2);
24958 return (uint8x16_t)__builtin_aarch64_qtbl3v16qi (__o, (int8x16_t)idx);
24961 __extension__ extern __inline poly8x16_t
24962 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24963 vqtbl3q_p8 (poly8x16x3_t tab, uint8x16_t idx)
24965 __builtin_aarch64_simd_ci __o;
24966 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[0], 0);
24967 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[1], 1);
24968 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[2], 2);
24969 return (poly8x16_t)__builtin_aarch64_qtbl3v16qi (__o, (int8x16_t)idx);
24972 /* vqtbl4 */
24974 __extension__ extern __inline int8x8_t
24975 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24976 vqtbl4_s8 (int8x16x4_t tab, uint8x8_t idx)
24978 __builtin_aarch64_simd_xi __o;
24979 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[0], 0);
24980 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[1], 1);
24981 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[2], 2);
24982 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[3], 3);
24983 return __builtin_aarch64_qtbl4v8qi (__o, (int8x8_t)idx);
24986 __extension__ extern __inline uint8x8_t
24987 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24988 vqtbl4_u8 (uint8x16x4_t tab, uint8x8_t idx)
24990 __builtin_aarch64_simd_xi __o;
24991 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[0], 0);
24992 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[1], 1);
24993 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[2], 2);
24994 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[3], 3);
24995 return (uint8x8_t)__builtin_aarch64_qtbl4v8qi (__o, (int8x8_t)idx);
24998 __extension__ extern __inline poly8x8_t
24999 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25000 vqtbl4_p8 (poly8x16x4_t tab, uint8x8_t idx)
25002 __builtin_aarch64_simd_xi __o;
25003 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[0], 0);
25004 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[1], 1);
25005 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[2], 2);
25006 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[3], 3);
25007 return (poly8x8_t)__builtin_aarch64_qtbl4v8qi (__o, (int8x8_t)idx);
25010 __extension__ extern __inline int8x16_t
25011 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25012 vqtbl4q_s8 (int8x16x4_t tab, uint8x16_t idx)
25014 __builtin_aarch64_simd_xi __o;
25015 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[0], 0);
25016 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[1], 1);
25017 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[2], 2);
25018 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[3], 3);
25019 return __builtin_aarch64_qtbl4v16qi (__o, (int8x16_t)idx);
25022 __extension__ extern __inline uint8x16_t
25023 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25024 vqtbl4q_u8 (uint8x16x4_t tab, uint8x16_t idx)
25026 __builtin_aarch64_simd_xi __o;
25027 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[0], 0);
25028 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[1], 1);
25029 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[2], 2);
25030 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[3], 3);
25031 return (uint8x16_t)__builtin_aarch64_qtbl4v16qi (__o, (int8x16_t)idx);
25034 __extension__ extern __inline poly8x16_t
25035 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25036 vqtbl4q_p8 (poly8x16x4_t tab, uint8x16_t idx)
25038 __builtin_aarch64_simd_xi __o;
25039 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[0], 0);
25040 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[1], 1);
25041 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[2], 2);
25042 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[3], 3);
25043 return (poly8x16_t)__builtin_aarch64_qtbl4v16qi (__o, (int8x16_t)idx);
25047 /* vqtbx2 */
25048 __extension__ extern __inline int8x8_t
25049 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25050 vqtbx2_s8 (int8x8_t r, int8x16x2_t tab, uint8x8_t idx)
25052 __builtin_aarch64_simd_oi __o;
25053 __o = __builtin_aarch64_set_qregoiv16qi (__o, tab.val[0], 0);
25054 __o = __builtin_aarch64_set_qregoiv16qi (__o, tab.val[1], 1);
25055 return __builtin_aarch64_tbx4v8qi (r, __o, (int8x8_t)idx);
25058 __extension__ extern __inline uint8x8_t
25059 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25060 vqtbx2_u8 (uint8x8_t r, uint8x16x2_t tab, uint8x8_t idx)
25062 __builtin_aarch64_simd_oi __o;
25063 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[0], 0);
25064 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[1], 1);
25065 return (uint8x8_t)__builtin_aarch64_tbx4v8qi ((int8x8_t)r, __o,
25066 (int8x8_t)idx);
25069 __extension__ extern __inline poly8x8_t
25070 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25071 vqtbx2_p8 (poly8x8_t r, poly8x16x2_t tab, uint8x8_t idx)
25073 __builtin_aarch64_simd_oi __o;
25074 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[0], 0);
25075 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[1], 1);
25076 return (poly8x8_t)__builtin_aarch64_tbx4v8qi ((int8x8_t)r, __o,
25077 (int8x8_t)idx);
25080 __extension__ extern __inline int8x16_t
25081 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25082 vqtbx2q_s8 (int8x16_t r, int8x16x2_t tab, uint8x16_t idx)
25084 __builtin_aarch64_simd_oi __o;
25085 __o = __builtin_aarch64_set_qregoiv16qi (__o, tab.val[0], 0);
25086 __o = __builtin_aarch64_set_qregoiv16qi (__o, tab.val[1], 1);
25087 return __builtin_aarch64_tbx4v16qi (r, __o, (int8x16_t)idx);
25090 __extension__ extern __inline uint8x16_t
25091 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25092 vqtbx2q_u8 (uint8x16_t r, uint8x16x2_t tab, uint8x16_t idx)
25094 __builtin_aarch64_simd_oi __o;
25095 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[0], 0);
25096 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[1], 1);
25097 return (uint8x16_t)__builtin_aarch64_tbx4v16qi ((int8x16_t)r, __o,
25098 (int8x16_t)idx);
25101 __extension__ extern __inline poly8x16_t
25102 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25103 vqtbx2q_p8 (poly8x16_t r, poly8x16x2_t tab, uint8x16_t idx)
25105 __builtin_aarch64_simd_oi __o;
25106 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[0], 0);
25107 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[1], 1);
25108 return (poly8x16_t)__builtin_aarch64_tbx4v16qi ((int8x16_t)r, __o,
25109 (int8x16_t)idx);
25112 /* vqtbx3 */
25113 __extension__ extern __inline int8x8_t
25114 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25115 vqtbx3_s8 (int8x8_t r, int8x16x3_t tab, uint8x8_t idx)
25117 __builtin_aarch64_simd_ci __o;
25118 __o = __builtin_aarch64_set_qregciv16qi (__o, tab.val[0], 0);
25119 __o = __builtin_aarch64_set_qregciv16qi (__o, tab.val[1], 1);
25120 __o = __builtin_aarch64_set_qregciv16qi (__o, tab.val[2], 2);
25121 return __builtin_aarch64_qtbx3v8qi (r, __o, (int8x8_t)idx);
25124 __extension__ extern __inline uint8x8_t
25125 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25126 vqtbx3_u8 (uint8x8_t r, uint8x16x3_t tab, uint8x8_t idx)
25128 __builtin_aarch64_simd_ci __o;
25129 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[0], 0);
25130 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[1], 1);
25131 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[2], 2);
25132 return (uint8x8_t)__builtin_aarch64_qtbx3v8qi ((int8x8_t)r, __o,
25133 (int8x8_t)idx);
25136 __extension__ extern __inline poly8x8_t
25137 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25138 vqtbx3_p8 (poly8x8_t r, poly8x16x3_t tab, uint8x8_t idx)
25140 __builtin_aarch64_simd_ci __o;
25141 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[0], 0);
25142 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[1], 1);
25143 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[2], 2);
25144 return (poly8x8_t)__builtin_aarch64_qtbx3v8qi ((int8x8_t)r, __o,
25145 (int8x8_t)idx);
25148 __extension__ extern __inline int8x16_t
25149 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25150 vqtbx3q_s8 (int8x16_t r, int8x16x3_t tab, uint8x16_t idx)
25152 __builtin_aarch64_simd_ci __o;
25153 __o = __builtin_aarch64_set_qregciv16qi (__o, tab.val[0], 0);
25154 __o = __builtin_aarch64_set_qregciv16qi (__o, tab.val[1], 1);
25155 __o = __builtin_aarch64_set_qregciv16qi (__o, tab.val[2], 2);
25156 return __builtin_aarch64_qtbx3v16qi (r, __o, (int8x16_t)idx);
25159 __extension__ extern __inline uint8x16_t
25160 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25161 vqtbx3q_u8 (uint8x16_t r, uint8x16x3_t tab, uint8x16_t idx)
25163 __builtin_aarch64_simd_ci __o;
25164 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[0], 0);
25165 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[1], 1);
25166 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[2], 2);
25167 return (uint8x16_t)__builtin_aarch64_qtbx3v16qi ((int8x16_t)r, __o,
25168 (int8x16_t)idx);
25171 __extension__ extern __inline poly8x16_t
25172 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25173 vqtbx3q_p8 (poly8x16_t r, poly8x16x3_t tab, uint8x16_t idx)
25175 __builtin_aarch64_simd_ci __o;
25176 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[0], 0);
25177 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[1], 1);
25178 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[2], 2);
25179 return (poly8x16_t)__builtin_aarch64_qtbx3v16qi ((int8x16_t)r, __o,
25180 (int8x16_t)idx);
25183 /* vqtbx4 */
25185 __extension__ extern __inline int8x8_t
25186 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25187 vqtbx4_s8 (int8x8_t r, int8x16x4_t tab, uint8x8_t idx)
25189 __builtin_aarch64_simd_xi __o;
25190 __o = __builtin_aarch64_set_qregxiv16qi (__o, tab.val[0], 0);
25191 __o = __builtin_aarch64_set_qregxiv16qi (__o, tab.val[1], 1);
25192 __o = __builtin_aarch64_set_qregxiv16qi (__o, tab.val[2], 2);
25193 __o = __builtin_aarch64_set_qregxiv16qi (__o, tab.val[3], 3);
25194 return __builtin_aarch64_qtbx4v8qi (r, __o, (int8x8_t)idx);
25197 __extension__ extern __inline uint8x8_t
25198 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25199 vqtbx4_u8 (uint8x8_t r, uint8x16x4_t tab, uint8x8_t idx)
25201 __builtin_aarch64_simd_xi __o;
25202 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[0], 0);
25203 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[1], 1);
25204 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[2], 2);
25205 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[3], 3);
25206 return (uint8x8_t)__builtin_aarch64_qtbx4v8qi ((int8x8_t)r, __o,
25207 (int8x8_t)idx);
25210 __extension__ extern __inline poly8x8_t
25211 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25212 vqtbx4_p8 (poly8x8_t r, poly8x16x4_t tab, uint8x8_t idx)
25214 __builtin_aarch64_simd_xi __o;
25215 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[0], 0);
25216 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[1], 1);
25217 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[2], 2);
25218 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[3], 3);
25219 return (poly8x8_t)__builtin_aarch64_qtbx4v8qi ((int8x8_t)r, __o,
25220 (int8x8_t)idx);
25223 __extension__ extern __inline int8x16_t
25224 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25225 vqtbx4q_s8 (int8x16_t r, int8x16x4_t tab, uint8x16_t idx)
25227 __builtin_aarch64_simd_xi __o;
25228 __o = __builtin_aarch64_set_qregxiv16qi (__o, tab.val[0], 0);
25229 __o = __builtin_aarch64_set_qregxiv16qi (__o, tab.val[1], 1);
25230 __o = __builtin_aarch64_set_qregxiv16qi (__o, tab.val[2], 2);
25231 __o = __builtin_aarch64_set_qregxiv16qi (__o, tab.val[3], 3);
25232 return __builtin_aarch64_qtbx4v16qi (r, __o, (int8x16_t)idx);
25235 __extension__ extern __inline uint8x16_t
25236 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25237 vqtbx4q_u8 (uint8x16_t r, uint8x16x4_t tab, uint8x16_t idx)
25239 __builtin_aarch64_simd_xi __o;
25240 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[0], 0);
25241 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[1], 1);
25242 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[2], 2);
25243 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[3], 3);
25244 return (uint8x16_t)__builtin_aarch64_qtbx4v16qi ((int8x16_t)r, __o,
25245 (int8x16_t)idx);
25248 __extension__ extern __inline poly8x16_t
25249 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25250 vqtbx4q_p8 (poly8x16_t r, poly8x16x4_t tab, uint8x16_t idx)
25252 __builtin_aarch64_simd_xi __o;
25253 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[0], 0);
25254 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[1], 1);
25255 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[2], 2);
25256 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[3], 3);
25257 return (poly8x16_t)__builtin_aarch64_qtbx4v16qi ((int8x16_t)r, __o,
25258 (int8x16_t)idx);
25261 /* vrbit */
25263 __extension__ extern __inline poly8x8_t
25264 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25265 vrbit_p8 (poly8x8_t __a)
25267 return (poly8x8_t) __builtin_aarch64_rbitv8qi ((int8x8_t) __a);
25270 __extension__ extern __inline int8x8_t
25271 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25272 vrbit_s8 (int8x8_t __a)
25274 return __builtin_aarch64_rbitv8qi (__a);
25277 __extension__ extern __inline uint8x8_t
25278 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25279 vrbit_u8 (uint8x8_t __a)
25281 return (uint8x8_t) __builtin_aarch64_rbitv8qi ((int8x8_t) __a);
25284 __extension__ extern __inline poly8x16_t
25285 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25286 vrbitq_p8 (poly8x16_t __a)
25288 return (poly8x16_t) __builtin_aarch64_rbitv16qi ((int8x16_t)__a);
25291 __extension__ extern __inline int8x16_t
25292 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25293 vrbitq_s8 (int8x16_t __a)
25295 return __builtin_aarch64_rbitv16qi (__a);
25298 __extension__ extern __inline uint8x16_t
25299 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25300 vrbitq_u8 (uint8x16_t __a)
25302 return (uint8x16_t) __builtin_aarch64_rbitv16qi ((int8x16_t) __a);
25305 /* vrecpe */
25307 __extension__ extern __inline uint32x2_t
25308 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25309 vrecpe_u32 (uint32x2_t __a)
25311 return (uint32x2_t) __builtin_aarch64_urecpev2si ((int32x2_t) __a);
25314 __extension__ extern __inline uint32x4_t
25315 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25316 vrecpeq_u32 (uint32x4_t __a)
25318 return (uint32x4_t) __builtin_aarch64_urecpev4si ((int32x4_t) __a);
25321 __extension__ extern __inline float32_t
25322 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25323 vrecpes_f32 (float32_t __a)
25325 return __builtin_aarch64_frecpesf (__a);
25328 __extension__ extern __inline float64_t
25329 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25330 vrecped_f64 (float64_t __a)
25332 return __builtin_aarch64_frecpedf (__a);
25335 __extension__ extern __inline float32x2_t
25336 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25337 vrecpe_f32 (float32x2_t __a)
25339 return __builtin_aarch64_frecpev2sf (__a);
25342 __extension__ extern __inline float64x1_t
25343 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25344 vrecpe_f64 (float64x1_t __a)
25346 return (float64x1_t) { vrecped_f64 (vget_lane_f64 (__a, 0)) };
25349 __extension__ extern __inline float32x4_t
25350 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25351 vrecpeq_f32 (float32x4_t __a)
25353 return __builtin_aarch64_frecpev4sf (__a);
25356 __extension__ extern __inline float64x2_t
25357 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25358 vrecpeq_f64 (float64x2_t __a)
25360 return __builtin_aarch64_frecpev2df (__a);
25363 /* vrecps */
25365 __extension__ extern __inline float32_t
25366 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25367 vrecpss_f32 (float32_t __a, float32_t __b)
25369 return __builtin_aarch64_frecpssf (__a, __b);
25372 __extension__ extern __inline float64_t
25373 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25374 vrecpsd_f64 (float64_t __a, float64_t __b)
25376 return __builtin_aarch64_frecpsdf (__a, __b);
25379 __extension__ extern __inline float32x2_t
25380 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25381 vrecps_f32 (float32x2_t __a, float32x2_t __b)
25383 return __builtin_aarch64_frecpsv2sf (__a, __b);
25386 __extension__ extern __inline float64x1_t
25387 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25388 vrecps_f64 (float64x1_t __a, float64x1_t __b)
25390 return (float64x1_t) { vrecpsd_f64 (vget_lane_f64 (__a, 0),
25391 vget_lane_f64 (__b, 0)) };
25394 __extension__ extern __inline float32x4_t
25395 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25396 vrecpsq_f32 (float32x4_t __a, float32x4_t __b)
25398 return __builtin_aarch64_frecpsv4sf (__a, __b);
25401 __extension__ extern __inline float64x2_t
25402 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25403 vrecpsq_f64 (float64x2_t __a, float64x2_t __b)
25405 return __builtin_aarch64_frecpsv2df (__a, __b);
25408 /* vrecpx */
25410 __extension__ extern __inline float32_t
25411 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25412 vrecpxs_f32 (float32_t __a)
25414 return __builtin_aarch64_frecpxsf (__a);
25417 __extension__ extern __inline float64_t
25418 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25419 vrecpxd_f64 (float64_t __a)
25421 return __builtin_aarch64_frecpxdf (__a);
25425 /* vrev */
25427 __extension__ extern __inline poly8x8_t
25428 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25429 vrev16_p8 (poly8x8_t a)
25431 return __builtin_shuffle (a, (uint8x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
25434 __extension__ extern __inline int8x8_t
25435 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25436 vrev16_s8 (int8x8_t a)
25438 return __builtin_shuffle (a, (uint8x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
25441 __extension__ extern __inline uint8x8_t
25442 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25443 vrev16_u8 (uint8x8_t a)
25445 return __builtin_shuffle (a, (uint8x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
25448 __extension__ extern __inline poly8x16_t
25449 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25450 vrev16q_p8 (poly8x16_t a)
25452 return __builtin_shuffle (a,
25453 (uint8x16_t) { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 });
25456 __extension__ extern __inline int8x16_t
25457 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25458 vrev16q_s8 (int8x16_t a)
25460 return __builtin_shuffle (a,
25461 (uint8x16_t) { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 });
25464 __extension__ extern __inline uint8x16_t
25465 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25466 vrev16q_u8 (uint8x16_t a)
25468 return __builtin_shuffle (a,
25469 (uint8x16_t) { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 });
25472 __extension__ extern __inline poly8x8_t
25473 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25474 vrev32_p8 (poly8x8_t a)
25476 return __builtin_shuffle (a, (uint8x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
25479 __extension__ extern __inline poly16x4_t
25480 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25481 vrev32_p16 (poly16x4_t a)
25483 return __builtin_shuffle (a, (uint16x4_t) { 1, 0, 3, 2 });
25486 __extension__ extern __inline int8x8_t
25487 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25488 vrev32_s8 (int8x8_t a)
25490 return __builtin_shuffle (a, (uint8x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
25493 __extension__ extern __inline int16x4_t
25494 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25495 vrev32_s16 (int16x4_t a)
25497 return __builtin_shuffle (a, (uint16x4_t) { 1, 0, 3, 2 });
25500 __extension__ extern __inline uint8x8_t
25501 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25502 vrev32_u8 (uint8x8_t a)
25504 return __builtin_shuffle (a, (uint8x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
25507 __extension__ extern __inline uint16x4_t
25508 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25509 vrev32_u16 (uint16x4_t a)
25511 return __builtin_shuffle (a, (uint16x4_t) { 1, 0, 3, 2 });
25514 __extension__ extern __inline poly8x16_t
25515 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25516 vrev32q_p8 (poly8x16_t a)
25518 return __builtin_shuffle (a,
25519 (uint8x16_t) { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 });
25522 __extension__ extern __inline poly16x8_t
25523 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25524 vrev32q_p16 (poly16x8_t a)
25526 return __builtin_shuffle (a, (uint16x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
25529 __extension__ extern __inline int8x16_t
25530 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25531 vrev32q_s8 (int8x16_t a)
25533 return __builtin_shuffle (a,
25534 (uint8x16_t) { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 });
25537 __extension__ extern __inline int16x8_t
25538 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25539 vrev32q_s16 (int16x8_t a)
25541 return __builtin_shuffle (a, (uint16x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
25544 __extension__ extern __inline uint8x16_t
25545 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25546 vrev32q_u8 (uint8x16_t a)
25548 return __builtin_shuffle (a,
25549 (uint8x16_t) { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 });
25552 __extension__ extern __inline uint16x8_t
25553 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25554 vrev32q_u16 (uint16x8_t a)
25556 return __builtin_shuffle (a, (uint16x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
25559 __extension__ extern __inline float16x4_t
25560 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25561 vrev64_f16 (float16x4_t __a)
25563 return __builtin_shuffle (__a, (uint16x4_t) { 3, 2, 1, 0 });
25566 __extension__ extern __inline float32x2_t
25567 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25568 vrev64_f32 (float32x2_t a)
25570 return __builtin_shuffle (a, (uint32x2_t) { 1, 0 });
25573 __extension__ extern __inline poly8x8_t
25574 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25575 vrev64_p8 (poly8x8_t a)
25577 return __builtin_shuffle (a, (uint8x8_t) { 7, 6, 5, 4, 3, 2, 1, 0 });
25580 __extension__ extern __inline poly16x4_t
25581 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25582 vrev64_p16 (poly16x4_t a)
25584 return __builtin_shuffle (a, (uint16x4_t) { 3, 2, 1, 0 });
25587 __extension__ extern __inline int8x8_t
25588 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25589 vrev64_s8 (int8x8_t a)
25591 return __builtin_shuffle (a, (uint8x8_t) { 7, 6, 5, 4, 3, 2, 1, 0 });
25594 __extension__ extern __inline int16x4_t
25595 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25596 vrev64_s16 (int16x4_t a)
25598 return __builtin_shuffle (a, (uint16x4_t) { 3, 2, 1, 0 });
25601 __extension__ extern __inline int32x2_t
25602 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25603 vrev64_s32 (int32x2_t a)
25605 return __builtin_shuffle (a, (uint32x2_t) { 1, 0 });
25608 __extension__ extern __inline uint8x8_t
25609 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25610 vrev64_u8 (uint8x8_t a)
25612 return __builtin_shuffle (a, (uint8x8_t) { 7, 6, 5, 4, 3, 2, 1, 0 });
25615 __extension__ extern __inline uint16x4_t
25616 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25617 vrev64_u16 (uint16x4_t a)
25619 return __builtin_shuffle (a, (uint16x4_t) { 3, 2, 1, 0 });
25622 __extension__ extern __inline uint32x2_t
25623 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25624 vrev64_u32 (uint32x2_t a)
25626 return __builtin_shuffle (a, (uint32x2_t) { 1, 0 });
25629 __extension__ extern __inline float16x8_t
25630 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25631 vrev64q_f16 (float16x8_t __a)
25633 return __builtin_shuffle (__a, (uint16x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
25636 __extension__ extern __inline float32x4_t
25637 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25638 vrev64q_f32 (float32x4_t a)
25640 return __builtin_shuffle (a, (uint32x4_t) { 1, 0, 3, 2 });
25643 __extension__ extern __inline poly8x16_t
25644 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25645 vrev64q_p8 (poly8x16_t a)
25647 return __builtin_shuffle (a,
25648 (uint8x16_t) { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 });
25651 __extension__ extern __inline poly16x8_t
25652 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25653 vrev64q_p16 (poly16x8_t a)
25655 return __builtin_shuffle (a, (uint16x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
25658 __extension__ extern __inline int8x16_t
25659 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25660 vrev64q_s8 (int8x16_t a)
25662 return __builtin_shuffle (a,
25663 (uint8x16_t) { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 });
25666 __extension__ extern __inline int16x8_t
25667 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25668 vrev64q_s16 (int16x8_t a)
25670 return __builtin_shuffle (a, (uint16x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
25673 __extension__ extern __inline int32x4_t
25674 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25675 vrev64q_s32 (int32x4_t a)
25677 return __builtin_shuffle (a, (uint32x4_t) { 1, 0, 3, 2 });
25680 __extension__ extern __inline uint8x16_t
25681 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25682 vrev64q_u8 (uint8x16_t a)
25684 return __builtin_shuffle (a,
25685 (uint8x16_t) { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 });
25688 __extension__ extern __inline uint16x8_t
25689 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25690 vrev64q_u16 (uint16x8_t a)
25692 return __builtin_shuffle (a, (uint16x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
25695 __extension__ extern __inline uint32x4_t
25696 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25697 vrev64q_u32 (uint32x4_t a)
25699 return __builtin_shuffle (a, (uint32x4_t) { 1, 0, 3, 2 });
25702 /* vrnd */
25704 __extension__ extern __inline float32x2_t
25705 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25706 vrnd_f32 (float32x2_t __a)
25708 return __builtin_aarch64_btruncv2sf (__a);
25711 __extension__ extern __inline float64x1_t
25712 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25713 vrnd_f64 (float64x1_t __a)
25715 return vset_lane_f64 (__builtin_trunc (vget_lane_f64 (__a, 0)), __a, 0);
25718 __extension__ extern __inline float32x4_t
25719 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25720 vrndq_f32 (float32x4_t __a)
25722 return __builtin_aarch64_btruncv4sf (__a);
25725 __extension__ extern __inline float64x2_t
25726 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25727 vrndq_f64 (float64x2_t __a)
25729 return __builtin_aarch64_btruncv2df (__a);
25732 /* vrnda */
25734 __extension__ extern __inline float32x2_t
25735 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25736 vrnda_f32 (float32x2_t __a)
25738 return __builtin_aarch64_roundv2sf (__a);
25741 __extension__ extern __inline float64x1_t
25742 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25743 vrnda_f64 (float64x1_t __a)
25745 return vset_lane_f64 (__builtin_round (vget_lane_f64 (__a, 0)), __a, 0);
25748 __extension__ extern __inline float32x4_t
25749 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25750 vrndaq_f32 (float32x4_t __a)
25752 return __builtin_aarch64_roundv4sf (__a);
25755 __extension__ extern __inline float64x2_t
25756 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25757 vrndaq_f64 (float64x2_t __a)
25759 return __builtin_aarch64_roundv2df (__a);
25762 /* vrndi */
25764 __extension__ extern __inline float32x2_t
25765 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25766 vrndi_f32 (float32x2_t __a)
25768 return __builtin_aarch64_nearbyintv2sf (__a);
25771 __extension__ extern __inline float64x1_t
25772 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25773 vrndi_f64 (float64x1_t __a)
25775 return vset_lane_f64 (__builtin_nearbyint (vget_lane_f64 (__a, 0)), __a, 0);
25778 __extension__ extern __inline float32x4_t
25779 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25780 vrndiq_f32 (float32x4_t __a)
25782 return __builtin_aarch64_nearbyintv4sf (__a);
25785 __extension__ extern __inline float64x2_t
25786 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25787 vrndiq_f64 (float64x2_t __a)
25789 return __builtin_aarch64_nearbyintv2df (__a);
25792 /* vrndm */
25794 __extension__ extern __inline float32x2_t
25795 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25796 vrndm_f32 (float32x2_t __a)
25798 return __builtin_aarch64_floorv2sf (__a);
25801 __extension__ extern __inline float64x1_t
25802 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25803 vrndm_f64 (float64x1_t __a)
25805 return vset_lane_f64 (__builtin_floor (vget_lane_f64 (__a, 0)), __a, 0);
25808 __extension__ extern __inline float32x4_t
25809 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25810 vrndmq_f32 (float32x4_t __a)
25812 return __builtin_aarch64_floorv4sf (__a);
25815 __extension__ extern __inline float64x2_t
25816 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25817 vrndmq_f64 (float64x2_t __a)
25819 return __builtin_aarch64_floorv2df (__a);
25822 /* vrndn */
25824 __extension__ extern __inline float32x2_t
25825 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25826 vrndn_f32 (float32x2_t __a)
25828 return __builtin_aarch64_frintnv2sf (__a);
25831 __extension__ extern __inline float64x1_t
25832 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25833 vrndn_f64 (float64x1_t __a)
25835 return (float64x1_t) {__builtin_aarch64_frintndf (__a[0])};
25838 __extension__ extern __inline float32x4_t
25839 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25840 vrndnq_f32 (float32x4_t __a)
25842 return __builtin_aarch64_frintnv4sf (__a);
25845 __extension__ extern __inline float64x2_t
25846 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25847 vrndnq_f64 (float64x2_t __a)
25849 return __builtin_aarch64_frintnv2df (__a);
25852 /* vrndp */
25854 __extension__ extern __inline float32x2_t
25855 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25856 vrndp_f32 (float32x2_t __a)
25858 return __builtin_aarch64_ceilv2sf (__a);
25861 __extension__ extern __inline float64x1_t
25862 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25863 vrndp_f64 (float64x1_t __a)
25865 return vset_lane_f64 (__builtin_ceil (vget_lane_f64 (__a, 0)), __a, 0);
25868 __extension__ extern __inline float32x4_t
25869 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25870 vrndpq_f32 (float32x4_t __a)
25872 return __builtin_aarch64_ceilv4sf (__a);
25875 __extension__ extern __inline float64x2_t
25876 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25877 vrndpq_f64 (float64x2_t __a)
25879 return __builtin_aarch64_ceilv2df (__a);
25882 /* vrndx */
25884 __extension__ extern __inline float32x2_t
25885 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25886 vrndx_f32 (float32x2_t __a)
25888 return __builtin_aarch64_rintv2sf (__a);
25891 __extension__ extern __inline float64x1_t
25892 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25893 vrndx_f64 (float64x1_t __a)
25895 return vset_lane_f64 (__builtin_rint (vget_lane_f64 (__a, 0)), __a, 0);
25898 __extension__ extern __inline float32x4_t
25899 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25900 vrndxq_f32 (float32x4_t __a)
25902 return __builtin_aarch64_rintv4sf (__a);
25905 __extension__ extern __inline float64x2_t
25906 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25907 vrndxq_f64 (float64x2_t __a)
25909 return __builtin_aarch64_rintv2df (__a);
25912 /* vrshl */
25914 __extension__ extern __inline int8x8_t
25915 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25916 vrshl_s8 (int8x8_t __a, int8x8_t __b)
25918 return (int8x8_t) __builtin_aarch64_srshlv8qi (__a, __b);
25921 __extension__ extern __inline int16x4_t
25922 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25923 vrshl_s16 (int16x4_t __a, int16x4_t __b)
25925 return (int16x4_t) __builtin_aarch64_srshlv4hi (__a, __b);
25928 __extension__ extern __inline int32x2_t
25929 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25930 vrshl_s32 (int32x2_t __a, int32x2_t __b)
25932 return (int32x2_t) __builtin_aarch64_srshlv2si (__a, __b);
25935 __extension__ extern __inline int64x1_t
25936 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25937 vrshl_s64 (int64x1_t __a, int64x1_t __b)
25939 return (int64x1_t) {__builtin_aarch64_srshldi (__a[0], __b[0])};
25942 __extension__ extern __inline uint8x8_t
25943 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25944 vrshl_u8 (uint8x8_t __a, int8x8_t __b)
25946 return __builtin_aarch64_urshlv8qi_uus (__a, __b);
25949 __extension__ extern __inline uint16x4_t
25950 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25951 vrshl_u16 (uint16x4_t __a, int16x4_t __b)
25953 return __builtin_aarch64_urshlv4hi_uus (__a, __b);
25956 __extension__ extern __inline uint32x2_t
25957 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25958 vrshl_u32 (uint32x2_t __a, int32x2_t __b)
25960 return __builtin_aarch64_urshlv2si_uus (__a, __b);
25963 __extension__ extern __inline uint64x1_t
25964 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25965 vrshl_u64 (uint64x1_t __a, int64x1_t __b)
25967 return (uint64x1_t) {__builtin_aarch64_urshldi_uus (__a[0], __b[0])};
25970 __extension__ extern __inline int8x16_t
25971 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25972 vrshlq_s8 (int8x16_t __a, int8x16_t __b)
25974 return (int8x16_t) __builtin_aarch64_srshlv16qi (__a, __b);
25977 __extension__ extern __inline int16x8_t
25978 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25979 vrshlq_s16 (int16x8_t __a, int16x8_t __b)
25981 return (int16x8_t) __builtin_aarch64_srshlv8hi (__a, __b);
25984 __extension__ extern __inline int32x4_t
25985 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25986 vrshlq_s32 (int32x4_t __a, int32x4_t __b)
25988 return (int32x4_t) __builtin_aarch64_srshlv4si (__a, __b);
25991 __extension__ extern __inline int64x2_t
25992 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25993 vrshlq_s64 (int64x2_t __a, int64x2_t __b)
25995 return (int64x2_t) __builtin_aarch64_srshlv2di (__a, __b);
25998 __extension__ extern __inline uint8x16_t
25999 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26000 vrshlq_u8 (uint8x16_t __a, int8x16_t __b)
26002 return __builtin_aarch64_urshlv16qi_uus (__a, __b);
26005 __extension__ extern __inline uint16x8_t
26006 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26007 vrshlq_u16 (uint16x8_t __a, int16x8_t __b)
26009 return __builtin_aarch64_urshlv8hi_uus (__a, __b);
26012 __extension__ extern __inline uint32x4_t
26013 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26014 vrshlq_u32 (uint32x4_t __a, int32x4_t __b)
26016 return __builtin_aarch64_urshlv4si_uus (__a, __b);
26019 __extension__ extern __inline uint64x2_t
26020 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26021 vrshlq_u64 (uint64x2_t __a, int64x2_t __b)
26023 return __builtin_aarch64_urshlv2di_uus (__a, __b);
26026 __extension__ extern __inline int64_t
26027 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26028 vrshld_s64 (int64_t __a, int64_t __b)
26030 return __builtin_aarch64_srshldi (__a, __b);
26033 __extension__ extern __inline uint64_t
26034 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26035 vrshld_u64 (uint64_t __a, int64_t __b)
26037 return __builtin_aarch64_urshldi_uus (__a, __b);
26040 /* vrshr */
26042 __extension__ extern __inline int8x8_t
26043 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26044 vrshr_n_s8 (int8x8_t __a, const int __b)
26046 return (int8x8_t) __builtin_aarch64_srshr_nv8qi (__a, __b);
26049 __extension__ extern __inline int16x4_t
26050 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26051 vrshr_n_s16 (int16x4_t __a, const int __b)
26053 return (int16x4_t) __builtin_aarch64_srshr_nv4hi (__a, __b);
26056 __extension__ extern __inline int32x2_t
26057 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26058 vrshr_n_s32 (int32x2_t __a, const int __b)
26060 return (int32x2_t) __builtin_aarch64_srshr_nv2si (__a, __b);
26063 __extension__ extern __inline int64x1_t
26064 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26065 vrshr_n_s64 (int64x1_t __a, const int __b)
26067 return (int64x1_t) {__builtin_aarch64_srshr_ndi (__a[0], __b)};
26070 __extension__ extern __inline uint8x8_t
26071 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26072 vrshr_n_u8 (uint8x8_t __a, const int __b)
26074 return __builtin_aarch64_urshr_nv8qi_uus (__a, __b);
26077 __extension__ extern __inline uint16x4_t
26078 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26079 vrshr_n_u16 (uint16x4_t __a, const int __b)
26081 return __builtin_aarch64_urshr_nv4hi_uus (__a, __b);
26084 __extension__ extern __inline uint32x2_t
26085 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26086 vrshr_n_u32 (uint32x2_t __a, const int __b)
26088 return __builtin_aarch64_urshr_nv2si_uus (__a, __b);
26091 __extension__ extern __inline uint64x1_t
26092 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26093 vrshr_n_u64 (uint64x1_t __a, const int __b)
26095 return (uint64x1_t) {__builtin_aarch64_urshr_ndi_uus (__a[0], __b)};
26098 __extension__ extern __inline int8x16_t
26099 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26100 vrshrq_n_s8 (int8x16_t __a, const int __b)
26102 return (int8x16_t) __builtin_aarch64_srshr_nv16qi (__a, __b);
26105 __extension__ extern __inline int16x8_t
26106 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26107 vrshrq_n_s16 (int16x8_t __a, const int __b)
26109 return (int16x8_t) __builtin_aarch64_srshr_nv8hi (__a, __b);
26112 __extension__ extern __inline int32x4_t
26113 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26114 vrshrq_n_s32 (int32x4_t __a, const int __b)
26116 return (int32x4_t) __builtin_aarch64_srshr_nv4si (__a, __b);
26119 __extension__ extern __inline int64x2_t
26120 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26121 vrshrq_n_s64 (int64x2_t __a, const int __b)
26123 return (int64x2_t) __builtin_aarch64_srshr_nv2di (__a, __b);
26126 __extension__ extern __inline uint8x16_t
26127 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26128 vrshrq_n_u8 (uint8x16_t __a, const int __b)
26130 return __builtin_aarch64_urshr_nv16qi_uus (__a, __b);
26133 __extension__ extern __inline uint16x8_t
26134 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26135 vrshrq_n_u16 (uint16x8_t __a, const int __b)
26137 return __builtin_aarch64_urshr_nv8hi_uus (__a, __b);
26140 __extension__ extern __inline uint32x4_t
26141 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26142 vrshrq_n_u32 (uint32x4_t __a, const int __b)
26144 return __builtin_aarch64_urshr_nv4si_uus (__a, __b);
26147 __extension__ extern __inline uint64x2_t
26148 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26149 vrshrq_n_u64 (uint64x2_t __a, const int __b)
26151 return __builtin_aarch64_urshr_nv2di_uus (__a, __b);
26154 __extension__ extern __inline int64_t
26155 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26156 vrshrd_n_s64 (int64_t __a, const int __b)
26158 return __builtin_aarch64_srshr_ndi (__a, __b);
26161 __extension__ extern __inline uint64_t
26162 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26163 vrshrd_n_u64 (uint64_t __a, const int __b)
26165 return __builtin_aarch64_urshr_ndi_uus (__a, __b);
26168 /* vrsqrte. */
26170 __extension__ extern __inline float32_t
26171 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26172 vrsqrtes_f32 (float32_t __a)
26174 return __builtin_aarch64_rsqrtesf (__a);
26177 __extension__ extern __inline float64_t
26178 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26179 vrsqrted_f64 (float64_t __a)
26181 return __builtin_aarch64_rsqrtedf (__a);
26184 __extension__ extern __inline float32x2_t
26185 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26186 vrsqrte_f32 (float32x2_t __a)
26188 return __builtin_aarch64_rsqrtev2sf (__a);
26191 __extension__ extern __inline float64x1_t
26192 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26193 vrsqrte_f64 (float64x1_t __a)
26195 return (float64x1_t) {vrsqrted_f64 (vget_lane_f64 (__a, 0))};
26198 __extension__ extern __inline float32x4_t
26199 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26200 vrsqrteq_f32 (float32x4_t __a)
26202 return __builtin_aarch64_rsqrtev4sf (__a);
26205 __extension__ extern __inline float64x2_t
26206 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26207 vrsqrteq_f64 (float64x2_t __a)
26209 return __builtin_aarch64_rsqrtev2df (__a);
26212 /* vrsqrts. */
26214 __extension__ extern __inline float32_t
26215 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26216 vrsqrtss_f32 (float32_t __a, float32_t __b)
26218 return __builtin_aarch64_rsqrtssf (__a, __b);
26221 __extension__ extern __inline float64_t
26222 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26223 vrsqrtsd_f64 (float64_t __a, float64_t __b)
26225 return __builtin_aarch64_rsqrtsdf (__a, __b);
26228 __extension__ extern __inline float32x2_t
26229 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26230 vrsqrts_f32 (float32x2_t __a, float32x2_t __b)
26232 return __builtin_aarch64_rsqrtsv2sf (__a, __b);
26235 __extension__ extern __inline float64x1_t
26236 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26237 vrsqrts_f64 (float64x1_t __a, float64x1_t __b)
26239 return (float64x1_t) {vrsqrtsd_f64 (vget_lane_f64 (__a, 0),
26240 vget_lane_f64 (__b, 0))};
26243 __extension__ extern __inline float32x4_t
26244 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26245 vrsqrtsq_f32 (float32x4_t __a, float32x4_t __b)
26247 return __builtin_aarch64_rsqrtsv4sf (__a, __b);
26250 __extension__ extern __inline float64x2_t
26251 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26252 vrsqrtsq_f64 (float64x2_t __a, float64x2_t __b)
26254 return __builtin_aarch64_rsqrtsv2df (__a, __b);
26257 /* vrsra */
26259 __extension__ extern __inline int8x8_t
26260 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26261 vrsra_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
26263 return (int8x8_t) __builtin_aarch64_srsra_nv8qi (__a, __b, __c);
26266 __extension__ extern __inline int16x4_t
26267 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26268 vrsra_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
26270 return (int16x4_t) __builtin_aarch64_srsra_nv4hi (__a, __b, __c);
26273 __extension__ extern __inline int32x2_t
26274 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26275 vrsra_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
26277 return (int32x2_t) __builtin_aarch64_srsra_nv2si (__a, __b, __c);
26280 __extension__ extern __inline int64x1_t
26281 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26282 vrsra_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
26284 return (int64x1_t) {__builtin_aarch64_srsra_ndi (__a[0], __b[0], __c)};
26287 __extension__ extern __inline uint8x8_t
26288 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26289 vrsra_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
26291 return __builtin_aarch64_ursra_nv8qi_uuus (__a, __b, __c);
26294 __extension__ extern __inline uint16x4_t
26295 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26296 vrsra_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
26298 return __builtin_aarch64_ursra_nv4hi_uuus (__a, __b, __c);
26301 __extension__ extern __inline uint32x2_t
26302 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26303 vrsra_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
26305 return __builtin_aarch64_ursra_nv2si_uuus (__a, __b, __c);
26308 __extension__ extern __inline uint64x1_t
26309 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26310 vrsra_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
26312 return (uint64x1_t) {__builtin_aarch64_ursra_ndi_uuus (__a[0], __b[0], __c)};
26315 __extension__ extern __inline int8x16_t
26316 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26317 vrsraq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
26319 return (int8x16_t) __builtin_aarch64_srsra_nv16qi (__a, __b, __c);
26322 __extension__ extern __inline int16x8_t
26323 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26324 vrsraq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
26326 return (int16x8_t) __builtin_aarch64_srsra_nv8hi (__a, __b, __c);
26329 __extension__ extern __inline int32x4_t
26330 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26331 vrsraq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
26333 return (int32x4_t) __builtin_aarch64_srsra_nv4si (__a, __b, __c);
26336 __extension__ extern __inline int64x2_t
26337 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26338 vrsraq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
26340 return (int64x2_t) __builtin_aarch64_srsra_nv2di (__a, __b, __c);
26343 __extension__ extern __inline uint8x16_t
26344 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26345 vrsraq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
26347 return __builtin_aarch64_ursra_nv16qi_uuus (__a, __b, __c);
26350 __extension__ extern __inline uint16x8_t
26351 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26352 vrsraq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
26354 return __builtin_aarch64_ursra_nv8hi_uuus (__a, __b, __c);
26357 __extension__ extern __inline uint32x4_t
26358 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26359 vrsraq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
26361 return __builtin_aarch64_ursra_nv4si_uuus (__a, __b, __c);
26364 __extension__ extern __inline uint64x2_t
26365 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26366 vrsraq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
26368 return __builtin_aarch64_ursra_nv2di_uuus (__a, __b, __c);
26371 __extension__ extern __inline int64_t
26372 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26373 vrsrad_n_s64 (int64_t __a, int64_t __b, const int __c)
26375 return __builtin_aarch64_srsra_ndi (__a, __b, __c);
26378 __extension__ extern __inline uint64_t
26379 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26380 vrsrad_n_u64 (uint64_t __a, uint64_t __b, const int __c)
26382 return __builtin_aarch64_ursra_ndi_uuus (__a, __b, __c);
26385 #pragma GCC push_options
26386 #pragma GCC target ("+nothing+crypto")
26388 /* vsha1 */
26390 __extension__ extern __inline uint32x4_t
26391 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26392 vsha1cq_u32 (uint32x4_t hash_abcd, uint32_t hash_e, uint32x4_t wk)
26394 return __builtin_aarch64_crypto_sha1cv4si_uuuu (hash_abcd, hash_e, wk);
26397 __extension__ extern __inline uint32x4_t
26398 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26399 vsha1mq_u32 (uint32x4_t hash_abcd, uint32_t hash_e, uint32x4_t wk)
26401 return __builtin_aarch64_crypto_sha1mv4si_uuuu (hash_abcd, hash_e, wk);
26404 __extension__ extern __inline uint32x4_t
26405 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26406 vsha1pq_u32 (uint32x4_t hash_abcd, uint32_t hash_e, uint32x4_t wk)
26408 return __builtin_aarch64_crypto_sha1pv4si_uuuu (hash_abcd, hash_e, wk);
26411 __extension__ extern __inline uint32_t
26412 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26413 vsha1h_u32 (uint32_t hash_e)
26415 return __builtin_aarch64_crypto_sha1hsi_uu (hash_e);
26418 __extension__ extern __inline uint32x4_t
26419 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26420 vsha1su0q_u32 (uint32x4_t w0_3, uint32x4_t w4_7, uint32x4_t w8_11)
26422 return __builtin_aarch64_crypto_sha1su0v4si_uuuu (w0_3, w4_7, w8_11);
26425 __extension__ extern __inline uint32x4_t
26426 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26427 vsha1su1q_u32 (uint32x4_t tw0_3, uint32x4_t w12_15)
26429 return __builtin_aarch64_crypto_sha1su1v4si_uuu (tw0_3, w12_15);
26432 __extension__ extern __inline uint32x4_t
26433 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26434 vsha256hq_u32 (uint32x4_t hash_abcd, uint32x4_t hash_efgh, uint32x4_t wk)
26436 return __builtin_aarch64_crypto_sha256hv4si_uuuu (hash_abcd, hash_efgh, wk);
26439 __extension__ extern __inline uint32x4_t
26440 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26441 vsha256h2q_u32 (uint32x4_t hash_efgh, uint32x4_t hash_abcd, uint32x4_t wk)
26443 return __builtin_aarch64_crypto_sha256h2v4si_uuuu (hash_efgh, hash_abcd, wk);
26446 __extension__ extern __inline uint32x4_t
26447 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26448 vsha256su0q_u32 (uint32x4_t w0_3, uint32x4_t w4_7)
26450 return __builtin_aarch64_crypto_sha256su0v4si_uuu (w0_3, w4_7);
26453 __extension__ extern __inline uint32x4_t
26454 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26455 vsha256su1q_u32 (uint32x4_t tw0_3, uint32x4_t w8_11, uint32x4_t w12_15)
26457 return __builtin_aarch64_crypto_sha256su1v4si_uuuu (tw0_3, w8_11, w12_15);
26460 __extension__ extern __inline poly128_t
26461 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26462 vmull_p64 (poly64_t a, poly64_t b)
26464 return
26465 __builtin_aarch64_crypto_pmulldi_ppp (a, b);
26468 __extension__ extern __inline poly128_t
26469 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26470 vmull_high_p64 (poly64x2_t a, poly64x2_t b)
26472 return __builtin_aarch64_crypto_pmullv2di_ppp (a, b);
26475 #pragma GCC pop_options
26477 /* vshl */
26479 __extension__ extern __inline int8x8_t
26480 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26481 vshl_n_s8 (int8x8_t __a, const int __b)
26483 return (int8x8_t) __builtin_aarch64_ashlv8qi (__a, __b);
26486 __extension__ extern __inline int16x4_t
26487 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26488 vshl_n_s16 (int16x4_t __a, const int __b)
26490 return (int16x4_t) __builtin_aarch64_ashlv4hi (__a, __b);
26493 __extension__ extern __inline int32x2_t
26494 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26495 vshl_n_s32 (int32x2_t __a, const int __b)
26497 return (int32x2_t) __builtin_aarch64_ashlv2si (__a, __b);
26500 __extension__ extern __inline int64x1_t
26501 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26502 vshl_n_s64 (int64x1_t __a, const int __b)
26504 return (int64x1_t) {__builtin_aarch64_ashldi (__a[0], __b)};
26507 __extension__ extern __inline uint8x8_t
26508 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26509 vshl_n_u8 (uint8x8_t __a, const int __b)
26511 return (uint8x8_t) __builtin_aarch64_ashlv8qi ((int8x8_t) __a, __b);
26514 __extension__ extern __inline uint16x4_t
26515 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26516 vshl_n_u16 (uint16x4_t __a, const int __b)
26518 return (uint16x4_t) __builtin_aarch64_ashlv4hi ((int16x4_t) __a, __b);
26521 __extension__ extern __inline uint32x2_t
26522 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26523 vshl_n_u32 (uint32x2_t __a, const int __b)
26525 return (uint32x2_t) __builtin_aarch64_ashlv2si ((int32x2_t) __a, __b);
26528 __extension__ extern __inline uint64x1_t
26529 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26530 vshl_n_u64 (uint64x1_t __a, const int __b)
26532 return (uint64x1_t) {__builtin_aarch64_ashldi ((int64_t) __a[0], __b)};
26535 __extension__ extern __inline int8x16_t
26536 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26537 vshlq_n_s8 (int8x16_t __a, const int __b)
26539 return (int8x16_t) __builtin_aarch64_ashlv16qi (__a, __b);
26542 __extension__ extern __inline int16x8_t
26543 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26544 vshlq_n_s16 (int16x8_t __a, const int __b)
26546 return (int16x8_t) __builtin_aarch64_ashlv8hi (__a, __b);
26549 __extension__ extern __inline int32x4_t
26550 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26551 vshlq_n_s32 (int32x4_t __a, const int __b)
26553 return (int32x4_t) __builtin_aarch64_ashlv4si (__a, __b);
26556 __extension__ extern __inline int64x2_t
26557 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26558 vshlq_n_s64 (int64x2_t __a, const int __b)
26560 return (int64x2_t) __builtin_aarch64_ashlv2di (__a, __b);
26563 __extension__ extern __inline uint8x16_t
26564 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26565 vshlq_n_u8 (uint8x16_t __a, const int __b)
26567 return (uint8x16_t) __builtin_aarch64_ashlv16qi ((int8x16_t) __a, __b);
26570 __extension__ extern __inline uint16x8_t
26571 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26572 vshlq_n_u16 (uint16x8_t __a, const int __b)
26574 return (uint16x8_t) __builtin_aarch64_ashlv8hi ((int16x8_t) __a, __b);
26577 __extension__ extern __inline uint32x4_t
26578 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26579 vshlq_n_u32 (uint32x4_t __a, const int __b)
26581 return (uint32x4_t) __builtin_aarch64_ashlv4si ((int32x4_t) __a, __b);
26584 __extension__ extern __inline uint64x2_t
26585 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26586 vshlq_n_u64 (uint64x2_t __a, const int __b)
26588 return (uint64x2_t) __builtin_aarch64_ashlv2di ((int64x2_t) __a, __b);
26591 __extension__ extern __inline int64_t
26592 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26593 vshld_n_s64 (int64_t __a, const int __b)
26595 return __builtin_aarch64_ashldi (__a, __b);
26598 __extension__ extern __inline uint64_t
26599 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26600 vshld_n_u64 (uint64_t __a, const int __b)
26602 return (uint64_t) __builtin_aarch64_ashldi (__a, __b);
26605 __extension__ extern __inline int8x8_t
26606 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26607 vshl_s8 (int8x8_t __a, int8x8_t __b)
26609 return __builtin_aarch64_sshlv8qi (__a, __b);
26612 __extension__ extern __inline int16x4_t
26613 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26614 vshl_s16 (int16x4_t __a, int16x4_t __b)
26616 return __builtin_aarch64_sshlv4hi (__a, __b);
26619 __extension__ extern __inline int32x2_t
26620 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26621 vshl_s32 (int32x2_t __a, int32x2_t __b)
26623 return __builtin_aarch64_sshlv2si (__a, __b);
26626 __extension__ extern __inline int64x1_t
26627 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26628 vshl_s64 (int64x1_t __a, int64x1_t __b)
26630 return (int64x1_t) {__builtin_aarch64_sshldi (__a[0], __b[0])};
26633 __extension__ extern __inline uint8x8_t
26634 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26635 vshl_u8 (uint8x8_t __a, int8x8_t __b)
26637 return __builtin_aarch64_ushlv8qi_uus (__a, __b);
26640 __extension__ extern __inline uint16x4_t
26641 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26642 vshl_u16 (uint16x4_t __a, int16x4_t __b)
26644 return __builtin_aarch64_ushlv4hi_uus (__a, __b);
26647 __extension__ extern __inline uint32x2_t
26648 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26649 vshl_u32 (uint32x2_t __a, int32x2_t __b)
26651 return __builtin_aarch64_ushlv2si_uus (__a, __b);
26654 __extension__ extern __inline uint64x1_t
26655 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26656 vshl_u64 (uint64x1_t __a, int64x1_t __b)
26658 return (uint64x1_t) {__builtin_aarch64_ushldi_uus (__a[0], __b[0])};
26661 __extension__ extern __inline int8x16_t
26662 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26663 vshlq_s8 (int8x16_t __a, int8x16_t __b)
26665 return __builtin_aarch64_sshlv16qi (__a, __b);
26668 __extension__ extern __inline int16x8_t
26669 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26670 vshlq_s16 (int16x8_t __a, int16x8_t __b)
26672 return __builtin_aarch64_sshlv8hi (__a, __b);
26675 __extension__ extern __inline int32x4_t
26676 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26677 vshlq_s32 (int32x4_t __a, int32x4_t __b)
26679 return __builtin_aarch64_sshlv4si (__a, __b);
26682 __extension__ extern __inline int64x2_t
26683 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26684 vshlq_s64 (int64x2_t __a, int64x2_t __b)
26686 return __builtin_aarch64_sshlv2di (__a, __b);
26689 __extension__ extern __inline uint8x16_t
26690 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26691 vshlq_u8 (uint8x16_t __a, int8x16_t __b)
26693 return __builtin_aarch64_ushlv16qi_uus (__a, __b);
26696 __extension__ extern __inline uint16x8_t
26697 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26698 vshlq_u16 (uint16x8_t __a, int16x8_t __b)
26700 return __builtin_aarch64_ushlv8hi_uus (__a, __b);
26703 __extension__ extern __inline uint32x4_t
26704 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26705 vshlq_u32 (uint32x4_t __a, int32x4_t __b)
26707 return __builtin_aarch64_ushlv4si_uus (__a, __b);
26710 __extension__ extern __inline uint64x2_t
26711 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26712 vshlq_u64 (uint64x2_t __a, int64x2_t __b)
26714 return __builtin_aarch64_ushlv2di_uus (__a, __b);
26717 __extension__ extern __inline int64_t
26718 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26719 vshld_s64 (int64_t __a, int64_t __b)
26721 return __builtin_aarch64_sshldi (__a, __b);
26724 __extension__ extern __inline uint64_t
26725 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26726 vshld_u64 (uint64_t __a, uint64_t __b)
26728 return __builtin_aarch64_ushldi_uus (__a, __b);
26731 __extension__ extern __inline int16x8_t
26732 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26733 vshll_high_n_s8 (int8x16_t __a, const int __b)
26735 return __builtin_aarch64_sshll2_nv16qi (__a, __b);
26738 __extension__ extern __inline int32x4_t
26739 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26740 vshll_high_n_s16 (int16x8_t __a, const int __b)
26742 return __builtin_aarch64_sshll2_nv8hi (__a, __b);
26745 __extension__ extern __inline int64x2_t
26746 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26747 vshll_high_n_s32 (int32x4_t __a, const int __b)
26749 return __builtin_aarch64_sshll2_nv4si (__a, __b);
26752 __extension__ extern __inline uint16x8_t
26753 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26754 vshll_high_n_u8 (uint8x16_t __a, const int __b)
26756 return (uint16x8_t) __builtin_aarch64_ushll2_nv16qi ((int8x16_t) __a, __b);
26759 __extension__ extern __inline uint32x4_t
26760 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26761 vshll_high_n_u16 (uint16x8_t __a, const int __b)
26763 return (uint32x4_t) __builtin_aarch64_ushll2_nv8hi ((int16x8_t) __a, __b);
26766 __extension__ extern __inline uint64x2_t
26767 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26768 vshll_high_n_u32 (uint32x4_t __a, const int __b)
26770 return (uint64x2_t) __builtin_aarch64_ushll2_nv4si ((int32x4_t) __a, __b);
26773 __extension__ extern __inline int16x8_t
26774 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26775 vshll_n_s8 (int8x8_t __a, const int __b)
26777 return __builtin_aarch64_sshll_nv8qi (__a, __b);
26780 __extension__ extern __inline int32x4_t
26781 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26782 vshll_n_s16 (int16x4_t __a, const int __b)
26784 return __builtin_aarch64_sshll_nv4hi (__a, __b);
26787 __extension__ extern __inline int64x2_t
26788 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26789 vshll_n_s32 (int32x2_t __a, const int __b)
26791 return __builtin_aarch64_sshll_nv2si (__a, __b);
26794 __extension__ extern __inline uint16x8_t
26795 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26796 vshll_n_u8 (uint8x8_t __a, const int __b)
26798 return __builtin_aarch64_ushll_nv8qi_uus (__a, __b);
26801 __extension__ extern __inline uint32x4_t
26802 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26803 vshll_n_u16 (uint16x4_t __a, const int __b)
26805 return __builtin_aarch64_ushll_nv4hi_uus (__a, __b);
26808 __extension__ extern __inline uint64x2_t
26809 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26810 vshll_n_u32 (uint32x2_t __a, const int __b)
26812 return __builtin_aarch64_ushll_nv2si_uus (__a, __b);
26815 /* vshr */
26817 __extension__ extern __inline int8x8_t
26818 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26819 vshr_n_s8 (int8x8_t __a, const int __b)
26821 return (int8x8_t) __builtin_aarch64_ashrv8qi (__a, __b);
26824 __extension__ extern __inline int16x4_t
26825 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26826 vshr_n_s16 (int16x4_t __a, const int __b)
26828 return (int16x4_t) __builtin_aarch64_ashrv4hi (__a, __b);
26831 __extension__ extern __inline int32x2_t
26832 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26833 vshr_n_s32 (int32x2_t __a, const int __b)
26835 return (int32x2_t) __builtin_aarch64_ashrv2si (__a, __b);
26838 __extension__ extern __inline int64x1_t
26839 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26840 vshr_n_s64 (int64x1_t __a, const int __b)
26842 return (int64x1_t) {__builtin_aarch64_ashr_simddi (__a[0], __b)};
26845 __extension__ extern __inline uint8x8_t
26846 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26847 vshr_n_u8 (uint8x8_t __a, const int __b)
26849 return (uint8x8_t) __builtin_aarch64_lshrv8qi ((int8x8_t) __a, __b);
26852 __extension__ extern __inline uint16x4_t
26853 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26854 vshr_n_u16 (uint16x4_t __a, const int __b)
26856 return (uint16x4_t) __builtin_aarch64_lshrv4hi ((int16x4_t) __a, __b);
26859 __extension__ extern __inline uint32x2_t
26860 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26861 vshr_n_u32 (uint32x2_t __a, const int __b)
26863 return (uint32x2_t) __builtin_aarch64_lshrv2si ((int32x2_t) __a, __b);
26866 __extension__ extern __inline uint64x1_t
26867 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26868 vshr_n_u64 (uint64x1_t __a, const int __b)
26870 return (uint64x1_t) {__builtin_aarch64_lshr_simddi_uus ( __a[0], __b)};
26873 __extension__ extern __inline int8x16_t
26874 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26875 vshrq_n_s8 (int8x16_t __a, const int __b)
26877 return (int8x16_t) __builtin_aarch64_ashrv16qi (__a, __b);
26880 __extension__ extern __inline int16x8_t
26881 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26882 vshrq_n_s16 (int16x8_t __a, const int __b)
26884 return (int16x8_t) __builtin_aarch64_ashrv8hi (__a, __b);
26887 __extension__ extern __inline int32x4_t
26888 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26889 vshrq_n_s32 (int32x4_t __a, const int __b)
26891 return (int32x4_t) __builtin_aarch64_ashrv4si (__a, __b);
26894 __extension__ extern __inline int64x2_t
26895 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26896 vshrq_n_s64 (int64x2_t __a, const int __b)
26898 return (int64x2_t) __builtin_aarch64_ashrv2di (__a, __b);
26901 __extension__ extern __inline uint8x16_t
26902 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26903 vshrq_n_u8 (uint8x16_t __a, const int __b)
26905 return (uint8x16_t) __builtin_aarch64_lshrv16qi ((int8x16_t) __a, __b);
26908 __extension__ extern __inline uint16x8_t
26909 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26910 vshrq_n_u16 (uint16x8_t __a, const int __b)
26912 return (uint16x8_t) __builtin_aarch64_lshrv8hi ((int16x8_t) __a, __b);
26915 __extension__ extern __inline uint32x4_t
26916 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26917 vshrq_n_u32 (uint32x4_t __a, const int __b)
26919 return (uint32x4_t) __builtin_aarch64_lshrv4si ((int32x4_t) __a, __b);
26922 __extension__ extern __inline uint64x2_t
26923 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26924 vshrq_n_u64 (uint64x2_t __a, const int __b)
26926 return (uint64x2_t) __builtin_aarch64_lshrv2di ((int64x2_t) __a, __b);
26929 __extension__ extern __inline int64_t
26930 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26931 vshrd_n_s64 (int64_t __a, const int __b)
26933 return __builtin_aarch64_ashr_simddi (__a, __b);
26936 __extension__ extern __inline uint64_t
26937 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26938 vshrd_n_u64 (uint64_t __a, const int __b)
26940 return __builtin_aarch64_lshr_simddi_uus (__a, __b);
26943 /* vsli */
26945 __extension__ extern __inline int8x8_t
26946 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26947 vsli_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
26949 return (int8x8_t) __builtin_aarch64_ssli_nv8qi (__a, __b, __c);
26952 __extension__ extern __inline int16x4_t
26953 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26954 vsli_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
26956 return (int16x4_t) __builtin_aarch64_ssli_nv4hi (__a, __b, __c);
26959 __extension__ extern __inline int32x2_t
26960 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26961 vsli_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
26963 return (int32x2_t) __builtin_aarch64_ssli_nv2si (__a, __b, __c);
26966 __extension__ extern __inline int64x1_t
26967 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26968 vsli_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
26970 return (int64x1_t) {__builtin_aarch64_ssli_ndi (__a[0], __b[0], __c)};
26973 __extension__ extern __inline uint8x8_t
26974 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26975 vsli_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
26977 return __builtin_aarch64_usli_nv8qi_uuus (__a, __b, __c);
26980 __extension__ extern __inline uint16x4_t
26981 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26982 vsli_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
26984 return __builtin_aarch64_usli_nv4hi_uuus (__a, __b, __c);
26987 __extension__ extern __inline uint32x2_t
26988 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26989 vsli_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
26991 return __builtin_aarch64_usli_nv2si_uuus (__a, __b, __c);
26994 __extension__ extern __inline uint64x1_t
26995 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26996 vsli_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
26998 return (uint64x1_t) {__builtin_aarch64_usli_ndi_uuus (__a[0], __b[0], __c)};
27001 __extension__ extern __inline poly64x1_t
27002 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27003 vsli_n_p64 (poly64x1_t __a, poly64x1_t __b, const int __c)
27005 return (poly64x1_t) {__builtin_aarch64_ssli_ndi_ppps (__a[0], __b[0], __c)};
27008 __extension__ extern __inline int8x16_t
27009 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27010 vsliq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
27012 return (int8x16_t) __builtin_aarch64_ssli_nv16qi (__a, __b, __c);
27015 __extension__ extern __inline int16x8_t
27016 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27017 vsliq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
27019 return (int16x8_t) __builtin_aarch64_ssli_nv8hi (__a, __b, __c);
27022 __extension__ extern __inline int32x4_t
27023 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27024 vsliq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
27026 return (int32x4_t) __builtin_aarch64_ssli_nv4si (__a, __b, __c);
27029 __extension__ extern __inline int64x2_t
27030 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27031 vsliq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
27033 return (int64x2_t) __builtin_aarch64_ssli_nv2di (__a, __b, __c);
27036 __extension__ extern __inline uint8x16_t
27037 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27038 vsliq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
27040 return __builtin_aarch64_usli_nv16qi_uuus (__a, __b, __c);
27043 __extension__ extern __inline uint16x8_t
27044 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27045 vsliq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
27047 return __builtin_aarch64_usli_nv8hi_uuus (__a, __b, __c);
27050 __extension__ extern __inline uint32x4_t
27051 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27052 vsliq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
27054 return __builtin_aarch64_usli_nv4si_uuus (__a, __b, __c);
27057 __extension__ extern __inline uint64x2_t
27058 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27059 vsliq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
27061 return __builtin_aarch64_usli_nv2di_uuus (__a, __b, __c);
27064 __extension__ extern __inline poly64x2_t
27065 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27066 vsliq_n_p64 (poly64x2_t __a, poly64x2_t __b, const int __c)
27068 return __builtin_aarch64_ssli_nv2di_ppps (__a, __b, __c);
27071 __extension__ extern __inline int64_t
27072 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27073 vslid_n_s64 (int64_t __a, int64_t __b, const int __c)
27075 return __builtin_aarch64_ssli_ndi (__a, __b, __c);
27078 __extension__ extern __inline uint64_t
27079 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27080 vslid_n_u64 (uint64_t __a, uint64_t __b, const int __c)
27082 return __builtin_aarch64_usli_ndi_uuus (__a, __b, __c);
27085 /* vsqadd */
27087 __extension__ extern __inline uint8x8_t
27088 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27089 vsqadd_u8 (uint8x8_t __a, int8x8_t __b)
27091 return __builtin_aarch64_usqaddv8qi_uus (__a, __b);
27094 __extension__ extern __inline uint16x4_t
27095 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27096 vsqadd_u16 (uint16x4_t __a, int16x4_t __b)
27098 return __builtin_aarch64_usqaddv4hi_uus (__a, __b);
27101 __extension__ extern __inline uint32x2_t
27102 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27103 vsqadd_u32 (uint32x2_t __a, int32x2_t __b)
27105 return __builtin_aarch64_usqaddv2si_uus (__a, __b);
27108 __extension__ extern __inline uint64x1_t
27109 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27110 vsqadd_u64 (uint64x1_t __a, int64x1_t __b)
27112 return (uint64x1_t) {__builtin_aarch64_usqadddi_uus (__a[0], __b[0])};
27115 __extension__ extern __inline uint8x16_t
27116 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27117 vsqaddq_u8 (uint8x16_t __a, int8x16_t __b)
27119 return __builtin_aarch64_usqaddv16qi_uus (__a, __b);
27122 __extension__ extern __inline uint16x8_t
27123 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27124 vsqaddq_u16 (uint16x8_t __a, int16x8_t __b)
27126 return __builtin_aarch64_usqaddv8hi_uus (__a, __b);
27129 __extension__ extern __inline uint32x4_t
27130 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27131 vsqaddq_u32 (uint32x4_t __a, int32x4_t __b)
27133 return __builtin_aarch64_usqaddv4si_uus (__a, __b);
27136 __extension__ extern __inline uint64x2_t
27137 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27138 vsqaddq_u64 (uint64x2_t __a, int64x2_t __b)
27140 return __builtin_aarch64_usqaddv2di_uus (__a, __b);
27143 __extension__ extern __inline uint8_t
27144 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27145 vsqaddb_u8 (uint8_t __a, int8_t __b)
27147 return __builtin_aarch64_usqaddqi_uus (__a, __b);
27150 __extension__ extern __inline uint16_t
27151 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27152 vsqaddh_u16 (uint16_t __a, int16_t __b)
27154 return __builtin_aarch64_usqaddhi_uus (__a, __b);
27157 __extension__ extern __inline uint32_t
27158 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27159 vsqadds_u32 (uint32_t __a, int32_t __b)
27161 return __builtin_aarch64_usqaddsi_uus (__a, __b);
27164 __extension__ extern __inline uint64_t
27165 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27166 vsqaddd_u64 (uint64_t __a, int64_t __b)
27168 return __builtin_aarch64_usqadddi_uus (__a, __b);
27171 /* vsqrt */
27172 __extension__ extern __inline float32x2_t
27173 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27174 vsqrt_f32 (float32x2_t a)
27176 return __builtin_aarch64_sqrtv2sf (a);
27179 __extension__ extern __inline float32x4_t
27180 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27181 vsqrtq_f32 (float32x4_t a)
27183 return __builtin_aarch64_sqrtv4sf (a);
27186 __extension__ extern __inline float64x1_t
27187 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27188 vsqrt_f64 (float64x1_t a)
27190 return (float64x1_t) { __builtin_aarch64_sqrtdf (a[0]) };
27193 __extension__ extern __inline float64x2_t
27194 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27195 vsqrtq_f64 (float64x2_t a)
27197 return __builtin_aarch64_sqrtv2df (a);
27200 /* vsra */
27202 __extension__ extern __inline int8x8_t
27203 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27204 vsra_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
27206 return (int8x8_t) __builtin_aarch64_ssra_nv8qi (__a, __b, __c);
27209 __extension__ extern __inline int16x4_t
27210 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27211 vsra_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
27213 return (int16x4_t) __builtin_aarch64_ssra_nv4hi (__a, __b, __c);
27216 __extension__ extern __inline int32x2_t
27217 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27218 vsra_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
27220 return (int32x2_t) __builtin_aarch64_ssra_nv2si (__a, __b, __c);
27223 __extension__ extern __inline int64x1_t
27224 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27225 vsra_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
27227 return (int64x1_t) {__builtin_aarch64_ssra_ndi (__a[0], __b[0], __c)};
27230 __extension__ extern __inline uint8x8_t
27231 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27232 vsra_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
27234 return __builtin_aarch64_usra_nv8qi_uuus (__a, __b, __c);
27237 __extension__ extern __inline uint16x4_t
27238 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27239 vsra_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
27241 return __builtin_aarch64_usra_nv4hi_uuus (__a, __b, __c);
27244 __extension__ extern __inline uint32x2_t
27245 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27246 vsra_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
27248 return __builtin_aarch64_usra_nv2si_uuus (__a, __b, __c);
27251 __extension__ extern __inline uint64x1_t
27252 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27253 vsra_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
27255 return (uint64x1_t) {__builtin_aarch64_usra_ndi_uuus (__a[0], __b[0], __c)};
27258 __extension__ extern __inline int8x16_t
27259 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27260 vsraq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
27262 return (int8x16_t) __builtin_aarch64_ssra_nv16qi (__a, __b, __c);
27265 __extension__ extern __inline int16x8_t
27266 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27267 vsraq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
27269 return (int16x8_t) __builtin_aarch64_ssra_nv8hi (__a, __b, __c);
27272 __extension__ extern __inline int32x4_t
27273 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27274 vsraq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
27276 return (int32x4_t) __builtin_aarch64_ssra_nv4si (__a, __b, __c);
27279 __extension__ extern __inline int64x2_t
27280 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27281 vsraq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
27283 return (int64x2_t) __builtin_aarch64_ssra_nv2di (__a, __b, __c);
27286 __extension__ extern __inline uint8x16_t
27287 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27288 vsraq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
27290 return __builtin_aarch64_usra_nv16qi_uuus (__a, __b, __c);
27293 __extension__ extern __inline uint16x8_t
27294 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27295 vsraq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
27297 return __builtin_aarch64_usra_nv8hi_uuus (__a, __b, __c);
27300 __extension__ extern __inline uint32x4_t
27301 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27302 vsraq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
27304 return __builtin_aarch64_usra_nv4si_uuus (__a, __b, __c);
27307 __extension__ extern __inline uint64x2_t
27308 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27309 vsraq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
27311 return __builtin_aarch64_usra_nv2di_uuus (__a, __b, __c);
27314 __extension__ extern __inline int64_t
27315 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27316 vsrad_n_s64 (int64_t __a, int64_t __b, const int __c)
27318 return __builtin_aarch64_ssra_ndi (__a, __b, __c);
27321 __extension__ extern __inline uint64_t
27322 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27323 vsrad_n_u64 (uint64_t __a, uint64_t __b, const int __c)
27325 return __builtin_aarch64_usra_ndi_uuus (__a, __b, __c);
27328 /* vsri */
27330 __extension__ extern __inline int8x8_t
27331 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27332 vsri_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
27334 return (int8x8_t) __builtin_aarch64_ssri_nv8qi (__a, __b, __c);
27337 __extension__ extern __inline int16x4_t
27338 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27339 vsri_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
27341 return (int16x4_t) __builtin_aarch64_ssri_nv4hi (__a, __b, __c);
27344 __extension__ extern __inline int32x2_t
27345 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27346 vsri_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
27348 return (int32x2_t) __builtin_aarch64_ssri_nv2si (__a, __b, __c);
27351 __extension__ extern __inline int64x1_t
27352 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27353 vsri_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
27355 return (int64x1_t) {__builtin_aarch64_ssri_ndi (__a[0], __b[0], __c)};
27358 __extension__ extern __inline uint8x8_t
27359 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27360 vsri_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
27362 return __builtin_aarch64_usri_nv8qi_uuus (__a, __b, __c);
27365 __extension__ extern __inline uint16x4_t
27366 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27367 vsri_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
27369 return __builtin_aarch64_usri_nv4hi_uuus (__a, __b, __c);
27372 __extension__ extern __inline uint32x2_t
27373 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27374 vsri_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
27376 return __builtin_aarch64_usri_nv2si_uuus (__a, __b, __c);
27379 __extension__ extern __inline uint64x1_t
27380 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27381 vsri_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
27383 return (uint64x1_t) {__builtin_aarch64_usri_ndi_uuus (__a[0], __b[0], __c)};
27386 __extension__ extern __inline int8x16_t
27387 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27388 vsriq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
27390 return (int8x16_t) __builtin_aarch64_ssri_nv16qi (__a, __b, __c);
27393 __extension__ extern __inline int16x8_t
27394 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27395 vsriq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
27397 return (int16x8_t) __builtin_aarch64_ssri_nv8hi (__a, __b, __c);
27400 __extension__ extern __inline int32x4_t
27401 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27402 vsriq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
27404 return (int32x4_t) __builtin_aarch64_ssri_nv4si (__a, __b, __c);
27407 __extension__ extern __inline int64x2_t
27408 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27409 vsriq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
27411 return (int64x2_t) __builtin_aarch64_ssri_nv2di (__a, __b, __c);
27414 __extension__ extern __inline uint8x16_t
27415 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27416 vsriq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
27418 return __builtin_aarch64_usri_nv16qi_uuus (__a, __b, __c);
27421 __extension__ extern __inline uint16x8_t
27422 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27423 vsriq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
27425 return __builtin_aarch64_usri_nv8hi_uuus (__a, __b, __c);
27428 __extension__ extern __inline uint32x4_t
27429 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27430 vsriq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
27432 return __builtin_aarch64_usri_nv4si_uuus (__a, __b, __c);
27435 __extension__ extern __inline uint64x2_t
27436 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27437 vsriq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
27439 return __builtin_aarch64_usri_nv2di_uuus (__a, __b, __c);
27442 __extension__ extern __inline int64_t
27443 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27444 vsrid_n_s64 (int64_t __a, int64_t __b, const int __c)
27446 return __builtin_aarch64_ssri_ndi (__a, __b, __c);
27449 __extension__ extern __inline uint64_t
27450 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27451 vsrid_n_u64 (uint64_t __a, uint64_t __b, const int __c)
27453 return __builtin_aarch64_usri_ndi_uuus (__a, __b, __c);
27456 /* vst1 */
27458 __extension__ extern __inline void
27459 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27460 vst1_f16 (float16_t *__a, float16x4_t __b)
27462 __builtin_aarch64_st1v4hf (__a, __b);
27465 __extension__ extern __inline void
27466 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27467 vst1_f32 (float32_t *a, float32x2_t b)
27469 __builtin_aarch64_st1v2sf ((__builtin_aarch64_simd_sf *) a, b);
27472 __extension__ extern __inline void
27473 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27474 vst1_f64 (float64_t *a, float64x1_t b)
27476 *a = b[0];
27479 __extension__ extern __inline void
27480 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27481 vst1_p8 (poly8_t *a, poly8x8_t b)
27483 __builtin_aarch64_st1v8qi ((__builtin_aarch64_simd_qi *) a,
27484 (int8x8_t) b);
27487 __extension__ extern __inline void
27488 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27489 vst1_p16 (poly16_t *a, poly16x4_t b)
27491 __builtin_aarch64_st1v4hi ((__builtin_aarch64_simd_hi *) a,
27492 (int16x4_t) b);
27495 __extension__ extern __inline void
27496 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27497 vst1_p64 (poly64_t *a, poly64x1_t b)
27499 *a = b[0];
27502 __extension__ extern __inline void
27503 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27504 vst1_s8 (int8_t *a, int8x8_t b)
27506 __builtin_aarch64_st1v8qi ((__builtin_aarch64_simd_qi *) a, b);
27509 __extension__ extern __inline void
27510 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27511 vst1_s16 (int16_t *a, int16x4_t b)
27513 __builtin_aarch64_st1v4hi ((__builtin_aarch64_simd_hi *) a, b);
27516 __extension__ extern __inline void
27517 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27518 vst1_s32 (int32_t *a, int32x2_t b)
27520 __builtin_aarch64_st1v2si ((__builtin_aarch64_simd_si *) a, b);
27523 __extension__ extern __inline void
27524 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27525 vst1_s64 (int64_t *a, int64x1_t b)
27527 *a = b[0];
27530 __extension__ extern __inline void
27531 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27532 vst1_u8 (uint8_t *a, uint8x8_t b)
27534 __builtin_aarch64_st1v8qi ((__builtin_aarch64_simd_qi *) a,
27535 (int8x8_t) b);
27538 __extension__ extern __inline void
27539 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27540 vst1_u16 (uint16_t *a, uint16x4_t b)
27542 __builtin_aarch64_st1v4hi ((__builtin_aarch64_simd_hi *) a,
27543 (int16x4_t) b);
27546 __extension__ extern __inline void
27547 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27548 vst1_u32 (uint32_t *a, uint32x2_t b)
27550 __builtin_aarch64_st1v2si ((__builtin_aarch64_simd_si *) a,
27551 (int32x2_t) b);
27554 __extension__ extern __inline void
27555 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27556 vst1_u64 (uint64_t *a, uint64x1_t b)
27558 *a = b[0];
27561 /* vst1q */
27563 __extension__ extern __inline void
27564 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27565 vst1q_f16 (float16_t *__a, float16x8_t __b)
27567 __builtin_aarch64_st1v8hf (__a, __b);
27570 __extension__ extern __inline void
27571 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27572 vst1q_f32 (float32_t *a, float32x4_t b)
27574 __builtin_aarch64_st1v4sf ((__builtin_aarch64_simd_sf *) a, b);
27577 __extension__ extern __inline void
27578 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27579 vst1q_f64 (float64_t *a, float64x2_t b)
27581 __builtin_aarch64_st1v2df ((__builtin_aarch64_simd_df *) a, b);
27584 __extension__ extern __inline void
27585 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27586 vst1q_p8 (poly8_t *a, poly8x16_t b)
27588 __builtin_aarch64_st1v16qi ((__builtin_aarch64_simd_qi *) a,
27589 (int8x16_t) b);
27592 __extension__ extern __inline void
27593 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27594 vst1q_p16 (poly16_t *a, poly16x8_t b)
27596 __builtin_aarch64_st1v8hi ((__builtin_aarch64_simd_hi *) a,
27597 (int16x8_t) b);
27600 __extension__ extern __inline void
27601 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27602 vst1q_p64 (poly64_t *a, poly64x2_t b)
27604 __builtin_aarch64_st1v2di_sp ((__builtin_aarch64_simd_di *) a,
27605 (poly64x2_t) b);
27608 __extension__ extern __inline void
27609 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27610 vst1q_s8 (int8_t *a, int8x16_t b)
27612 __builtin_aarch64_st1v16qi ((__builtin_aarch64_simd_qi *) a, b);
27615 __extension__ extern __inline void
27616 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27617 vst1q_s16 (int16_t *a, int16x8_t b)
27619 __builtin_aarch64_st1v8hi ((__builtin_aarch64_simd_hi *) a, b);
27622 __extension__ extern __inline void
27623 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27624 vst1q_s32 (int32_t *a, int32x4_t b)
27626 __builtin_aarch64_st1v4si ((__builtin_aarch64_simd_si *) a, b);
27629 __extension__ extern __inline void
27630 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27631 vst1q_s64 (int64_t *a, int64x2_t b)
27633 __builtin_aarch64_st1v2di ((__builtin_aarch64_simd_di *) a, b);
27636 __extension__ extern __inline void
27637 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27638 vst1q_u8 (uint8_t *a, uint8x16_t b)
27640 __builtin_aarch64_st1v16qi ((__builtin_aarch64_simd_qi *) a,
27641 (int8x16_t) b);
27644 __extension__ extern __inline void
27645 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27646 vst1q_u16 (uint16_t *a, uint16x8_t b)
27648 __builtin_aarch64_st1v8hi ((__builtin_aarch64_simd_hi *) a,
27649 (int16x8_t) b);
27652 __extension__ extern __inline void
27653 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27654 vst1q_u32 (uint32_t *a, uint32x4_t b)
27656 __builtin_aarch64_st1v4si ((__builtin_aarch64_simd_si *) a,
27657 (int32x4_t) b);
27660 __extension__ extern __inline void
27661 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27662 vst1q_u64 (uint64_t *a, uint64x2_t b)
27664 __builtin_aarch64_st1v2di ((__builtin_aarch64_simd_di *) a,
27665 (int64x2_t) b);
27668 /* vst1_lane */
27670 __extension__ extern __inline void
27671 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27672 vst1_lane_f16 (float16_t *__a, float16x4_t __b, const int __lane)
27674 *__a = __aarch64_vget_lane_any (__b, __lane);
27677 __extension__ extern __inline void
27678 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27679 vst1_lane_f32 (float32_t *__a, float32x2_t __b, const int __lane)
27681 *__a = __aarch64_vget_lane_any (__b, __lane);
27684 __extension__ extern __inline void
27685 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27686 vst1_lane_f64 (float64_t *__a, float64x1_t __b, const int __lane)
27688 *__a = __aarch64_vget_lane_any (__b, __lane);
27691 __extension__ extern __inline void
27692 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27693 vst1_lane_p8 (poly8_t *__a, poly8x8_t __b, const int __lane)
27695 *__a = __aarch64_vget_lane_any (__b, __lane);
27698 __extension__ extern __inline void
27699 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27700 vst1_lane_p16 (poly16_t *__a, poly16x4_t __b, const int __lane)
27702 *__a = __aarch64_vget_lane_any (__b, __lane);
27705 __extension__ extern __inline void
27706 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27707 vst1_lane_p64 (poly64_t *__a, poly64x1_t __b, const int __lane)
27709 *__a = __aarch64_vget_lane_any (__b, __lane);
27712 __extension__ extern __inline void
27713 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27714 vst1_lane_s8 (int8_t *__a, int8x8_t __b, const int __lane)
27716 *__a = __aarch64_vget_lane_any (__b, __lane);
27719 __extension__ extern __inline void
27720 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27721 vst1_lane_s16 (int16_t *__a, int16x4_t __b, const int __lane)
27723 *__a = __aarch64_vget_lane_any (__b, __lane);
27726 __extension__ extern __inline void
27727 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27728 vst1_lane_s32 (int32_t *__a, int32x2_t __b, const int __lane)
27730 *__a = __aarch64_vget_lane_any (__b, __lane);
27733 __extension__ extern __inline void
27734 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27735 vst1_lane_s64 (int64_t *__a, int64x1_t __b, const int __lane)
27737 *__a = __aarch64_vget_lane_any (__b, __lane);
27740 __extension__ extern __inline void
27741 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27742 vst1_lane_u8 (uint8_t *__a, uint8x8_t __b, const int __lane)
27744 *__a = __aarch64_vget_lane_any (__b, __lane);
27747 __extension__ extern __inline void
27748 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27749 vst1_lane_u16 (uint16_t *__a, uint16x4_t __b, const int __lane)
27751 *__a = __aarch64_vget_lane_any (__b, __lane);
27754 __extension__ extern __inline void
27755 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27756 vst1_lane_u32 (uint32_t *__a, uint32x2_t __b, const int __lane)
27758 *__a = __aarch64_vget_lane_any (__b, __lane);
27761 __extension__ extern __inline void
27762 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27763 vst1_lane_u64 (uint64_t *__a, uint64x1_t __b, const int __lane)
27765 *__a = __aarch64_vget_lane_any (__b, __lane);
27768 /* vst1q_lane */
27770 __extension__ extern __inline void
27771 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27772 vst1q_lane_f16 (float16_t *__a, float16x8_t __b, const int __lane)
27774 *__a = __aarch64_vget_lane_any (__b, __lane);
27777 __extension__ extern __inline void
27778 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27779 vst1q_lane_f32 (float32_t *__a, float32x4_t __b, const int __lane)
27781 *__a = __aarch64_vget_lane_any (__b, __lane);
27784 __extension__ extern __inline void
27785 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27786 vst1q_lane_f64 (float64_t *__a, float64x2_t __b, const int __lane)
27788 *__a = __aarch64_vget_lane_any (__b, __lane);
27791 __extension__ extern __inline void
27792 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27793 vst1q_lane_p8 (poly8_t *__a, poly8x16_t __b, const int __lane)
27795 *__a = __aarch64_vget_lane_any (__b, __lane);
27798 __extension__ extern __inline void
27799 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27800 vst1q_lane_p16 (poly16_t *__a, poly16x8_t __b, const int __lane)
27802 *__a = __aarch64_vget_lane_any (__b, __lane);
27805 __extension__ extern __inline void
27806 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27807 vst1q_lane_p64 (poly64_t *__a, poly64x2_t __b, const int __lane)
27809 *__a = __aarch64_vget_lane_any (__b, __lane);
27812 __extension__ extern __inline void
27813 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27814 vst1q_lane_s8 (int8_t *__a, int8x16_t __b, const int __lane)
27816 *__a = __aarch64_vget_lane_any (__b, __lane);
27819 __extension__ extern __inline void
27820 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27821 vst1q_lane_s16 (int16_t *__a, int16x8_t __b, const int __lane)
27823 *__a = __aarch64_vget_lane_any (__b, __lane);
27826 __extension__ extern __inline void
27827 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27828 vst1q_lane_s32 (int32_t *__a, int32x4_t __b, const int __lane)
27830 *__a = __aarch64_vget_lane_any (__b, __lane);
27833 __extension__ extern __inline void
27834 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27835 vst1q_lane_s64 (int64_t *__a, int64x2_t __b, const int __lane)
27837 *__a = __aarch64_vget_lane_any (__b, __lane);
27840 __extension__ extern __inline void
27841 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27842 vst1q_lane_u8 (uint8_t *__a, uint8x16_t __b, const int __lane)
27844 *__a = __aarch64_vget_lane_any (__b, __lane);
27847 __extension__ extern __inline void
27848 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27849 vst1q_lane_u16 (uint16_t *__a, uint16x8_t __b, const int __lane)
27851 *__a = __aarch64_vget_lane_any (__b, __lane);
27854 __extension__ extern __inline void
27855 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27856 vst1q_lane_u32 (uint32_t *__a, uint32x4_t __b, const int __lane)
27858 *__a = __aarch64_vget_lane_any (__b, __lane);
27861 __extension__ extern __inline void
27862 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27863 vst1q_lane_u64 (uint64_t *__a, uint64x2_t __b, const int __lane)
27865 *__a = __aarch64_vget_lane_any (__b, __lane);
27868 /* vst1x2 */
27870 __extension__ extern __inline void
27871 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27872 vst1_s64_x2 (int64_t * __a, int64x1x2_t val)
27874 __builtin_aarch64_simd_oi __o;
27875 int64x2x2_t temp;
27876 temp.val[0] = vcombine_s64 (val.val[0], vcreate_s64 (__AARCH64_INT64_C (0)));
27877 temp.val[1] = vcombine_s64 (val.val[1], vcreate_s64 (__AARCH64_INT64_C (0)));
27878 __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) temp.val[0], 0);
27879 __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) temp.val[1], 1);
27880 __builtin_aarch64_st1x2di ((__builtin_aarch64_simd_di *) __a, __o);
27883 __extension__ extern __inline void
27884 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27885 vst1_u64_x2 (uint64_t * __a, uint64x1x2_t val)
27887 __builtin_aarch64_simd_oi __o;
27888 uint64x2x2_t temp;
27889 temp.val[0] = vcombine_u64 (val.val[0], vcreate_u64 (__AARCH64_UINT64_C (0)));
27890 temp.val[1] = vcombine_u64 (val.val[1], vcreate_u64 (__AARCH64_UINT64_C (0)));
27891 __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) temp.val[0], 0);
27892 __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) temp.val[1], 1);
27893 __builtin_aarch64_st1x2di ((__builtin_aarch64_simd_di *) __a, __o);
27896 __extension__ extern __inline void
27897 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27898 vst1_f64_x2 (float64_t * __a, float64x1x2_t val)
27900 __builtin_aarch64_simd_oi __o;
27901 float64x2x2_t temp;
27902 temp.val[0] = vcombine_f64 (val.val[0], vcreate_f64 (__AARCH64_UINT64_C (0)));
27903 temp.val[1] = vcombine_f64 (val.val[1], vcreate_f64 (__AARCH64_UINT64_C (0)));
27904 __o = __builtin_aarch64_set_qregoiv2df (__o, (float64x2_t) temp.val[0], 0);
27905 __o = __builtin_aarch64_set_qregoiv2df (__o, (float64x2_t) temp.val[1], 1);
27906 __builtin_aarch64_st1x2df ((__builtin_aarch64_simd_df *) __a, __o);
27909 __extension__ extern __inline void
27910 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27911 vst1_s8_x2 (int8_t * __a, int8x8x2_t val)
27913 __builtin_aarch64_simd_oi __o;
27914 int8x16x2_t temp;
27915 temp.val[0] = vcombine_s8 (val.val[0], vcreate_s8 (__AARCH64_INT64_C (0)));
27916 temp.val[1] = vcombine_s8 (val.val[1], vcreate_s8 (__AARCH64_INT64_C (0)));
27917 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) temp.val[0], 0);
27918 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) temp.val[1], 1);
27919 __builtin_aarch64_st1x2v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
27922 __extension__ extern __inline void
27923 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27924 vst1_p8_x2 (poly8_t * __a, poly8x8x2_t val)
27926 __builtin_aarch64_simd_oi __o;
27927 poly8x16x2_t temp;
27928 temp.val[0] = vcombine_p8 (val.val[0], vcreate_p8 (__AARCH64_UINT64_C (0)));
27929 temp.val[1] = vcombine_p8 (val.val[1], vcreate_p8 (__AARCH64_UINT64_C (0)));
27930 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) temp.val[0], 0);
27931 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) temp.val[1], 1);
27932 __builtin_aarch64_st1x2v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
27935 __extension__ extern __inline void
27936 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27937 vst1_s16_x2 (int16_t * __a, int16x4x2_t val)
27939 __builtin_aarch64_simd_oi __o;
27940 int16x8x2_t temp;
27941 temp.val[0] = vcombine_s16 (val.val[0], vcreate_s16 (__AARCH64_INT64_C (0)));
27942 temp.val[1] = vcombine_s16 (val.val[1], vcreate_s16 (__AARCH64_INT64_C (0)));
27943 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) temp.val[0], 0);
27944 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) temp.val[1], 1);
27945 __builtin_aarch64_st1x2v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
27948 __extension__ extern __inline void
27949 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27950 vst1_p16_x2 (poly16_t * __a, poly16x4x2_t val)
27952 __builtin_aarch64_simd_oi __o;
27953 poly16x8x2_t temp;
27954 temp.val[0] = vcombine_p16 (val.val[0], vcreate_p16 (__AARCH64_UINT64_C (0)));
27955 temp.val[1] = vcombine_p16 (val.val[1], vcreate_p16 (__AARCH64_UINT64_C (0)));
27956 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) temp.val[0], 0);
27957 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) temp.val[1], 1);
27958 __builtin_aarch64_st1x2v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
27961 __extension__ extern __inline void
27962 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27963 vst1_s32_x2 (int32_t * __a, int32x2x2_t val)
27965 __builtin_aarch64_simd_oi __o;
27966 int32x4x2_t temp;
27967 temp.val[0] = vcombine_s32 (val.val[0], vcreate_s32 (__AARCH64_INT64_C (0)));
27968 temp.val[1] = vcombine_s32 (val.val[1], vcreate_s32 (__AARCH64_INT64_C (0)));
27969 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) temp.val[0], 0);
27970 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) temp.val[1], 1);
27971 __builtin_aarch64_st1x2v2si ((__builtin_aarch64_simd_si *) __a, __o);
27974 __extension__ extern __inline void
27975 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27976 vst1_u8_x2 (uint8_t * __a, uint8x8x2_t val)
27978 __builtin_aarch64_simd_oi __o;
27979 uint8x16x2_t temp;
27980 temp.val[0] = vcombine_u8 (val.val[0], vcreate_u8 (__AARCH64_UINT64_C (0)));
27981 temp.val[1] = vcombine_u8 (val.val[1], vcreate_u8 (__AARCH64_UINT64_C (0)));
27982 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) temp.val[0], 0);
27983 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) temp.val[1], 1);
27984 __builtin_aarch64_st1x2v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
27987 __extension__ extern __inline void
27988 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27989 vst1_u16_x2 (uint16_t * __a, uint16x4x2_t val)
27991 __builtin_aarch64_simd_oi __o;
27992 uint16x8x2_t temp;
27993 temp.val[0] = vcombine_u16 (val.val[0], vcreate_u16 (__AARCH64_UINT64_C (0)));
27994 temp.val[1] = vcombine_u16 (val.val[1], vcreate_u16 (__AARCH64_UINT64_C (0)));
27995 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) temp.val[0], 0);
27996 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) temp.val[1], 1);
27997 __builtin_aarch64_st1x2v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
28000 __extension__ extern __inline void
28001 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28002 vst1_u32_x2 (uint32_t * __a, uint32x2x2_t val)
28004 __builtin_aarch64_simd_oi __o;
28005 uint32x4x2_t temp;
28006 temp.val[0] = vcombine_u32 (val.val[0], vcreate_u32 (__AARCH64_UINT64_C (0)));
28007 temp.val[1] = vcombine_u32 (val.val[1], vcreate_u32 (__AARCH64_UINT64_C (0)));
28008 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) temp.val[0], 0);
28009 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) temp.val[1], 1);
28010 __builtin_aarch64_st1x2v2si ((__builtin_aarch64_simd_si *) __a, __o);
28013 __extension__ extern __inline void
28014 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28015 vst1_f16_x2 (float16_t * __a, float16x4x2_t val)
28017 __builtin_aarch64_simd_oi __o;
28018 float16x8x2_t temp;
28019 temp.val[0] = vcombine_f16 (val.val[0], vcreate_f16 (__AARCH64_UINT64_C (0)));
28020 temp.val[1] = vcombine_f16 (val.val[1], vcreate_f16 (__AARCH64_UINT64_C (0)));
28021 __o = __builtin_aarch64_set_qregoiv8hf (__o, temp.val[0], 0);
28022 __o = __builtin_aarch64_set_qregoiv8hf (__o, temp.val[1], 1);
28023 __builtin_aarch64_st1x2v4hf (__a, __o);
28026 __extension__ extern __inline void
28027 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28028 vst1_f32_x2 (float32_t * __a, float32x2x2_t val)
28030 __builtin_aarch64_simd_oi __o;
28031 float32x4x2_t temp;
28032 temp.val[0] = vcombine_f32 (val.val[0], vcreate_f32 (__AARCH64_UINT64_C (0)));
28033 temp.val[1] = vcombine_f32 (val.val[1], vcreate_f32 (__AARCH64_UINT64_C (0)));
28034 __o = __builtin_aarch64_set_qregoiv4sf (__o, (float32x4_t) temp.val[0], 0);
28035 __o = __builtin_aarch64_set_qregoiv4sf (__o, (float32x4_t) temp.val[1], 1);
28036 __builtin_aarch64_st1x2v2sf ((__builtin_aarch64_simd_sf *) __a, __o);
28039 __extension__ extern __inline void
28040 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28041 vst1_p64_x2 (poly64_t * __a, poly64x1x2_t val)
28043 __builtin_aarch64_simd_oi __o;
28044 poly64x2x2_t temp;
28045 temp.val[0] = vcombine_p64 (val.val[0], vcreate_p64 (__AARCH64_UINT64_C (0)));
28046 temp.val[1] = vcombine_p64 (val.val[1], vcreate_p64 (__AARCH64_UINT64_C (0)));
28047 __o = __builtin_aarch64_set_qregoiv2di_ssps (__o,
28048 (poly64x2_t) temp.val[0], 0);
28049 __o = __builtin_aarch64_set_qregoiv2di_ssps (__o,
28050 (poly64x2_t) temp.val[1], 1);
28051 __builtin_aarch64_st1x2di ((__builtin_aarch64_simd_di *) __a, __o);
28054 __extension__ extern __inline void
28055 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28056 vst1q_s8_x2 (int8_t * __a, int8x16x2_t val)
28058 __builtin_aarch64_simd_oi __o;
28059 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) val.val[0], 0);
28060 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) val.val[1], 1);
28061 __builtin_aarch64_st1x2v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
28064 __extension__ extern __inline void
28065 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28066 vst1q_p8_x2 (poly8_t * __a, poly8x16x2_t val)
28068 __builtin_aarch64_simd_oi __o;
28069 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) val.val[0], 0);
28070 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) val.val[1], 1);
28071 __builtin_aarch64_st1x2v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
28074 __extension__ extern __inline void
28075 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28076 vst1q_s16_x2 (int16_t * __a, int16x8x2_t val)
28078 __builtin_aarch64_simd_oi __o;
28079 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) val.val[0], 0);
28080 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) val.val[1], 1);
28081 __builtin_aarch64_st1x2v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
28084 __extension__ extern __inline void
28085 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28086 vst1q_p16_x2 (poly16_t * __a, poly16x8x2_t val)
28088 __builtin_aarch64_simd_oi __o;
28089 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) val.val[0], 0);
28090 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) val.val[1], 1);
28091 __builtin_aarch64_st1x2v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
28094 __extension__ extern __inline void
28095 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28096 vst1q_s32_x2 (int32_t * __a, int32x4x2_t val)
28098 __builtin_aarch64_simd_oi __o;
28099 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) val.val[0], 0);
28100 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) val.val[1], 1);
28101 __builtin_aarch64_st1x2v4si ((__builtin_aarch64_simd_si *) __a, __o);
28104 __extension__ extern __inline void
28105 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28106 vst1q_s64_x2 (int64_t * __a, int64x2x2_t val)
28108 __builtin_aarch64_simd_oi __o;
28109 __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) val.val[0], 0);
28110 __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) val.val[1], 1);
28111 __builtin_aarch64_st1x2v2di ((__builtin_aarch64_simd_di *) __a, __o);
28114 __extension__ extern __inline void
28115 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28116 vst1q_u8_x2 (uint8_t * __a, uint8x16x2_t val)
28118 __builtin_aarch64_simd_oi __o;
28119 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) val.val[0], 0);
28120 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) val.val[1], 1);
28121 __builtin_aarch64_st1x2v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
28124 __extension__ extern __inline void
28125 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28126 vst1q_u16_x2 (uint16_t * __a, uint16x8x2_t val)
28128 __builtin_aarch64_simd_oi __o;
28129 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) val.val[0], 0);
28130 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) val.val[1], 1);
28131 __builtin_aarch64_st1x2v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
28134 __extension__ extern __inline void
28135 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28136 vst1q_u32_x2 (uint32_t * __a, uint32x4x2_t val)
28138 __builtin_aarch64_simd_oi __o;
28139 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) val.val[0], 0);
28140 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) val.val[1], 1);
28141 __builtin_aarch64_st1x2v4si ((__builtin_aarch64_simd_si *) __a, __o);
28144 __extension__ extern __inline void
28145 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28146 vst1q_u64_x2 (uint64_t * __a, uint64x2x2_t val)
28148 __builtin_aarch64_simd_oi __o;
28149 __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) val.val[0], 0);
28150 __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) val.val[1], 1);
28151 __builtin_aarch64_st1x2v2di ((__builtin_aarch64_simd_di *) __a, __o);
28154 __extension__ extern __inline void
28155 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28156 vst1q_f16_x2 (float16_t * __a, float16x8x2_t val)
28158 __builtin_aarch64_simd_oi __o;
28159 __o = __builtin_aarch64_set_qregoiv8hf (__o, val.val[0], 0);
28160 __o = __builtin_aarch64_set_qregoiv8hf (__o, val.val[1], 1);
28161 __builtin_aarch64_st1x2v8hf (__a, __o);
28164 __extension__ extern __inline void
28165 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28166 vst1q_f32_x2 (float32_t * __a, float32x4x2_t val)
28168 __builtin_aarch64_simd_oi __o;
28169 __o = __builtin_aarch64_set_qregoiv4sf (__o, (float32x4_t) val.val[0], 0);
28170 __o = __builtin_aarch64_set_qregoiv4sf (__o, (float32x4_t) val.val[1], 1);
28171 __builtin_aarch64_st1x2v4sf ((__builtin_aarch64_simd_sf *) __a, __o);
28174 __extension__ extern __inline void
28175 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28176 vst1q_f64_x2 (float64_t * __a, float64x2x2_t val)
28178 __builtin_aarch64_simd_oi __o;
28179 __o = __builtin_aarch64_set_qregoiv2df (__o, (float64x2_t) val.val[0], 0);
28180 __o = __builtin_aarch64_set_qregoiv2df (__o, (float64x2_t) val.val[1], 1);
28181 __builtin_aarch64_st1x2v2df ((__builtin_aarch64_simd_df *) __a, __o);
28184 __extension__ extern __inline void
28185 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28186 vst1q_p64_x2 (poly64_t * __a, poly64x2x2_t val)
28188 __builtin_aarch64_simd_oi __o;
28189 __o = __builtin_aarch64_set_qregoiv2di_ssps (__o,
28190 (poly64x2_t) val.val[0], 0);
28191 __o = __builtin_aarch64_set_qregoiv2di_ssps (__o,
28192 (poly64x2_t) val.val[1], 1);
28193 __builtin_aarch64_st1x2v2di ((__builtin_aarch64_simd_di *) __a, __o);
28196 /* vst1x3 */
28198 __extension__ extern __inline void
28199 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28200 vst1_s64_x3 (int64_t * __a, int64x1x3_t val)
28202 __builtin_aarch64_simd_ci __o;
28203 int64x2x3_t temp;
28204 temp.val[0] = vcombine_s64 (val.val[0], vcreate_s64 (__AARCH64_INT64_C (0)));
28205 temp.val[1] = vcombine_s64 (val.val[1], vcreate_s64 (__AARCH64_INT64_C (0)));
28206 temp.val[2] = vcombine_s64 (val.val[2], vcreate_s64 (__AARCH64_INT64_C (0)));
28207 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) temp.val[0], 0);
28208 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) temp.val[1], 1);
28209 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) temp.val[2], 2);
28210 __builtin_aarch64_st1x3di ((__builtin_aarch64_simd_di *) __a, __o);
28213 __extension__ extern __inline void
28214 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28215 vst1_u64_x3 (uint64_t * __a, uint64x1x3_t val)
28217 __builtin_aarch64_simd_ci __o;
28218 uint64x2x3_t temp;
28219 temp.val[0] = vcombine_u64 (val.val[0], vcreate_u64 (__AARCH64_UINT64_C (0)));
28220 temp.val[1] = vcombine_u64 (val.val[1], vcreate_u64 (__AARCH64_UINT64_C (0)));
28221 temp.val[2] = vcombine_u64 (val.val[2], vcreate_u64 (__AARCH64_UINT64_C (0)));
28222 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) temp.val[0], 0);
28223 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) temp.val[1], 1);
28224 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) temp.val[2], 2);
28225 __builtin_aarch64_st1x3di ((__builtin_aarch64_simd_di *) __a, __o);
28228 __extension__ extern __inline void
28229 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28230 vst1_f64_x3 (float64_t * __a, float64x1x3_t val)
28232 __builtin_aarch64_simd_ci __o;
28233 float64x2x3_t temp;
28234 temp.val[0] = vcombine_f64 (val.val[0], vcreate_f64 (__AARCH64_UINT64_C (0)));
28235 temp.val[1] = vcombine_f64 (val.val[1], vcreate_f64 (__AARCH64_UINT64_C (0)));
28236 temp.val[2] = vcombine_f64 (val.val[2], vcreate_f64 (__AARCH64_UINT64_C (0)));
28237 __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) temp.val[0], 0);
28238 __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) temp.val[1], 1);
28239 __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) temp.val[2], 2);
28240 __builtin_aarch64_st1x3df ((__builtin_aarch64_simd_df *) __a, __o);
28243 __extension__ extern __inline void
28244 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28245 vst1_s8_x3 (int8_t * __a, int8x8x3_t val)
28247 __builtin_aarch64_simd_ci __o;
28248 int8x16x3_t temp;
28249 temp.val[0] = vcombine_s8 (val.val[0], vcreate_s8 (__AARCH64_INT64_C (0)));
28250 temp.val[1] = vcombine_s8 (val.val[1], vcreate_s8 (__AARCH64_INT64_C (0)));
28251 temp.val[2] = vcombine_s8 (val.val[2], vcreate_s8 (__AARCH64_INT64_C (0)));
28252 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[0], 0);
28253 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[1], 1);
28254 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[2], 2);
28255 __builtin_aarch64_st1x3v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
28258 __extension__ extern __inline void
28259 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28260 vst1_p8_x3 (poly8_t * __a, poly8x8x3_t val)
28262 __builtin_aarch64_simd_ci __o;
28263 poly8x16x3_t temp;
28264 temp.val[0] = vcombine_p8 (val.val[0], vcreate_p8 (__AARCH64_UINT64_C (0)));
28265 temp.val[1] = vcombine_p8 (val.val[1], vcreate_p8 (__AARCH64_UINT64_C (0)));
28266 temp.val[2] = vcombine_p8 (val.val[2], vcreate_p8 (__AARCH64_UINT64_C (0)));
28267 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[0], 0);
28268 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[1], 1);
28269 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[2], 2);
28270 __builtin_aarch64_st1x3v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
28273 __extension__ extern __inline void
28274 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28275 vst1_s16_x3 (int16_t * __a, int16x4x3_t val)
28277 __builtin_aarch64_simd_ci __o;
28278 int16x8x3_t temp;
28279 temp.val[0] = vcombine_s16 (val.val[0], vcreate_s16 (__AARCH64_INT64_C (0)));
28280 temp.val[1] = vcombine_s16 (val.val[1], vcreate_s16 (__AARCH64_INT64_C (0)));
28281 temp.val[2] = vcombine_s16 (val.val[2], vcreate_s16 (__AARCH64_INT64_C (0)));
28282 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[0], 0);
28283 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[1], 1);
28284 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[2], 2);
28285 __builtin_aarch64_st1x3v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
28288 __extension__ extern __inline void
28289 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28290 vst1_p16_x3 (poly16_t * __a, poly16x4x3_t val)
28292 __builtin_aarch64_simd_ci __o;
28293 poly16x8x3_t temp;
28294 temp.val[0] = vcombine_p16 (val.val[0], vcreate_p16 (__AARCH64_UINT64_C (0)));
28295 temp.val[1] = vcombine_p16 (val.val[1], vcreate_p16 (__AARCH64_UINT64_C (0)));
28296 temp.val[2] = vcombine_p16 (val.val[2], vcreate_p16 (__AARCH64_UINT64_C (0)));
28297 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[0], 0);
28298 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[1], 1);
28299 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[2], 2);
28300 __builtin_aarch64_st1x3v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
28303 __extension__ extern __inline void
28304 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28305 vst1_s32_x3 (int32_t * __a, int32x2x3_t val)
28307 __builtin_aarch64_simd_ci __o;
28308 int32x4x3_t temp;
28309 temp.val[0] = vcombine_s32 (val.val[0], vcreate_s32 (__AARCH64_INT64_C (0)));
28310 temp.val[1] = vcombine_s32 (val.val[1], vcreate_s32 (__AARCH64_INT64_C (0)));
28311 temp.val[2] = vcombine_s32 (val.val[2], vcreate_s32 (__AARCH64_INT64_C (0)));
28312 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) temp.val[0], 0);
28313 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) temp.val[1], 1);
28314 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) temp.val[2], 2);
28315 __builtin_aarch64_st1x3v2si ((__builtin_aarch64_simd_si *) __a, __o);
28318 __extension__ extern __inline void
28319 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28320 vst1_u8_x3 (uint8_t * __a, uint8x8x3_t val)
28322 __builtin_aarch64_simd_ci __o;
28323 uint8x16x3_t temp;
28324 temp.val[0] = vcombine_u8 (val.val[0], vcreate_u8 (__AARCH64_UINT64_C (0)));
28325 temp.val[1] = vcombine_u8 (val.val[1], vcreate_u8 (__AARCH64_UINT64_C (0)));
28326 temp.val[2] = vcombine_u8 (val.val[2], vcreate_u8 (__AARCH64_UINT64_C (0)));
28327 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[0], 0);
28328 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[1], 1);
28329 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[2], 2);
28330 __builtin_aarch64_st1x3v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
28333 __extension__ extern __inline void
28334 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28335 vst1_u16_x3 (uint16_t * __a, uint16x4x3_t val)
28337 __builtin_aarch64_simd_ci __o;
28338 uint16x8x3_t temp;
28339 temp.val[0] = vcombine_u16 (val.val[0], vcreate_u16 (__AARCH64_UINT64_C (0)));
28340 temp.val[1] = vcombine_u16 (val.val[1], vcreate_u16 (__AARCH64_UINT64_C (0)));
28341 temp.val[2] = vcombine_u16 (val.val[2], vcreate_u16 (__AARCH64_UINT64_C (0)));
28342 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[0], 0);
28343 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[1], 1);
28344 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[2], 2);
28345 __builtin_aarch64_st1x3v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
28348 __extension__ extern __inline void
28349 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28350 vst1_u32_x3 (uint32_t * __a, uint32x2x3_t val)
28352 __builtin_aarch64_simd_ci __o;
28353 uint32x4x3_t temp;
28354 temp.val[0] = vcombine_u32 (val.val[0], vcreate_u32 (__AARCH64_UINT64_C (0)));
28355 temp.val[1] = vcombine_u32 (val.val[1], vcreate_u32 (__AARCH64_UINT64_C (0)));
28356 temp.val[2] = vcombine_u32 (val.val[2], vcreate_u32 (__AARCH64_UINT64_C (0)));
28357 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) temp.val[0], 0);
28358 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) temp.val[1], 1);
28359 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) temp.val[2], 2);
28360 __builtin_aarch64_st1x3v2si ((__builtin_aarch64_simd_si *) __a, __o);
28363 __extension__ extern __inline void
28364 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28365 vst1_f16_x3 (float16_t * __a, float16x4x3_t val)
28367 __builtin_aarch64_simd_ci __o;
28368 float16x8x3_t temp;
28369 temp.val[0] = vcombine_f16 (val.val[0], vcreate_f16 (__AARCH64_UINT64_C (0)));
28370 temp.val[1] = vcombine_f16 (val.val[1], vcreate_f16 (__AARCH64_UINT64_C (0)));
28371 temp.val[2] = vcombine_f16 (val.val[2], vcreate_f16 (__AARCH64_UINT64_C (0)));
28372 __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) temp.val[0], 0);
28373 __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) temp.val[1], 1);
28374 __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) temp.val[2], 2);
28375 __builtin_aarch64_st1x3v4hf ((__builtin_aarch64_simd_hf *) __a, __o);
28378 __extension__ extern __inline void
28379 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28380 vst1_f32_x3 (float32_t * __a, float32x2x3_t val)
28382 __builtin_aarch64_simd_ci __o;
28383 float32x4x3_t temp;
28384 temp.val[0] = vcombine_f32 (val.val[0], vcreate_f32 (__AARCH64_UINT64_C (0)));
28385 temp.val[1] = vcombine_f32 (val.val[1], vcreate_f32 (__AARCH64_UINT64_C (0)));
28386 temp.val[2] = vcombine_f32 (val.val[2], vcreate_f32 (__AARCH64_UINT64_C (0)));
28387 __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) temp.val[0], 0);
28388 __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) temp.val[1], 1);
28389 __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) temp.val[2], 2);
28390 __builtin_aarch64_st1x3v2sf ((__builtin_aarch64_simd_sf *) __a, __o);
28393 __extension__ extern __inline void
28394 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28395 vst1_p64_x3 (poly64_t * __a, poly64x1x3_t val)
28397 __builtin_aarch64_simd_ci __o;
28398 poly64x2x3_t temp;
28399 temp.val[0] = vcombine_p64 (val.val[0], vcreate_p64 (__AARCH64_UINT64_C (0)));
28400 temp.val[1] = vcombine_p64 (val.val[1], vcreate_p64 (__AARCH64_UINT64_C (0)));
28401 temp.val[2] = vcombine_p64 (val.val[2], vcreate_p64 (__AARCH64_UINT64_C (0)));
28402 __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
28403 (poly64x2_t) temp.val[0], 0);
28404 __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
28405 (poly64x2_t) temp.val[1], 1);
28406 __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
28407 (poly64x2_t) temp.val[2], 2);
28408 __builtin_aarch64_st1x3di ((__builtin_aarch64_simd_di *) __a, __o);
28411 __extension__ extern __inline void
28412 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28413 vst1q_s8_x3 (int8_t * __a, int8x16x3_t val)
28415 __builtin_aarch64_simd_ci __o;
28416 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[0], 0);
28417 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[1], 1);
28418 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[2], 2);
28419 __builtin_aarch64_st1x3v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
28422 __extension__ extern __inline void
28423 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28424 vst1q_p8_x3 (poly8_t * __a, poly8x16x3_t val)
28426 __builtin_aarch64_simd_ci __o;
28427 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[0], 0);
28428 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[1], 1);
28429 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[2], 2);
28430 __builtin_aarch64_st1x3v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
28433 __extension__ extern __inline void
28434 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28435 vst1q_s16_x3 (int16_t * __a, int16x8x3_t val)
28437 __builtin_aarch64_simd_ci __o;
28438 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[0], 0);
28439 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[1], 1);
28440 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[2], 2);
28441 __builtin_aarch64_st1x3v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
28444 __extension__ extern __inline void
28445 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28446 vst1q_p16_x3 (poly16_t * __a, poly16x8x3_t val)
28448 __builtin_aarch64_simd_ci __o;
28449 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[0], 0);
28450 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[1], 1);
28451 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[2], 2);
28452 __builtin_aarch64_st1x3v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
28455 __extension__ extern __inline void
28456 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28457 vst1q_s32_x3 (int32_t * __a, int32x4x3_t val)
28459 __builtin_aarch64_simd_ci __o;
28460 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) val.val[0], 0);
28461 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) val.val[1], 1);
28462 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) val.val[2], 2);
28463 __builtin_aarch64_st1x3v4si ((__builtin_aarch64_simd_si *) __a, __o);
28466 __extension__ extern __inline void
28467 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28468 vst1q_s64_x3 (int64_t * __a, int64x2x3_t val)
28470 __builtin_aarch64_simd_ci __o;
28471 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) val.val[0], 0);
28472 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) val.val[1], 1);
28473 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) val.val[2], 2);
28474 __builtin_aarch64_st1x3v2di ((__builtin_aarch64_simd_di *) __a, __o);
28477 __extension__ extern __inline void
28478 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28479 vst1q_u8_x3 (uint8_t * __a, uint8x16x3_t val)
28481 __builtin_aarch64_simd_ci __o;
28482 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[0], 0);
28483 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[1], 1);
28484 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[2], 2);
28485 __builtin_aarch64_st1x3v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
28488 __extension__ extern __inline void
28489 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28490 vst1q_u16_x3 (uint16_t * __a, uint16x8x3_t val)
28492 __builtin_aarch64_simd_ci __o;
28493 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[0], 0);
28494 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[1], 1);
28495 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[2], 2);
28496 __builtin_aarch64_st1x3v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
28499 __extension__ extern __inline void
28500 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28501 vst1q_u32_x3 (uint32_t * __a, uint32x4x3_t val)
28503 __builtin_aarch64_simd_ci __o;
28504 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) val.val[0], 0);
28505 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) val.val[1], 1);
28506 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) val.val[2], 2);
28507 __builtin_aarch64_st1x3v4si ((__builtin_aarch64_simd_si *) __a, __o);
28510 __extension__ extern __inline void
28511 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28512 vst1q_u64_x3 (uint64_t * __a, uint64x2x3_t val)
28514 __builtin_aarch64_simd_ci __o;
28515 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) val.val[0], 0);
28516 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) val.val[1], 1);
28517 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) val.val[2], 2);
28518 __builtin_aarch64_st1x3v2di ((__builtin_aarch64_simd_di *) __a, __o);
28521 __extension__ extern __inline void
28522 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28523 vst1q_f16_x3 (float16_t * __a, float16x8x3_t val)
28525 __builtin_aarch64_simd_ci __o;
28526 __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) val.val[0], 0);
28527 __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) val.val[1], 1);
28528 __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) val.val[2], 2);
28529 __builtin_aarch64_st1x3v8hf ((__builtin_aarch64_simd_hf *) __a, __o);
28532 __extension__ extern __inline void
28533 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28534 vst1q_f32_x3 (float32_t * __a, float32x4x3_t val)
28536 __builtin_aarch64_simd_ci __o;
28537 __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) val.val[0], 0);
28538 __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) val.val[1], 1);
28539 __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) val.val[2], 2);
28540 __builtin_aarch64_st1x3v4sf ((__builtin_aarch64_simd_sf *) __a, __o);
28543 __extension__ extern __inline void
28544 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28545 vst1q_f64_x3 (float64_t * __a, float64x2x3_t val)
28547 __builtin_aarch64_simd_ci __o;
28548 __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) val.val[0], 0);
28549 __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) val.val[1], 1);
28550 __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) val.val[2], 2);
28551 __builtin_aarch64_st1x3v2df ((__builtin_aarch64_simd_df *) __a, __o);
28554 __extension__ extern __inline void
28555 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28556 vst1q_p64_x3 (poly64_t * __a, poly64x2x3_t val)
28558 __builtin_aarch64_simd_ci __o;
28559 __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
28560 (poly64x2_t) val.val[0], 0);
28561 __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
28562 (poly64x2_t) val.val[1], 1);
28563 __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
28564 (poly64x2_t) val.val[2], 2);
28565 __builtin_aarch64_st1x3v2di ((__builtin_aarch64_simd_di *) __a, __o);
28568 /* vstn */
28570 __extension__ extern __inline void
28571 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28572 vst2_s64 (int64_t * __a, int64x1x2_t val)
28574 __builtin_aarch64_simd_oi __o;
28575 int64x2x2_t temp;
28576 temp.val[0] = vcombine_s64 (val.val[0], vcreate_s64 (__AARCH64_INT64_C (0)));
28577 temp.val[1] = vcombine_s64 (val.val[1], vcreate_s64 (__AARCH64_INT64_C (0)));
28578 __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) temp.val[0], 0);
28579 __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) temp.val[1], 1);
28580 __builtin_aarch64_st2di ((__builtin_aarch64_simd_di *) __a, __o);
28583 __extension__ extern __inline void
28584 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28585 vst2_u64 (uint64_t * __a, uint64x1x2_t val)
28587 __builtin_aarch64_simd_oi __o;
28588 uint64x2x2_t temp;
28589 temp.val[0] = vcombine_u64 (val.val[0], vcreate_u64 (__AARCH64_UINT64_C (0)));
28590 temp.val[1] = vcombine_u64 (val.val[1], vcreate_u64 (__AARCH64_UINT64_C (0)));
28591 __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) temp.val[0], 0);
28592 __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) temp.val[1], 1);
28593 __builtin_aarch64_st2di ((__builtin_aarch64_simd_di *) __a, __o);
28596 __extension__ extern __inline void
28597 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28598 vst2_f64 (float64_t * __a, float64x1x2_t val)
28600 __builtin_aarch64_simd_oi __o;
28601 float64x2x2_t temp;
28602 temp.val[0] = vcombine_f64 (val.val[0], vcreate_f64 (__AARCH64_UINT64_C (0)));
28603 temp.val[1] = vcombine_f64 (val.val[1], vcreate_f64 (__AARCH64_UINT64_C (0)));
28604 __o = __builtin_aarch64_set_qregoiv2df (__o, (float64x2_t) temp.val[0], 0);
28605 __o = __builtin_aarch64_set_qregoiv2df (__o, (float64x2_t) temp.val[1], 1);
28606 __builtin_aarch64_st2df ((__builtin_aarch64_simd_df *) __a, __o);
28609 __extension__ extern __inline void
28610 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28611 vst2_s8 (int8_t * __a, int8x8x2_t val)
28613 __builtin_aarch64_simd_oi __o;
28614 int8x16x2_t temp;
28615 temp.val[0] = vcombine_s8 (val.val[0], vcreate_s8 (__AARCH64_INT64_C (0)));
28616 temp.val[1] = vcombine_s8 (val.val[1], vcreate_s8 (__AARCH64_INT64_C (0)));
28617 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) temp.val[0], 0);
28618 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) temp.val[1], 1);
28619 __builtin_aarch64_st2v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
28622 __extension__ extern __inline void
28623 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28624 vst2_p8 (poly8_t * __a, poly8x8x2_t val)
28626 __builtin_aarch64_simd_oi __o;
28627 poly8x16x2_t temp;
28628 temp.val[0] = vcombine_p8 (val.val[0], vcreate_p8 (__AARCH64_UINT64_C (0)));
28629 temp.val[1] = vcombine_p8 (val.val[1], vcreate_p8 (__AARCH64_UINT64_C (0)));
28630 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) temp.val[0], 0);
28631 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) temp.val[1], 1);
28632 __builtin_aarch64_st2v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
28635 __extension__ extern __inline void
28636 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28637 vst2_s16 (int16_t * __a, int16x4x2_t val)
28639 __builtin_aarch64_simd_oi __o;
28640 int16x8x2_t temp;
28641 temp.val[0] = vcombine_s16 (val.val[0], vcreate_s16 (__AARCH64_INT64_C (0)));
28642 temp.val[1] = vcombine_s16 (val.val[1], vcreate_s16 (__AARCH64_INT64_C (0)));
28643 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) temp.val[0], 0);
28644 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) temp.val[1], 1);
28645 __builtin_aarch64_st2v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
28648 __extension__ extern __inline void
28649 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28650 vst2_p16 (poly16_t * __a, poly16x4x2_t val)
28652 __builtin_aarch64_simd_oi __o;
28653 poly16x8x2_t temp;
28654 temp.val[0] = vcombine_p16 (val.val[0], vcreate_p16 (__AARCH64_UINT64_C (0)));
28655 temp.val[1] = vcombine_p16 (val.val[1], vcreate_p16 (__AARCH64_UINT64_C (0)));
28656 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) temp.val[0], 0);
28657 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) temp.val[1], 1);
28658 __builtin_aarch64_st2v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
28661 __extension__ extern __inline void
28662 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28663 vst2_s32 (int32_t * __a, int32x2x2_t val)
28665 __builtin_aarch64_simd_oi __o;
28666 int32x4x2_t temp;
28667 temp.val[0] = vcombine_s32 (val.val[0], vcreate_s32 (__AARCH64_INT64_C (0)));
28668 temp.val[1] = vcombine_s32 (val.val[1], vcreate_s32 (__AARCH64_INT64_C (0)));
28669 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) temp.val[0], 0);
28670 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) temp.val[1], 1);
28671 __builtin_aarch64_st2v2si ((__builtin_aarch64_simd_si *) __a, __o);
28674 __extension__ extern __inline void
28675 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28676 vst2_u8 (uint8_t * __a, uint8x8x2_t val)
28678 __builtin_aarch64_simd_oi __o;
28679 uint8x16x2_t temp;
28680 temp.val[0] = vcombine_u8 (val.val[0], vcreate_u8 (__AARCH64_UINT64_C (0)));
28681 temp.val[1] = vcombine_u8 (val.val[1], vcreate_u8 (__AARCH64_UINT64_C (0)));
28682 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) temp.val[0], 0);
28683 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) temp.val[1], 1);
28684 __builtin_aarch64_st2v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
28687 __extension__ extern __inline void
28688 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28689 vst2_u16 (uint16_t * __a, uint16x4x2_t val)
28691 __builtin_aarch64_simd_oi __o;
28692 uint16x8x2_t temp;
28693 temp.val[0] = vcombine_u16 (val.val[0], vcreate_u16 (__AARCH64_UINT64_C (0)));
28694 temp.val[1] = vcombine_u16 (val.val[1], vcreate_u16 (__AARCH64_UINT64_C (0)));
28695 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) temp.val[0], 0);
28696 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) temp.val[1], 1);
28697 __builtin_aarch64_st2v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
28700 __extension__ extern __inline void
28701 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28702 vst2_u32 (uint32_t * __a, uint32x2x2_t val)
28704 __builtin_aarch64_simd_oi __o;
28705 uint32x4x2_t temp;
28706 temp.val[0] = vcombine_u32 (val.val[0], vcreate_u32 (__AARCH64_UINT64_C (0)));
28707 temp.val[1] = vcombine_u32 (val.val[1], vcreate_u32 (__AARCH64_UINT64_C (0)));
28708 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) temp.val[0], 0);
28709 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) temp.val[1], 1);
28710 __builtin_aarch64_st2v2si ((__builtin_aarch64_simd_si *) __a, __o);
28713 __extension__ extern __inline void
28714 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28715 vst2_f16 (float16_t * __a, float16x4x2_t val)
28717 __builtin_aarch64_simd_oi __o;
28718 float16x8x2_t temp;
28719 temp.val[0] = vcombine_f16 (val.val[0], vcreate_f16 (__AARCH64_UINT64_C (0)));
28720 temp.val[1] = vcombine_f16 (val.val[1], vcreate_f16 (__AARCH64_UINT64_C (0)));
28721 __o = __builtin_aarch64_set_qregoiv8hf (__o, temp.val[0], 0);
28722 __o = __builtin_aarch64_set_qregoiv8hf (__o, temp.val[1], 1);
28723 __builtin_aarch64_st2v4hf (__a, __o);
28726 __extension__ extern __inline void
28727 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28728 vst2_f32 (float32_t * __a, float32x2x2_t val)
28730 __builtin_aarch64_simd_oi __o;
28731 float32x4x2_t temp;
28732 temp.val[0] = vcombine_f32 (val.val[0], vcreate_f32 (__AARCH64_UINT64_C (0)));
28733 temp.val[1] = vcombine_f32 (val.val[1], vcreate_f32 (__AARCH64_UINT64_C (0)));
28734 __o = __builtin_aarch64_set_qregoiv4sf (__o, (float32x4_t) temp.val[0], 0);
28735 __o = __builtin_aarch64_set_qregoiv4sf (__o, (float32x4_t) temp.val[1], 1);
28736 __builtin_aarch64_st2v2sf ((__builtin_aarch64_simd_sf *) __a, __o);
28739 __extension__ extern __inline void
28740 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28741 vst2_p64 (poly64_t * __a, poly64x1x2_t val)
28743 __builtin_aarch64_simd_oi __o;
28744 poly64x2x2_t temp;
28745 temp.val[0] = vcombine_p64 (val.val[0], vcreate_p64 (__AARCH64_UINT64_C (0)));
28746 temp.val[1] = vcombine_p64 (val.val[1], vcreate_p64 (__AARCH64_UINT64_C (0)));
28747 __o = __builtin_aarch64_set_qregoiv2di_ssps (__o,
28748 (poly64x2_t) temp.val[0], 0);
28749 __o = __builtin_aarch64_set_qregoiv2di_ssps (__o,
28750 (poly64x2_t) temp.val[1], 1);
28751 __builtin_aarch64_st2di ((__builtin_aarch64_simd_di *) __a, __o);
28754 __extension__ extern __inline void
28755 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28756 vst2q_s8 (int8_t * __a, int8x16x2_t val)
28758 __builtin_aarch64_simd_oi __o;
28759 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) val.val[0], 0);
28760 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) val.val[1], 1);
28761 __builtin_aarch64_st2v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
28764 __extension__ extern __inline void
28765 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28766 vst2q_p8 (poly8_t * __a, poly8x16x2_t val)
28768 __builtin_aarch64_simd_oi __o;
28769 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) val.val[0], 0);
28770 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) val.val[1], 1);
28771 __builtin_aarch64_st2v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
28774 __extension__ extern __inline void
28775 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28776 vst2q_s16 (int16_t * __a, int16x8x2_t val)
28778 __builtin_aarch64_simd_oi __o;
28779 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) val.val[0], 0);
28780 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) val.val[1], 1);
28781 __builtin_aarch64_st2v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
28784 __extension__ extern __inline void
28785 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28786 vst2q_p16 (poly16_t * __a, poly16x8x2_t val)
28788 __builtin_aarch64_simd_oi __o;
28789 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) val.val[0], 0);
28790 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) val.val[1], 1);
28791 __builtin_aarch64_st2v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
28794 __extension__ extern __inline void
28795 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28796 vst2q_s32 (int32_t * __a, int32x4x2_t val)
28798 __builtin_aarch64_simd_oi __o;
28799 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) val.val[0], 0);
28800 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) val.val[1], 1);
28801 __builtin_aarch64_st2v4si ((__builtin_aarch64_simd_si *) __a, __o);
28804 __extension__ extern __inline void
28805 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28806 vst2q_s64 (int64_t * __a, int64x2x2_t val)
28808 __builtin_aarch64_simd_oi __o;
28809 __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) val.val[0], 0);
28810 __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) val.val[1], 1);
28811 __builtin_aarch64_st2v2di ((__builtin_aarch64_simd_di *) __a, __o);
28814 __extension__ extern __inline void
28815 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28816 vst2q_u8 (uint8_t * __a, uint8x16x2_t val)
28818 __builtin_aarch64_simd_oi __o;
28819 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) val.val[0], 0);
28820 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) val.val[1], 1);
28821 __builtin_aarch64_st2v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
28824 __extension__ extern __inline void
28825 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28826 vst2q_u16 (uint16_t * __a, uint16x8x2_t val)
28828 __builtin_aarch64_simd_oi __o;
28829 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) val.val[0], 0);
28830 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) val.val[1], 1);
28831 __builtin_aarch64_st2v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
28834 __extension__ extern __inline void
28835 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28836 vst2q_u32 (uint32_t * __a, uint32x4x2_t val)
28838 __builtin_aarch64_simd_oi __o;
28839 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) val.val[0], 0);
28840 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) val.val[1], 1);
28841 __builtin_aarch64_st2v4si ((__builtin_aarch64_simd_si *) __a, __o);
28844 __extension__ extern __inline void
28845 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28846 vst2q_u64 (uint64_t * __a, uint64x2x2_t val)
28848 __builtin_aarch64_simd_oi __o;
28849 __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) val.val[0], 0);
28850 __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) val.val[1], 1);
28851 __builtin_aarch64_st2v2di ((__builtin_aarch64_simd_di *) __a, __o);
28854 __extension__ extern __inline void
28855 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28856 vst2q_f16 (float16_t * __a, float16x8x2_t val)
28858 __builtin_aarch64_simd_oi __o;
28859 __o = __builtin_aarch64_set_qregoiv8hf (__o, val.val[0], 0);
28860 __o = __builtin_aarch64_set_qregoiv8hf (__o, val.val[1], 1);
28861 __builtin_aarch64_st2v8hf (__a, __o);
28864 __extension__ extern __inline void
28865 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28866 vst2q_f32 (float32_t * __a, float32x4x2_t val)
28868 __builtin_aarch64_simd_oi __o;
28869 __o = __builtin_aarch64_set_qregoiv4sf (__o, (float32x4_t) val.val[0], 0);
28870 __o = __builtin_aarch64_set_qregoiv4sf (__o, (float32x4_t) val.val[1], 1);
28871 __builtin_aarch64_st2v4sf ((__builtin_aarch64_simd_sf *) __a, __o);
28874 __extension__ extern __inline void
28875 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28876 vst2q_f64 (float64_t * __a, float64x2x2_t val)
28878 __builtin_aarch64_simd_oi __o;
28879 __o = __builtin_aarch64_set_qregoiv2df (__o, (float64x2_t) val.val[0], 0);
28880 __o = __builtin_aarch64_set_qregoiv2df (__o, (float64x2_t) val.val[1], 1);
28881 __builtin_aarch64_st2v2df ((__builtin_aarch64_simd_df *) __a, __o);
28884 __extension__ extern __inline void
28885 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28886 vst2q_p64 (poly64_t * __a, poly64x2x2_t val)
28888 __builtin_aarch64_simd_oi __o;
28889 __o = __builtin_aarch64_set_qregoiv2di_ssps (__o,
28890 (poly64x2_t) val.val[0], 0);
28891 __o = __builtin_aarch64_set_qregoiv2di_ssps (__o,
28892 (poly64x2_t) val.val[1], 1);
28893 __builtin_aarch64_st2v2di ((__builtin_aarch64_simd_di *) __a, __o);
28896 __extension__ extern __inline void
28897 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28898 vst3_s64 (int64_t * __a, int64x1x3_t val)
28900 __builtin_aarch64_simd_ci __o;
28901 int64x2x3_t temp;
28902 temp.val[0] = vcombine_s64 (val.val[0], vcreate_s64 (__AARCH64_INT64_C (0)));
28903 temp.val[1] = vcombine_s64 (val.val[1], vcreate_s64 (__AARCH64_INT64_C (0)));
28904 temp.val[2] = vcombine_s64 (val.val[2], vcreate_s64 (__AARCH64_INT64_C (0)));
28905 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) temp.val[0], 0);
28906 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) temp.val[1], 1);
28907 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) temp.val[2], 2);
28908 __builtin_aarch64_st3di ((__builtin_aarch64_simd_di *) __a, __o);
28911 __extension__ extern __inline void
28912 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28913 vst3_u64 (uint64_t * __a, uint64x1x3_t val)
28915 __builtin_aarch64_simd_ci __o;
28916 uint64x2x3_t temp;
28917 temp.val[0] = vcombine_u64 (val.val[0], vcreate_u64 (__AARCH64_UINT64_C (0)));
28918 temp.val[1] = vcombine_u64 (val.val[1], vcreate_u64 (__AARCH64_UINT64_C (0)));
28919 temp.val[2] = vcombine_u64 (val.val[2], vcreate_u64 (__AARCH64_UINT64_C (0)));
28920 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) temp.val[0], 0);
28921 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) temp.val[1], 1);
28922 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) temp.val[2], 2);
28923 __builtin_aarch64_st3di ((__builtin_aarch64_simd_di *) __a, __o);
28926 __extension__ extern __inline void
28927 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28928 vst3_f64 (float64_t * __a, float64x1x3_t val)
28930 __builtin_aarch64_simd_ci __o;
28931 float64x2x3_t temp;
28932 temp.val[0] = vcombine_f64 (val.val[0], vcreate_f64 (__AARCH64_UINT64_C (0)));
28933 temp.val[1] = vcombine_f64 (val.val[1], vcreate_f64 (__AARCH64_UINT64_C (0)));
28934 temp.val[2] = vcombine_f64 (val.val[2], vcreate_f64 (__AARCH64_UINT64_C (0)));
28935 __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) temp.val[0], 0);
28936 __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) temp.val[1], 1);
28937 __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) temp.val[2], 2);
28938 __builtin_aarch64_st3df ((__builtin_aarch64_simd_df *) __a, __o);
28941 __extension__ extern __inline void
28942 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28943 vst3_s8 (int8_t * __a, int8x8x3_t val)
28945 __builtin_aarch64_simd_ci __o;
28946 int8x16x3_t temp;
28947 temp.val[0] = vcombine_s8 (val.val[0], vcreate_s8 (__AARCH64_INT64_C (0)));
28948 temp.val[1] = vcombine_s8 (val.val[1], vcreate_s8 (__AARCH64_INT64_C (0)));
28949 temp.val[2] = vcombine_s8 (val.val[2], vcreate_s8 (__AARCH64_INT64_C (0)));
28950 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[0], 0);
28951 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[1], 1);
28952 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[2], 2);
28953 __builtin_aarch64_st3v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
28956 __extension__ extern __inline void
28957 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28958 vst3_p8 (poly8_t * __a, poly8x8x3_t val)
28960 __builtin_aarch64_simd_ci __o;
28961 poly8x16x3_t temp;
28962 temp.val[0] = vcombine_p8 (val.val[0], vcreate_p8 (__AARCH64_UINT64_C (0)));
28963 temp.val[1] = vcombine_p8 (val.val[1], vcreate_p8 (__AARCH64_UINT64_C (0)));
28964 temp.val[2] = vcombine_p8 (val.val[2], vcreate_p8 (__AARCH64_UINT64_C (0)));
28965 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[0], 0);
28966 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[1], 1);
28967 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[2], 2);
28968 __builtin_aarch64_st3v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
28971 __extension__ extern __inline void
28972 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28973 vst3_s16 (int16_t * __a, int16x4x3_t val)
28975 __builtin_aarch64_simd_ci __o;
28976 int16x8x3_t temp;
28977 temp.val[0] = vcombine_s16 (val.val[0], vcreate_s16 (__AARCH64_INT64_C (0)));
28978 temp.val[1] = vcombine_s16 (val.val[1], vcreate_s16 (__AARCH64_INT64_C (0)));
28979 temp.val[2] = vcombine_s16 (val.val[2], vcreate_s16 (__AARCH64_INT64_C (0)));
28980 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[0], 0);
28981 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[1], 1);
28982 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[2], 2);
28983 __builtin_aarch64_st3v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
28986 __extension__ extern __inline void
28987 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28988 vst3_p16 (poly16_t * __a, poly16x4x3_t val)
28990 __builtin_aarch64_simd_ci __o;
28991 poly16x8x3_t temp;
28992 temp.val[0] = vcombine_p16 (val.val[0], vcreate_p16 (__AARCH64_UINT64_C (0)));
28993 temp.val[1] = vcombine_p16 (val.val[1], vcreate_p16 (__AARCH64_UINT64_C (0)));
28994 temp.val[2] = vcombine_p16 (val.val[2], vcreate_p16 (__AARCH64_UINT64_C (0)));
28995 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[0], 0);
28996 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[1], 1);
28997 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[2], 2);
28998 __builtin_aarch64_st3v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
29001 __extension__ extern __inline void
29002 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29003 vst3_s32 (int32_t * __a, int32x2x3_t val)
29005 __builtin_aarch64_simd_ci __o;
29006 int32x4x3_t temp;
29007 temp.val[0] = vcombine_s32 (val.val[0], vcreate_s32 (__AARCH64_INT64_C (0)));
29008 temp.val[1] = vcombine_s32 (val.val[1], vcreate_s32 (__AARCH64_INT64_C (0)));
29009 temp.val[2] = vcombine_s32 (val.val[2], vcreate_s32 (__AARCH64_INT64_C (0)));
29010 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) temp.val[0], 0);
29011 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) temp.val[1], 1);
29012 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) temp.val[2], 2);
29013 __builtin_aarch64_st3v2si ((__builtin_aarch64_simd_si *) __a, __o);
29016 __extension__ extern __inline void
29017 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29018 vst3_u8 (uint8_t * __a, uint8x8x3_t val)
29020 __builtin_aarch64_simd_ci __o;
29021 uint8x16x3_t temp;
29022 temp.val[0] = vcombine_u8 (val.val[0], vcreate_u8 (__AARCH64_UINT64_C (0)));
29023 temp.val[1] = vcombine_u8 (val.val[1], vcreate_u8 (__AARCH64_UINT64_C (0)));
29024 temp.val[2] = vcombine_u8 (val.val[2], vcreate_u8 (__AARCH64_UINT64_C (0)));
29025 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[0], 0);
29026 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[1], 1);
29027 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[2], 2);
29028 __builtin_aarch64_st3v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
29031 __extension__ extern __inline void
29032 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29033 vst3_u16 (uint16_t * __a, uint16x4x3_t val)
29035 __builtin_aarch64_simd_ci __o;
29036 uint16x8x3_t temp;
29037 temp.val[0] = vcombine_u16 (val.val[0], vcreate_u16 (__AARCH64_UINT64_C (0)));
29038 temp.val[1] = vcombine_u16 (val.val[1], vcreate_u16 (__AARCH64_UINT64_C (0)));
29039 temp.val[2] = vcombine_u16 (val.val[2], vcreate_u16 (__AARCH64_UINT64_C (0)));
29040 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[0], 0);
29041 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[1], 1);
29042 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[2], 2);
29043 __builtin_aarch64_st3v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
29046 __extension__ extern __inline void
29047 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29048 vst3_u32 (uint32_t * __a, uint32x2x3_t val)
29050 __builtin_aarch64_simd_ci __o;
29051 uint32x4x3_t temp;
29052 temp.val[0] = vcombine_u32 (val.val[0], vcreate_u32 (__AARCH64_UINT64_C (0)));
29053 temp.val[1] = vcombine_u32 (val.val[1], vcreate_u32 (__AARCH64_UINT64_C (0)));
29054 temp.val[2] = vcombine_u32 (val.val[2], vcreate_u32 (__AARCH64_UINT64_C (0)));
29055 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) temp.val[0], 0);
29056 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) temp.val[1], 1);
29057 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) temp.val[2], 2);
29058 __builtin_aarch64_st3v2si ((__builtin_aarch64_simd_si *) __a, __o);
29061 __extension__ extern __inline void
29062 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29063 vst3_f16 (float16_t * __a, float16x4x3_t val)
29065 __builtin_aarch64_simd_ci __o;
29066 float16x8x3_t temp;
29067 temp.val[0] = vcombine_f16 (val.val[0], vcreate_f16 (__AARCH64_UINT64_C (0)));
29068 temp.val[1] = vcombine_f16 (val.val[1], vcreate_f16 (__AARCH64_UINT64_C (0)));
29069 temp.val[2] = vcombine_f16 (val.val[2], vcreate_f16 (__AARCH64_UINT64_C (0)));
29070 __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) temp.val[0], 0);
29071 __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) temp.val[1], 1);
29072 __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) temp.val[2], 2);
29073 __builtin_aarch64_st3v4hf ((__builtin_aarch64_simd_hf *) __a, __o);
29076 __extension__ extern __inline void
29077 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29078 vst3_f32 (float32_t * __a, float32x2x3_t val)
29080 __builtin_aarch64_simd_ci __o;
29081 float32x4x3_t temp;
29082 temp.val[0] = vcombine_f32 (val.val[0], vcreate_f32 (__AARCH64_UINT64_C (0)));
29083 temp.val[1] = vcombine_f32 (val.val[1], vcreate_f32 (__AARCH64_UINT64_C (0)));
29084 temp.val[2] = vcombine_f32 (val.val[2], vcreate_f32 (__AARCH64_UINT64_C (0)));
29085 __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) temp.val[0], 0);
29086 __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) temp.val[1], 1);
29087 __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) temp.val[2], 2);
29088 __builtin_aarch64_st3v2sf ((__builtin_aarch64_simd_sf *) __a, __o);
29091 __extension__ extern __inline void
29092 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29093 vst3_p64 (poly64_t * __a, poly64x1x3_t val)
29095 __builtin_aarch64_simd_ci __o;
29096 poly64x2x3_t temp;
29097 temp.val[0] = vcombine_p64 (val.val[0], vcreate_p64 (__AARCH64_UINT64_C (0)));
29098 temp.val[1] = vcombine_p64 (val.val[1], vcreate_p64 (__AARCH64_UINT64_C (0)));
29099 temp.val[2] = vcombine_p64 (val.val[2], vcreate_p64 (__AARCH64_UINT64_C (0)));
29100 __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
29101 (poly64x2_t) temp.val[0], 0);
29102 __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
29103 (poly64x2_t) temp.val[1], 1);
29104 __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
29105 (poly64x2_t) temp.val[2], 2);
29106 __builtin_aarch64_st3di ((__builtin_aarch64_simd_di *) __a, __o);
29109 __extension__ extern __inline void
29110 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29111 vst3q_s8 (int8_t * __a, int8x16x3_t val)
29113 __builtin_aarch64_simd_ci __o;
29114 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[0], 0);
29115 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[1], 1);
29116 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[2], 2);
29117 __builtin_aarch64_st3v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
29120 __extension__ extern __inline void
29121 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29122 vst3q_p8 (poly8_t * __a, poly8x16x3_t val)
29124 __builtin_aarch64_simd_ci __o;
29125 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[0], 0);
29126 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[1], 1);
29127 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[2], 2);
29128 __builtin_aarch64_st3v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
29131 __extension__ extern __inline void
29132 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29133 vst3q_s16 (int16_t * __a, int16x8x3_t val)
29135 __builtin_aarch64_simd_ci __o;
29136 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[0], 0);
29137 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[1], 1);
29138 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[2], 2);
29139 __builtin_aarch64_st3v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
29142 __extension__ extern __inline void
29143 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29144 vst3q_p16 (poly16_t * __a, poly16x8x3_t val)
29146 __builtin_aarch64_simd_ci __o;
29147 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[0], 0);
29148 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[1], 1);
29149 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[2], 2);
29150 __builtin_aarch64_st3v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
29153 __extension__ extern __inline void
29154 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29155 vst3q_s32 (int32_t * __a, int32x4x3_t val)
29157 __builtin_aarch64_simd_ci __o;
29158 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) val.val[0], 0);
29159 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) val.val[1], 1);
29160 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) val.val[2], 2);
29161 __builtin_aarch64_st3v4si ((__builtin_aarch64_simd_si *) __a, __o);
29164 __extension__ extern __inline void
29165 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29166 vst3q_s64 (int64_t * __a, int64x2x3_t val)
29168 __builtin_aarch64_simd_ci __o;
29169 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) val.val[0], 0);
29170 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) val.val[1], 1);
29171 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) val.val[2], 2);
29172 __builtin_aarch64_st3v2di ((__builtin_aarch64_simd_di *) __a, __o);
29175 __extension__ extern __inline void
29176 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29177 vst3q_u8 (uint8_t * __a, uint8x16x3_t val)
29179 __builtin_aarch64_simd_ci __o;
29180 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[0], 0);
29181 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[1], 1);
29182 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[2], 2);
29183 __builtin_aarch64_st3v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
29186 __extension__ extern __inline void
29187 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29188 vst3q_u16 (uint16_t * __a, uint16x8x3_t val)
29190 __builtin_aarch64_simd_ci __o;
29191 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[0], 0);
29192 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[1], 1);
29193 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[2], 2);
29194 __builtin_aarch64_st3v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
29197 __extension__ extern __inline void
29198 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29199 vst3q_u32 (uint32_t * __a, uint32x4x3_t val)
29201 __builtin_aarch64_simd_ci __o;
29202 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) val.val[0], 0);
29203 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) val.val[1], 1);
29204 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) val.val[2], 2);
29205 __builtin_aarch64_st3v4si ((__builtin_aarch64_simd_si *) __a, __o);
29208 __extension__ extern __inline void
29209 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29210 vst3q_u64 (uint64_t * __a, uint64x2x3_t val)
29212 __builtin_aarch64_simd_ci __o;
29213 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) val.val[0], 0);
29214 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) val.val[1], 1);
29215 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) val.val[2], 2);
29216 __builtin_aarch64_st3v2di ((__builtin_aarch64_simd_di *) __a, __o);
29219 __extension__ extern __inline void
29220 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29221 vst3q_f16 (float16_t * __a, float16x8x3_t val)
29223 __builtin_aarch64_simd_ci __o;
29224 __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) val.val[0], 0);
29225 __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) val.val[1], 1);
29226 __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) val.val[2], 2);
29227 __builtin_aarch64_st3v8hf ((__builtin_aarch64_simd_hf *) __a, __o);
29230 __extension__ extern __inline void
29231 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29232 vst3q_f32 (float32_t * __a, float32x4x3_t val)
29234 __builtin_aarch64_simd_ci __o;
29235 __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) val.val[0], 0);
29236 __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) val.val[1], 1);
29237 __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) val.val[2], 2);
29238 __builtin_aarch64_st3v4sf ((__builtin_aarch64_simd_sf *) __a, __o);
29241 __extension__ extern __inline void
29242 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29243 vst3q_f64 (float64_t * __a, float64x2x3_t val)
29245 __builtin_aarch64_simd_ci __o;
29246 __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) val.val[0], 0);
29247 __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) val.val[1], 1);
29248 __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) val.val[2], 2);
29249 __builtin_aarch64_st3v2df ((__builtin_aarch64_simd_df *) __a, __o);
29252 __extension__ extern __inline void
29253 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29254 vst3q_p64 (poly64_t * __a, poly64x2x3_t val)
29256 __builtin_aarch64_simd_ci __o;
29257 __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
29258 (poly64x2_t) val.val[0], 0);
29259 __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
29260 (poly64x2_t) val.val[1], 1);
29261 __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
29262 (poly64x2_t) val.val[2], 2);
29263 __builtin_aarch64_st3v2di ((__builtin_aarch64_simd_di *) __a, __o);
29266 __extension__ extern __inline void
29267 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29268 vst4_s64 (int64_t * __a, int64x1x4_t val)
29270 __builtin_aarch64_simd_xi __o;
29271 int64x2x4_t temp;
29272 temp.val[0] = vcombine_s64 (val.val[0], vcreate_s64 (__AARCH64_INT64_C (0)));
29273 temp.val[1] = vcombine_s64 (val.val[1], vcreate_s64 (__AARCH64_INT64_C (0)));
29274 temp.val[2] = vcombine_s64 (val.val[2], vcreate_s64 (__AARCH64_INT64_C (0)));
29275 temp.val[3] = vcombine_s64 (val.val[3], vcreate_s64 (__AARCH64_INT64_C (0)));
29276 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) temp.val[0], 0);
29277 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) temp.val[1], 1);
29278 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) temp.val[2], 2);
29279 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) temp.val[3], 3);
29280 __builtin_aarch64_st4di ((__builtin_aarch64_simd_di *) __a, __o);
29283 __extension__ extern __inline void
29284 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29285 vst4_u64 (uint64_t * __a, uint64x1x4_t val)
29287 __builtin_aarch64_simd_xi __o;
29288 uint64x2x4_t temp;
29289 temp.val[0] = vcombine_u64 (val.val[0], vcreate_u64 (__AARCH64_UINT64_C (0)));
29290 temp.val[1] = vcombine_u64 (val.val[1], vcreate_u64 (__AARCH64_UINT64_C (0)));
29291 temp.val[2] = vcombine_u64 (val.val[2], vcreate_u64 (__AARCH64_UINT64_C (0)));
29292 temp.val[3] = vcombine_u64 (val.val[3], vcreate_u64 (__AARCH64_UINT64_C (0)));
29293 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) temp.val[0], 0);
29294 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) temp.val[1], 1);
29295 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) temp.val[2], 2);
29296 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) temp.val[3], 3);
29297 __builtin_aarch64_st4di ((__builtin_aarch64_simd_di *) __a, __o);
29300 __extension__ extern __inline void
29301 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29302 vst4_f64 (float64_t * __a, float64x1x4_t val)
29304 __builtin_aarch64_simd_xi __o;
29305 float64x2x4_t temp;
29306 temp.val[0] = vcombine_f64 (val.val[0], vcreate_f64 (__AARCH64_UINT64_C (0)));
29307 temp.val[1] = vcombine_f64 (val.val[1], vcreate_f64 (__AARCH64_UINT64_C (0)));
29308 temp.val[2] = vcombine_f64 (val.val[2], vcreate_f64 (__AARCH64_UINT64_C (0)));
29309 temp.val[3] = vcombine_f64 (val.val[3], vcreate_f64 (__AARCH64_UINT64_C (0)));
29310 __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) temp.val[0], 0);
29311 __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) temp.val[1], 1);
29312 __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) temp.val[2], 2);
29313 __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) temp.val[3], 3);
29314 __builtin_aarch64_st4df ((__builtin_aarch64_simd_df *) __a, __o);
29317 __extension__ extern __inline void
29318 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29319 vst4_s8 (int8_t * __a, int8x8x4_t val)
29321 __builtin_aarch64_simd_xi __o;
29322 int8x16x4_t temp;
29323 temp.val[0] = vcombine_s8 (val.val[0], vcreate_s8 (__AARCH64_INT64_C (0)));
29324 temp.val[1] = vcombine_s8 (val.val[1], vcreate_s8 (__AARCH64_INT64_C (0)));
29325 temp.val[2] = vcombine_s8 (val.val[2], vcreate_s8 (__AARCH64_INT64_C (0)));
29326 temp.val[3] = vcombine_s8 (val.val[3], vcreate_s8 (__AARCH64_INT64_C (0)));
29327 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) temp.val[0], 0);
29328 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) temp.val[1], 1);
29329 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) temp.val[2], 2);
29330 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) temp.val[3], 3);
29331 __builtin_aarch64_st4v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
29334 __extension__ extern __inline void
29335 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29336 vst4_p8 (poly8_t * __a, poly8x8x4_t val)
29338 __builtin_aarch64_simd_xi __o;
29339 poly8x16x4_t temp;
29340 temp.val[0] = vcombine_p8 (val.val[0], vcreate_p8 (__AARCH64_UINT64_C (0)));
29341 temp.val[1] = vcombine_p8 (val.val[1], vcreate_p8 (__AARCH64_UINT64_C (0)));
29342 temp.val[2] = vcombine_p8 (val.val[2], vcreate_p8 (__AARCH64_UINT64_C (0)));
29343 temp.val[3] = vcombine_p8 (val.val[3], vcreate_p8 (__AARCH64_UINT64_C (0)));
29344 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) temp.val[0], 0);
29345 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) temp.val[1], 1);
29346 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) temp.val[2], 2);
29347 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) temp.val[3], 3);
29348 __builtin_aarch64_st4v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
29351 __extension__ extern __inline void
29352 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29353 vst4_s16 (int16_t * __a, int16x4x4_t val)
29355 __builtin_aarch64_simd_xi __o;
29356 int16x8x4_t temp;
29357 temp.val[0] = vcombine_s16 (val.val[0], vcreate_s16 (__AARCH64_INT64_C (0)));
29358 temp.val[1] = vcombine_s16 (val.val[1], vcreate_s16 (__AARCH64_INT64_C (0)));
29359 temp.val[2] = vcombine_s16 (val.val[2], vcreate_s16 (__AARCH64_INT64_C (0)));
29360 temp.val[3] = vcombine_s16 (val.val[3], vcreate_s16 (__AARCH64_INT64_C (0)));
29361 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) temp.val[0], 0);
29362 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) temp.val[1], 1);
29363 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) temp.val[2], 2);
29364 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) temp.val[3], 3);
29365 __builtin_aarch64_st4v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
29368 __extension__ extern __inline void
29369 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29370 vst4_p16 (poly16_t * __a, poly16x4x4_t val)
29372 __builtin_aarch64_simd_xi __o;
29373 poly16x8x4_t temp;
29374 temp.val[0] = vcombine_p16 (val.val[0], vcreate_p16 (__AARCH64_UINT64_C (0)));
29375 temp.val[1] = vcombine_p16 (val.val[1], vcreate_p16 (__AARCH64_UINT64_C (0)));
29376 temp.val[2] = vcombine_p16 (val.val[2], vcreate_p16 (__AARCH64_UINT64_C (0)));
29377 temp.val[3] = vcombine_p16 (val.val[3], vcreate_p16 (__AARCH64_UINT64_C (0)));
29378 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) temp.val[0], 0);
29379 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) temp.val[1], 1);
29380 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) temp.val[2], 2);
29381 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) temp.val[3], 3);
29382 __builtin_aarch64_st4v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
29385 __extension__ extern __inline void
29386 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29387 vst4_s32 (int32_t * __a, int32x2x4_t val)
29389 __builtin_aarch64_simd_xi __o;
29390 int32x4x4_t temp;
29391 temp.val[0] = vcombine_s32 (val.val[0], vcreate_s32 (__AARCH64_INT64_C (0)));
29392 temp.val[1] = vcombine_s32 (val.val[1], vcreate_s32 (__AARCH64_INT64_C (0)));
29393 temp.val[2] = vcombine_s32 (val.val[2], vcreate_s32 (__AARCH64_INT64_C (0)));
29394 temp.val[3] = vcombine_s32 (val.val[3], vcreate_s32 (__AARCH64_INT64_C (0)));
29395 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) temp.val[0], 0);
29396 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) temp.val[1], 1);
29397 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) temp.val[2], 2);
29398 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) temp.val[3], 3);
29399 __builtin_aarch64_st4v2si ((__builtin_aarch64_simd_si *) __a, __o);
29402 __extension__ extern __inline void
29403 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29404 vst4_u8 (uint8_t * __a, uint8x8x4_t val)
29406 __builtin_aarch64_simd_xi __o;
29407 uint8x16x4_t temp;
29408 temp.val[0] = vcombine_u8 (val.val[0], vcreate_u8 (__AARCH64_UINT64_C (0)));
29409 temp.val[1] = vcombine_u8 (val.val[1], vcreate_u8 (__AARCH64_UINT64_C (0)));
29410 temp.val[2] = vcombine_u8 (val.val[2], vcreate_u8 (__AARCH64_UINT64_C (0)));
29411 temp.val[3] = vcombine_u8 (val.val[3], vcreate_u8 (__AARCH64_UINT64_C (0)));
29412 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) temp.val[0], 0);
29413 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) temp.val[1], 1);
29414 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) temp.val[2], 2);
29415 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) temp.val[3], 3);
29416 __builtin_aarch64_st4v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
29419 __extension__ extern __inline void
29420 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29421 vst4_u16 (uint16_t * __a, uint16x4x4_t val)
29423 __builtin_aarch64_simd_xi __o;
29424 uint16x8x4_t temp;
29425 temp.val[0] = vcombine_u16 (val.val[0], vcreate_u16 (__AARCH64_UINT64_C (0)));
29426 temp.val[1] = vcombine_u16 (val.val[1], vcreate_u16 (__AARCH64_UINT64_C (0)));
29427 temp.val[2] = vcombine_u16 (val.val[2], vcreate_u16 (__AARCH64_UINT64_C (0)));
29428 temp.val[3] = vcombine_u16 (val.val[3], vcreate_u16 (__AARCH64_UINT64_C (0)));
29429 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) temp.val[0], 0);
29430 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) temp.val[1], 1);
29431 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) temp.val[2], 2);
29432 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) temp.val[3], 3);
29433 __builtin_aarch64_st4v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
29436 __extension__ extern __inline void
29437 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29438 vst4_u32 (uint32_t * __a, uint32x2x4_t val)
29440 __builtin_aarch64_simd_xi __o;
29441 uint32x4x4_t temp;
29442 temp.val[0] = vcombine_u32 (val.val[0], vcreate_u32 (__AARCH64_UINT64_C (0)));
29443 temp.val[1] = vcombine_u32 (val.val[1], vcreate_u32 (__AARCH64_UINT64_C (0)));
29444 temp.val[2] = vcombine_u32 (val.val[2], vcreate_u32 (__AARCH64_UINT64_C (0)));
29445 temp.val[3] = vcombine_u32 (val.val[3], vcreate_u32 (__AARCH64_UINT64_C (0)));
29446 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) temp.val[0], 0);
29447 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) temp.val[1], 1);
29448 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) temp.val[2], 2);
29449 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) temp.val[3], 3);
29450 __builtin_aarch64_st4v2si ((__builtin_aarch64_simd_si *) __a, __o);
29453 __extension__ extern __inline void
29454 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29455 vst4_f16 (float16_t * __a, float16x4x4_t val)
29457 __builtin_aarch64_simd_xi __o;
29458 float16x8x4_t temp;
29459 temp.val[0] = vcombine_f16 (val.val[0], vcreate_f16 (__AARCH64_UINT64_C (0)));
29460 temp.val[1] = vcombine_f16 (val.val[1], vcreate_f16 (__AARCH64_UINT64_C (0)));
29461 temp.val[2] = vcombine_f16 (val.val[2], vcreate_f16 (__AARCH64_UINT64_C (0)));
29462 temp.val[3] = vcombine_f16 (val.val[3], vcreate_f16 (__AARCH64_UINT64_C (0)));
29463 __o = __builtin_aarch64_set_qregxiv8hf (__o, (float16x8_t) temp.val[0], 0);
29464 __o = __builtin_aarch64_set_qregxiv8hf (__o, (float16x8_t) temp.val[1], 1);
29465 __o = __builtin_aarch64_set_qregxiv8hf (__o, (float16x8_t) temp.val[2], 2);
29466 __o = __builtin_aarch64_set_qregxiv8hf (__o, (float16x8_t) temp.val[3], 3);
29467 __builtin_aarch64_st4v4hf ((__builtin_aarch64_simd_hf *) __a, __o);
29470 __extension__ extern __inline void
29471 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29472 vst4_f32 (float32_t * __a, float32x2x4_t val)
29474 __builtin_aarch64_simd_xi __o;
29475 float32x4x4_t temp;
29476 temp.val[0] = vcombine_f32 (val.val[0], vcreate_f32 (__AARCH64_UINT64_C (0)));
29477 temp.val[1] = vcombine_f32 (val.val[1], vcreate_f32 (__AARCH64_UINT64_C (0)));
29478 temp.val[2] = vcombine_f32 (val.val[2], vcreate_f32 (__AARCH64_UINT64_C (0)));
29479 temp.val[3] = vcombine_f32 (val.val[3], vcreate_f32 (__AARCH64_UINT64_C (0)));
29480 __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) temp.val[0], 0);
29481 __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) temp.val[1], 1);
29482 __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) temp.val[2], 2);
29483 __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) temp.val[3], 3);
29484 __builtin_aarch64_st4v2sf ((__builtin_aarch64_simd_sf *) __a, __o);
29487 __extension__ extern __inline void
29488 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29489 vst4_p64 (poly64_t * __a, poly64x1x4_t val)
29491 __builtin_aarch64_simd_xi __o;
29492 poly64x2x4_t temp;
29493 temp.val[0] = vcombine_p64 (val.val[0], vcreate_p64 (__AARCH64_UINT64_C (0)));
29494 temp.val[1] = vcombine_p64 (val.val[1], vcreate_p64 (__AARCH64_UINT64_C (0)));
29495 temp.val[2] = vcombine_p64 (val.val[2], vcreate_p64 (__AARCH64_UINT64_C (0)));
29496 temp.val[3] = vcombine_p64 (val.val[3], vcreate_p64 (__AARCH64_UINT64_C (0)));
29497 __o = __builtin_aarch64_set_qregxiv2di_ssps (__o,
29498 (poly64x2_t) temp.val[0], 0);
29499 __o = __builtin_aarch64_set_qregxiv2di_ssps (__o,
29500 (poly64x2_t) temp.val[1], 1);
29501 __o = __builtin_aarch64_set_qregxiv2di_ssps (__o,
29502 (poly64x2_t) temp.val[2], 2);
29503 __o = __builtin_aarch64_set_qregxiv2di_ssps (__o,
29504 (poly64x2_t) temp.val[3], 3);
29505 __builtin_aarch64_st4di ((__builtin_aarch64_simd_di *) __a, __o);
29508 __extension__ extern __inline void
29509 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29510 vst4q_s8 (int8_t * __a, int8x16x4_t val)
29512 __builtin_aarch64_simd_xi __o;
29513 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[0], 0);
29514 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[1], 1);
29515 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[2], 2);
29516 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[3], 3);
29517 __builtin_aarch64_st4v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
29520 __extension__ extern __inline void
29521 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29522 vst4q_p8 (poly8_t * __a, poly8x16x4_t val)
29524 __builtin_aarch64_simd_xi __o;
29525 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[0], 0);
29526 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[1], 1);
29527 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[2], 2);
29528 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[3], 3);
29529 __builtin_aarch64_st4v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
29532 __extension__ extern __inline void
29533 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29534 vst4q_s16 (int16_t * __a, int16x8x4_t val)
29536 __builtin_aarch64_simd_xi __o;
29537 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[0], 0);
29538 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[1], 1);
29539 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[2], 2);
29540 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[3], 3);
29541 __builtin_aarch64_st4v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
29544 __extension__ extern __inline void
29545 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29546 vst4q_p16 (poly16_t * __a, poly16x8x4_t val)
29548 __builtin_aarch64_simd_xi __o;
29549 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[0], 0);
29550 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[1], 1);
29551 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[2], 2);
29552 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[3], 3);
29553 __builtin_aarch64_st4v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
29556 __extension__ extern __inline void
29557 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29558 vst4q_s32 (int32_t * __a, int32x4x4_t val)
29560 __builtin_aarch64_simd_xi __o;
29561 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) val.val[0], 0);
29562 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) val.val[1], 1);
29563 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) val.val[2], 2);
29564 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) val.val[3], 3);
29565 __builtin_aarch64_st4v4si ((__builtin_aarch64_simd_si *) __a, __o);
29568 __extension__ extern __inline void
29569 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29570 vst4q_s64 (int64_t * __a, int64x2x4_t val)
29572 __builtin_aarch64_simd_xi __o;
29573 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) val.val[0], 0);
29574 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) val.val[1], 1);
29575 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) val.val[2], 2);
29576 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) val.val[3], 3);
29577 __builtin_aarch64_st4v2di ((__builtin_aarch64_simd_di *) __a, __o);
29580 __extension__ extern __inline void
29581 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29582 vst4q_u8 (uint8_t * __a, uint8x16x4_t val)
29584 __builtin_aarch64_simd_xi __o;
29585 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[0], 0);
29586 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[1], 1);
29587 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[2], 2);
29588 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[3], 3);
29589 __builtin_aarch64_st4v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
29592 __extension__ extern __inline void
29593 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29594 vst4q_u16 (uint16_t * __a, uint16x8x4_t val)
29596 __builtin_aarch64_simd_xi __o;
29597 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[0], 0);
29598 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[1], 1);
29599 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[2], 2);
29600 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[3], 3);
29601 __builtin_aarch64_st4v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
29604 __extension__ extern __inline void
29605 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29606 vst4q_u32 (uint32_t * __a, uint32x4x4_t val)
29608 __builtin_aarch64_simd_xi __o;
29609 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) val.val[0], 0);
29610 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) val.val[1], 1);
29611 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) val.val[2], 2);
29612 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) val.val[3], 3);
29613 __builtin_aarch64_st4v4si ((__builtin_aarch64_simd_si *) __a, __o);
29616 __extension__ extern __inline void
29617 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29618 vst4q_u64 (uint64_t * __a, uint64x2x4_t val)
29620 __builtin_aarch64_simd_xi __o;
29621 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) val.val[0], 0);
29622 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) val.val[1], 1);
29623 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) val.val[2], 2);
29624 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) val.val[3], 3);
29625 __builtin_aarch64_st4v2di ((__builtin_aarch64_simd_di *) __a, __o);
29628 __extension__ extern __inline void
29629 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29630 vst4q_f16 (float16_t * __a, float16x8x4_t val)
29632 __builtin_aarch64_simd_xi __o;
29633 __o = __builtin_aarch64_set_qregxiv8hf (__o, (float16x8_t) val.val[0], 0);
29634 __o = __builtin_aarch64_set_qregxiv8hf (__o, (float16x8_t) val.val[1], 1);
29635 __o = __builtin_aarch64_set_qregxiv8hf (__o, (float16x8_t) val.val[2], 2);
29636 __o = __builtin_aarch64_set_qregxiv8hf (__o, (float16x8_t) val.val[3], 3);
29637 __builtin_aarch64_st4v8hf ((__builtin_aarch64_simd_hf *) __a, __o);
29640 __extension__ extern __inline void
29641 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29642 vst4q_f32 (float32_t * __a, float32x4x4_t val)
29644 __builtin_aarch64_simd_xi __o;
29645 __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) val.val[0], 0);
29646 __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) val.val[1], 1);
29647 __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) val.val[2], 2);
29648 __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) val.val[3], 3);
29649 __builtin_aarch64_st4v4sf ((__builtin_aarch64_simd_sf *) __a, __o);
29652 __extension__ extern __inline void
29653 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29654 vst4q_f64 (float64_t * __a, float64x2x4_t val)
29656 __builtin_aarch64_simd_xi __o;
29657 __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) val.val[0], 0);
29658 __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) val.val[1], 1);
29659 __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) val.val[2], 2);
29660 __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) val.val[3], 3);
29661 __builtin_aarch64_st4v2df ((__builtin_aarch64_simd_df *) __a, __o);
29664 __extension__ extern __inline void
29665 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29666 vst4q_p64 (poly64_t * __a, poly64x2x4_t val)
29668 __builtin_aarch64_simd_xi __o;
29669 __o = __builtin_aarch64_set_qregxiv2di_ssps (__o,
29670 (poly64x2_t) val.val[0], 0);
29671 __o = __builtin_aarch64_set_qregxiv2di_ssps (__o,
29672 (poly64x2_t) val.val[1], 1);
29673 __o = __builtin_aarch64_set_qregxiv2di_ssps (__o,
29674 (poly64x2_t) val.val[2], 2);
29675 __o = __builtin_aarch64_set_qregxiv2di_ssps (__o,
29676 (poly64x2_t) val.val[3], 3);
29677 __builtin_aarch64_st4v2di ((__builtin_aarch64_simd_di *) __a, __o);
29680 /* vsub */
29682 __extension__ extern __inline int64_t
29683 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29684 vsubd_s64 (int64_t __a, int64_t __b)
29686 return __a - __b;
29689 __extension__ extern __inline uint64_t
29690 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29691 vsubd_u64 (uint64_t __a, uint64_t __b)
29693 return __a - __b;
29696 /* vtbx1 */
29698 __extension__ extern __inline int8x8_t
29699 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29700 vtbx1_s8 (int8x8_t __r, int8x8_t __tab, int8x8_t __idx)
29702 uint8x8_t __mask = vclt_u8 (vreinterpret_u8_s8 (__idx),
29703 vmov_n_u8 (8));
29704 int8x8_t __tbl = vtbl1_s8 (__tab, __idx);
29706 return vbsl_s8 (__mask, __tbl, __r);
29709 __extension__ extern __inline uint8x8_t
29710 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29711 vtbx1_u8 (uint8x8_t __r, uint8x8_t __tab, uint8x8_t __idx)
29713 uint8x8_t __mask = vclt_u8 (__idx, vmov_n_u8 (8));
29714 uint8x8_t __tbl = vtbl1_u8 (__tab, __idx);
29716 return vbsl_u8 (__mask, __tbl, __r);
29719 __extension__ extern __inline poly8x8_t
29720 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29721 vtbx1_p8 (poly8x8_t __r, poly8x8_t __tab, uint8x8_t __idx)
29723 uint8x8_t __mask = vclt_u8 (__idx, vmov_n_u8 (8));
29724 poly8x8_t __tbl = vtbl1_p8 (__tab, __idx);
29726 return vbsl_p8 (__mask, __tbl, __r);
29729 /* vtbx3 */
29731 __extension__ extern __inline int8x8_t
29732 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29733 vtbx3_s8 (int8x8_t __r, int8x8x3_t __tab, int8x8_t __idx)
29735 uint8x8_t __mask = vclt_u8 (vreinterpret_u8_s8 (__idx),
29736 vmov_n_u8 (24));
29737 int8x8_t __tbl = vtbl3_s8 (__tab, __idx);
29739 return vbsl_s8 (__mask, __tbl, __r);
29742 __extension__ extern __inline uint8x8_t
29743 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29744 vtbx3_u8 (uint8x8_t __r, uint8x8x3_t __tab, uint8x8_t __idx)
29746 uint8x8_t __mask = vclt_u8 (__idx, vmov_n_u8 (24));
29747 uint8x8_t __tbl = vtbl3_u8 (__tab, __idx);
29749 return vbsl_u8 (__mask, __tbl, __r);
29752 __extension__ extern __inline poly8x8_t
29753 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29754 vtbx3_p8 (poly8x8_t __r, poly8x8x3_t __tab, uint8x8_t __idx)
29756 uint8x8_t __mask = vclt_u8 (__idx, vmov_n_u8 (24));
29757 poly8x8_t __tbl = vtbl3_p8 (__tab, __idx);
29759 return vbsl_p8 (__mask, __tbl, __r);
29762 /* vtbx4 */
29764 __extension__ extern __inline int8x8_t
29765 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29766 vtbx4_s8 (int8x8_t __r, int8x8x4_t __tab, int8x8_t __idx)
29768 int8x8_t result;
29769 int8x16x2_t temp;
29770 __builtin_aarch64_simd_oi __o;
29771 temp.val[0] = vcombine_s8 (__tab.val[0], __tab.val[1]);
29772 temp.val[1] = vcombine_s8 (__tab.val[2], __tab.val[3]);
29773 __o = __builtin_aarch64_set_qregoiv16qi (__o,
29774 (int8x16_t) temp.val[0], 0);
29775 __o = __builtin_aarch64_set_qregoiv16qi (__o,
29776 (int8x16_t) temp.val[1], 1);
29777 result = __builtin_aarch64_tbx4v8qi (__r, __o, __idx);
29778 return result;
29781 __extension__ extern __inline uint8x8_t
29782 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29783 vtbx4_u8 (uint8x8_t __r, uint8x8x4_t __tab, uint8x8_t __idx)
29785 uint8x8_t result;
29786 uint8x16x2_t temp;
29787 __builtin_aarch64_simd_oi __o;
29788 temp.val[0] = vcombine_u8 (__tab.val[0], __tab.val[1]);
29789 temp.val[1] = vcombine_u8 (__tab.val[2], __tab.val[3]);
29790 __o = __builtin_aarch64_set_qregoiv16qi (__o,
29791 (int8x16_t) temp.val[0], 0);
29792 __o = __builtin_aarch64_set_qregoiv16qi (__o,
29793 (int8x16_t) temp.val[1], 1);
29794 result = (uint8x8_t)__builtin_aarch64_tbx4v8qi ((int8x8_t)__r, __o,
29795 (int8x8_t)__idx);
29796 return result;
29799 __extension__ extern __inline poly8x8_t
29800 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29801 vtbx4_p8 (poly8x8_t __r, poly8x8x4_t __tab, uint8x8_t __idx)
29803 poly8x8_t result;
29804 poly8x16x2_t temp;
29805 __builtin_aarch64_simd_oi __o;
29806 temp.val[0] = vcombine_p8 (__tab.val[0], __tab.val[1]);
29807 temp.val[1] = vcombine_p8 (__tab.val[2], __tab.val[3]);
29808 __o = __builtin_aarch64_set_qregoiv16qi (__o,
29809 (int8x16_t) temp.val[0], 0);
29810 __o = __builtin_aarch64_set_qregoiv16qi (__o,
29811 (int8x16_t) temp.val[1], 1);
29812 result = (poly8x8_t)__builtin_aarch64_tbx4v8qi ((int8x8_t)__r, __o,
29813 (int8x8_t)__idx);
29814 return result;
29817 /* vtrn */
29819 __extension__ extern __inline float16x4_t
29820 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29821 vtrn1_f16 (float16x4_t __a, float16x4_t __b)
29823 #ifdef __AARCH64EB__
29824 return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 1, 7, 3});
29825 #else
29826 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 2, 6});
29827 #endif
29830 __extension__ extern __inline float32x2_t
29831 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29832 vtrn1_f32 (float32x2_t __a, float32x2_t __b)
29834 #ifdef __AARCH64EB__
29835 return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
29836 #else
29837 return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
29838 #endif
29841 __extension__ extern __inline poly8x8_t
29842 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29843 vtrn1_p8 (poly8x8_t __a, poly8x8_t __b)
29845 #ifdef __AARCH64EB__
29846 return __builtin_shuffle (__a, __b, (uint8x8_t) {9, 1, 11, 3, 13, 5, 15, 7});
29847 #else
29848 return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 8, 2, 10, 4, 12, 6, 14});
29849 #endif
29852 __extension__ extern __inline poly16x4_t
29853 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29854 vtrn1_p16 (poly16x4_t __a, poly16x4_t __b)
29856 #ifdef __AARCH64EB__
29857 return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 1, 7, 3});
29858 #else
29859 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 2, 6});
29860 #endif
29863 __extension__ extern __inline int8x8_t
29864 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29865 vtrn1_s8 (int8x8_t __a, int8x8_t __b)
29867 #ifdef __AARCH64EB__
29868 return __builtin_shuffle (__a, __b, (uint8x8_t) {9, 1, 11, 3, 13, 5, 15, 7});
29869 #else
29870 return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 8, 2, 10, 4, 12, 6, 14});
29871 #endif
29874 __extension__ extern __inline int16x4_t
29875 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29876 vtrn1_s16 (int16x4_t __a, int16x4_t __b)
29878 #ifdef __AARCH64EB__
29879 return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 1, 7, 3});
29880 #else
29881 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 2, 6});
29882 #endif
29885 __extension__ extern __inline int32x2_t
29886 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29887 vtrn1_s32 (int32x2_t __a, int32x2_t __b)
29889 #ifdef __AARCH64EB__
29890 return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
29891 #else
29892 return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
29893 #endif
29896 __extension__ extern __inline uint8x8_t
29897 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29898 vtrn1_u8 (uint8x8_t __a, uint8x8_t __b)
29900 #ifdef __AARCH64EB__
29901 return __builtin_shuffle (__a, __b, (uint8x8_t) {9, 1, 11, 3, 13, 5, 15, 7});
29902 #else
29903 return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 8, 2, 10, 4, 12, 6, 14});
29904 #endif
29907 __extension__ extern __inline uint16x4_t
29908 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29909 vtrn1_u16 (uint16x4_t __a, uint16x4_t __b)
29911 #ifdef __AARCH64EB__
29912 return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 1, 7, 3});
29913 #else
29914 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 2, 6});
29915 #endif
29918 __extension__ extern __inline uint32x2_t
29919 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29920 vtrn1_u32 (uint32x2_t __a, uint32x2_t __b)
29922 #ifdef __AARCH64EB__
29923 return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
29924 #else
29925 return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
29926 #endif
29929 __extension__ extern __inline float16x8_t
29930 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29931 vtrn1q_f16 (float16x8_t __a, float16x8_t __b)
29933 #ifdef __AARCH64EB__
29934 return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 1, 11, 3, 13, 5, 15, 7});
29935 #else
29936 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 8, 2, 10, 4, 12, 6, 14});
29937 #endif
29940 __extension__ extern __inline float32x4_t
29941 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29942 vtrn1q_f32 (float32x4_t __a, float32x4_t __b)
29944 #ifdef __AARCH64EB__
29945 return __builtin_shuffle (__a, __b, (uint32x4_t) {5, 1, 7, 3});
29946 #else
29947 return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 4, 2, 6});
29948 #endif
29951 __extension__ extern __inline float64x2_t
29952 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29953 vtrn1q_f64 (float64x2_t __a, float64x2_t __b)
29955 #ifdef __AARCH64EB__
29956 return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
29957 #else
29958 return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
29959 #endif
29962 __extension__ extern __inline poly8x16_t
29963 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29964 vtrn1q_p8 (poly8x16_t __a, poly8x16_t __b)
29966 #ifdef __AARCH64EB__
29967 return __builtin_shuffle (__a, __b,
29968 (uint8x16_t) {17, 1, 19, 3, 21, 5, 23, 7, 25, 9, 27, 11, 29, 13, 31, 15});
29969 #else
29970 return __builtin_shuffle (__a, __b,
29971 (uint8x16_t) {0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30});
29972 #endif
29975 __extension__ extern __inline poly16x8_t
29976 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29977 vtrn1q_p16 (poly16x8_t __a, poly16x8_t __b)
29979 #ifdef __AARCH64EB__
29980 return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 1, 11, 3, 13, 5, 15, 7});
29981 #else
29982 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 8, 2, 10, 4, 12, 6, 14});
29983 #endif
29986 __extension__ extern __inline int8x16_t
29987 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29988 vtrn1q_s8 (int8x16_t __a, int8x16_t __b)
29990 #ifdef __AARCH64EB__
29991 return __builtin_shuffle (__a, __b,
29992 (uint8x16_t) {17, 1, 19, 3, 21, 5, 23, 7, 25, 9, 27, 11, 29, 13, 31, 15});
29993 #else
29994 return __builtin_shuffle (__a, __b,
29995 (uint8x16_t) {0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30});
29996 #endif
29999 __extension__ extern __inline int16x8_t
30000 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30001 vtrn1q_s16 (int16x8_t __a, int16x8_t __b)
30003 #ifdef __AARCH64EB__
30004 return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 1, 11, 3, 13, 5, 15, 7});
30005 #else
30006 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 8, 2, 10, 4, 12, 6, 14});
30007 #endif
30010 __extension__ extern __inline int32x4_t
30011 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30012 vtrn1q_s32 (int32x4_t __a, int32x4_t __b)
30014 #ifdef __AARCH64EB__
30015 return __builtin_shuffle (__a, __b, (uint32x4_t) {5, 1, 7, 3});
30016 #else
30017 return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 4, 2, 6});
30018 #endif
30021 __extension__ extern __inline int64x2_t
30022 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30023 vtrn1q_s64 (int64x2_t __a, int64x2_t __b)
30025 #ifdef __AARCH64EB__
30026 return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
30027 #else
30028 return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
30029 #endif
30032 __extension__ extern __inline uint8x16_t
30033 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30034 vtrn1q_u8 (uint8x16_t __a, uint8x16_t __b)
30036 #ifdef __AARCH64EB__
30037 return __builtin_shuffle (__a, __b,
30038 (uint8x16_t) {17, 1, 19, 3, 21, 5, 23, 7, 25, 9, 27, 11, 29, 13, 31, 15});
30039 #else
30040 return __builtin_shuffle (__a, __b,
30041 (uint8x16_t) {0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30});
30042 #endif
30045 __extension__ extern __inline uint16x8_t
30046 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30047 vtrn1q_u16 (uint16x8_t __a, uint16x8_t __b)
30049 #ifdef __AARCH64EB__
30050 return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 1, 11, 3, 13, 5, 15, 7});
30051 #else
30052 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 8, 2, 10, 4, 12, 6, 14});
30053 #endif
30056 __extension__ extern __inline uint32x4_t
30057 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30058 vtrn1q_u32 (uint32x4_t __a, uint32x4_t __b)
30060 #ifdef __AARCH64EB__
30061 return __builtin_shuffle (__a, __b, (uint32x4_t) {5, 1, 7, 3});
30062 #else
30063 return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 4, 2, 6});
30064 #endif
30067 __extension__ extern __inline uint64x2_t
30068 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30069 vtrn1q_u64 (uint64x2_t __a, uint64x2_t __b)
30071 #ifdef __AARCH64EB__
30072 return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
30073 #else
30074 return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
30075 #endif
30078 __extension__ extern __inline float16x4_t
30079 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30080 vtrn2_f16 (float16x4_t __a, float16x4_t __b)
30082 #ifdef __AARCH64EB__
30083 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 6, 2});
30084 #else
30085 return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 5, 3, 7});
30086 #endif
30089 __extension__ extern __inline float32x2_t
30090 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30091 vtrn2_f32 (float32x2_t __a, float32x2_t __b)
30093 #ifdef __AARCH64EB__
30094 return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
30095 #else
30096 return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
30097 #endif
30100 __extension__ extern __inline poly8x8_t
30101 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30102 vtrn2_p8 (poly8x8_t __a, poly8x8_t __b)
30104 #ifdef __AARCH64EB__
30105 return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 0, 10, 2, 12, 4, 14, 6});
30106 #else
30107 return __builtin_shuffle (__a, __b, (uint8x8_t) {1, 9, 3, 11, 5, 13, 7, 15});
30108 #endif
30111 __extension__ extern __inline poly16x4_t
30112 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30113 vtrn2_p16 (poly16x4_t __a, poly16x4_t __b)
30115 #ifdef __AARCH64EB__
30116 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 6, 2});
30117 #else
30118 return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 5, 3, 7});
30119 #endif
30122 __extension__ extern __inline int8x8_t
30123 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30124 vtrn2_s8 (int8x8_t __a, int8x8_t __b)
30126 #ifdef __AARCH64EB__
30127 return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 0, 10, 2, 12, 4, 14, 6});
30128 #else
30129 return __builtin_shuffle (__a, __b, (uint8x8_t) {1, 9, 3, 11, 5, 13, 7, 15});
30130 #endif
30133 __extension__ extern __inline int16x4_t
30134 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30135 vtrn2_s16 (int16x4_t __a, int16x4_t __b)
30137 #ifdef __AARCH64EB__
30138 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 6, 2});
30139 #else
30140 return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 5, 3, 7});
30141 #endif
30144 __extension__ extern __inline int32x2_t
30145 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30146 vtrn2_s32 (int32x2_t __a, int32x2_t __b)
30148 #ifdef __AARCH64EB__
30149 return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
30150 #else
30151 return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
30152 #endif
30155 __extension__ extern __inline uint8x8_t
30156 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30157 vtrn2_u8 (uint8x8_t __a, uint8x8_t __b)
30159 #ifdef __AARCH64EB__
30160 return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 0, 10, 2, 12, 4, 14, 6});
30161 #else
30162 return __builtin_shuffle (__a, __b, (uint8x8_t) {1, 9, 3, 11, 5, 13, 7, 15});
30163 #endif
30166 __extension__ extern __inline uint16x4_t
30167 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30168 vtrn2_u16 (uint16x4_t __a, uint16x4_t __b)
30170 #ifdef __AARCH64EB__
30171 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 6, 2});
30172 #else
30173 return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 5, 3, 7});
30174 #endif
30177 __extension__ extern __inline uint32x2_t
30178 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30179 vtrn2_u32 (uint32x2_t __a, uint32x2_t __b)
30181 #ifdef __AARCH64EB__
30182 return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
30183 #else
30184 return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
30185 #endif
30188 __extension__ extern __inline float16x8_t
30189 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30190 vtrn2q_f16 (float16x8_t __a, float16x8_t __b)
30192 #ifdef __AARCH64EB__
30193 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 0, 10, 2, 12, 4, 14, 6});
30194 #else
30195 return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 9, 3, 11, 5, 13, 7, 15});
30196 #endif
30199 __extension__ extern __inline float32x4_t
30200 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30201 vtrn2q_f32 (float32x4_t __a, float32x4_t __b)
30203 #ifdef __AARCH64EB__
30204 return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 0, 6, 2});
30205 #else
30206 return __builtin_shuffle (__a, __b, (uint32x4_t) {1, 5, 3, 7});
30207 #endif
30210 __extension__ extern __inline float64x2_t
30211 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30212 vtrn2q_f64 (float64x2_t __a, float64x2_t __b)
30214 #ifdef __AARCH64EB__
30215 return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
30216 #else
30217 return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
30218 #endif
30221 __extension__ extern __inline poly8x16_t
30222 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30223 vtrn2q_p8 (poly8x16_t __a, poly8x16_t __b)
30225 #ifdef __AARCH64EB__
30226 return __builtin_shuffle (__a, __b,
30227 (uint8x16_t) {16, 0, 18, 2, 20, 4, 22, 6, 24, 8, 26, 10, 28, 12, 30, 14});
30228 #else
30229 return __builtin_shuffle (__a, __b,
30230 (uint8x16_t) {1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31});
30231 #endif
30234 __extension__ extern __inline poly16x8_t
30235 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30236 vtrn2q_p16 (poly16x8_t __a, poly16x8_t __b)
30238 #ifdef __AARCH64EB__
30239 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 0, 10, 2, 12, 4, 14, 6});
30240 #else
30241 return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 9, 3, 11, 5, 13, 7, 15});
30242 #endif
30245 __extension__ extern __inline int8x16_t
30246 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30247 vtrn2q_s8 (int8x16_t __a, int8x16_t __b)
30249 #ifdef __AARCH64EB__
30250 return __builtin_shuffle (__a, __b,
30251 (uint8x16_t) {16, 0, 18, 2, 20, 4, 22, 6, 24, 8, 26, 10, 28, 12, 30, 14});
30252 #else
30253 return __builtin_shuffle (__a, __b,
30254 (uint8x16_t) {1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31});
30255 #endif
30258 __extension__ extern __inline int16x8_t
30259 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30260 vtrn2q_s16 (int16x8_t __a, int16x8_t __b)
30262 #ifdef __AARCH64EB__
30263 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 0, 10, 2, 12, 4, 14, 6});
30264 #else
30265 return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 9, 3, 11, 5, 13, 7, 15});
30266 #endif
30269 __extension__ extern __inline int32x4_t
30270 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30271 vtrn2q_s32 (int32x4_t __a, int32x4_t __b)
30273 #ifdef __AARCH64EB__
30274 return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 0, 6, 2});
30275 #else
30276 return __builtin_shuffle (__a, __b, (uint32x4_t) {1, 5, 3, 7});
30277 #endif
30280 __extension__ extern __inline int64x2_t
30281 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30282 vtrn2q_s64 (int64x2_t __a, int64x2_t __b)
30284 #ifdef __AARCH64EB__
30285 return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
30286 #else
30287 return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
30288 #endif
30291 __extension__ extern __inline uint8x16_t
30292 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30293 vtrn2q_u8 (uint8x16_t __a, uint8x16_t __b)
30295 #ifdef __AARCH64EB__
30296 return __builtin_shuffle (__a, __b,
30297 (uint8x16_t) {16, 0, 18, 2, 20, 4, 22, 6, 24, 8, 26, 10, 28, 12, 30, 14});
30298 #else
30299 return __builtin_shuffle (__a, __b,
30300 (uint8x16_t) {1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31});
30301 #endif
30304 __extension__ extern __inline uint16x8_t
30305 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30306 vtrn2q_u16 (uint16x8_t __a, uint16x8_t __b)
30308 #ifdef __AARCH64EB__
30309 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 0, 10, 2, 12, 4, 14, 6});
30310 #else
30311 return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 9, 3, 11, 5, 13, 7, 15});
30312 #endif
30315 __extension__ extern __inline uint32x4_t
30316 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30317 vtrn2q_u32 (uint32x4_t __a, uint32x4_t __b)
30319 #ifdef __AARCH64EB__
30320 return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 0, 6, 2});
30321 #else
30322 return __builtin_shuffle (__a, __b, (uint32x4_t) {1, 5, 3, 7});
30323 #endif
30326 __extension__ extern __inline uint64x2_t
30327 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30328 vtrn2q_u64 (uint64x2_t __a, uint64x2_t __b)
30330 #ifdef __AARCH64EB__
30331 return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
30332 #else
30333 return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
30334 #endif
30337 __extension__ extern __inline float16x4x2_t
30338 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30339 vtrn_f16 (float16x4_t __a, float16x4_t __b)
30341 return (float16x4x2_t) {vtrn1_f16 (__a, __b), vtrn2_f16 (__a, __b)};
30344 __extension__ extern __inline float32x2x2_t
30345 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30346 vtrn_f32 (float32x2_t a, float32x2_t b)
30348 return (float32x2x2_t) {vtrn1_f32 (a, b), vtrn2_f32 (a, b)};
30351 __extension__ extern __inline poly8x8x2_t
30352 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30353 vtrn_p8 (poly8x8_t a, poly8x8_t b)
30355 return (poly8x8x2_t) {vtrn1_p8 (a, b), vtrn2_p8 (a, b)};
30358 __extension__ extern __inline poly16x4x2_t
30359 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30360 vtrn_p16 (poly16x4_t a, poly16x4_t b)
30362 return (poly16x4x2_t) {vtrn1_p16 (a, b), vtrn2_p16 (a, b)};
30365 __extension__ extern __inline int8x8x2_t
30366 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30367 vtrn_s8 (int8x8_t a, int8x8_t b)
30369 return (int8x8x2_t) {vtrn1_s8 (a, b), vtrn2_s8 (a, b)};
30372 __extension__ extern __inline int16x4x2_t
30373 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30374 vtrn_s16 (int16x4_t a, int16x4_t b)
30376 return (int16x4x2_t) {vtrn1_s16 (a, b), vtrn2_s16 (a, b)};
30379 __extension__ extern __inline int32x2x2_t
30380 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30381 vtrn_s32 (int32x2_t a, int32x2_t b)
30383 return (int32x2x2_t) {vtrn1_s32 (a, b), vtrn2_s32 (a, b)};
30386 __extension__ extern __inline uint8x8x2_t
30387 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30388 vtrn_u8 (uint8x8_t a, uint8x8_t b)
30390 return (uint8x8x2_t) {vtrn1_u8 (a, b), vtrn2_u8 (a, b)};
30393 __extension__ extern __inline uint16x4x2_t
30394 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30395 vtrn_u16 (uint16x4_t a, uint16x4_t b)
30397 return (uint16x4x2_t) {vtrn1_u16 (a, b), vtrn2_u16 (a, b)};
30400 __extension__ extern __inline uint32x2x2_t
30401 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30402 vtrn_u32 (uint32x2_t a, uint32x2_t b)
30404 return (uint32x2x2_t) {vtrn1_u32 (a, b), vtrn2_u32 (a, b)};
30407 __extension__ extern __inline float16x8x2_t
30408 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30409 vtrnq_f16 (float16x8_t __a, float16x8_t __b)
30411 return (float16x8x2_t) {vtrn1q_f16 (__a, __b), vtrn2q_f16 (__a, __b)};
30414 __extension__ extern __inline float32x4x2_t
30415 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30416 vtrnq_f32 (float32x4_t a, float32x4_t b)
30418 return (float32x4x2_t) {vtrn1q_f32 (a, b), vtrn2q_f32 (a, b)};
30421 __extension__ extern __inline poly8x16x2_t
30422 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30423 vtrnq_p8 (poly8x16_t a, poly8x16_t b)
30425 return (poly8x16x2_t) {vtrn1q_p8 (a, b), vtrn2q_p8 (a, b)};
30428 __extension__ extern __inline poly16x8x2_t
30429 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30430 vtrnq_p16 (poly16x8_t a, poly16x8_t b)
30432 return (poly16x8x2_t) {vtrn1q_p16 (a, b), vtrn2q_p16 (a, b)};
30435 __extension__ extern __inline int8x16x2_t
30436 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30437 vtrnq_s8 (int8x16_t a, int8x16_t b)
30439 return (int8x16x2_t) {vtrn1q_s8 (a, b), vtrn2q_s8 (a, b)};
30442 __extension__ extern __inline int16x8x2_t
30443 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30444 vtrnq_s16 (int16x8_t a, int16x8_t b)
30446 return (int16x8x2_t) {vtrn1q_s16 (a, b), vtrn2q_s16 (a, b)};
30449 __extension__ extern __inline int32x4x2_t
30450 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30451 vtrnq_s32 (int32x4_t a, int32x4_t b)
30453 return (int32x4x2_t) {vtrn1q_s32 (a, b), vtrn2q_s32 (a, b)};
30456 __extension__ extern __inline uint8x16x2_t
30457 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30458 vtrnq_u8 (uint8x16_t a, uint8x16_t b)
30460 return (uint8x16x2_t) {vtrn1q_u8 (a, b), vtrn2q_u8 (a, b)};
30463 __extension__ extern __inline uint16x8x2_t
30464 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30465 vtrnq_u16 (uint16x8_t a, uint16x8_t b)
30467 return (uint16x8x2_t) {vtrn1q_u16 (a, b), vtrn2q_u16 (a, b)};
30470 __extension__ extern __inline uint32x4x2_t
30471 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30472 vtrnq_u32 (uint32x4_t a, uint32x4_t b)
30474 return (uint32x4x2_t) {vtrn1q_u32 (a, b), vtrn2q_u32 (a, b)};
30477 /* vtst */
30479 __extension__ extern __inline uint8x8_t
30480 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30481 vtst_s8 (int8x8_t __a, int8x8_t __b)
30483 return (uint8x8_t) ((__a & __b) != 0);
30486 __extension__ extern __inline uint16x4_t
30487 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30488 vtst_s16 (int16x4_t __a, int16x4_t __b)
30490 return (uint16x4_t) ((__a & __b) != 0);
30493 __extension__ extern __inline uint32x2_t
30494 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30495 vtst_s32 (int32x2_t __a, int32x2_t __b)
30497 return (uint32x2_t) ((__a & __b) != 0);
30500 __extension__ extern __inline uint64x1_t
30501 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30502 vtst_s64 (int64x1_t __a, int64x1_t __b)
30504 return (uint64x1_t) ((__a & __b) != __AARCH64_INT64_C (0));
30507 __extension__ extern __inline uint8x8_t
30508 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30509 vtst_u8 (uint8x8_t __a, uint8x8_t __b)
30511 return ((__a & __b) != 0);
30514 __extension__ extern __inline uint16x4_t
30515 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30516 vtst_u16 (uint16x4_t __a, uint16x4_t __b)
30518 return ((__a & __b) != 0);
30521 __extension__ extern __inline uint32x2_t
30522 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30523 vtst_u32 (uint32x2_t __a, uint32x2_t __b)
30525 return ((__a & __b) != 0);
30528 __extension__ extern __inline uint64x1_t
30529 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30530 vtst_u64 (uint64x1_t __a, uint64x1_t __b)
30532 return ((__a & __b) != __AARCH64_UINT64_C (0));
30535 __extension__ extern __inline uint8x16_t
30536 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30537 vtstq_s8 (int8x16_t __a, int8x16_t __b)
30539 return (uint8x16_t) ((__a & __b) != 0);
30542 __extension__ extern __inline uint16x8_t
30543 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30544 vtstq_s16 (int16x8_t __a, int16x8_t __b)
30546 return (uint16x8_t) ((__a & __b) != 0);
30549 __extension__ extern __inline uint32x4_t
30550 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30551 vtstq_s32 (int32x4_t __a, int32x4_t __b)
30553 return (uint32x4_t) ((__a & __b) != 0);
30556 __extension__ extern __inline uint64x2_t
30557 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30558 vtstq_s64 (int64x2_t __a, int64x2_t __b)
30560 return (uint64x2_t) ((__a & __b) != __AARCH64_INT64_C (0));
30563 __extension__ extern __inline uint8x16_t
30564 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30565 vtstq_u8 (uint8x16_t __a, uint8x16_t __b)
30567 return ((__a & __b) != 0);
30570 __extension__ extern __inline uint16x8_t
30571 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30572 vtstq_u16 (uint16x8_t __a, uint16x8_t __b)
30574 return ((__a & __b) != 0);
30577 __extension__ extern __inline uint32x4_t
30578 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30579 vtstq_u32 (uint32x4_t __a, uint32x4_t __b)
30581 return ((__a & __b) != 0);
30584 __extension__ extern __inline uint64x2_t
30585 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30586 vtstq_u64 (uint64x2_t __a, uint64x2_t __b)
30588 return ((__a & __b) != __AARCH64_UINT64_C (0));
30591 __extension__ extern __inline uint64_t
30592 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30593 vtstd_s64 (int64_t __a, int64_t __b)
30595 return (__a & __b) ? -1ll : 0ll;
30598 __extension__ extern __inline uint64_t
30599 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30600 vtstd_u64 (uint64_t __a, uint64_t __b)
30602 return (__a & __b) ? -1ll : 0ll;
30605 /* vuqadd */
30607 __extension__ extern __inline int8x8_t
30608 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30609 vuqadd_s8 (int8x8_t __a, uint8x8_t __b)
30611 return __builtin_aarch64_suqaddv8qi_ssu (__a, __b);
30614 __extension__ extern __inline int16x4_t
30615 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30616 vuqadd_s16 (int16x4_t __a, uint16x4_t __b)
30618 return __builtin_aarch64_suqaddv4hi_ssu (__a, __b);
30621 __extension__ extern __inline int32x2_t
30622 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30623 vuqadd_s32 (int32x2_t __a, uint32x2_t __b)
30625 return __builtin_aarch64_suqaddv2si_ssu (__a, __b);
30628 __extension__ extern __inline int64x1_t
30629 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30630 vuqadd_s64 (int64x1_t __a, uint64x1_t __b)
30632 return (int64x1_t) {__builtin_aarch64_suqadddi_ssu (__a[0], __b[0])};
30635 __extension__ extern __inline int8x16_t
30636 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30637 vuqaddq_s8 (int8x16_t __a, uint8x16_t __b)
30639 return __builtin_aarch64_suqaddv16qi_ssu (__a, __b);
30642 __extension__ extern __inline int16x8_t
30643 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30644 vuqaddq_s16 (int16x8_t __a, uint16x8_t __b)
30646 return __builtin_aarch64_suqaddv8hi_ssu (__a, __b);
30649 __extension__ extern __inline int32x4_t
30650 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30651 vuqaddq_s32 (int32x4_t __a, uint32x4_t __b)
30653 return __builtin_aarch64_suqaddv4si_ssu (__a, __b);
30656 __extension__ extern __inline int64x2_t
30657 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30658 vuqaddq_s64 (int64x2_t __a, uint64x2_t __b)
30660 return __builtin_aarch64_suqaddv2di_ssu (__a, __b);
30663 __extension__ extern __inline int8_t
30664 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30665 vuqaddb_s8 (int8_t __a, uint8_t __b)
30667 return __builtin_aarch64_suqaddqi_ssu (__a, __b);
30670 __extension__ extern __inline int16_t
30671 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30672 vuqaddh_s16 (int16_t __a, uint16_t __b)
30674 return __builtin_aarch64_suqaddhi_ssu (__a, __b);
30677 __extension__ extern __inline int32_t
30678 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30679 vuqadds_s32 (int32_t __a, uint32_t __b)
30681 return __builtin_aarch64_suqaddsi_ssu (__a, __b);
30684 __extension__ extern __inline int64_t
30685 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30686 vuqaddd_s64 (int64_t __a, uint64_t __b)
30688 return __builtin_aarch64_suqadddi_ssu (__a, __b);
30691 #define __DEFINTERLEAVE(op, rettype, intype, funcsuffix, Q) \
30692 __extension__ extern __inline rettype \
30693 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) \
30694 v ## op ## Q ## _ ## funcsuffix (intype a, intype b) \
30696 return (rettype) {v ## op ## 1 ## Q ## _ ## funcsuffix (a, b), \
30697 v ## op ## 2 ## Q ## _ ## funcsuffix (a, b)}; \
30700 #define __INTERLEAVE_LIST(op) \
30701 __DEFINTERLEAVE (op, float16x4x2_t, float16x4_t, f16,) \
30702 __DEFINTERLEAVE (op, float32x2x2_t, float32x2_t, f32,) \
30703 __DEFINTERLEAVE (op, poly8x8x2_t, poly8x8_t, p8,) \
30704 __DEFINTERLEAVE (op, poly16x4x2_t, poly16x4_t, p16,) \
30705 __DEFINTERLEAVE (op, int8x8x2_t, int8x8_t, s8,) \
30706 __DEFINTERLEAVE (op, int16x4x2_t, int16x4_t, s16,) \
30707 __DEFINTERLEAVE (op, int32x2x2_t, int32x2_t, s32,) \
30708 __DEFINTERLEAVE (op, uint8x8x2_t, uint8x8_t, u8,) \
30709 __DEFINTERLEAVE (op, uint16x4x2_t, uint16x4_t, u16,) \
30710 __DEFINTERLEAVE (op, uint32x2x2_t, uint32x2_t, u32,) \
30711 __DEFINTERLEAVE (op, float16x8x2_t, float16x8_t, f16, q) \
30712 __DEFINTERLEAVE (op, float32x4x2_t, float32x4_t, f32, q) \
30713 __DEFINTERLEAVE (op, poly8x16x2_t, poly8x16_t, p8, q) \
30714 __DEFINTERLEAVE (op, poly16x8x2_t, poly16x8_t, p16, q) \
30715 __DEFINTERLEAVE (op, int8x16x2_t, int8x16_t, s8, q) \
30716 __DEFINTERLEAVE (op, int16x8x2_t, int16x8_t, s16, q) \
30717 __DEFINTERLEAVE (op, int32x4x2_t, int32x4_t, s32, q) \
30718 __DEFINTERLEAVE (op, uint8x16x2_t, uint8x16_t, u8, q) \
30719 __DEFINTERLEAVE (op, uint16x8x2_t, uint16x8_t, u16, q) \
30720 __DEFINTERLEAVE (op, uint32x4x2_t, uint32x4_t, u32, q)
30722 /* vuzp */
30724 __extension__ extern __inline float16x4_t
30725 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30726 vuzp1_f16 (float16x4_t __a, float16x4_t __b)
30728 #ifdef __AARCH64EB__
30729 return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 7, 1, 3});
30730 #else
30731 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 2, 4, 6});
30732 #endif
30735 __extension__ extern __inline float32x2_t
30736 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30737 vuzp1_f32 (float32x2_t __a, float32x2_t __b)
30739 #ifdef __AARCH64EB__
30740 return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
30741 #else
30742 return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
30743 #endif
30746 __extension__ extern __inline poly8x8_t
30747 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30748 vuzp1_p8 (poly8x8_t __a, poly8x8_t __b)
30750 #ifdef __AARCH64EB__
30751 return __builtin_shuffle (__a, __b, (uint8x8_t) {9, 11, 13, 15, 1, 3, 5, 7});
30752 #else
30753 return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 2, 4, 6, 8, 10, 12, 14});
30754 #endif
30757 __extension__ extern __inline poly16x4_t
30758 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30759 vuzp1_p16 (poly16x4_t __a, poly16x4_t __b)
30761 #ifdef __AARCH64EB__
30762 return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 7, 1, 3});
30763 #else
30764 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 2, 4, 6});
30765 #endif
30768 __extension__ extern __inline int8x8_t
30769 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30770 vuzp1_s8 (int8x8_t __a, int8x8_t __b)
30772 #ifdef __AARCH64EB__
30773 return __builtin_shuffle (__a, __b, (uint8x8_t) {9, 11, 13, 15, 1, 3, 5, 7});
30774 #else
30775 return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 2, 4, 6, 8, 10, 12, 14});
30776 #endif
30779 __extension__ extern __inline int16x4_t
30780 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30781 vuzp1_s16 (int16x4_t __a, int16x4_t __b)
30783 #ifdef __AARCH64EB__
30784 return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 7, 1, 3});
30785 #else
30786 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 2, 4, 6});
30787 #endif
30790 __extension__ extern __inline int32x2_t
30791 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30792 vuzp1_s32 (int32x2_t __a, int32x2_t __b)
30794 #ifdef __AARCH64EB__
30795 return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
30796 #else
30797 return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
30798 #endif
30801 __extension__ extern __inline uint8x8_t
30802 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30803 vuzp1_u8 (uint8x8_t __a, uint8x8_t __b)
30805 #ifdef __AARCH64EB__
30806 return __builtin_shuffle (__a, __b, (uint8x8_t) {9, 11, 13, 15, 1, 3, 5, 7});
30807 #else
30808 return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 2, 4, 6, 8, 10, 12, 14});
30809 #endif
30812 __extension__ extern __inline uint16x4_t
30813 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30814 vuzp1_u16 (uint16x4_t __a, uint16x4_t __b)
30816 #ifdef __AARCH64EB__
30817 return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 7, 1, 3});
30818 #else
30819 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 2, 4, 6});
30820 #endif
30823 __extension__ extern __inline uint32x2_t
30824 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30825 vuzp1_u32 (uint32x2_t __a, uint32x2_t __b)
30827 #ifdef __AARCH64EB__
30828 return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
30829 #else
30830 return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
30831 #endif
30834 __extension__ extern __inline float16x8_t
30835 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30836 vuzp1q_f16 (float16x8_t __a, float16x8_t __b)
30838 #ifdef __AARCH64EB__
30839 return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 11, 13, 15, 1, 3, 5, 7});
30840 #else
30841 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 2, 4, 6, 8, 10, 12, 14});
30842 #endif
30845 __extension__ extern __inline float32x4_t
30846 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30847 vuzp1q_f32 (float32x4_t __a, float32x4_t __b)
30849 #ifdef __AARCH64EB__
30850 return __builtin_shuffle (__a, __b, (uint32x4_t) {5, 7, 1, 3});
30851 #else
30852 return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 2, 4, 6});
30853 #endif
30856 __extension__ extern __inline float64x2_t
30857 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30858 vuzp1q_f64 (float64x2_t __a, float64x2_t __b)
30860 #ifdef __AARCH64EB__
30861 return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
30862 #else
30863 return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
30864 #endif
30867 __extension__ extern __inline poly8x16_t
30868 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30869 vuzp1q_p8 (poly8x16_t __a, poly8x16_t __b)
30871 #ifdef __AARCH64EB__
30872 return __builtin_shuffle (__a, __b, (uint8x16_t)
30873 {17, 19, 21, 23, 25, 27, 29, 31, 1, 3, 5, 7, 9, 11, 13, 15});
30874 #else
30875 return __builtin_shuffle (__a, __b, (uint8x16_t)
30876 {0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30});
30877 #endif
30880 __extension__ extern __inline poly16x8_t
30881 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30882 vuzp1q_p16 (poly16x8_t __a, poly16x8_t __b)
30884 #ifdef __AARCH64EB__
30885 return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 11, 13, 15, 1, 3, 5, 7});
30886 #else
30887 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 2, 4, 6, 8, 10, 12, 14});
30888 #endif
30891 __extension__ extern __inline int8x16_t
30892 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30893 vuzp1q_s8 (int8x16_t __a, int8x16_t __b)
30895 #ifdef __AARCH64EB__
30896 return __builtin_shuffle (__a, __b,
30897 (uint8x16_t) {17, 19, 21, 23, 25, 27, 29, 31, 1, 3, 5, 7, 9, 11, 13, 15});
30898 #else
30899 return __builtin_shuffle (__a, __b,
30900 (uint8x16_t) {0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30});
30901 #endif
30904 __extension__ extern __inline int16x8_t
30905 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30906 vuzp1q_s16 (int16x8_t __a, int16x8_t __b)
30908 #ifdef __AARCH64EB__
30909 return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 11, 13, 15, 1, 3, 5, 7});
30910 #else
30911 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 2, 4, 6, 8, 10, 12, 14});
30912 #endif
30915 __extension__ extern __inline int32x4_t
30916 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30917 vuzp1q_s32 (int32x4_t __a, int32x4_t __b)
30919 #ifdef __AARCH64EB__
30920 return __builtin_shuffle (__a, __b, (uint32x4_t) {5, 7, 1, 3});
30921 #else
30922 return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 2, 4, 6});
30923 #endif
30926 __extension__ extern __inline int64x2_t
30927 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30928 vuzp1q_s64 (int64x2_t __a, int64x2_t __b)
30930 #ifdef __AARCH64EB__
30931 return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
30932 #else
30933 return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
30934 #endif
30937 __extension__ extern __inline uint8x16_t
30938 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30939 vuzp1q_u8 (uint8x16_t __a, uint8x16_t __b)
30941 #ifdef __AARCH64EB__
30942 return __builtin_shuffle (__a, __b,
30943 (uint8x16_t) {17, 19, 21, 23, 25, 27, 29, 31, 1, 3, 5, 7, 9, 11, 13, 15});
30944 #else
30945 return __builtin_shuffle (__a, __b,
30946 (uint8x16_t) {0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30});
30947 #endif
30950 __extension__ extern __inline uint16x8_t
30951 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30952 vuzp1q_u16 (uint16x8_t __a, uint16x8_t __b)
30954 #ifdef __AARCH64EB__
30955 return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 11, 13, 15, 1, 3, 5, 7});
30956 #else
30957 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 2, 4, 6, 8, 10, 12, 14});
30958 #endif
30961 __extension__ extern __inline uint32x4_t
30962 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30963 vuzp1q_u32 (uint32x4_t __a, uint32x4_t __b)
30965 #ifdef __AARCH64EB__
30966 return __builtin_shuffle (__a, __b, (uint32x4_t) {5, 7, 1, 3});
30967 #else
30968 return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 2, 4, 6});
30969 #endif
30972 __extension__ extern __inline uint64x2_t
30973 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30974 vuzp1q_u64 (uint64x2_t __a, uint64x2_t __b)
30976 #ifdef __AARCH64EB__
30977 return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
30978 #else
30979 return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
30980 #endif
30983 __extension__ extern __inline float16x4_t
30984 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30985 vuzp2_f16 (float16x4_t __a, float16x4_t __b)
30987 #ifdef __AARCH64EB__
30988 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 6, 0, 2});
30989 #else
30990 return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 3, 5, 7});
30991 #endif
30994 __extension__ extern __inline float32x2_t
30995 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30996 vuzp2_f32 (float32x2_t __a, float32x2_t __b)
30998 #ifdef __AARCH64EB__
30999 return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
31000 #else
31001 return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
31002 #endif
31005 __extension__ extern __inline poly8x8_t
31006 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31007 vuzp2_p8 (poly8x8_t __a, poly8x8_t __b)
31009 #ifdef __AARCH64EB__
31010 return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 10, 12, 14, 0, 2, 4, 6});
31011 #else
31012 return __builtin_shuffle (__a, __b, (uint8x8_t) {1, 3, 5, 7, 9, 11, 13, 15});
31013 #endif
31016 __extension__ extern __inline poly16x4_t
31017 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31018 vuzp2_p16 (poly16x4_t __a, poly16x4_t __b)
31020 #ifdef __AARCH64EB__
31021 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 6, 0, 2});
31022 #else
31023 return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 3, 5, 7});
31024 #endif
31027 __extension__ extern __inline int8x8_t
31028 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31029 vuzp2_s8 (int8x8_t __a, int8x8_t __b)
31031 #ifdef __AARCH64EB__
31032 return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 10, 12, 14, 0, 2, 4, 6});
31033 #else
31034 return __builtin_shuffle (__a, __b, (uint8x8_t) {1, 3, 5, 7, 9, 11, 13, 15});
31035 #endif
31038 __extension__ extern __inline int16x4_t
31039 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31040 vuzp2_s16 (int16x4_t __a, int16x4_t __b)
31042 #ifdef __AARCH64EB__
31043 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 6, 0, 2});
31044 #else
31045 return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 3, 5, 7});
31046 #endif
31049 __extension__ extern __inline int32x2_t
31050 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31051 vuzp2_s32 (int32x2_t __a, int32x2_t __b)
31053 #ifdef __AARCH64EB__
31054 return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
31055 #else
31056 return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
31057 #endif
31060 __extension__ extern __inline uint8x8_t
31061 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31062 vuzp2_u8 (uint8x8_t __a, uint8x8_t __b)
31064 #ifdef __AARCH64EB__
31065 return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 10, 12, 14, 0, 2, 4, 6});
31066 #else
31067 return __builtin_shuffle (__a, __b, (uint8x8_t) {1, 3, 5, 7, 9, 11, 13, 15});
31068 #endif
31071 __extension__ extern __inline uint16x4_t
31072 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31073 vuzp2_u16 (uint16x4_t __a, uint16x4_t __b)
31075 #ifdef __AARCH64EB__
31076 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 6, 0, 2});
31077 #else
31078 return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 3, 5, 7});
31079 #endif
31082 __extension__ extern __inline uint32x2_t
31083 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31084 vuzp2_u32 (uint32x2_t __a, uint32x2_t __b)
31086 #ifdef __AARCH64EB__
31087 return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
31088 #else
31089 return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
31090 #endif
31093 __extension__ extern __inline float16x8_t
31094 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31095 vuzp2q_f16 (float16x8_t __a, float16x8_t __b)
31097 #ifdef __AARCH64EB__
31098 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 10, 12, 14, 0, 2, 4, 6});
31099 #else
31100 return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 3, 5, 7, 9, 11, 13, 15});
31101 #endif
31104 __extension__ extern __inline float32x4_t
31105 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31106 vuzp2q_f32 (float32x4_t __a, float32x4_t __b)
31108 #ifdef __AARCH64EB__
31109 return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 6, 0, 2});
31110 #else
31111 return __builtin_shuffle (__a, __b, (uint32x4_t) {1, 3, 5, 7});
31112 #endif
31115 __extension__ extern __inline float64x2_t
31116 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31117 vuzp2q_f64 (float64x2_t __a, float64x2_t __b)
31119 #ifdef __AARCH64EB__
31120 return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
31121 #else
31122 return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
31123 #endif
31126 __extension__ extern __inline poly8x16_t
31127 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31128 vuzp2q_p8 (poly8x16_t __a, poly8x16_t __b)
31130 #ifdef __AARCH64EB__
31131 return __builtin_shuffle (__a, __b,
31132 (uint8x16_t) {16, 18, 20, 22, 24, 26, 28, 30, 0, 2, 4, 6, 8, 10, 12, 14});
31133 #else
31134 return __builtin_shuffle (__a, __b,
31135 (uint8x16_t) {1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31});
31136 #endif
31139 __extension__ extern __inline poly16x8_t
31140 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31141 vuzp2q_p16 (poly16x8_t __a, poly16x8_t __b)
31143 #ifdef __AARCH64EB__
31144 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 10, 12, 14, 0, 2, 4, 6});
31145 #else
31146 return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 3, 5, 7, 9, 11, 13, 15});
31147 #endif
31150 __extension__ extern __inline int8x16_t
31151 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31152 vuzp2q_s8 (int8x16_t __a, int8x16_t __b)
31154 #ifdef __AARCH64EB__
31155 return __builtin_shuffle (__a, __b,
31156 (uint8x16_t) {16, 18, 20, 22, 24, 26, 28, 30, 0, 2, 4, 6, 8, 10, 12, 14});
31157 #else
31158 return __builtin_shuffle (__a, __b,
31159 (uint8x16_t) {1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31});
31160 #endif
31163 __extension__ extern __inline int16x8_t
31164 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31165 vuzp2q_s16 (int16x8_t __a, int16x8_t __b)
31167 #ifdef __AARCH64EB__
31168 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 10, 12, 14, 0, 2, 4, 6});
31169 #else
31170 return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 3, 5, 7, 9, 11, 13, 15});
31171 #endif
31174 __extension__ extern __inline int32x4_t
31175 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31176 vuzp2q_s32 (int32x4_t __a, int32x4_t __b)
31178 #ifdef __AARCH64EB__
31179 return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 6, 0, 2});
31180 #else
31181 return __builtin_shuffle (__a, __b, (uint32x4_t) {1, 3, 5, 7});
31182 #endif
31185 __extension__ extern __inline int64x2_t
31186 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31187 vuzp2q_s64 (int64x2_t __a, int64x2_t __b)
31189 #ifdef __AARCH64EB__
31190 return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
31191 #else
31192 return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
31193 #endif
31196 __extension__ extern __inline uint8x16_t
31197 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31198 vuzp2q_u8 (uint8x16_t __a, uint8x16_t __b)
31200 #ifdef __AARCH64EB__
31201 return __builtin_shuffle (__a, __b, (uint8x16_t)
31202 {16, 18, 20, 22, 24, 26, 28, 30, 0, 2, 4, 6, 8, 10, 12, 14});
31203 #else
31204 return __builtin_shuffle (__a, __b, (uint8x16_t)
31205 {1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31});
31206 #endif
31209 __extension__ extern __inline uint16x8_t
31210 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31211 vuzp2q_u16 (uint16x8_t __a, uint16x8_t __b)
31213 #ifdef __AARCH64EB__
31214 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 10, 12, 14, 0, 2, 4, 6});
31215 #else
31216 return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 3, 5, 7, 9, 11, 13, 15});
31217 #endif
31220 __extension__ extern __inline uint32x4_t
31221 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31222 vuzp2q_u32 (uint32x4_t __a, uint32x4_t __b)
31224 #ifdef __AARCH64EB__
31225 return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 6, 0, 2});
31226 #else
31227 return __builtin_shuffle (__a, __b, (uint32x4_t) {1, 3, 5, 7});
31228 #endif
31231 __extension__ extern __inline uint64x2_t
31232 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31233 vuzp2q_u64 (uint64x2_t __a, uint64x2_t __b)
31235 #ifdef __AARCH64EB__
31236 return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
31237 #else
31238 return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
31239 #endif
31242 __INTERLEAVE_LIST (uzp)
31244 /* vzip */
31246 __extension__ extern __inline float16x4_t
31247 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31248 vzip1_f16 (float16x4_t __a, float16x4_t __b)
31250 #ifdef __AARCH64EB__
31251 return __builtin_shuffle (__a, __b, (uint16x4_t) {6, 2, 7, 3});
31252 #else
31253 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 1, 5});
31254 #endif
31257 __extension__ extern __inline float32x2_t
31258 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31259 vzip1_f32 (float32x2_t __a, float32x2_t __b)
31261 #ifdef __AARCH64EB__
31262 return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
31263 #else
31264 return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
31265 #endif
31268 __extension__ extern __inline poly8x8_t
31269 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31270 vzip1_p8 (poly8x8_t __a, poly8x8_t __b)
31272 #ifdef __AARCH64EB__
31273 return __builtin_shuffle (__a, __b, (uint8x8_t) {12, 4, 13, 5, 14, 6, 15, 7});
31274 #else
31275 return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 8, 1, 9, 2, 10, 3, 11});
31276 #endif
31279 __extension__ extern __inline poly16x4_t
31280 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31281 vzip1_p16 (poly16x4_t __a, poly16x4_t __b)
31283 #ifdef __AARCH64EB__
31284 return __builtin_shuffle (__a, __b, (uint16x4_t) {6, 2, 7, 3});
31285 #else
31286 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 1, 5});
31287 #endif
31290 __extension__ extern __inline int8x8_t
31291 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31292 vzip1_s8 (int8x8_t __a, int8x8_t __b)
31294 #ifdef __AARCH64EB__
31295 return __builtin_shuffle (__a, __b, (uint8x8_t) {12, 4, 13, 5, 14, 6, 15, 7});
31296 #else
31297 return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 8, 1, 9, 2, 10, 3, 11});
31298 #endif
31301 __extension__ extern __inline int16x4_t
31302 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31303 vzip1_s16 (int16x4_t __a, int16x4_t __b)
31305 #ifdef __AARCH64EB__
31306 return __builtin_shuffle (__a, __b, (uint16x4_t) {6, 2, 7, 3});
31307 #else
31308 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 1, 5});
31309 #endif
31312 __extension__ extern __inline int32x2_t
31313 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31314 vzip1_s32 (int32x2_t __a, int32x2_t __b)
31316 #ifdef __AARCH64EB__
31317 return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
31318 #else
31319 return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
31320 #endif
31323 __extension__ extern __inline uint8x8_t
31324 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31325 vzip1_u8 (uint8x8_t __a, uint8x8_t __b)
31327 #ifdef __AARCH64EB__
31328 return __builtin_shuffle (__a, __b, (uint8x8_t) {12, 4, 13, 5, 14, 6, 15, 7});
31329 #else
31330 return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 8, 1, 9, 2, 10, 3, 11});
31331 #endif
31334 __extension__ extern __inline uint16x4_t
31335 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31336 vzip1_u16 (uint16x4_t __a, uint16x4_t __b)
31338 #ifdef __AARCH64EB__
31339 return __builtin_shuffle (__a, __b, (uint16x4_t) {6, 2, 7, 3});
31340 #else
31341 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 1, 5});
31342 #endif
31345 __extension__ extern __inline uint32x2_t
31346 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31347 vzip1_u32 (uint32x2_t __a, uint32x2_t __b)
31349 #ifdef __AARCH64EB__
31350 return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
31351 #else
31352 return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
31353 #endif
31356 __extension__ extern __inline float16x8_t
31357 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31358 vzip1q_f16 (float16x8_t __a, float16x8_t __b)
31360 #ifdef __AARCH64EB__
31361 return __builtin_shuffle (__a, __b,
31362 (uint16x8_t) {12, 4, 13, 5, 14, 6, 15, 7});
31363 #else
31364 return __builtin_shuffle (__a, __b,
31365 (uint16x8_t) {0, 8, 1, 9, 2, 10, 3, 11});
31366 #endif
31369 __extension__ extern __inline float32x4_t
31370 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31371 vzip1q_f32 (float32x4_t __a, float32x4_t __b)
31373 #ifdef __AARCH64EB__
31374 return __builtin_shuffle (__a, __b, (uint32x4_t) {6, 2, 7, 3});
31375 #else
31376 return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 4, 1, 5});
31377 #endif
31380 __extension__ extern __inline float64x2_t
31381 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31382 vzip1q_f64 (float64x2_t __a, float64x2_t __b)
31384 #ifdef __AARCH64EB__
31385 return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
31386 #else
31387 return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
31388 #endif
31391 __extension__ extern __inline poly8x16_t
31392 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31393 vzip1q_p8 (poly8x16_t __a, poly8x16_t __b)
31395 #ifdef __AARCH64EB__
31396 return __builtin_shuffle (__a, __b, (uint8x16_t)
31397 {24, 8, 25, 9, 26, 10, 27, 11, 28, 12, 29, 13, 30, 14, 31, 15});
31398 #else
31399 return __builtin_shuffle (__a, __b, (uint8x16_t)
31400 {0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23});
31401 #endif
31404 __extension__ extern __inline poly16x8_t
31405 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31406 vzip1q_p16 (poly16x8_t __a, poly16x8_t __b)
31408 #ifdef __AARCH64EB__
31409 return __builtin_shuffle (__a, __b, (uint16x8_t)
31410 {12, 4, 13, 5, 14, 6, 15, 7});
31411 #else
31412 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 8, 1, 9, 2, 10, 3, 11});
31413 #endif
31416 __extension__ extern __inline int8x16_t
31417 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31418 vzip1q_s8 (int8x16_t __a, int8x16_t __b)
31420 #ifdef __AARCH64EB__
31421 return __builtin_shuffle (__a, __b, (uint8x16_t)
31422 {24, 8, 25, 9, 26, 10, 27, 11, 28, 12, 29, 13, 30, 14, 31, 15});
31423 #else
31424 return __builtin_shuffle (__a, __b, (uint8x16_t)
31425 {0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23});
31426 #endif
31429 __extension__ extern __inline int16x8_t
31430 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31431 vzip1q_s16 (int16x8_t __a, int16x8_t __b)
31433 #ifdef __AARCH64EB__
31434 return __builtin_shuffle (__a, __b, (uint16x8_t)
31435 {12, 4, 13, 5, 14, 6, 15, 7});
31436 #else
31437 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 8, 1, 9, 2, 10, 3, 11});
31438 #endif
31441 __extension__ extern __inline int32x4_t
31442 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31443 vzip1q_s32 (int32x4_t __a, int32x4_t __b)
31445 #ifdef __AARCH64EB__
31446 return __builtin_shuffle (__a, __b, (uint32x4_t) {6, 2, 7, 3});
31447 #else
31448 return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 4, 1, 5});
31449 #endif
31452 __extension__ extern __inline int64x2_t
31453 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31454 vzip1q_s64 (int64x2_t __a, int64x2_t __b)
31456 #ifdef __AARCH64EB__
31457 return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
31458 #else
31459 return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
31460 #endif
31463 __extension__ extern __inline uint8x16_t
31464 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31465 vzip1q_u8 (uint8x16_t __a, uint8x16_t __b)
31467 #ifdef __AARCH64EB__
31468 return __builtin_shuffle (__a, __b, (uint8x16_t)
31469 {24, 8, 25, 9, 26, 10, 27, 11, 28, 12, 29, 13, 30, 14, 31, 15});
31470 #else
31471 return __builtin_shuffle (__a, __b, (uint8x16_t)
31472 {0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23});
31473 #endif
31476 __extension__ extern __inline uint16x8_t
31477 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31478 vzip1q_u16 (uint16x8_t __a, uint16x8_t __b)
31480 #ifdef __AARCH64EB__
31481 return __builtin_shuffle (__a, __b, (uint16x8_t)
31482 {12, 4, 13, 5, 14, 6, 15, 7});
31483 #else
31484 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 8, 1, 9, 2, 10, 3, 11});
31485 #endif
31488 __extension__ extern __inline uint32x4_t
31489 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31490 vzip1q_u32 (uint32x4_t __a, uint32x4_t __b)
31492 #ifdef __AARCH64EB__
31493 return __builtin_shuffle (__a, __b, (uint32x4_t) {6, 2, 7, 3});
31494 #else
31495 return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 4, 1, 5});
31496 #endif
31499 __extension__ extern __inline uint64x2_t
31500 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31501 vzip1q_u64 (uint64x2_t __a, uint64x2_t __b)
31503 #ifdef __AARCH64EB__
31504 return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
31505 #else
31506 return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
31507 #endif
31510 __extension__ extern __inline float16x4_t
31511 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31512 vzip2_f16 (float16x4_t __a, float16x4_t __b)
31514 #ifdef __AARCH64EB__
31515 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 5, 1});
31516 #else
31517 return __builtin_shuffle (__a, __b, (uint16x4_t) {2, 6, 3, 7});
31518 #endif
31521 __extension__ extern __inline float32x2_t
31522 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31523 vzip2_f32 (float32x2_t __a, float32x2_t __b)
31525 #ifdef __AARCH64EB__
31526 return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
31527 #else
31528 return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
31529 #endif
31532 __extension__ extern __inline poly8x8_t
31533 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31534 vzip2_p8 (poly8x8_t __a, poly8x8_t __b)
31536 #ifdef __AARCH64EB__
31537 return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 0, 9, 1, 10, 2, 11, 3});
31538 #else
31539 return __builtin_shuffle (__a, __b, (uint8x8_t) {4, 12, 5, 13, 6, 14, 7, 15});
31540 #endif
31543 __extension__ extern __inline poly16x4_t
31544 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31545 vzip2_p16 (poly16x4_t __a, poly16x4_t __b)
31547 #ifdef __AARCH64EB__
31548 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 5, 1});
31549 #else
31550 return __builtin_shuffle (__a, __b, (uint16x4_t) {2, 6, 3, 7});
31551 #endif
31554 __extension__ extern __inline int8x8_t
31555 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31556 vzip2_s8 (int8x8_t __a, int8x8_t __b)
31558 #ifdef __AARCH64EB__
31559 return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 0, 9, 1, 10, 2, 11, 3});
31560 #else
31561 return __builtin_shuffle (__a, __b, (uint8x8_t) {4, 12, 5, 13, 6, 14, 7, 15});
31562 #endif
31565 __extension__ extern __inline int16x4_t
31566 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31567 vzip2_s16 (int16x4_t __a, int16x4_t __b)
31569 #ifdef __AARCH64EB__
31570 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 5, 1});
31571 #else
31572 return __builtin_shuffle (__a, __b, (uint16x4_t) {2, 6, 3, 7});
31573 #endif
31576 __extension__ extern __inline int32x2_t
31577 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31578 vzip2_s32 (int32x2_t __a, int32x2_t __b)
31580 #ifdef __AARCH64EB__
31581 return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
31582 #else
31583 return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
31584 #endif
31587 __extension__ extern __inline uint8x8_t
31588 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31589 vzip2_u8 (uint8x8_t __a, uint8x8_t __b)
31591 #ifdef __AARCH64EB__
31592 return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 0, 9, 1, 10, 2, 11, 3});
31593 #else
31594 return __builtin_shuffle (__a, __b, (uint8x8_t) {4, 12, 5, 13, 6, 14, 7, 15});
31595 #endif
31598 __extension__ extern __inline uint16x4_t
31599 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31600 vzip2_u16 (uint16x4_t __a, uint16x4_t __b)
31602 #ifdef __AARCH64EB__
31603 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 5, 1});
31604 #else
31605 return __builtin_shuffle (__a, __b, (uint16x4_t) {2, 6, 3, 7});
31606 #endif
31609 __extension__ extern __inline uint32x2_t
31610 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31611 vzip2_u32 (uint32x2_t __a, uint32x2_t __b)
31613 #ifdef __AARCH64EB__
31614 return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
31615 #else
31616 return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
31617 #endif
31620 __extension__ extern __inline float16x8_t
31621 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31622 vzip2q_f16 (float16x8_t __a, float16x8_t __b)
31624 #ifdef __AARCH64EB__
31625 return __builtin_shuffle (__a, __b,
31626 (uint16x8_t) {8, 0, 9, 1, 10, 2, 11, 3});
31627 #else
31628 return __builtin_shuffle (__a, __b,
31629 (uint16x8_t) {4, 12, 5, 13, 6, 14, 7, 15});
31630 #endif
31633 __extension__ extern __inline float32x4_t
31634 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31635 vzip2q_f32 (float32x4_t __a, float32x4_t __b)
31637 #ifdef __AARCH64EB__
31638 return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 0, 5, 1});
31639 #else
31640 return __builtin_shuffle (__a, __b, (uint32x4_t) {2, 6, 3, 7});
31641 #endif
31644 __extension__ extern __inline float64x2_t
31645 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31646 vzip2q_f64 (float64x2_t __a, float64x2_t __b)
31648 #ifdef __AARCH64EB__
31649 return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
31650 #else
31651 return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
31652 #endif
31655 __extension__ extern __inline poly8x16_t
31656 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31657 vzip2q_p8 (poly8x16_t __a, poly8x16_t __b)
31659 #ifdef __AARCH64EB__
31660 return __builtin_shuffle (__a, __b, (uint8x16_t)
31661 {16, 0, 17, 1, 18, 2, 19, 3, 20, 4, 21, 5, 22, 6, 23, 7});
31662 #else
31663 return __builtin_shuffle (__a, __b, (uint8x16_t)
31664 {8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31});
31665 #endif
31668 __extension__ extern __inline poly16x8_t
31669 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31670 vzip2q_p16 (poly16x8_t __a, poly16x8_t __b)
31672 #ifdef __AARCH64EB__
31673 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 0, 9, 1, 10, 2, 11, 3});
31674 #else
31675 return __builtin_shuffle (__a, __b, (uint16x8_t)
31676 {4, 12, 5, 13, 6, 14, 7, 15});
31677 #endif
31680 __extension__ extern __inline int8x16_t
31681 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31682 vzip2q_s8 (int8x16_t __a, int8x16_t __b)
31684 #ifdef __AARCH64EB__
31685 return __builtin_shuffle (__a, __b, (uint8x16_t)
31686 {16, 0, 17, 1, 18, 2, 19, 3, 20, 4, 21, 5, 22, 6, 23, 7});
31687 #else
31688 return __builtin_shuffle (__a, __b, (uint8x16_t)
31689 {8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31});
31690 #endif
31693 __extension__ extern __inline int16x8_t
31694 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31695 vzip2q_s16 (int16x8_t __a, int16x8_t __b)
31697 #ifdef __AARCH64EB__
31698 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 0, 9, 1, 10, 2, 11, 3});
31699 #else
31700 return __builtin_shuffle (__a, __b, (uint16x8_t)
31701 {4, 12, 5, 13, 6, 14, 7, 15});
31702 #endif
31705 __extension__ extern __inline int32x4_t
31706 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31707 vzip2q_s32 (int32x4_t __a, int32x4_t __b)
31709 #ifdef __AARCH64EB__
31710 return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 0, 5, 1});
31711 #else
31712 return __builtin_shuffle (__a, __b, (uint32x4_t) {2, 6, 3, 7});
31713 #endif
31716 __extension__ extern __inline int64x2_t
31717 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31718 vzip2q_s64 (int64x2_t __a, int64x2_t __b)
31720 #ifdef __AARCH64EB__
31721 return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
31722 #else
31723 return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
31724 #endif
31727 __extension__ extern __inline uint8x16_t
31728 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31729 vzip2q_u8 (uint8x16_t __a, uint8x16_t __b)
31731 #ifdef __AARCH64EB__
31732 return __builtin_shuffle (__a, __b, (uint8x16_t)
31733 {16, 0, 17, 1, 18, 2, 19, 3, 20, 4, 21, 5, 22, 6, 23, 7});
31734 #else
31735 return __builtin_shuffle (__a, __b, (uint8x16_t)
31736 {8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31});
31737 #endif
31740 __extension__ extern __inline uint16x8_t
31741 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31742 vzip2q_u16 (uint16x8_t __a, uint16x8_t __b)
31744 #ifdef __AARCH64EB__
31745 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 0, 9, 1, 10, 2, 11, 3});
31746 #else
31747 return __builtin_shuffle (__a, __b, (uint16x8_t)
31748 {4, 12, 5, 13, 6, 14, 7, 15});
31749 #endif
31752 __extension__ extern __inline uint32x4_t
31753 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31754 vzip2q_u32 (uint32x4_t __a, uint32x4_t __b)
31756 #ifdef __AARCH64EB__
31757 return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 0, 5, 1});
31758 #else
31759 return __builtin_shuffle (__a, __b, (uint32x4_t) {2, 6, 3, 7});
31760 #endif
31763 __extension__ extern __inline uint64x2_t
31764 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31765 vzip2q_u64 (uint64x2_t __a, uint64x2_t __b)
31767 #ifdef __AARCH64EB__
31768 return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
31769 #else
31770 return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
31771 #endif
31774 __INTERLEAVE_LIST (zip)
31776 #undef __INTERLEAVE_LIST
31777 #undef __DEFINTERLEAVE
31779 /* End of optimal implementations in approved order. */
31781 #pragma GCC pop_options
31783 /* ARMv8.2-A FP16 intrinsics. */
31785 #include "arm_fp16.h"
31787 #pragma GCC push_options
31788 #pragma GCC target ("arch=armv8.2-a+fp16")
31790 /* ARMv8.2-A FP16 one operand vector intrinsics. */
31792 __extension__ extern __inline float16x4_t
31793 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31794 vabs_f16 (float16x4_t __a)
31796 return __builtin_aarch64_absv4hf (__a);
31799 __extension__ extern __inline float16x8_t
31800 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31801 vabsq_f16 (float16x8_t __a)
31803 return __builtin_aarch64_absv8hf (__a);
31806 __extension__ extern __inline uint16x4_t
31807 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31808 vceqz_f16 (float16x4_t __a)
31810 return __builtin_aarch64_cmeqv4hf_uss (__a, vdup_n_f16 (0.0f));
31813 __extension__ extern __inline uint16x8_t
31814 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31815 vceqzq_f16 (float16x8_t __a)
31817 return __builtin_aarch64_cmeqv8hf_uss (__a, vdupq_n_f16 (0.0f));
31820 __extension__ extern __inline uint16x4_t
31821 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31822 vcgez_f16 (float16x4_t __a)
31824 return __builtin_aarch64_cmgev4hf_uss (__a, vdup_n_f16 (0.0f));
31827 __extension__ extern __inline uint16x8_t
31828 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31829 vcgezq_f16 (float16x8_t __a)
31831 return __builtin_aarch64_cmgev8hf_uss (__a, vdupq_n_f16 (0.0f));
31834 __extension__ extern __inline uint16x4_t
31835 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31836 vcgtz_f16 (float16x4_t __a)
31838 return __builtin_aarch64_cmgtv4hf_uss (__a, vdup_n_f16 (0.0f));
31841 __extension__ extern __inline uint16x8_t
31842 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31843 vcgtzq_f16 (float16x8_t __a)
31845 return __builtin_aarch64_cmgtv8hf_uss (__a, vdupq_n_f16 (0.0f));
31848 __extension__ extern __inline uint16x4_t
31849 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31850 vclez_f16 (float16x4_t __a)
31852 return __builtin_aarch64_cmlev4hf_uss (__a, vdup_n_f16 (0.0f));
31855 __extension__ extern __inline uint16x8_t
31856 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31857 vclezq_f16 (float16x8_t __a)
31859 return __builtin_aarch64_cmlev8hf_uss (__a, vdupq_n_f16 (0.0f));
31862 __extension__ extern __inline uint16x4_t
31863 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31864 vcltz_f16 (float16x4_t __a)
31866 return __builtin_aarch64_cmltv4hf_uss (__a, vdup_n_f16 (0.0f));
31869 __extension__ extern __inline uint16x8_t
31870 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31871 vcltzq_f16 (float16x8_t __a)
31873 return __builtin_aarch64_cmltv8hf_uss (__a, vdupq_n_f16 (0.0f));
31876 __extension__ extern __inline float16x4_t
31877 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31878 vcvt_f16_s16 (int16x4_t __a)
31880 return __builtin_aarch64_floatv4hiv4hf (__a);
31883 __extension__ extern __inline float16x8_t
31884 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31885 vcvtq_f16_s16 (int16x8_t __a)
31887 return __builtin_aarch64_floatv8hiv8hf (__a);
31890 __extension__ extern __inline float16x4_t
31891 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31892 vcvt_f16_u16 (uint16x4_t __a)
31894 return __builtin_aarch64_floatunsv4hiv4hf ((int16x4_t) __a);
31897 __extension__ extern __inline float16x8_t
31898 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31899 vcvtq_f16_u16 (uint16x8_t __a)
31901 return __builtin_aarch64_floatunsv8hiv8hf ((int16x8_t) __a);
31904 __extension__ extern __inline int16x4_t
31905 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31906 vcvt_s16_f16 (float16x4_t __a)
31908 return __builtin_aarch64_lbtruncv4hfv4hi (__a);
31911 __extension__ extern __inline int16x8_t
31912 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31913 vcvtq_s16_f16 (float16x8_t __a)
31915 return __builtin_aarch64_lbtruncv8hfv8hi (__a);
31918 __extension__ extern __inline uint16x4_t
31919 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31920 vcvt_u16_f16 (float16x4_t __a)
31922 return __builtin_aarch64_lbtruncuv4hfv4hi_us (__a);
31925 __extension__ extern __inline uint16x8_t
31926 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31927 vcvtq_u16_f16 (float16x8_t __a)
31929 return __builtin_aarch64_lbtruncuv8hfv8hi_us (__a);
31932 __extension__ extern __inline int16x4_t
31933 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31934 vcvta_s16_f16 (float16x4_t __a)
31936 return __builtin_aarch64_lroundv4hfv4hi (__a);
31939 __extension__ extern __inline int16x8_t
31940 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31941 vcvtaq_s16_f16 (float16x8_t __a)
31943 return __builtin_aarch64_lroundv8hfv8hi (__a);
31946 __extension__ extern __inline uint16x4_t
31947 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31948 vcvta_u16_f16 (float16x4_t __a)
31950 return __builtin_aarch64_lrounduv4hfv4hi_us (__a);
31953 __extension__ extern __inline uint16x8_t
31954 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31955 vcvtaq_u16_f16 (float16x8_t __a)
31957 return __builtin_aarch64_lrounduv8hfv8hi_us (__a);
31960 __extension__ extern __inline int16x4_t
31961 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31962 vcvtm_s16_f16 (float16x4_t __a)
31964 return __builtin_aarch64_lfloorv4hfv4hi (__a);
31967 __extension__ extern __inline int16x8_t
31968 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31969 vcvtmq_s16_f16 (float16x8_t __a)
31971 return __builtin_aarch64_lfloorv8hfv8hi (__a);
31974 __extension__ extern __inline uint16x4_t
31975 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31976 vcvtm_u16_f16 (float16x4_t __a)
31978 return __builtin_aarch64_lflooruv4hfv4hi_us (__a);
31981 __extension__ extern __inline uint16x8_t
31982 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31983 vcvtmq_u16_f16 (float16x8_t __a)
31985 return __builtin_aarch64_lflooruv8hfv8hi_us (__a);
31988 __extension__ extern __inline int16x4_t
31989 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31990 vcvtn_s16_f16 (float16x4_t __a)
31992 return __builtin_aarch64_lfrintnv4hfv4hi (__a);
31995 __extension__ extern __inline int16x8_t
31996 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31997 vcvtnq_s16_f16 (float16x8_t __a)
31999 return __builtin_aarch64_lfrintnv8hfv8hi (__a);
32002 __extension__ extern __inline uint16x4_t
32003 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32004 vcvtn_u16_f16 (float16x4_t __a)
32006 return __builtin_aarch64_lfrintnuv4hfv4hi_us (__a);
32009 __extension__ extern __inline uint16x8_t
32010 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32011 vcvtnq_u16_f16 (float16x8_t __a)
32013 return __builtin_aarch64_lfrintnuv8hfv8hi_us (__a);
32016 __extension__ extern __inline int16x4_t
32017 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32018 vcvtp_s16_f16 (float16x4_t __a)
32020 return __builtin_aarch64_lceilv4hfv4hi (__a);
32023 __extension__ extern __inline int16x8_t
32024 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32025 vcvtpq_s16_f16 (float16x8_t __a)
32027 return __builtin_aarch64_lceilv8hfv8hi (__a);
32030 __extension__ extern __inline uint16x4_t
32031 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32032 vcvtp_u16_f16 (float16x4_t __a)
32034 return __builtin_aarch64_lceiluv4hfv4hi_us (__a);
32037 __extension__ extern __inline uint16x8_t
32038 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32039 vcvtpq_u16_f16 (float16x8_t __a)
32041 return __builtin_aarch64_lceiluv8hfv8hi_us (__a);
32044 __extension__ extern __inline float16x4_t
32045 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32046 vneg_f16 (float16x4_t __a)
32048 return -__a;
32051 __extension__ extern __inline float16x8_t
32052 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32053 vnegq_f16 (float16x8_t __a)
32055 return -__a;
32058 __extension__ extern __inline float16x4_t
32059 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32060 vrecpe_f16 (float16x4_t __a)
32062 return __builtin_aarch64_frecpev4hf (__a);
32065 __extension__ extern __inline float16x8_t
32066 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32067 vrecpeq_f16 (float16x8_t __a)
32069 return __builtin_aarch64_frecpev8hf (__a);
32072 __extension__ extern __inline float16x4_t
32073 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32074 vrnd_f16 (float16x4_t __a)
32076 return __builtin_aarch64_btruncv4hf (__a);
32079 __extension__ extern __inline float16x8_t
32080 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32081 vrndq_f16 (float16x8_t __a)
32083 return __builtin_aarch64_btruncv8hf (__a);
32086 __extension__ extern __inline float16x4_t
32087 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32088 vrnda_f16 (float16x4_t __a)
32090 return __builtin_aarch64_roundv4hf (__a);
32093 __extension__ extern __inline float16x8_t
32094 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32095 vrndaq_f16 (float16x8_t __a)
32097 return __builtin_aarch64_roundv8hf (__a);
32100 __extension__ extern __inline float16x4_t
32101 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32102 vrndi_f16 (float16x4_t __a)
32104 return __builtin_aarch64_nearbyintv4hf (__a);
32107 __extension__ extern __inline float16x8_t
32108 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32109 vrndiq_f16 (float16x8_t __a)
32111 return __builtin_aarch64_nearbyintv8hf (__a);
32114 __extension__ extern __inline float16x4_t
32115 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32116 vrndm_f16 (float16x4_t __a)
32118 return __builtin_aarch64_floorv4hf (__a);
32121 __extension__ extern __inline float16x8_t
32122 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32123 vrndmq_f16 (float16x8_t __a)
32125 return __builtin_aarch64_floorv8hf (__a);
32128 __extension__ extern __inline float16x4_t
32129 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32130 vrndn_f16 (float16x4_t __a)
32132 return __builtin_aarch64_frintnv4hf (__a);
32135 __extension__ extern __inline float16x8_t
32136 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32137 vrndnq_f16 (float16x8_t __a)
32139 return __builtin_aarch64_frintnv8hf (__a);
32142 __extension__ extern __inline float16x4_t
32143 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32144 vrndp_f16 (float16x4_t __a)
32146 return __builtin_aarch64_ceilv4hf (__a);
32149 __extension__ extern __inline float16x8_t
32150 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32151 vrndpq_f16 (float16x8_t __a)
32153 return __builtin_aarch64_ceilv8hf (__a);
32156 __extension__ extern __inline float16x4_t
32157 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32158 vrndx_f16 (float16x4_t __a)
32160 return __builtin_aarch64_rintv4hf (__a);
32163 __extension__ extern __inline float16x8_t
32164 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32165 vrndxq_f16 (float16x8_t __a)
32167 return __builtin_aarch64_rintv8hf (__a);
32170 __extension__ extern __inline float16x4_t
32171 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32172 vrsqrte_f16 (float16x4_t a)
32174 return __builtin_aarch64_rsqrtev4hf (a);
32177 __extension__ extern __inline float16x8_t
32178 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32179 vrsqrteq_f16 (float16x8_t a)
32181 return __builtin_aarch64_rsqrtev8hf (a);
32184 __extension__ extern __inline float16x4_t
32185 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32186 vsqrt_f16 (float16x4_t a)
32188 return __builtin_aarch64_sqrtv4hf (a);
32191 __extension__ extern __inline float16x8_t
32192 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32193 vsqrtq_f16 (float16x8_t a)
32195 return __builtin_aarch64_sqrtv8hf (a);
32198 /* ARMv8.2-A FP16 two operands vector intrinsics. */
32200 __extension__ extern __inline float16x4_t
32201 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32202 vadd_f16 (float16x4_t __a, float16x4_t __b)
32204 return __a + __b;
32207 __extension__ extern __inline float16x8_t
32208 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32209 vaddq_f16 (float16x8_t __a, float16x8_t __b)
32211 return __a + __b;
32214 __extension__ extern __inline float16x4_t
32215 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32216 vabd_f16 (float16x4_t a, float16x4_t b)
32218 return __builtin_aarch64_fabdv4hf (a, b);
32221 __extension__ extern __inline float16x8_t
32222 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32223 vabdq_f16 (float16x8_t a, float16x8_t b)
32225 return __builtin_aarch64_fabdv8hf (a, b);
32228 __extension__ extern __inline uint16x4_t
32229 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32230 vcage_f16 (float16x4_t __a, float16x4_t __b)
32232 return __builtin_aarch64_facgev4hf_uss (__a, __b);
32235 __extension__ extern __inline uint16x8_t
32236 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32237 vcageq_f16 (float16x8_t __a, float16x8_t __b)
32239 return __builtin_aarch64_facgev8hf_uss (__a, __b);
32242 __extension__ extern __inline uint16x4_t
32243 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32244 vcagt_f16 (float16x4_t __a, float16x4_t __b)
32246 return __builtin_aarch64_facgtv4hf_uss (__a, __b);
32249 __extension__ extern __inline uint16x8_t
32250 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32251 vcagtq_f16 (float16x8_t __a, float16x8_t __b)
32253 return __builtin_aarch64_facgtv8hf_uss (__a, __b);
32256 __extension__ extern __inline uint16x4_t
32257 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32258 vcale_f16 (float16x4_t __a, float16x4_t __b)
32260 return __builtin_aarch64_faclev4hf_uss (__a, __b);
32263 __extension__ extern __inline uint16x8_t
32264 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32265 vcaleq_f16 (float16x8_t __a, float16x8_t __b)
32267 return __builtin_aarch64_faclev8hf_uss (__a, __b);
32270 __extension__ extern __inline uint16x4_t
32271 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32272 vcalt_f16 (float16x4_t __a, float16x4_t __b)
32274 return __builtin_aarch64_facltv4hf_uss (__a, __b);
32277 __extension__ extern __inline uint16x8_t
32278 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32279 vcaltq_f16 (float16x8_t __a, float16x8_t __b)
32281 return __builtin_aarch64_facltv8hf_uss (__a, __b);
32284 __extension__ extern __inline uint16x4_t
32285 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32286 vceq_f16 (float16x4_t __a, float16x4_t __b)
32288 return __builtin_aarch64_cmeqv4hf_uss (__a, __b);
32291 __extension__ extern __inline uint16x8_t
32292 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32293 vceqq_f16 (float16x8_t __a, float16x8_t __b)
32295 return __builtin_aarch64_cmeqv8hf_uss (__a, __b);
32298 __extension__ extern __inline uint16x4_t
32299 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32300 vcge_f16 (float16x4_t __a, float16x4_t __b)
32302 return __builtin_aarch64_cmgev4hf_uss (__a, __b);
32305 __extension__ extern __inline uint16x8_t
32306 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32307 vcgeq_f16 (float16x8_t __a, float16x8_t __b)
32309 return __builtin_aarch64_cmgev8hf_uss (__a, __b);
32312 __extension__ extern __inline uint16x4_t
32313 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32314 vcgt_f16 (float16x4_t __a, float16x4_t __b)
32316 return __builtin_aarch64_cmgtv4hf_uss (__a, __b);
32319 __extension__ extern __inline uint16x8_t
32320 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32321 vcgtq_f16 (float16x8_t __a, float16x8_t __b)
32323 return __builtin_aarch64_cmgtv8hf_uss (__a, __b);
32326 __extension__ extern __inline uint16x4_t
32327 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32328 vcle_f16 (float16x4_t __a, float16x4_t __b)
32330 return __builtin_aarch64_cmlev4hf_uss (__a, __b);
32333 __extension__ extern __inline uint16x8_t
32334 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32335 vcleq_f16 (float16x8_t __a, float16x8_t __b)
32337 return __builtin_aarch64_cmlev8hf_uss (__a, __b);
32340 __extension__ extern __inline uint16x4_t
32341 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32342 vclt_f16 (float16x4_t __a, float16x4_t __b)
32344 return __builtin_aarch64_cmltv4hf_uss (__a, __b);
32347 __extension__ extern __inline uint16x8_t
32348 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32349 vcltq_f16 (float16x8_t __a, float16x8_t __b)
32351 return __builtin_aarch64_cmltv8hf_uss (__a, __b);
32354 __extension__ extern __inline float16x4_t
32355 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32356 vcvt_n_f16_s16 (int16x4_t __a, const int __b)
32358 return __builtin_aarch64_scvtfv4hi (__a, __b);
32361 __extension__ extern __inline float16x8_t
32362 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32363 vcvtq_n_f16_s16 (int16x8_t __a, const int __b)
32365 return __builtin_aarch64_scvtfv8hi (__a, __b);
32368 __extension__ extern __inline float16x4_t
32369 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32370 vcvt_n_f16_u16 (uint16x4_t __a, const int __b)
32372 return __builtin_aarch64_ucvtfv4hi_sus (__a, __b);
32375 __extension__ extern __inline float16x8_t
32376 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32377 vcvtq_n_f16_u16 (uint16x8_t __a, const int __b)
32379 return __builtin_aarch64_ucvtfv8hi_sus (__a, __b);
32382 __extension__ extern __inline int16x4_t
32383 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32384 vcvt_n_s16_f16 (float16x4_t __a, const int __b)
32386 return __builtin_aarch64_fcvtzsv4hf (__a, __b);
32389 __extension__ extern __inline int16x8_t
32390 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32391 vcvtq_n_s16_f16 (float16x8_t __a, const int __b)
32393 return __builtin_aarch64_fcvtzsv8hf (__a, __b);
32396 __extension__ extern __inline uint16x4_t
32397 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32398 vcvt_n_u16_f16 (float16x4_t __a, const int __b)
32400 return __builtin_aarch64_fcvtzuv4hf_uss (__a, __b);
32403 __extension__ extern __inline uint16x8_t
32404 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32405 vcvtq_n_u16_f16 (float16x8_t __a, const int __b)
32407 return __builtin_aarch64_fcvtzuv8hf_uss (__a, __b);
32410 __extension__ extern __inline float16x4_t
32411 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32412 vdiv_f16 (float16x4_t __a, float16x4_t __b)
32414 return __a / __b;
32417 __extension__ extern __inline float16x8_t
32418 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32419 vdivq_f16 (float16x8_t __a, float16x8_t __b)
32421 return __a / __b;
32424 __extension__ extern __inline float16x4_t
32425 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32426 vmax_f16 (float16x4_t __a, float16x4_t __b)
32428 return __builtin_aarch64_smax_nanv4hf (__a, __b);
32431 __extension__ extern __inline float16x8_t
32432 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32433 vmaxq_f16 (float16x8_t __a, float16x8_t __b)
32435 return __builtin_aarch64_smax_nanv8hf (__a, __b);
32438 __extension__ extern __inline float16x4_t
32439 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32440 vmaxnm_f16 (float16x4_t __a, float16x4_t __b)
32442 return __builtin_aarch64_fmaxv4hf (__a, __b);
32445 __extension__ extern __inline float16x8_t
32446 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32447 vmaxnmq_f16 (float16x8_t __a, float16x8_t __b)
32449 return __builtin_aarch64_fmaxv8hf (__a, __b);
32452 __extension__ extern __inline float16x4_t
32453 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32454 vmin_f16 (float16x4_t __a, float16x4_t __b)
32456 return __builtin_aarch64_smin_nanv4hf (__a, __b);
32459 __extension__ extern __inline float16x8_t
32460 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32461 vminq_f16 (float16x8_t __a, float16x8_t __b)
32463 return __builtin_aarch64_smin_nanv8hf (__a, __b);
32466 __extension__ extern __inline float16x4_t
32467 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32468 vminnm_f16 (float16x4_t __a, float16x4_t __b)
32470 return __builtin_aarch64_fminv4hf (__a, __b);
32473 __extension__ extern __inline float16x8_t
32474 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32475 vminnmq_f16 (float16x8_t __a, float16x8_t __b)
32477 return __builtin_aarch64_fminv8hf (__a, __b);
32480 __extension__ extern __inline float16x4_t
32481 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32482 vmul_f16 (float16x4_t __a, float16x4_t __b)
32484 return __a * __b;
32487 __extension__ extern __inline float16x8_t
32488 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32489 vmulq_f16 (float16x8_t __a, float16x8_t __b)
32491 return __a * __b;
32494 __extension__ extern __inline float16x4_t
32495 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32496 vmulx_f16 (float16x4_t __a, float16x4_t __b)
32498 return __builtin_aarch64_fmulxv4hf (__a, __b);
32501 __extension__ extern __inline float16x8_t
32502 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32503 vmulxq_f16 (float16x8_t __a, float16x8_t __b)
32505 return __builtin_aarch64_fmulxv8hf (__a, __b);
32508 __extension__ extern __inline float16x4_t
32509 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32510 vpadd_f16 (float16x4_t a, float16x4_t b)
32512 return __builtin_aarch64_faddpv4hf (a, b);
32515 __extension__ extern __inline float16x8_t
32516 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32517 vpaddq_f16 (float16x8_t a, float16x8_t b)
32519 return __builtin_aarch64_faddpv8hf (a, b);
32522 __extension__ extern __inline float16x4_t
32523 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32524 vpmax_f16 (float16x4_t a, float16x4_t b)
32526 return __builtin_aarch64_smax_nanpv4hf (a, b);
32529 __extension__ extern __inline float16x8_t
32530 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32531 vpmaxq_f16 (float16x8_t a, float16x8_t b)
32533 return __builtin_aarch64_smax_nanpv8hf (a, b);
32536 __extension__ extern __inline float16x4_t
32537 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32538 vpmaxnm_f16 (float16x4_t a, float16x4_t b)
32540 return __builtin_aarch64_smaxpv4hf (a, b);
32543 __extension__ extern __inline float16x8_t
32544 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32545 vpmaxnmq_f16 (float16x8_t a, float16x8_t b)
32547 return __builtin_aarch64_smaxpv8hf (a, b);
32550 __extension__ extern __inline float16x4_t
32551 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32552 vpmin_f16 (float16x4_t a, float16x4_t b)
32554 return __builtin_aarch64_smin_nanpv4hf (a, b);
32557 __extension__ extern __inline float16x8_t
32558 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32559 vpminq_f16 (float16x8_t a, float16x8_t b)
32561 return __builtin_aarch64_smin_nanpv8hf (a, b);
32564 __extension__ extern __inline float16x4_t
32565 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32566 vpminnm_f16 (float16x4_t a, float16x4_t b)
32568 return __builtin_aarch64_sminpv4hf (a, b);
32571 __extension__ extern __inline float16x8_t
32572 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32573 vpminnmq_f16 (float16x8_t a, float16x8_t b)
32575 return __builtin_aarch64_sminpv8hf (a, b);
32578 __extension__ extern __inline float16x4_t
32579 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32580 vrecps_f16 (float16x4_t __a, float16x4_t __b)
32582 return __builtin_aarch64_frecpsv4hf (__a, __b);
32585 __extension__ extern __inline float16x8_t
32586 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32587 vrecpsq_f16 (float16x8_t __a, float16x8_t __b)
32589 return __builtin_aarch64_frecpsv8hf (__a, __b);
32592 __extension__ extern __inline float16x4_t
32593 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32594 vrsqrts_f16 (float16x4_t a, float16x4_t b)
32596 return __builtin_aarch64_rsqrtsv4hf (a, b);
32599 __extension__ extern __inline float16x8_t
32600 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32601 vrsqrtsq_f16 (float16x8_t a, float16x8_t b)
32603 return __builtin_aarch64_rsqrtsv8hf (a, b);
32606 __extension__ extern __inline float16x4_t
32607 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32608 vsub_f16 (float16x4_t __a, float16x4_t __b)
32610 return __a - __b;
32613 __extension__ extern __inline float16x8_t
32614 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32615 vsubq_f16 (float16x8_t __a, float16x8_t __b)
32617 return __a - __b;
32620 /* ARMv8.2-A FP16 three operands vector intrinsics. */
32622 __extension__ extern __inline float16x4_t
32623 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32624 vfma_f16 (float16x4_t __a, float16x4_t __b, float16x4_t __c)
32626 return __builtin_aarch64_fmav4hf (__b, __c, __a);
32629 __extension__ extern __inline float16x8_t
32630 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32631 vfmaq_f16 (float16x8_t __a, float16x8_t __b, float16x8_t __c)
32633 return __builtin_aarch64_fmav8hf (__b, __c, __a);
32636 __extension__ extern __inline float16x4_t
32637 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32638 vfms_f16 (float16x4_t __a, float16x4_t __b, float16x4_t __c)
32640 return __builtin_aarch64_fnmav4hf (__b, __c, __a);
32643 __extension__ extern __inline float16x8_t
32644 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32645 vfmsq_f16 (float16x8_t __a, float16x8_t __b, float16x8_t __c)
32647 return __builtin_aarch64_fnmav8hf (__b, __c, __a);
32650 /* ARMv8.2-A FP16 lane vector intrinsics. */
32652 __extension__ extern __inline float16_t
32653 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32654 vfmah_lane_f16 (float16_t __a, float16_t __b,
32655 float16x4_t __c, const int __lane)
32657 return vfmah_f16 (__a, __b, __aarch64_vget_lane_any (__c, __lane));
32660 __extension__ extern __inline float16_t
32661 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32662 vfmah_laneq_f16 (float16_t __a, float16_t __b,
32663 float16x8_t __c, const int __lane)
32665 return vfmah_f16 (__a, __b, __aarch64_vget_lane_any (__c, __lane));
32668 __extension__ extern __inline float16x4_t
32669 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32670 vfma_lane_f16 (float16x4_t __a, float16x4_t __b,
32671 float16x4_t __c, const int __lane)
32673 return vfma_f16 (__a, __b, __aarch64_vdup_lane_f16 (__c, __lane));
32676 __extension__ extern __inline float16x8_t
32677 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32678 vfmaq_lane_f16 (float16x8_t __a, float16x8_t __b,
32679 float16x4_t __c, const int __lane)
32681 return vfmaq_f16 (__a, __b, __aarch64_vdupq_lane_f16 (__c, __lane));
32684 __extension__ extern __inline float16x4_t
32685 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32686 vfma_laneq_f16 (float16x4_t __a, float16x4_t __b,
32687 float16x8_t __c, const int __lane)
32689 return vfma_f16 (__a, __b, __aarch64_vdup_laneq_f16 (__c, __lane));
32692 __extension__ extern __inline float16x8_t
32693 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32694 vfmaq_laneq_f16 (float16x8_t __a, float16x8_t __b,
32695 float16x8_t __c, const int __lane)
32697 return vfmaq_f16 (__a, __b, __aarch64_vdupq_laneq_f16 (__c, __lane));
32700 __extension__ extern __inline float16x4_t
32701 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32702 vfma_n_f16 (float16x4_t __a, float16x4_t __b, float16_t __c)
32704 return vfma_f16 (__a, __b, vdup_n_f16 (__c));
32707 __extension__ extern __inline float16x8_t
32708 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32709 vfmaq_n_f16 (float16x8_t __a, float16x8_t __b, float16_t __c)
32711 return vfmaq_f16 (__a, __b, vdupq_n_f16 (__c));
32714 __extension__ extern __inline float16_t
32715 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32716 vfmsh_lane_f16 (float16_t __a, float16_t __b,
32717 float16x4_t __c, const int __lane)
32719 return vfmsh_f16 (__a, __b, __aarch64_vget_lane_any (__c, __lane));
32722 __extension__ extern __inline float16_t
32723 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32724 vfmsh_laneq_f16 (float16_t __a, float16_t __b,
32725 float16x8_t __c, const int __lane)
32727 return vfmsh_f16 (__a, __b, __aarch64_vget_lane_any (__c, __lane));
32730 __extension__ extern __inline float16x4_t
32731 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32732 vfms_lane_f16 (float16x4_t __a, float16x4_t __b,
32733 float16x4_t __c, const int __lane)
32735 return vfms_f16 (__a, __b, __aarch64_vdup_lane_f16 (__c, __lane));
32738 __extension__ extern __inline float16x8_t
32739 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32740 vfmsq_lane_f16 (float16x8_t __a, float16x8_t __b,
32741 float16x4_t __c, const int __lane)
32743 return vfmsq_f16 (__a, __b, __aarch64_vdupq_lane_f16 (__c, __lane));
32746 __extension__ extern __inline float16x4_t
32747 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32748 vfms_laneq_f16 (float16x4_t __a, float16x4_t __b,
32749 float16x8_t __c, const int __lane)
32751 return vfms_f16 (__a, __b, __aarch64_vdup_laneq_f16 (__c, __lane));
32754 __extension__ extern __inline float16x8_t
32755 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32756 vfmsq_laneq_f16 (float16x8_t __a, float16x8_t __b,
32757 float16x8_t __c, const int __lane)
32759 return vfmsq_f16 (__a, __b, __aarch64_vdupq_laneq_f16 (__c, __lane));
32762 __extension__ extern __inline float16x4_t
32763 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32764 vfms_n_f16 (float16x4_t __a, float16x4_t __b, float16_t __c)
32766 return vfms_f16 (__a, __b, vdup_n_f16 (__c));
32769 __extension__ extern __inline float16x8_t
32770 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32771 vfmsq_n_f16 (float16x8_t __a, float16x8_t __b, float16_t __c)
32773 return vfmsq_f16 (__a, __b, vdupq_n_f16 (__c));
32776 __extension__ extern __inline float16_t
32777 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32778 vmulh_lane_f16 (float16_t __a, float16x4_t __b, const int __lane)
32780 return __a * __aarch64_vget_lane_any (__b, __lane);
32783 __extension__ extern __inline float16x4_t
32784 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32785 vmul_lane_f16 (float16x4_t __a, float16x4_t __b, const int __lane)
32787 return vmul_f16 (__a, vdup_n_f16 (__aarch64_vget_lane_any (__b, __lane)));
32790 __extension__ extern __inline float16x8_t
32791 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32792 vmulq_lane_f16 (float16x8_t __a, float16x4_t __b, const int __lane)
32794 return vmulq_f16 (__a, vdupq_n_f16 (__aarch64_vget_lane_any (__b, __lane)));
32797 __extension__ extern __inline float16_t
32798 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32799 vmulh_laneq_f16 (float16_t __a, float16x8_t __b, const int __lane)
32801 return __a * __aarch64_vget_lane_any (__b, __lane);
32804 __extension__ extern __inline float16x4_t
32805 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32806 vmul_laneq_f16 (float16x4_t __a, float16x8_t __b, const int __lane)
32808 return vmul_f16 (__a, vdup_n_f16 (__aarch64_vget_lane_any (__b, __lane)));
32811 __extension__ extern __inline float16x8_t
32812 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32813 vmulq_laneq_f16 (float16x8_t __a, float16x8_t __b, const int __lane)
32815 return vmulq_f16 (__a, vdupq_n_f16 (__aarch64_vget_lane_any (__b, __lane)));
32818 __extension__ extern __inline float16x4_t
32819 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32820 vmul_n_f16 (float16x4_t __a, float16_t __b)
32822 return vmul_lane_f16 (__a, vdup_n_f16 (__b), 0);
32825 __extension__ extern __inline float16x8_t
32826 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32827 vmulq_n_f16 (float16x8_t __a, float16_t __b)
32829 return vmulq_laneq_f16 (__a, vdupq_n_f16 (__b), 0);
32832 __extension__ extern __inline float16_t
32833 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32834 vmulxh_lane_f16 (float16_t __a, float16x4_t __b, const int __lane)
32836 return vmulxh_f16 (__a, __aarch64_vget_lane_any (__b, __lane));
32839 __extension__ extern __inline float16x4_t
32840 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32841 vmulx_lane_f16 (float16x4_t __a, float16x4_t __b, const int __lane)
32843 return vmulx_f16 (__a, __aarch64_vdup_lane_f16 (__b, __lane));
32846 __extension__ extern __inline float16x8_t
32847 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32848 vmulxq_lane_f16 (float16x8_t __a, float16x4_t __b, const int __lane)
32850 return vmulxq_f16 (__a, __aarch64_vdupq_lane_f16 (__b, __lane));
32853 __extension__ extern __inline float16_t
32854 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32855 vmulxh_laneq_f16 (float16_t __a, float16x8_t __b, const int __lane)
32857 return vmulxh_f16 (__a, __aarch64_vget_lane_any (__b, __lane));
32860 __extension__ extern __inline float16x4_t
32861 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32862 vmulx_laneq_f16 (float16x4_t __a, float16x8_t __b, const int __lane)
32864 return vmulx_f16 (__a, __aarch64_vdup_laneq_f16 (__b, __lane));
32867 __extension__ extern __inline float16x8_t
32868 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32869 vmulxq_laneq_f16 (float16x8_t __a, float16x8_t __b, const int __lane)
32871 return vmulxq_f16 (__a, __aarch64_vdupq_laneq_f16 (__b, __lane));
32874 __extension__ extern __inline float16x4_t
32875 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32876 vmulx_n_f16 (float16x4_t __a, float16_t __b)
32878 return vmulx_f16 (__a, vdup_n_f16 (__b));
32881 __extension__ extern __inline float16x8_t
32882 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32883 vmulxq_n_f16 (float16x8_t __a, float16_t __b)
32885 return vmulxq_f16 (__a, vdupq_n_f16 (__b));
32888 /* ARMv8.2-A FP16 reduction vector intrinsics. */
32890 __extension__ extern __inline float16_t
32891 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32892 vmaxv_f16 (float16x4_t __a)
32894 return __builtin_aarch64_reduc_smax_nan_scal_v4hf (__a);
32897 __extension__ extern __inline float16_t
32898 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32899 vmaxvq_f16 (float16x8_t __a)
32901 return __builtin_aarch64_reduc_smax_nan_scal_v8hf (__a);
32904 __extension__ extern __inline float16_t
32905 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32906 vminv_f16 (float16x4_t __a)
32908 return __builtin_aarch64_reduc_smin_nan_scal_v4hf (__a);
32911 __extension__ extern __inline float16_t
32912 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32913 vminvq_f16 (float16x8_t __a)
32915 return __builtin_aarch64_reduc_smin_nan_scal_v8hf (__a);
32918 __extension__ extern __inline float16_t
32919 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32920 vmaxnmv_f16 (float16x4_t __a)
32922 return __builtin_aarch64_reduc_smax_scal_v4hf (__a);
32925 __extension__ extern __inline float16_t
32926 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32927 vmaxnmvq_f16 (float16x8_t __a)
32929 return __builtin_aarch64_reduc_smax_scal_v8hf (__a);
32932 __extension__ extern __inline float16_t
32933 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32934 vminnmv_f16 (float16x4_t __a)
32936 return __builtin_aarch64_reduc_smin_scal_v4hf (__a);
32939 __extension__ extern __inline float16_t
32940 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32941 vminnmvq_f16 (float16x8_t __a)
32943 return __builtin_aarch64_reduc_smin_scal_v8hf (__a);
32946 #pragma GCC pop_options
32948 /* AdvSIMD Dot Product intrinsics. */
32950 #pragma GCC push_options
32951 #pragma GCC target ("arch=armv8.2-a+dotprod")
32953 __extension__ extern __inline uint32x2_t
32954 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32955 vdot_u32 (uint32x2_t __r, uint8x8_t __a, uint8x8_t __b)
32957 return __builtin_aarch64_udotv8qi_uuuu (__r, __a, __b);
32960 __extension__ extern __inline uint32x4_t
32961 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32962 vdotq_u32 (uint32x4_t __r, uint8x16_t __a, uint8x16_t __b)
32964 return __builtin_aarch64_udotv16qi_uuuu (__r, __a, __b);
32967 __extension__ extern __inline int32x2_t
32968 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32969 vdot_s32 (int32x2_t __r, int8x8_t __a, int8x8_t __b)
32971 return __builtin_aarch64_sdotv8qi (__r, __a, __b);
32974 __extension__ extern __inline int32x4_t
32975 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32976 vdotq_s32 (int32x4_t __r, int8x16_t __a, int8x16_t __b)
32978 return __builtin_aarch64_sdotv16qi (__r, __a, __b);
32981 __extension__ extern __inline uint32x2_t
32982 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32983 vdot_lane_u32 (uint32x2_t __r, uint8x8_t __a, uint8x8_t __b, const int __index)
32985 return __builtin_aarch64_udot_lanev8qi_uuuus (__r, __a, __b, __index);
32988 __extension__ extern __inline uint32x2_t
32989 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32990 vdot_laneq_u32 (uint32x2_t __r, uint8x8_t __a, uint8x16_t __b,
32991 const int __index)
32993 return __builtin_aarch64_udot_laneqv8qi_uuuus (__r, __a, __b, __index);
32996 __extension__ extern __inline uint32x4_t
32997 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32998 vdotq_lane_u32 (uint32x4_t __r, uint8x16_t __a, uint8x8_t __b,
32999 const int __index)
33001 return __builtin_aarch64_udot_lanev16qi_uuuus (__r, __a, __b, __index);
33004 __extension__ extern __inline uint32x4_t
33005 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33006 vdotq_laneq_u32 (uint32x4_t __r, uint8x16_t __a, uint8x16_t __b,
33007 const int __index)
33009 return __builtin_aarch64_udot_laneqv16qi_uuuus (__r, __a, __b, __index);
33012 __extension__ extern __inline int32x2_t
33013 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33014 vdot_lane_s32 (int32x2_t __r, int8x8_t __a, int8x8_t __b, const int __index)
33016 return __builtin_aarch64_sdot_lanev8qi (__r, __a, __b, __index);
33019 __extension__ extern __inline int32x2_t
33020 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33021 vdot_laneq_s32 (int32x2_t __r, int8x8_t __a, int8x16_t __b, const int __index)
33023 return __builtin_aarch64_sdot_laneqv8qi (__r, __a, __b, __index);
33026 __extension__ extern __inline int32x4_t
33027 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33028 vdotq_lane_s32 (int32x4_t __r, int8x16_t __a, int8x8_t __b, const int __index)
33030 return __builtin_aarch64_sdot_lanev16qi (__r, __a, __b, __index);
33033 __extension__ extern __inline int32x4_t
33034 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33035 vdotq_laneq_s32 (int32x4_t __r, int8x16_t __a, int8x16_t __b, const int __index)
33037 return __builtin_aarch64_sdot_laneqv16qi (__r, __a, __b, __index);
33039 #pragma GCC pop_options
33041 #pragma GCC push_options
33042 #pragma GCC target(("arch=armv8.2-a+sm4"))
33044 __extension__ extern __inline uint32x4_t
33045 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33046 vsm3ss1q_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
33048 return __builtin_aarch64_sm3ss1qv4si_uuuu (__a, __b, __c);
33051 __extension__ extern __inline uint32x4_t
33052 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33053 vsm3tt1aq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c, const int __imm2)
33055 return __builtin_aarch64_sm3tt1aqv4si_uuuus (__a, __b, __c, __imm2);
33058 __extension__ extern __inline uint32x4_t
33059 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33060 vsm3tt1bq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c, const int __imm2)
33062 return __builtin_aarch64_sm3tt1bqv4si_uuuus (__a, __b, __c, __imm2);
33065 __extension__ extern __inline uint32x4_t
33066 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33067 vsm3tt2aq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c, const int __imm2)
33069 return __builtin_aarch64_sm3tt2aqv4si_uuuus (__a, __b, __c, __imm2);
33072 __extension__ extern __inline uint32x4_t
33073 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33074 vsm3tt2bq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c, const int __imm2)
33076 return __builtin_aarch64_sm3tt2bqv4si_uuuus (__a, __b, __c, __imm2);
33079 __extension__ extern __inline uint32x4_t
33080 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33081 vsm3partw1q_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
33083 return __builtin_aarch64_sm3partw1qv4si_uuuu (__a, __b, __c);
33085 __extension__ extern __inline uint32x4_t
33086 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33087 vsm3partw2q_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
33089 return __builtin_aarch64_sm3partw2qv4si_uuuu (__a, __b, __c);
33092 __extension__ extern __inline uint32x4_t
33093 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33094 vsm4eq_u32 (uint32x4_t __a, uint32x4_t __b)
33096 return __builtin_aarch64_sm4eqv4si_uuu (__a, __b);
33099 __extension__ extern __inline uint32x4_t
33100 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33101 vsm4ekeyq_u32 (uint32x4_t __a, uint32x4_t __b)
33103 return __builtin_aarch64_sm4ekeyqv4si_uuu (__a, __b);
33106 #pragma GCC pop_options
33108 #pragma GCC push_options
33109 #pragma GCC target(("arch=armv8.2-a+crypto"))
33111 __extension__ extern __inline uint64x2_t
33112 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33113 vsha512hq_u64 (uint64x2_t __a, uint64x2_t __b, uint64x2_t __c)
33115 return __builtin_aarch64_crypto_sha512hqv2di_uuuu (__a, __b, __c);
33118 __extension__ extern __inline uint64x2_t
33119 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33120 vsha512h2q_u64 (uint64x2_t __a, uint64x2_t __b, uint64x2_t __c)
33122 return __builtin_aarch64_crypto_sha512h2qv2di_uuuu (__a, __b, __c);
33125 __extension__ extern __inline uint64x2_t
33126 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33127 vsha512su0q_u64 (uint64x2_t __a, uint64x2_t __b)
33129 return __builtin_aarch64_crypto_sha512su0qv2di_uuu (__a, __b);
33132 __extension__ extern __inline uint64x2_t
33133 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33134 vsha512su1q_u64 (uint64x2_t __a, uint64x2_t __b, uint64x2_t __c)
33136 return __builtin_aarch64_crypto_sha512su1qv2di_uuuu (__a, __b, __c);
33139 __extension__ extern __inline uint8x16_t
33140 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33141 veor3q_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c)
33143 return __builtin_aarch64_eor3qv16qi_uuuu (__a, __b, __c);
33146 __extension__ extern __inline uint16x8_t
33147 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33148 veor3q_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
33150 return __builtin_aarch64_eor3qv8hi_uuuu (__a, __b, __c);
33153 __extension__ extern __inline uint32x4_t
33154 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33155 veor3q_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
33157 return __builtin_aarch64_eor3qv4si_uuuu (__a, __b, __c);
33160 __extension__ extern __inline uint64x2_t
33161 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33162 veor3q_u64 (uint64x2_t __a, uint64x2_t __b, uint64x2_t __c)
33164 return __builtin_aarch64_eor3qv2di_uuuu (__a, __b, __c);
33168 __extension__ extern __inline int8x16_t
33169 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33170 veor3q_s8 (int8x16_t __a, int8x16_t __b, int8x16_t __c)
33172 return __builtin_aarch64_eor3qv16qi (__a, __b, __c);
33175 __extension__ extern __inline int16x8_t
33176 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33177 veor3q_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
33179 return __builtin_aarch64_eor3qv8hi (__a, __b, __c);
33182 __extension__ extern __inline int32x4_t
33183 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33184 veor3q_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
33186 return __builtin_aarch64_eor3qv4si (__a, __b, __c);
33189 __extension__ extern __inline int64x2_t
33190 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33191 veor3q_s64 (int64x2_t __a, int64x2_t __b, int64x2_t __c)
33193 return __builtin_aarch64_eor3qv2di (__a, __b, __c);
33196 __extension__ extern __inline uint64x2_t
33197 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33198 vrax1q_u64 (uint64x2_t __a, uint64x2_t __b)
33200 return __builtin_aarch64_rax1qv2di_uuu (__a, __b);
33203 __extension__ extern __inline uint64x2_t
33204 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33205 vxarq_u64 (uint64x2_t __a, uint64x2_t __b, const int imm6)
33207 return __builtin_aarch64_xarqv2di_uuus (__a, __b,imm6);
33210 __extension__ extern __inline uint8x16_t
33211 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33212 vbcaxq_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c)
33214 return __builtin_aarch64_bcaxqv16qi_uuuu (__a, __b, __c);
33217 __extension__ extern __inline uint16x8_t
33218 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33219 vbcaxq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
33221 return __builtin_aarch64_bcaxqv8hi_uuuu (__a, __b, __c);
33224 __extension__ extern __inline uint32x4_t
33225 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33226 vbcaxq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
33228 return __builtin_aarch64_bcaxqv4si_uuuu (__a, __b, __c);
33231 __extension__ extern __inline uint64x2_t
33232 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33233 vbcaxq_u64 (uint64x2_t __a, uint64x2_t __b, uint64x2_t __c)
33235 return __builtin_aarch64_bcaxqv2di_uuuu (__a, __b, __c);
33238 __extension__ extern __inline int8x16_t
33239 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33240 vbcaxq_s8 (int8x16_t __a, int8x16_t __b, int8x16_t __c)
33242 return __builtin_aarch64_bcaxqv16qi (__a, __b, __c);
33245 __extension__ extern __inline int16x8_t
33246 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33247 vbcaxq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
33249 return __builtin_aarch64_bcaxqv8hi (__a, __b, __c);
33252 __extension__ extern __inline int32x4_t
33253 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33254 vbcaxq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
33256 return __builtin_aarch64_bcaxqv4si (__a, __b, __c);
33259 __extension__ extern __inline int64x2_t
33260 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33261 vbcaxq_s64 (int64x2_t __a, int64x2_t __b, int64x2_t __c)
33263 return __builtin_aarch64_bcaxqv2di (__a, __b, __c);
33267 #pragma GCC pop_options
33269 #pragma GCC push_options
33270 #pragma GCC target(("arch=armv8.2-a+fp16fml"))
33272 __extension__ extern __inline float32x2_t
33273 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33274 vfmlal_low_u32 (float32x2_t __r, float16x4_t __a, float16x4_t __b)
33276 return __builtin_aarch64_fmlal_lowv2sf (__r, __a, __b);
33279 __extension__ extern __inline float32x2_t
33280 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33281 vfmlsl_low_u32 (float32x2_t __r, float16x4_t __a, float16x4_t __b)
33283 return __builtin_aarch64_fmlsl_lowv2sf (__r, __a, __b);
33286 __extension__ extern __inline float32x4_t
33287 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33288 vfmlalq_low_u32 (float32x4_t __r, float16x8_t __a, float16x8_t __b)
33290 return __builtin_aarch64_fmlalq_lowv4sf (__r, __a, __b);
33293 __extension__ extern __inline float32x4_t
33294 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33295 vfmlslq_low_u32 (float32x4_t __r, float16x8_t __a, float16x8_t __b)
33297 return __builtin_aarch64_fmlslq_lowv4sf (__r, __a, __b);
33300 __extension__ extern __inline float32x2_t
33301 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33302 vfmlal_high_u32 (float32x2_t __r, float16x4_t __a, float16x4_t __b)
33304 return __builtin_aarch64_fmlal_highv2sf (__r, __a, __b);
33307 __extension__ extern __inline float32x2_t
33308 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33309 vfmlsl_high_u32 (float32x2_t __r, float16x4_t __a, float16x4_t __b)
33311 return __builtin_aarch64_fmlsl_highv2sf (__r, __a, __b);
33314 __extension__ extern __inline float32x4_t
33315 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33316 vfmlalq_high_u32 (float32x4_t __r, float16x8_t __a, float16x8_t __b)
33318 return __builtin_aarch64_fmlalq_highv4sf (__r, __a, __b);
33321 __extension__ extern __inline float32x4_t
33322 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33323 vfmlslq_high_u32 (float32x4_t __r, float16x8_t __a, float16x8_t __b)
33325 return __builtin_aarch64_fmlslq_highv4sf (__r, __a, __b);
33328 __extension__ extern __inline float32x2_t
33329 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33330 vfmlal_lane_low_u32 (float32x2_t __r, float16x4_t __a, float16x4_t __b,
33331 const int __lane)
33333 return __builtin_aarch64_fmlal_lane_lowv2sf (__r, __a, __b, __lane);
33336 __extension__ extern __inline float32x2_t
33337 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33338 vfmlsl_lane_low_u32 (float32x2_t __r, float16x4_t __a, float16x4_t __b,
33339 const int __lane)
33341 return __builtin_aarch64_fmlsl_lane_lowv2sf (__r, __a, __b, __lane);
33344 __extension__ extern __inline float32x2_t
33345 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33346 vfmlal_laneq_low_u32 (float32x2_t __r, float16x4_t __a, float16x8_t __b,
33347 const int __lane)
33349 return __builtin_aarch64_fmlal_laneq_lowv2sf (__r, __a, __b, __lane);
33352 __extension__ extern __inline float32x2_t
33353 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33354 vfmlsl_laneq_low_u32 (float32x2_t __r, float16x4_t __a, float16x8_t __b,
33355 const int __lane)
33357 return __builtin_aarch64_fmlsl_laneq_lowv2sf (__r, __a, __b, __lane);
33360 __extension__ extern __inline float32x4_t
33361 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33362 vfmlalq_lane_low_u32 (float32x4_t __r, float16x8_t __a, float16x4_t __b,
33363 const int __lane)
33365 return __builtin_aarch64_fmlalq_lane_lowv4sf (__r, __a, __b, __lane);
33368 __extension__ extern __inline float32x4_t
33369 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33370 vfmlslq_lane_low_u32 (float32x4_t __r, float16x8_t __a, float16x4_t __b,
33371 const int __lane)
33373 return __builtin_aarch64_fmlslq_lane_lowv4sf (__r, __a, __b, __lane);
33376 __extension__ extern __inline float32x4_t
33377 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33378 vfmlalq_laneq_low_u32 (float32x4_t __r, float16x8_t __a, float16x8_t __b,
33379 const int __lane)
33381 return __builtin_aarch64_fmlalq_laneq_lowv4sf (__r, __a, __b, __lane);
33384 __extension__ extern __inline float32x4_t
33385 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33386 vfmlslq_laneq_low_u32 (float32x4_t __r, float16x8_t __a, float16x8_t __b,
33387 const int __lane)
33389 return __builtin_aarch64_fmlslq_laneq_lowv4sf (__r, __a, __b, __lane);
33392 __extension__ extern __inline float32x2_t
33393 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33394 vfmlal_lane_high_u32 (float32x2_t __r, float16x4_t __a, float16x4_t __b,
33395 const int __lane)
33397 return __builtin_aarch64_fmlal_lane_highv2sf (__r, __a, __b, __lane);
33400 __extension__ extern __inline float32x2_t
33401 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33402 vfmlsl_lane_high_u32 (float32x2_t __r, float16x4_t __a, float16x4_t __b,
33403 const int __lane)
33405 return __builtin_aarch64_fmlsl_lane_highv2sf (__r, __a, __b, __lane);
33408 __extension__ extern __inline float32x2_t
33409 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33410 vfmlal_laneq_high_u32 (float32x2_t __r, float16x4_t __a, float16x8_t __b,
33411 const int __lane)
33413 return __builtin_aarch64_fmlal_laneq_highv2sf (__r, __a, __b, __lane);
33416 __extension__ extern __inline float32x2_t
33417 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33418 vfmlsl_laneq_high_u32 (float32x2_t __r, float16x4_t __a, float16x8_t __b,
33419 const int __lane)
33421 return __builtin_aarch64_fmlsl_laneq_highv2sf (__r, __a, __b, __lane);
33424 __extension__ extern __inline float32x4_t
33425 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33426 vfmlalq_lane_high_u32 (float32x4_t __r, float16x8_t __a, float16x4_t __b,
33427 const int __lane)
33429 return __builtin_aarch64_fmlalq_lane_highv4sf (__r, __a, __b, __lane);
33432 __extension__ extern __inline float32x4_t
33433 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33434 vfmlslq_lane_high_u32 (float32x4_t __r, float16x8_t __a, float16x4_t __b,
33435 const int __lane)
33437 return __builtin_aarch64_fmlslq_lane_highv4sf (__r, __a, __b, __lane);
33440 __extension__ extern __inline float32x4_t
33441 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33442 vfmlalq_laneq_high_u32 (float32x4_t __r, float16x8_t __a, float16x8_t __b,
33443 const int __lane)
33445 return __builtin_aarch64_fmlalq_laneq_highv4sf (__r, __a, __b, __lane);
33448 __extension__ extern __inline float32x4_t
33449 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33450 vfmlslq_laneq_high_u32 (float32x4_t __r, float16x8_t __a, float16x8_t __b,
33451 const int __lane)
33453 return __builtin_aarch64_fmlslq_laneq_highv4sf (__r, __a, __b, __lane);
33456 #pragma GCC pop_options
33458 #undef __aarch64_vget_lane_any
33460 #undef __aarch64_vdup_lane_any
33461 #undef __aarch64_vdup_lane_f16
33462 #undef __aarch64_vdup_lane_f32
33463 #undef __aarch64_vdup_lane_f64
33464 #undef __aarch64_vdup_lane_p8
33465 #undef __aarch64_vdup_lane_p16
33466 #undef __aarch64_vdup_lane_s8
33467 #undef __aarch64_vdup_lane_s16
33468 #undef __aarch64_vdup_lane_s32
33469 #undef __aarch64_vdup_lane_s64
33470 #undef __aarch64_vdup_lane_u8
33471 #undef __aarch64_vdup_lane_u16
33472 #undef __aarch64_vdup_lane_u32
33473 #undef __aarch64_vdup_lane_u64
33474 #undef __aarch64_vdup_laneq_f16
33475 #undef __aarch64_vdup_laneq_f32
33476 #undef __aarch64_vdup_laneq_f64
33477 #undef __aarch64_vdup_laneq_p8
33478 #undef __aarch64_vdup_laneq_p16
33479 #undef __aarch64_vdup_laneq_s8
33480 #undef __aarch64_vdup_laneq_s16
33481 #undef __aarch64_vdup_laneq_s32
33482 #undef __aarch64_vdup_laneq_s64
33483 #undef __aarch64_vdup_laneq_u8
33484 #undef __aarch64_vdup_laneq_u16
33485 #undef __aarch64_vdup_laneq_u32
33486 #undef __aarch64_vdup_laneq_u64
33487 #undef __aarch64_vdupq_lane_f16
33488 #undef __aarch64_vdupq_lane_f32
33489 #undef __aarch64_vdupq_lane_f64
33490 #undef __aarch64_vdupq_lane_p8
33491 #undef __aarch64_vdupq_lane_p16
33492 #undef __aarch64_vdupq_lane_s8
33493 #undef __aarch64_vdupq_lane_s16
33494 #undef __aarch64_vdupq_lane_s32
33495 #undef __aarch64_vdupq_lane_s64
33496 #undef __aarch64_vdupq_lane_u8
33497 #undef __aarch64_vdupq_lane_u16
33498 #undef __aarch64_vdupq_lane_u32
33499 #undef __aarch64_vdupq_lane_u64
33500 #undef __aarch64_vdupq_laneq_f16
33501 #undef __aarch64_vdupq_laneq_f32
33502 #undef __aarch64_vdupq_laneq_f64
33503 #undef __aarch64_vdupq_laneq_p8
33504 #undef __aarch64_vdupq_laneq_p16
33505 #undef __aarch64_vdupq_laneq_s8
33506 #undef __aarch64_vdupq_laneq_s16
33507 #undef __aarch64_vdupq_laneq_s32
33508 #undef __aarch64_vdupq_laneq_s64
33509 #undef __aarch64_vdupq_laneq_u8
33510 #undef __aarch64_vdupq_laneq_u16
33511 #undef __aarch64_vdupq_laneq_u32
33512 #undef __aarch64_vdupq_laneq_u64
33514 #endif