runtime: allow preemption in fast syscall return
[official-gcc.git] / gcc / config / aarch64 / arm_neon.h
blobc45c29ae815c9ff373eb2f57a77ebeda910a30cf
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 /* vld1q */
17150 __extension__ extern __inline float16x8_t
17151 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17152 vld1q_f16 (const float16_t *__a)
17154 return __builtin_aarch64_ld1v8hf (__a);
17157 __extension__ extern __inline float32x4_t
17158 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17159 vld1q_f32 (const float32_t *a)
17161 return __builtin_aarch64_ld1v4sf ((const __builtin_aarch64_simd_sf *) a);
17164 __extension__ extern __inline float64x2_t
17165 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17166 vld1q_f64 (const float64_t *a)
17168 return __builtin_aarch64_ld1v2df ((const __builtin_aarch64_simd_df *) a);
17171 __extension__ extern __inline poly8x16_t
17172 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17173 vld1q_p8 (const poly8_t *a)
17175 return (poly8x16_t)
17176 __builtin_aarch64_ld1v16qi ((const __builtin_aarch64_simd_qi *) a);
17179 __extension__ extern __inline poly16x8_t
17180 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17181 vld1q_p16 (const poly16_t *a)
17183 return (poly16x8_t)
17184 __builtin_aarch64_ld1v8hi ((const __builtin_aarch64_simd_hi *) a);
17187 __extension__ extern __inline poly64x2_t
17188 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17189 vld1q_p64 (const poly64_t *a)
17191 return (poly64x2_t)
17192 __builtin_aarch64_ld1v2di ((const __builtin_aarch64_simd_di *) a);
17195 __extension__ extern __inline int8x16_t
17196 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17197 vld1q_s8 (const int8_t *a)
17199 return __builtin_aarch64_ld1v16qi ((const __builtin_aarch64_simd_qi *) a);
17202 __extension__ extern __inline int16x8_t
17203 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17204 vld1q_s16 (const int16_t *a)
17206 return __builtin_aarch64_ld1v8hi ((const __builtin_aarch64_simd_hi *) a);
17209 __extension__ extern __inline int32x4_t
17210 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17211 vld1q_s32 (const int32_t *a)
17213 return __builtin_aarch64_ld1v4si ((const __builtin_aarch64_simd_si *) a);
17216 __extension__ extern __inline int64x2_t
17217 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17218 vld1q_s64 (const int64_t *a)
17220 return __builtin_aarch64_ld1v2di ((const __builtin_aarch64_simd_di *) a);
17223 __extension__ extern __inline uint8x16_t
17224 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17225 vld1q_u8 (const uint8_t *a)
17227 return (uint8x16_t)
17228 __builtin_aarch64_ld1v16qi ((const __builtin_aarch64_simd_qi *) a);
17231 __extension__ extern __inline uint8x8x2_t
17232 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17233 vld1_u8_x2 (const uint8_t *__a)
17235 uint8x8x2_t ret;
17236 __builtin_aarch64_simd_oi __o;
17237 __o = __builtin_aarch64_ld1x2v8qi ((const __builtin_aarch64_simd_qi *) __a);
17238 ret.val[0] = (uint8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 0);
17239 ret.val[1] = (uint8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 1);
17240 return ret;
17243 __extension__ extern __inline int8x8x2_t
17244 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17245 vld1_s8_x2 (const int8_t *__a)
17247 int8x8x2_t ret;
17248 __builtin_aarch64_simd_oi __o;
17249 __o = __builtin_aarch64_ld1x2v8qi ((const __builtin_aarch64_simd_qi *) __a);
17250 ret.val[0] = (int8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 0);
17251 ret.val[1] = (int8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 1);
17252 return ret;
17255 __extension__ extern __inline uint16x4x2_t
17256 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17257 vld1_u16_x2 (const uint16_t *__a)
17259 uint16x4x2_t ret;
17260 __builtin_aarch64_simd_oi __o;
17261 __o = __builtin_aarch64_ld1x2v4hi ((const __builtin_aarch64_simd_hi *) __a);
17262 ret.val[0] = (uint16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 0);
17263 ret.val[1] = (uint16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 1);
17264 return ret;
17267 __extension__ extern __inline int16x4x2_t
17268 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17269 vld1_s16_x2 (const int16_t *__a)
17271 int16x4x2_t ret;
17272 __builtin_aarch64_simd_oi __o;
17273 __o = __builtin_aarch64_ld1x2v4hi ((const __builtin_aarch64_simd_hi *) __a);
17274 ret.val[0] = (int16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 0);
17275 ret.val[1] = (int16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 1);
17276 return ret;
17279 __extension__ extern __inline uint32x2x2_t
17280 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17281 vld1_u32_x2 (const uint32_t *__a)
17283 uint32x2x2_t ret;
17284 __builtin_aarch64_simd_oi __o;
17285 __o = __builtin_aarch64_ld1x2v2si ((const __builtin_aarch64_simd_si *) __a);
17286 ret.val[0] = (uint32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 0);
17287 ret.val[1] = (uint32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 1);
17288 return ret;
17291 __extension__ extern __inline int32x2x2_t
17292 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17293 vld1_s32_x2 (const int32_t *__a)
17295 int32x2x2_t ret;
17296 __builtin_aarch64_simd_oi __o;
17297 __o = __builtin_aarch64_ld1x2v2si ((const __builtin_aarch64_simd_si *) __a);
17298 ret.val[0] = (int32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 0);
17299 ret.val[1] = (int32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 1);
17300 return ret;
17303 __extension__ extern __inline uint64x1x2_t
17304 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17305 vld1_u64_x2 (const uint64_t *__a)
17307 uint64x1x2_t ret;
17308 __builtin_aarch64_simd_oi __o;
17309 __o = __builtin_aarch64_ld1x2di ((const __builtin_aarch64_simd_di *) __a);
17310 ret.val[0] = (uint64x1_t) __builtin_aarch64_get_dregoidi (__o, 0);
17311 ret.val[1] = (uint64x1_t) __builtin_aarch64_get_dregoidi (__o, 1);
17312 return ret;
17315 __extension__ extern __inline int64x1x2_t
17316 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17317 vld1_s64_x2 (const int64_t *__a)
17319 int64x1x2_t ret;
17320 __builtin_aarch64_simd_oi __o;
17321 __o = __builtin_aarch64_ld1x2di ((const __builtin_aarch64_simd_di *) __a);
17322 ret.val[0] = (int64x1_t) __builtin_aarch64_get_dregoidi (__o, 0);
17323 ret.val[1] = (int64x1_t) __builtin_aarch64_get_dregoidi (__o, 1);
17324 return ret;
17327 __extension__ extern __inline float16x4x2_t
17328 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17329 vld1_f16_x2 (const float16_t *__a)
17331 float16x4x2_t ret;
17332 __builtin_aarch64_simd_oi __o;
17333 __o = __builtin_aarch64_ld1x2v4hf ((const __builtin_aarch64_simd_hf *) __a);
17334 ret.val[0] = (float16x4_t) __builtin_aarch64_get_dregoiv4hf (__o, 0);
17335 ret.val[1] = (float16x4_t) __builtin_aarch64_get_dregoiv4hf (__o, 1);
17336 return ret;
17339 __extension__ extern __inline float32x2x2_t
17340 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17341 vld1_f32_x2 (const float32_t *__a)
17343 float32x2x2_t ret;
17344 __builtin_aarch64_simd_oi __o;
17345 __o = __builtin_aarch64_ld1x2v2sf ((const __builtin_aarch64_simd_sf *) __a);
17346 ret.val[0] = (float32x2_t) __builtin_aarch64_get_dregoiv2sf (__o, 0);
17347 ret.val[1] = (float32x2_t) __builtin_aarch64_get_dregoiv2sf (__o, 1);
17348 return ret;
17351 __extension__ extern __inline float64x1x2_t
17352 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17353 vld1_f64_x2 (const float64_t *__a)
17355 float64x1x2_t ret;
17356 __builtin_aarch64_simd_oi __o;
17357 __o = __builtin_aarch64_ld1x2df ((const __builtin_aarch64_simd_df *) __a);
17358 ret.val[0] = (float64x1_t) {__builtin_aarch64_get_dregoidf (__o, 0)};
17359 ret.val[1] = (float64x1_t) {__builtin_aarch64_get_dregoidf (__o, 1)};
17360 return ret;
17363 __extension__ extern __inline poly8x8x2_t
17364 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17365 vld1_p8_x2 (const poly8_t *__a)
17367 poly8x8x2_t ret;
17368 __builtin_aarch64_simd_oi __o;
17369 __o = __builtin_aarch64_ld1x2v8qi ((const __builtin_aarch64_simd_qi *) __a);
17370 ret.val[0] = (poly8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 0);
17371 ret.val[1] = (poly8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 1);
17372 return ret;
17375 __extension__ extern __inline poly16x4x2_t
17376 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17377 vld1_p16_x2 (const poly16_t *__a)
17379 poly16x4x2_t ret;
17380 __builtin_aarch64_simd_oi __o;
17381 __o = __builtin_aarch64_ld1x2v4hi ((const __builtin_aarch64_simd_hi *) __a);
17382 ret.val[0] = (poly16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 0);
17383 ret.val[1] = (poly16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 1);
17384 return ret;
17387 __extension__ extern __inline poly64x1x2_t
17388 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17389 vld1_p64_x2 (const poly64_t *__a)
17391 poly64x1x2_t ret;
17392 __builtin_aarch64_simd_oi __o;
17393 __o = __builtin_aarch64_ld1x2di ((const __builtin_aarch64_simd_di *) __a);
17394 ret.val[0] = (poly64x1_t) __builtin_aarch64_get_dregoidi (__o, 0);
17395 ret.val[1] = (poly64x1_t) __builtin_aarch64_get_dregoidi (__o, 1);
17396 return ret;
17399 __extension__ extern __inline uint8x16x2_t
17400 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17401 vld1q_u8_x2 (const uint8_t *__a)
17403 uint8x16x2_t ret;
17404 __builtin_aarch64_simd_oi __o;
17405 __o = __builtin_aarch64_ld1x2v16qi ((const __builtin_aarch64_simd_qi *) __a);
17406 ret.val[0] = (uint8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 0);
17407 ret.val[1] = (uint8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 1);
17408 return ret;
17411 __extension__ extern __inline int8x16x2_t
17412 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17413 vld1q_s8_x2 (const int8_t *__a)
17415 int8x16x2_t ret;
17416 __builtin_aarch64_simd_oi __o;
17417 __o = __builtin_aarch64_ld1x2v16qi ((const __builtin_aarch64_simd_qi *) __a);
17418 ret.val[0] = (int8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 0);
17419 ret.val[1] = (int8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 1);
17420 return ret;
17423 __extension__ extern __inline uint16x8x2_t
17424 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17425 vld1q_u16_x2 (const uint16_t *__a)
17427 uint16x8x2_t ret;
17428 __builtin_aarch64_simd_oi __o;
17429 __o = __builtin_aarch64_ld1x2v8hi ((const __builtin_aarch64_simd_hi *) __a);
17430 ret.val[0] = (uint16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 0);
17431 ret.val[1] = (uint16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 1);
17432 return ret;
17435 __extension__ extern __inline int16x8x2_t
17436 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17437 vld1q_s16_x2 (const int16_t *__a)
17439 int16x8x2_t ret;
17440 __builtin_aarch64_simd_oi __o;
17441 __o = __builtin_aarch64_ld1x2v8hi ((const __builtin_aarch64_simd_hi *) __a);
17442 ret.val[0] = (int16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 0);
17443 ret.val[1] = (int16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 1);
17444 return ret;
17447 __extension__ extern __inline uint32x4x2_t
17448 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17449 vld1q_u32_x2 (const uint32_t *__a)
17451 uint32x4x2_t ret;
17452 __builtin_aarch64_simd_oi __o;
17453 __o = __builtin_aarch64_ld1x2v4si ((const __builtin_aarch64_simd_si *) __a);
17454 ret.val[0] = (uint32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 0);
17455 ret.val[1] = (uint32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 1);
17456 return ret;
17459 __extension__ extern __inline int32x4x2_t
17460 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17461 vld1q_s32_x2 (const int32_t *__a)
17463 int32x4x2_t ret;
17464 __builtin_aarch64_simd_oi __o;
17465 __o = __builtin_aarch64_ld1x2v4si ((const __builtin_aarch64_simd_si *) __a);
17466 ret.val[0] = (int32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 0);
17467 ret.val[1] = (int32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 1);
17468 return ret;
17471 __extension__ extern __inline uint64x2x2_t
17472 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17473 vld1q_u64_x2 (const uint64_t *__a)
17475 uint64x2x2_t ret;
17476 __builtin_aarch64_simd_oi __o;
17477 __o = __builtin_aarch64_ld1x2v2di ((const __builtin_aarch64_simd_di *) __a);
17478 ret.val[0] = (uint64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 0);
17479 ret.val[1] = (uint64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 1);
17480 return ret;
17483 __extension__ extern __inline int64x2x2_t
17484 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17485 vld1q_s64_x2 (const int64_t *__a)
17487 int64x2x2_t ret;
17488 __builtin_aarch64_simd_oi __o;
17489 __o = __builtin_aarch64_ld1x2v2di ((const __builtin_aarch64_simd_di *) __a);
17490 ret.val[0] = (int64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 0);
17491 ret.val[1] = (int64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 1);
17492 return ret;
17495 __extension__ extern __inline float16x8x2_t
17496 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17497 vld1q_f16_x2 (const float16_t *__a)
17499 float16x8x2_t ret;
17500 __builtin_aarch64_simd_oi __o;
17501 __o = __builtin_aarch64_ld1x2v8hf ((const __builtin_aarch64_simd_hf *) __a);
17502 ret.val[0] = (float16x8_t) __builtin_aarch64_get_qregoiv8hf (__o, 0);
17503 ret.val[1] = (float16x8_t) __builtin_aarch64_get_qregoiv8hf (__o, 1);
17504 return ret;
17507 __extension__ extern __inline float32x4x2_t
17508 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17509 vld1q_f32_x2 (const float32_t *__a)
17511 float32x4x2_t ret;
17512 __builtin_aarch64_simd_oi __o;
17513 __o = __builtin_aarch64_ld1x2v4sf ((const __builtin_aarch64_simd_sf *) __a);
17514 ret.val[0] = (float32x4_t) __builtin_aarch64_get_qregoiv4sf (__o, 0);
17515 ret.val[1] = (float32x4_t) __builtin_aarch64_get_qregoiv4sf (__o, 1);
17516 return ret;
17519 __extension__ extern __inline float64x2x2_t
17520 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17521 vld1q_f64_x2 (const float64_t *__a)
17523 float64x2x2_t ret;
17524 __builtin_aarch64_simd_oi __o;
17525 __o = __builtin_aarch64_ld1x2v2df ((const __builtin_aarch64_simd_df *) __a);
17526 ret.val[0] = (float64x2_t) __builtin_aarch64_get_qregoiv2df (__o, 0);
17527 ret.val[1] = (float64x2_t) __builtin_aarch64_get_qregoiv2df (__o, 1);
17528 return ret;
17531 __extension__ extern __inline poly8x16x2_t
17532 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17533 vld1q_p8_x2 (const poly8_t *__a)
17535 poly8x16x2_t ret;
17536 __builtin_aarch64_simd_oi __o;
17537 __o = __builtin_aarch64_ld1x2v16qi ((const __builtin_aarch64_simd_qi *) __a);
17538 ret.val[0] = (poly8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 0);
17539 ret.val[1] = (poly8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 1);
17540 return ret;
17543 __extension__ extern __inline poly16x8x2_t
17544 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17545 vld1q_p16_x2 (const poly16_t *__a)
17547 poly16x8x2_t ret;
17548 __builtin_aarch64_simd_oi __o;
17549 __o = __builtin_aarch64_ld1x2v8hi ((const __builtin_aarch64_simd_hi *) __a);
17550 ret.val[0] = (poly16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 0);
17551 ret.val[1] = (poly16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 1);
17552 return ret;
17555 __extension__ extern __inline poly64x2x2_t
17556 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17557 vld1q_p64_x2 (const poly64_t *__a)
17559 poly64x2x2_t ret;
17560 __builtin_aarch64_simd_oi __o;
17561 __o = __builtin_aarch64_ld1x2v2di ((const __builtin_aarch64_simd_di *) __a);
17562 ret.val[0] = (poly64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 0);
17563 ret.val[1] = (poly64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 1);
17564 return ret;
17567 __extension__ extern __inline uint16x8_t
17568 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17569 vld1q_u16 (const uint16_t *a)
17571 return (uint16x8_t)
17572 __builtin_aarch64_ld1v8hi ((const __builtin_aarch64_simd_hi *) a);
17575 __extension__ extern __inline uint32x4_t
17576 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17577 vld1q_u32 (const uint32_t *a)
17579 return (uint32x4_t)
17580 __builtin_aarch64_ld1v4si ((const __builtin_aarch64_simd_si *) a);
17583 __extension__ extern __inline uint64x2_t
17584 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17585 vld1q_u64 (const uint64_t *a)
17587 return (uint64x2_t)
17588 __builtin_aarch64_ld1v2di ((const __builtin_aarch64_simd_di *) a);
17591 /* vld1_dup */
17593 __extension__ extern __inline float16x4_t
17594 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17595 vld1_dup_f16 (const float16_t* __a)
17597 return vdup_n_f16 (*__a);
17600 __extension__ extern __inline float32x2_t
17601 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17602 vld1_dup_f32 (const float32_t* __a)
17604 return vdup_n_f32 (*__a);
17607 __extension__ extern __inline float64x1_t
17608 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17609 vld1_dup_f64 (const float64_t* __a)
17611 return vdup_n_f64 (*__a);
17614 __extension__ extern __inline poly8x8_t
17615 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17616 vld1_dup_p8 (const poly8_t* __a)
17618 return vdup_n_p8 (*__a);
17621 __extension__ extern __inline poly16x4_t
17622 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17623 vld1_dup_p16 (const poly16_t* __a)
17625 return vdup_n_p16 (*__a);
17628 __extension__ extern __inline poly64x1_t
17629 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17630 vld1_dup_p64 (const poly64_t* __a)
17632 return vdup_n_p64 (*__a);
17635 __extension__ extern __inline int8x8_t
17636 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17637 vld1_dup_s8 (const int8_t* __a)
17639 return vdup_n_s8 (*__a);
17642 __extension__ extern __inline int16x4_t
17643 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17644 vld1_dup_s16 (const int16_t* __a)
17646 return vdup_n_s16 (*__a);
17649 __extension__ extern __inline int32x2_t
17650 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17651 vld1_dup_s32 (const int32_t* __a)
17653 return vdup_n_s32 (*__a);
17656 __extension__ extern __inline int64x1_t
17657 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17658 vld1_dup_s64 (const int64_t* __a)
17660 return vdup_n_s64 (*__a);
17663 __extension__ extern __inline uint8x8_t
17664 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17665 vld1_dup_u8 (const uint8_t* __a)
17667 return vdup_n_u8 (*__a);
17670 __extension__ extern __inline uint16x4_t
17671 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17672 vld1_dup_u16 (const uint16_t* __a)
17674 return vdup_n_u16 (*__a);
17677 __extension__ extern __inline uint32x2_t
17678 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17679 vld1_dup_u32 (const uint32_t* __a)
17681 return vdup_n_u32 (*__a);
17684 __extension__ extern __inline uint64x1_t
17685 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17686 vld1_dup_u64 (const uint64_t* __a)
17688 return vdup_n_u64 (*__a);
17691 /* vld1q_dup */
17693 __extension__ extern __inline float16x8_t
17694 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17695 vld1q_dup_f16 (const float16_t* __a)
17697 return vdupq_n_f16 (*__a);
17700 __extension__ extern __inline float32x4_t
17701 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17702 vld1q_dup_f32 (const float32_t* __a)
17704 return vdupq_n_f32 (*__a);
17707 __extension__ extern __inline float64x2_t
17708 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17709 vld1q_dup_f64 (const float64_t* __a)
17711 return vdupq_n_f64 (*__a);
17714 __extension__ extern __inline poly8x16_t
17715 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17716 vld1q_dup_p8 (const poly8_t* __a)
17718 return vdupq_n_p8 (*__a);
17721 __extension__ extern __inline poly16x8_t
17722 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17723 vld1q_dup_p16 (const poly16_t* __a)
17725 return vdupq_n_p16 (*__a);
17728 __extension__ extern __inline poly64x2_t
17729 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17730 vld1q_dup_p64 (const poly64_t* __a)
17732 return vdupq_n_p64 (*__a);
17735 __extension__ extern __inline int8x16_t
17736 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17737 vld1q_dup_s8 (const int8_t* __a)
17739 return vdupq_n_s8 (*__a);
17742 __extension__ extern __inline int16x8_t
17743 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17744 vld1q_dup_s16 (const int16_t* __a)
17746 return vdupq_n_s16 (*__a);
17749 __extension__ extern __inline int32x4_t
17750 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17751 vld1q_dup_s32 (const int32_t* __a)
17753 return vdupq_n_s32 (*__a);
17756 __extension__ extern __inline int64x2_t
17757 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17758 vld1q_dup_s64 (const int64_t* __a)
17760 return vdupq_n_s64 (*__a);
17763 __extension__ extern __inline uint8x16_t
17764 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17765 vld1q_dup_u8 (const uint8_t* __a)
17767 return vdupq_n_u8 (*__a);
17770 __extension__ extern __inline uint16x8_t
17771 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17772 vld1q_dup_u16 (const uint16_t* __a)
17774 return vdupq_n_u16 (*__a);
17777 __extension__ extern __inline uint32x4_t
17778 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17779 vld1q_dup_u32 (const uint32_t* __a)
17781 return vdupq_n_u32 (*__a);
17784 __extension__ extern __inline uint64x2_t
17785 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17786 vld1q_dup_u64 (const uint64_t* __a)
17788 return vdupq_n_u64 (*__a);
17791 /* vld1_lane */
17793 __extension__ extern __inline float16x4_t
17794 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17795 vld1_lane_f16 (const float16_t *__src, float16x4_t __vec, const int __lane)
17797 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17800 __extension__ extern __inline float32x2_t
17801 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17802 vld1_lane_f32 (const float32_t *__src, float32x2_t __vec, const int __lane)
17804 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17807 __extension__ extern __inline float64x1_t
17808 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17809 vld1_lane_f64 (const float64_t *__src, float64x1_t __vec, const int __lane)
17811 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17814 __extension__ extern __inline poly8x8_t
17815 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17816 vld1_lane_p8 (const poly8_t *__src, poly8x8_t __vec, const int __lane)
17818 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17821 __extension__ extern __inline poly16x4_t
17822 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17823 vld1_lane_p16 (const poly16_t *__src, poly16x4_t __vec, const int __lane)
17825 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17828 __extension__ extern __inline poly64x1_t
17829 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17830 vld1_lane_p64 (const poly64_t *__src, poly64x1_t __vec, const int __lane)
17832 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17835 __extension__ extern __inline int8x8_t
17836 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17837 vld1_lane_s8 (const int8_t *__src, int8x8_t __vec, const int __lane)
17839 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17842 __extension__ extern __inline int16x4_t
17843 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17844 vld1_lane_s16 (const int16_t *__src, int16x4_t __vec, const int __lane)
17846 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17849 __extension__ extern __inline int32x2_t
17850 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17851 vld1_lane_s32 (const int32_t *__src, int32x2_t __vec, const int __lane)
17853 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17856 __extension__ extern __inline int64x1_t
17857 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17858 vld1_lane_s64 (const int64_t *__src, int64x1_t __vec, const int __lane)
17860 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17863 __extension__ extern __inline uint8x8_t
17864 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17865 vld1_lane_u8 (const uint8_t *__src, uint8x8_t __vec, const int __lane)
17867 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17870 __extension__ extern __inline uint16x4_t
17871 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17872 vld1_lane_u16 (const uint16_t *__src, uint16x4_t __vec, const int __lane)
17874 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17877 __extension__ extern __inline uint32x2_t
17878 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17879 vld1_lane_u32 (const uint32_t *__src, uint32x2_t __vec, const int __lane)
17881 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17884 __extension__ extern __inline uint64x1_t
17885 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17886 vld1_lane_u64 (const uint64_t *__src, uint64x1_t __vec, const int __lane)
17888 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17891 /* vld1q_lane */
17893 __extension__ extern __inline float16x8_t
17894 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17895 vld1q_lane_f16 (const float16_t *__src, float16x8_t __vec, const int __lane)
17897 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17900 __extension__ extern __inline float32x4_t
17901 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17902 vld1q_lane_f32 (const float32_t *__src, float32x4_t __vec, const int __lane)
17904 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17907 __extension__ extern __inline float64x2_t
17908 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17909 vld1q_lane_f64 (const float64_t *__src, float64x2_t __vec, const int __lane)
17911 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17914 __extension__ extern __inline poly8x16_t
17915 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17916 vld1q_lane_p8 (const poly8_t *__src, poly8x16_t __vec, const int __lane)
17918 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17921 __extension__ extern __inline poly16x8_t
17922 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17923 vld1q_lane_p16 (const poly16_t *__src, poly16x8_t __vec, const int __lane)
17925 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17928 __extension__ extern __inline poly64x2_t
17929 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17930 vld1q_lane_p64 (const poly64_t *__src, poly64x2_t __vec, const int __lane)
17932 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17935 __extension__ extern __inline int8x16_t
17936 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17937 vld1q_lane_s8 (const int8_t *__src, int8x16_t __vec, const int __lane)
17939 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17942 __extension__ extern __inline int16x8_t
17943 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17944 vld1q_lane_s16 (const int16_t *__src, int16x8_t __vec, const int __lane)
17946 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17949 __extension__ extern __inline int32x4_t
17950 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17951 vld1q_lane_s32 (const int32_t *__src, int32x4_t __vec, const int __lane)
17953 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17956 __extension__ extern __inline int64x2_t
17957 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17958 vld1q_lane_s64 (const int64_t *__src, int64x2_t __vec, const int __lane)
17960 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17963 __extension__ extern __inline uint8x16_t
17964 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17965 vld1q_lane_u8 (const uint8_t *__src, uint8x16_t __vec, const int __lane)
17967 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17970 __extension__ extern __inline uint16x8_t
17971 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17972 vld1q_lane_u16 (const uint16_t *__src, uint16x8_t __vec, const int __lane)
17974 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17977 __extension__ extern __inline uint32x4_t
17978 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17979 vld1q_lane_u32 (const uint32_t *__src, uint32x4_t __vec, const int __lane)
17981 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17984 __extension__ extern __inline uint64x2_t
17985 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17986 vld1q_lane_u64 (const uint64_t *__src, uint64x2_t __vec, const int __lane)
17988 return __aarch64_vset_lane_any (*__src, __vec, __lane);
17991 /* vldn */
17993 __extension__ extern __inline int64x1x2_t
17994 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17995 vld2_s64 (const int64_t * __a)
17997 int64x1x2_t ret;
17998 __builtin_aarch64_simd_oi __o;
17999 __o = __builtin_aarch64_ld2di ((const __builtin_aarch64_simd_di *) __a);
18000 ret.val[0] = (int64x1_t) __builtin_aarch64_get_dregoidi (__o, 0);
18001 ret.val[1] = (int64x1_t) __builtin_aarch64_get_dregoidi (__o, 1);
18002 return ret;
18005 __extension__ extern __inline uint64x1x2_t
18006 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18007 vld2_u64 (const uint64_t * __a)
18009 uint64x1x2_t ret;
18010 __builtin_aarch64_simd_oi __o;
18011 __o = __builtin_aarch64_ld2di ((const __builtin_aarch64_simd_di *) __a);
18012 ret.val[0] = (uint64x1_t) __builtin_aarch64_get_dregoidi (__o, 0);
18013 ret.val[1] = (uint64x1_t) __builtin_aarch64_get_dregoidi (__o, 1);
18014 return ret;
18017 __extension__ extern __inline float64x1x2_t
18018 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18019 vld2_f64 (const float64_t * __a)
18021 float64x1x2_t ret;
18022 __builtin_aarch64_simd_oi __o;
18023 __o = __builtin_aarch64_ld2df ((const __builtin_aarch64_simd_df *) __a);
18024 ret.val[0] = (float64x1_t) {__builtin_aarch64_get_dregoidf (__o, 0)};
18025 ret.val[1] = (float64x1_t) {__builtin_aarch64_get_dregoidf (__o, 1)};
18026 return ret;
18029 __extension__ extern __inline int8x8x2_t
18030 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18031 vld2_s8 (const int8_t * __a)
18033 int8x8x2_t ret;
18034 __builtin_aarch64_simd_oi __o;
18035 __o = __builtin_aarch64_ld2v8qi ((const __builtin_aarch64_simd_qi *) __a);
18036 ret.val[0] = (int8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 0);
18037 ret.val[1] = (int8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 1);
18038 return ret;
18041 __extension__ extern __inline poly8x8x2_t
18042 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18043 vld2_p8 (const poly8_t * __a)
18045 poly8x8x2_t ret;
18046 __builtin_aarch64_simd_oi __o;
18047 __o = __builtin_aarch64_ld2v8qi ((const __builtin_aarch64_simd_qi *) __a);
18048 ret.val[0] = (poly8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 0);
18049 ret.val[1] = (poly8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 1);
18050 return ret;
18053 __extension__ extern __inline poly64x1x2_t
18054 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18055 vld2_p64 (const poly64_t * __a)
18057 poly64x1x2_t ret;
18058 __builtin_aarch64_simd_oi __o;
18059 __o = __builtin_aarch64_ld2di ((const __builtin_aarch64_simd_di *) __a);
18060 ret.val[0] = (poly64x1_t) __builtin_aarch64_get_dregoidi_pss (__o, 0);
18061 ret.val[1] = (poly64x1_t) __builtin_aarch64_get_dregoidi_pss (__o, 1);
18062 return ret;
18065 __extension__ extern __inline int16x4x2_t
18066 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18067 vld2_s16 (const int16_t * __a)
18069 int16x4x2_t ret;
18070 __builtin_aarch64_simd_oi __o;
18071 __o = __builtin_aarch64_ld2v4hi ((const __builtin_aarch64_simd_hi *) __a);
18072 ret.val[0] = (int16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 0);
18073 ret.val[1] = (int16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 1);
18074 return ret;
18077 __extension__ extern __inline poly16x4x2_t
18078 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18079 vld2_p16 (const poly16_t * __a)
18081 poly16x4x2_t ret;
18082 __builtin_aarch64_simd_oi __o;
18083 __o = __builtin_aarch64_ld2v4hi ((const __builtin_aarch64_simd_hi *) __a);
18084 ret.val[0] = (poly16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 0);
18085 ret.val[1] = (poly16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 1);
18086 return ret;
18089 __extension__ extern __inline int32x2x2_t
18090 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18091 vld2_s32 (const int32_t * __a)
18093 int32x2x2_t ret;
18094 __builtin_aarch64_simd_oi __o;
18095 __o = __builtin_aarch64_ld2v2si ((const __builtin_aarch64_simd_si *) __a);
18096 ret.val[0] = (int32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 0);
18097 ret.val[1] = (int32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 1);
18098 return ret;
18101 __extension__ extern __inline uint8x8x2_t
18102 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18103 vld2_u8 (const uint8_t * __a)
18105 uint8x8x2_t ret;
18106 __builtin_aarch64_simd_oi __o;
18107 __o = __builtin_aarch64_ld2v8qi ((const __builtin_aarch64_simd_qi *) __a);
18108 ret.val[0] = (uint8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 0);
18109 ret.val[1] = (uint8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 1);
18110 return ret;
18113 __extension__ extern __inline uint16x4x2_t
18114 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18115 vld2_u16 (const uint16_t * __a)
18117 uint16x4x2_t ret;
18118 __builtin_aarch64_simd_oi __o;
18119 __o = __builtin_aarch64_ld2v4hi ((const __builtin_aarch64_simd_hi *) __a);
18120 ret.val[0] = (uint16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 0);
18121 ret.val[1] = (uint16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 1);
18122 return ret;
18125 __extension__ extern __inline uint32x2x2_t
18126 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18127 vld2_u32 (const uint32_t * __a)
18129 uint32x2x2_t ret;
18130 __builtin_aarch64_simd_oi __o;
18131 __o = __builtin_aarch64_ld2v2si ((const __builtin_aarch64_simd_si *) __a);
18132 ret.val[0] = (uint32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 0);
18133 ret.val[1] = (uint32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 1);
18134 return ret;
18137 __extension__ extern __inline float16x4x2_t
18138 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18139 vld2_f16 (const float16_t * __a)
18141 float16x4x2_t ret;
18142 __builtin_aarch64_simd_oi __o;
18143 __o = __builtin_aarch64_ld2v4hf (__a);
18144 ret.val[0] = __builtin_aarch64_get_dregoiv4hf (__o, 0);
18145 ret.val[1] = __builtin_aarch64_get_dregoiv4hf (__o, 1);
18146 return ret;
18149 __extension__ extern __inline float32x2x2_t
18150 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18151 vld2_f32 (const float32_t * __a)
18153 float32x2x2_t ret;
18154 __builtin_aarch64_simd_oi __o;
18155 __o = __builtin_aarch64_ld2v2sf ((const __builtin_aarch64_simd_sf *) __a);
18156 ret.val[0] = (float32x2_t) __builtin_aarch64_get_dregoiv2sf (__o, 0);
18157 ret.val[1] = (float32x2_t) __builtin_aarch64_get_dregoiv2sf (__o, 1);
18158 return ret;
18161 __extension__ extern __inline int8x16x2_t
18162 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18163 vld2q_s8 (const int8_t * __a)
18165 int8x16x2_t ret;
18166 __builtin_aarch64_simd_oi __o;
18167 __o = __builtin_aarch64_ld2v16qi ((const __builtin_aarch64_simd_qi *) __a);
18168 ret.val[0] = (int8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 0);
18169 ret.val[1] = (int8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 1);
18170 return ret;
18173 __extension__ extern __inline poly8x16x2_t
18174 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18175 vld2q_p8 (const poly8_t * __a)
18177 poly8x16x2_t ret;
18178 __builtin_aarch64_simd_oi __o;
18179 __o = __builtin_aarch64_ld2v16qi ((const __builtin_aarch64_simd_qi *) __a);
18180 ret.val[0] = (poly8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 0);
18181 ret.val[1] = (poly8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 1);
18182 return ret;
18185 __extension__ extern __inline int16x8x2_t
18186 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18187 vld2q_s16 (const int16_t * __a)
18189 int16x8x2_t ret;
18190 __builtin_aarch64_simd_oi __o;
18191 __o = __builtin_aarch64_ld2v8hi ((const __builtin_aarch64_simd_hi *) __a);
18192 ret.val[0] = (int16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 0);
18193 ret.val[1] = (int16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 1);
18194 return ret;
18197 __extension__ extern __inline poly16x8x2_t
18198 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18199 vld2q_p16 (const poly16_t * __a)
18201 poly16x8x2_t ret;
18202 __builtin_aarch64_simd_oi __o;
18203 __o = __builtin_aarch64_ld2v8hi ((const __builtin_aarch64_simd_hi *) __a);
18204 ret.val[0] = (poly16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 0);
18205 ret.val[1] = (poly16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 1);
18206 return ret;
18209 __extension__ extern __inline poly64x2x2_t
18210 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18211 vld2q_p64 (const poly64_t * __a)
18213 poly64x2x2_t ret;
18214 __builtin_aarch64_simd_oi __o;
18215 __o = __builtin_aarch64_ld2v2di ((const __builtin_aarch64_simd_di *) __a);
18216 ret.val[0] = (poly64x2_t) __builtin_aarch64_get_qregoiv2di_pss (__o, 0);
18217 ret.val[1] = (poly64x2_t) __builtin_aarch64_get_qregoiv2di_pss (__o, 1);
18218 return ret;
18221 __extension__ extern __inline int32x4x2_t
18222 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18223 vld2q_s32 (const int32_t * __a)
18225 int32x4x2_t ret;
18226 __builtin_aarch64_simd_oi __o;
18227 __o = __builtin_aarch64_ld2v4si ((const __builtin_aarch64_simd_si *) __a);
18228 ret.val[0] = (int32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 0);
18229 ret.val[1] = (int32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 1);
18230 return ret;
18233 __extension__ extern __inline int64x2x2_t
18234 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18235 vld2q_s64 (const int64_t * __a)
18237 int64x2x2_t ret;
18238 __builtin_aarch64_simd_oi __o;
18239 __o = __builtin_aarch64_ld2v2di ((const __builtin_aarch64_simd_di *) __a);
18240 ret.val[0] = (int64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 0);
18241 ret.val[1] = (int64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 1);
18242 return ret;
18245 __extension__ extern __inline uint8x16x2_t
18246 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18247 vld2q_u8 (const uint8_t * __a)
18249 uint8x16x2_t ret;
18250 __builtin_aarch64_simd_oi __o;
18251 __o = __builtin_aarch64_ld2v16qi ((const __builtin_aarch64_simd_qi *) __a);
18252 ret.val[0] = (uint8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 0);
18253 ret.val[1] = (uint8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 1);
18254 return ret;
18257 __extension__ extern __inline uint16x8x2_t
18258 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18259 vld2q_u16 (const uint16_t * __a)
18261 uint16x8x2_t ret;
18262 __builtin_aarch64_simd_oi __o;
18263 __o = __builtin_aarch64_ld2v8hi ((const __builtin_aarch64_simd_hi *) __a);
18264 ret.val[0] = (uint16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 0);
18265 ret.val[1] = (uint16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 1);
18266 return ret;
18269 __extension__ extern __inline uint32x4x2_t
18270 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18271 vld2q_u32 (const uint32_t * __a)
18273 uint32x4x2_t ret;
18274 __builtin_aarch64_simd_oi __o;
18275 __o = __builtin_aarch64_ld2v4si ((const __builtin_aarch64_simd_si *) __a);
18276 ret.val[0] = (uint32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 0);
18277 ret.val[1] = (uint32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 1);
18278 return ret;
18281 __extension__ extern __inline uint64x2x2_t
18282 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18283 vld2q_u64 (const uint64_t * __a)
18285 uint64x2x2_t ret;
18286 __builtin_aarch64_simd_oi __o;
18287 __o = __builtin_aarch64_ld2v2di ((const __builtin_aarch64_simd_di *) __a);
18288 ret.val[0] = (uint64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 0);
18289 ret.val[1] = (uint64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 1);
18290 return ret;
18293 __extension__ extern __inline float16x8x2_t
18294 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18295 vld2q_f16 (const float16_t * __a)
18297 float16x8x2_t ret;
18298 __builtin_aarch64_simd_oi __o;
18299 __o = __builtin_aarch64_ld2v8hf (__a);
18300 ret.val[0] = __builtin_aarch64_get_qregoiv8hf (__o, 0);
18301 ret.val[1] = __builtin_aarch64_get_qregoiv8hf (__o, 1);
18302 return ret;
18305 __extension__ extern __inline float32x4x2_t
18306 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18307 vld2q_f32 (const float32_t * __a)
18309 float32x4x2_t ret;
18310 __builtin_aarch64_simd_oi __o;
18311 __o = __builtin_aarch64_ld2v4sf ((const __builtin_aarch64_simd_sf *) __a);
18312 ret.val[0] = (float32x4_t) __builtin_aarch64_get_qregoiv4sf (__o, 0);
18313 ret.val[1] = (float32x4_t) __builtin_aarch64_get_qregoiv4sf (__o, 1);
18314 return ret;
18317 __extension__ extern __inline float64x2x2_t
18318 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18319 vld2q_f64 (const float64_t * __a)
18321 float64x2x2_t ret;
18322 __builtin_aarch64_simd_oi __o;
18323 __o = __builtin_aarch64_ld2v2df ((const __builtin_aarch64_simd_df *) __a);
18324 ret.val[0] = (float64x2_t) __builtin_aarch64_get_qregoiv2df (__o, 0);
18325 ret.val[1] = (float64x2_t) __builtin_aarch64_get_qregoiv2df (__o, 1);
18326 return ret;
18329 __extension__ extern __inline int64x1x3_t
18330 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18331 vld3_s64 (const int64_t * __a)
18333 int64x1x3_t ret;
18334 __builtin_aarch64_simd_ci __o;
18335 __o = __builtin_aarch64_ld3di ((const __builtin_aarch64_simd_di *) __a);
18336 ret.val[0] = (int64x1_t) __builtin_aarch64_get_dregcidi (__o, 0);
18337 ret.val[1] = (int64x1_t) __builtin_aarch64_get_dregcidi (__o, 1);
18338 ret.val[2] = (int64x1_t) __builtin_aarch64_get_dregcidi (__o, 2);
18339 return ret;
18342 __extension__ extern __inline uint64x1x3_t
18343 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18344 vld3_u64 (const uint64_t * __a)
18346 uint64x1x3_t ret;
18347 __builtin_aarch64_simd_ci __o;
18348 __o = __builtin_aarch64_ld3di ((const __builtin_aarch64_simd_di *) __a);
18349 ret.val[0] = (uint64x1_t) __builtin_aarch64_get_dregcidi (__o, 0);
18350 ret.val[1] = (uint64x1_t) __builtin_aarch64_get_dregcidi (__o, 1);
18351 ret.val[2] = (uint64x1_t) __builtin_aarch64_get_dregcidi (__o, 2);
18352 return ret;
18355 __extension__ extern __inline float64x1x3_t
18356 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18357 vld3_f64 (const float64_t * __a)
18359 float64x1x3_t ret;
18360 __builtin_aarch64_simd_ci __o;
18361 __o = __builtin_aarch64_ld3df ((const __builtin_aarch64_simd_df *) __a);
18362 ret.val[0] = (float64x1_t) {__builtin_aarch64_get_dregcidf (__o, 0)};
18363 ret.val[1] = (float64x1_t) {__builtin_aarch64_get_dregcidf (__o, 1)};
18364 ret.val[2] = (float64x1_t) {__builtin_aarch64_get_dregcidf (__o, 2)};
18365 return ret;
18368 __extension__ extern __inline int8x8x3_t
18369 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18370 vld3_s8 (const int8_t * __a)
18372 int8x8x3_t ret;
18373 __builtin_aarch64_simd_ci __o;
18374 __o = __builtin_aarch64_ld3v8qi ((const __builtin_aarch64_simd_qi *) __a);
18375 ret.val[0] = (int8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 0);
18376 ret.val[1] = (int8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 1);
18377 ret.val[2] = (int8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 2);
18378 return ret;
18381 __extension__ extern __inline poly8x8x3_t
18382 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18383 vld3_p8 (const poly8_t * __a)
18385 poly8x8x3_t ret;
18386 __builtin_aarch64_simd_ci __o;
18387 __o = __builtin_aarch64_ld3v8qi ((const __builtin_aarch64_simd_qi *) __a);
18388 ret.val[0] = (poly8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 0);
18389 ret.val[1] = (poly8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 1);
18390 ret.val[2] = (poly8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 2);
18391 return ret;
18394 __extension__ extern __inline int16x4x3_t
18395 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18396 vld3_s16 (const int16_t * __a)
18398 int16x4x3_t ret;
18399 __builtin_aarch64_simd_ci __o;
18400 __o = __builtin_aarch64_ld3v4hi ((const __builtin_aarch64_simd_hi *) __a);
18401 ret.val[0] = (int16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 0);
18402 ret.val[1] = (int16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 1);
18403 ret.val[2] = (int16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 2);
18404 return ret;
18407 __extension__ extern __inline poly16x4x3_t
18408 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18409 vld3_p16 (const poly16_t * __a)
18411 poly16x4x3_t ret;
18412 __builtin_aarch64_simd_ci __o;
18413 __o = __builtin_aarch64_ld3v4hi ((const __builtin_aarch64_simd_hi *) __a);
18414 ret.val[0] = (poly16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 0);
18415 ret.val[1] = (poly16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 1);
18416 ret.val[2] = (poly16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 2);
18417 return ret;
18420 __extension__ extern __inline int32x2x3_t
18421 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18422 vld3_s32 (const int32_t * __a)
18424 int32x2x3_t ret;
18425 __builtin_aarch64_simd_ci __o;
18426 __o = __builtin_aarch64_ld3v2si ((const __builtin_aarch64_simd_si *) __a);
18427 ret.val[0] = (int32x2_t) __builtin_aarch64_get_dregciv2si (__o, 0);
18428 ret.val[1] = (int32x2_t) __builtin_aarch64_get_dregciv2si (__o, 1);
18429 ret.val[2] = (int32x2_t) __builtin_aarch64_get_dregciv2si (__o, 2);
18430 return ret;
18433 __extension__ extern __inline uint8x8x3_t
18434 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18435 vld3_u8 (const uint8_t * __a)
18437 uint8x8x3_t ret;
18438 __builtin_aarch64_simd_ci __o;
18439 __o = __builtin_aarch64_ld3v8qi ((const __builtin_aarch64_simd_qi *) __a);
18440 ret.val[0] = (uint8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 0);
18441 ret.val[1] = (uint8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 1);
18442 ret.val[2] = (uint8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 2);
18443 return ret;
18446 __extension__ extern __inline uint16x4x3_t
18447 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18448 vld3_u16 (const uint16_t * __a)
18450 uint16x4x3_t ret;
18451 __builtin_aarch64_simd_ci __o;
18452 __o = __builtin_aarch64_ld3v4hi ((const __builtin_aarch64_simd_hi *) __a);
18453 ret.val[0] = (uint16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 0);
18454 ret.val[1] = (uint16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 1);
18455 ret.val[2] = (uint16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 2);
18456 return ret;
18459 __extension__ extern __inline uint32x2x3_t
18460 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18461 vld3_u32 (const uint32_t * __a)
18463 uint32x2x3_t ret;
18464 __builtin_aarch64_simd_ci __o;
18465 __o = __builtin_aarch64_ld3v2si ((const __builtin_aarch64_simd_si *) __a);
18466 ret.val[0] = (uint32x2_t) __builtin_aarch64_get_dregciv2si (__o, 0);
18467 ret.val[1] = (uint32x2_t) __builtin_aarch64_get_dregciv2si (__o, 1);
18468 ret.val[2] = (uint32x2_t) __builtin_aarch64_get_dregciv2si (__o, 2);
18469 return ret;
18472 __extension__ extern __inline float16x4x3_t
18473 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18474 vld3_f16 (const float16_t * __a)
18476 float16x4x3_t ret;
18477 __builtin_aarch64_simd_ci __o;
18478 __o = __builtin_aarch64_ld3v4hf (__a);
18479 ret.val[0] = __builtin_aarch64_get_dregciv4hf (__o, 0);
18480 ret.val[1] = __builtin_aarch64_get_dregciv4hf (__o, 1);
18481 ret.val[2] = __builtin_aarch64_get_dregciv4hf (__o, 2);
18482 return ret;
18485 __extension__ extern __inline float32x2x3_t
18486 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18487 vld3_f32 (const float32_t * __a)
18489 float32x2x3_t ret;
18490 __builtin_aarch64_simd_ci __o;
18491 __o = __builtin_aarch64_ld3v2sf ((const __builtin_aarch64_simd_sf *) __a);
18492 ret.val[0] = (float32x2_t) __builtin_aarch64_get_dregciv2sf (__o, 0);
18493 ret.val[1] = (float32x2_t) __builtin_aarch64_get_dregciv2sf (__o, 1);
18494 ret.val[2] = (float32x2_t) __builtin_aarch64_get_dregciv2sf (__o, 2);
18495 return ret;
18498 __extension__ extern __inline poly64x1x3_t
18499 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18500 vld3_p64 (const poly64_t * __a)
18502 poly64x1x3_t ret;
18503 __builtin_aarch64_simd_ci __o;
18504 __o = __builtin_aarch64_ld3di ((const __builtin_aarch64_simd_di *) __a);
18505 ret.val[0] = (poly64x1_t) __builtin_aarch64_get_dregcidi_pss (__o, 0);
18506 ret.val[1] = (poly64x1_t) __builtin_aarch64_get_dregcidi_pss (__o, 1);
18507 ret.val[2] = (poly64x1_t) __builtin_aarch64_get_dregcidi_pss (__o, 2);
18508 return ret;
18511 __extension__ extern __inline int8x16x3_t
18512 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18513 vld3q_s8 (const int8_t * __a)
18515 int8x16x3_t ret;
18516 __builtin_aarch64_simd_ci __o;
18517 __o = __builtin_aarch64_ld3v16qi ((const __builtin_aarch64_simd_qi *) __a);
18518 ret.val[0] = (int8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 0);
18519 ret.val[1] = (int8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 1);
18520 ret.val[2] = (int8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 2);
18521 return ret;
18524 __extension__ extern __inline poly8x16x3_t
18525 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18526 vld3q_p8 (const poly8_t * __a)
18528 poly8x16x3_t ret;
18529 __builtin_aarch64_simd_ci __o;
18530 __o = __builtin_aarch64_ld3v16qi ((const __builtin_aarch64_simd_qi *) __a);
18531 ret.val[0] = (poly8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 0);
18532 ret.val[1] = (poly8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 1);
18533 ret.val[2] = (poly8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 2);
18534 return ret;
18537 __extension__ extern __inline int16x8x3_t
18538 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18539 vld3q_s16 (const int16_t * __a)
18541 int16x8x3_t ret;
18542 __builtin_aarch64_simd_ci __o;
18543 __o = __builtin_aarch64_ld3v8hi ((const __builtin_aarch64_simd_hi *) __a);
18544 ret.val[0] = (int16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 0);
18545 ret.val[1] = (int16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 1);
18546 ret.val[2] = (int16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 2);
18547 return ret;
18550 __extension__ extern __inline poly16x8x3_t
18551 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18552 vld3q_p16 (const poly16_t * __a)
18554 poly16x8x3_t ret;
18555 __builtin_aarch64_simd_ci __o;
18556 __o = __builtin_aarch64_ld3v8hi ((const __builtin_aarch64_simd_hi *) __a);
18557 ret.val[0] = (poly16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 0);
18558 ret.val[1] = (poly16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 1);
18559 ret.val[2] = (poly16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 2);
18560 return ret;
18563 __extension__ extern __inline int32x4x3_t
18564 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18565 vld3q_s32 (const int32_t * __a)
18567 int32x4x3_t ret;
18568 __builtin_aarch64_simd_ci __o;
18569 __o = __builtin_aarch64_ld3v4si ((const __builtin_aarch64_simd_si *) __a);
18570 ret.val[0] = (int32x4_t) __builtin_aarch64_get_qregciv4si (__o, 0);
18571 ret.val[1] = (int32x4_t) __builtin_aarch64_get_qregciv4si (__o, 1);
18572 ret.val[2] = (int32x4_t) __builtin_aarch64_get_qregciv4si (__o, 2);
18573 return ret;
18576 __extension__ extern __inline int64x2x3_t
18577 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18578 vld3q_s64 (const int64_t * __a)
18580 int64x2x3_t ret;
18581 __builtin_aarch64_simd_ci __o;
18582 __o = __builtin_aarch64_ld3v2di ((const __builtin_aarch64_simd_di *) __a);
18583 ret.val[0] = (int64x2_t) __builtin_aarch64_get_qregciv2di (__o, 0);
18584 ret.val[1] = (int64x2_t) __builtin_aarch64_get_qregciv2di (__o, 1);
18585 ret.val[2] = (int64x2_t) __builtin_aarch64_get_qregciv2di (__o, 2);
18586 return ret;
18589 __extension__ extern __inline uint8x16x3_t
18590 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18591 vld3q_u8 (const uint8_t * __a)
18593 uint8x16x3_t ret;
18594 __builtin_aarch64_simd_ci __o;
18595 __o = __builtin_aarch64_ld3v16qi ((const __builtin_aarch64_simd_qi *) __a);
18596 ret.val[0] = (uint8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 0);
18597 ret.val[1] = (uint8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 1);
18598 ret.val[2] = (uint8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 2);
18599 return ret;
18602 __extension__ extern __inline uint16x8x3_t
18603 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18604 vld3q_u16 (const uint16_t * __a)
18606 uint16x8x3_t ret;
18607 __builtin_aarch64_simd_ci __o;
18608 __o = __builtin_aarch64_ld3v8hi ((const __builtin_aarch64_simd_hi *) __a);
18609 ret.val[0] = (uint16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 0);
18610 ret.val[1] = (uint16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 1);
18611 ret.val[2] = (uint16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 2);
18612 return ret;
18615 __extension__ extern __inline uint32x4x3_t
18616 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18617 vld3q_u32 (const uint32_t * __a)
18619 uint32x4x3_t ret;
18620 __builtin_aarch64_simd_ci __o;
18621 __o = __builtin_aarch64_ld3v4si ((const __builtin_aarch64_simd_si *) __a);
18622 ret.val[0] = (uint32x4_t) __builtin_aarch64_get_qregciv4si (__o, 0);
18623 ret.val[1] = (uint32x4_t) __builtin_aarch64_get_qregciv4si (__o, 1);
18624 ret.val[2] = (uint32x4_t) __builtin_aarch64_get_qregciv4si (__o, 2);
18625 return ret;
18628 __extension__ extern __inline uint64x2x3_t
18629 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18630 vld3q_u64 (const uint64_t * __a)
18632 uint64x2x3_t ret;
18633 __builtin_aarch64_simd_ci __o;
18634 __o = __builtin_aarch64_ld3v2di ((const __builtin_aarch64_simd_di *) __a);
18635 ret.val[0] = (uint64x2_t) __builtin_aarch64_get_qregciv2di (__o, 0);
18636 ret.val[1] = (uint64x2_t) __builtin_aarch64_get_qregciv2di (__o, 1);
18637 ret.val[2] = (uint64x2_t) __builtin_aarch64_get_qregciv2di (__o, 2);
18638 return ret;
18641 __extension__ extern __inline float16x8x3_t
18642 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18643 vld3q_f16 (const float16_t * __a)
18645 float16x8x3_t ret;
18646 __builtin_aarch64_simd_ci __o;
18647 __o = __builtin_aarch64_ld3v8hf (__a);
18648 ret.val[0] = __builtin_aarch64_get_qregciv8hf (__o, 0);
18649 ret.val[1] = __builtin_aarch64_get_qregciv8hf (__o, 1);
18650 ret.val[2] = __builtin_aarch64_get_qregciv8hf (__o, 2);
18651 return ret;
18654 __extension__ extern __inline float32x4x3_t
18655 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18656 vld3q_f32 (const float32_t * __a)
18658 float32x4x3_t ret;
18659 __builtin_aarch64_simd_ci __o;
18660 __o = __builtin_aarch64_ld3v4sf ((const __builtin_aarch64_simd_sf *) __a);
18661 ret.val[0] = (float32x4_t) __builtin_aarch64_get_qregciv4sf (__o, 0);
18662 ret.val[1] = (float32x4_t) __builtin_aarch64_get_qregciv4sf (__o, 1);
18663 ret.val[2] = (float32x4_t) __builtin_aarch64_get_qregciv4sf (__o, 2);
18664 return ret;
18667 __extension__ extern __inline float64x2x3_t
18668 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18669 vld3q_f64 (const float64_t * __a)
18671 float64x2x3_t ret;
18672 __builtin_aarch64_simd_ci __o;
18673 __o = __builtin_aarch64_ld3v2df ((const __builtin_aarch64_simd_df *) __a);
18674 ret.val[0] = (float64x2_t) __builtin_aarch64_get_qregciv2df (__o, 0);
18675 ret.val[1] = (float64x2_t) __builtin_aarch64_get_qregciv2df (__o, 1);
18676 ret.val[2] = (float64x2_t) __builtin_aarch64_get_qregciv2df (__o, 2);
18677 return ret;
18680 __extension__ extern __inline poly64x2x3_t
18681 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18682 vld3q_p64 (const poly64_t * __a)
18684 poly64x2x3_t ret;
18685 __builtin_aarch64_simd_ci __o;
18686 __o = __builtin_aarch64_ld3v2di ((const __builtin_aarch64_simd_di *) __a);
18687 ret.val[0] = (poly64x2_t) __builtin_aarch64_get_qregciv2di_pss (__o, 0);
18688 ret.val[1] = (poly64x2_t) __builtin_aarch64_get_qregciv2di_pss (__o, 1);
18689 ret.val[2] = (poly64x2_t) __builtin_aarch64_get_qregciv2di_pss (__o, 2);
18690 return ret;
18693 __extension__ extern __inline int64x1x4_t
18694 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18695 vld4_s64 (const int64_t * __a)
18697 int64x1x4_t ret;
18698 __builtin_aarch64_simd_xi __o;
18699 __o = __builtin_aarch64_ld4di ((const __builtin_aarch64_simd_di *) __a);
18700 ret.val[0] = (int64x1_t) __builtin_aarch64_get_dregxidi (__o, 0);
18701 ret.val[1] = (int64x1_t) __builtin_aarch64_get_dregxidi (__o, 1);
18702 ret.val[2] = (int64x1_t) __builtin_aarch64_get_dregxidi (__o, 2);
18703 ret.val[3] = (int64x1_t) __builtin_aarch64_get_dregxidi (__o, 3);
18704 return ret;
18707 __extension__ extern __inline uint64x1x4_t
18708 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18709 vld4_u64 (const uint64_t * __a)
18711 uint64x1x4_t ret;
18712 __builtin_aarch64_simd_xi __o;
18713 __o = __builtin_aarch64_ld4di ((const __builtin_aarch64_simd_di *) __a);
18714 ret.val[0] = (uint64x1_t) __builtin_aarch64_get_dregxidi (__o, 0);
18715 ret.val[1] = (uint64x1_t) __builtin_aarch64_get_dregxidi (__o, 1);
18716 ret.val[2] = (uint64x1_t) __builtin_aarch64_get_dregxidi (__o, 2);
18717 ret.val[3] = (uint64x1_t) __builtin_aarch64_get_dregxidi (__o, 3);
18718 return ret;
18721 __extension__ extern __inline float64x1x4_t
18722 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18723 vld4_f64 (const float64_t * __a)
18725 float64x1x4_t ret;
18726 __builtin_aarch64_simd_xi __o;
18727 __o = __builtin_aarch64_ld4df ((const __builtin_aarch64_simd_df *) __a);
18728 ret.val[0] = (float64x1_t) {__builtin_aarch64_get_dregxidf (__o, 0)};
18729 ret.val[1] = (float64x1_t) {__builtin_aarch64_get_dregxidf (__o, 1)};
18730 ret.val[2] = (float64x1_t) {__builtin_aarch64_get_dregxidf (__o, 2)};
18731 ret.val[3] = (float64x1_t) {__builtin_aarch64_get_dregxidf (__o, 3)};
18732 return ret;
18735 __extension__ extern __inline int8x8x4_t
18736 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18737 vld4_s8 (const int8_t * __a)
18739 int8x8x4_t ret;
18740 __builtin_aarch64_simd_xi __o;
18741 __o = __builtin_aarch64_ld4v8qi ((const __builtin_aarch64_simd_qi *) __a);
18742 ret.val[0] = (int8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 0);
18743 ret.val[1] = (int8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 1);
18744 ret.val[2] = (int8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 2);
18745 ret.val[3] = (int8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 3);
18746 return ret;
18749 __extension__ extern __inline poly8x8x4_t
18750 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18751 vld4_p8 (const poly8_t * __a)
18753 poly8x8x4_t ret;
18754 __builtin_aarch64_simd_xi __o;
18755 __o = __builtin_aarch64_ld4v8qi ((const __builtin_aarch64_simd_qi *) __a);
18756 ret.val[0] = (poly8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 0);
18757 ret.val[1] = (poly8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 1);
18758 ret.val[2] = (poly8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 2);
18759 ret.val[3] = (poly8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 3);
18760 return ret;
18763 __extension__ extern __inline int16x4x4_t
18764 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18765 vld4_s16 (const int16_t * __a)
18767 int16x4x4_t ret;
18768 __builtin_aarch64_simd_xi __o;
18769 __o = __builtin_aarch64_ld4v4hi ((const __builtin_aarch64_simd_hi *) __a);
18770 ret.val[0] = (int16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 0);
18771 ret.val[1] = (int16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 1);
18772 ret.val[2] = (int16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 2);
18773 ret.val[3] = (int16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 3);
18774 return ret;
18777 __extension__ extern __inline poly16x4x4_t
18778 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18779 vld4_p16 (const poly16_t * __a)
18781 poly16x4x4_t ret;
18782 __builtin_aarch64_simd_xi __o;
18783 __o = __builtin_aarch64_ld4v4hi ((const __builtin_aarch64_simd_hi *) __a);
18784 ret.val[0] = (poly16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 0);
18785 ret.val[1] = (poly16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 1);
18786 ret.val[2] = (poly16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 2);
18787 ret.val[3] = (poly16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 3);
18788 return ret;
18791 __extension__ extern __inline int32x2x4_t
18792 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18793 vld4_s32 (const int32_t * __a)
18795 int32x2x4_t ret;
18796 __builtin_aarch64_simd_xi __o;
18797 __o = __builtin_aarch64_ld4v2si ((const __builtin_aarch64_simd_si *) __a);
18798 ret.val[0] = (int32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 0);
18799 ret.val[1] = (int32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 1);
18800 ret.val[2] = (int32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 2);
18801 ret.val[3] = (int32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 3);
18802 return ret;
18805 __extension__ extern __inline uint8x8x4_t
18806 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18807 vld4_u8 (const uint8_t * __a)
18809 uint8x8x4_t ret;
18810 __builtin_aarch64_simd_xi __o;
18811 __o = __builtin_aarch64_ld4v8qi ((const __builtin_aarch64_simd_qi *) __a);
18812 ret.val[0] = (uint8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 0);
18813 ret.val[1] = (uint8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 1);
18814 ret.val[2] = (uint8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 2);
18815 ret.val[3] = (uint8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 3);
18816 return ret;
18819 __extension__ extern __inline uint16x4x4_t
18820 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18821 vld4_u16 (const uint16_t * __a)
18823 uint16x4x4_t ret;
18824 __builtin_aarch64_simd_xi __o;
18825 __o = __builtin_aarch64_ld4v4hi ((const __builtin_aarch64_simd_hi *) __a);
18826 ret.val[0] = (uint16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 0);
18827 ret.val[1] = (uint16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 1);
18828 ret.val[2] = (uint16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 2);
18829 ret.val[3] = (uint16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 3);
18830 return ret;
18833 __extension__ extern __inline uint32x2x4_t
18834 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18835 vld4_u32 (const uint32_t * __a)
18837 uint32x2x4_t ret;
18838 __builtin_aarch64_simd_xi __o;
18839 __o = __builtin_aarch64_ld4v2si ((const __builtin_aarch64_simd_si *) __a);
18840 ret.val[0] = (uint32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 0);
18841 ret.val[1] = (uint32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 1);
18842 ret.val[2] = (uint32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 2);
18843 ret.val[3] = (uint32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 3);
18844 return ret;
18847 __extension__ extern __inline float16x4x4_t
18848 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18849 vld4_f16 (const float16_t * __a)
18851 float16x4x4_t ret;
18852 __builtin_aarch64_simd_xi __o;
18853 __o = __builtin_aarch64_ld4v4hf (__a);
18854 ret.val[0] = __builtin_aarch64_get_dregxiv4hf (__o, 0);
18855 ret.val[1] = __builtin_aarch64_get_dregxiv4hf (__o, 1);
18856 ret.val[2] = __builtin_aarch64_get_dregxiv4hf (__o, 2);
18857 ret.val[3] = __builtin_aarch64_get_dregxiv4hf (__o, 3);
18858 return ret;
18861 __extension__ extern __inline float32x2x4_t
18862 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18863 vld4_f32 (const float32_t * __a)
18865 float32x2x4_t ret;
18866 __builtin_aarch64_simd_xi __o;
18867 __o = __builtin_aarch64_ld4v2sf ((const __builtin_aarch64_simd_sf *) __a);
18868 ret.val[0] = (float32x2_t) __builtin_aarch64_get_dregxiv2sf (__o, 0);
18869 ret.val[1] = (float32x2_t) __builtin_aarch64_get_dregxiv2sf (__o, 1);
18870 ret.val[2] = (float32x2_t) __builtin_aarch64_get_dregxiv2sf (__o, 2);
18871 ret.val[3] = (float32x2_t) __builtin_aarch64_get_dregxiv2sf (__o, 3);
18872 return ret;
18875 __extension__ extern __inline poly64x1x4_t
18876 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18877 vld4_p64 (const poly64_t * __a)
18879 poly64x1x4_t ret;
18880 __builtin_aarch64_simd_xi __o;
18881 __o = __builtin_aarch64_ld4di ((const __builtin_aarch64_simd_di *) __a);
18882 ret.val[0] = (poly64x1_t) __builtin_aarch64_get_dregxidi_pss (__o, 0);
18883 ret.val[1] = (poly64x1_t) __builtin_aarch64_get_dregxidi_pss (__o, 1);
18884 ret.val[2] = (poly64x1_t) __builtin_aarch64_get_dregxidi_pss (__o, 2);
18885 ret.val[3] = (poly64x1_t) __builtin_aarch64_get_dregxidi_pss (__o, 3);
18886 return ret;
18889 __extension__ extern __inline int8x16x4_t
18890 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18891 vld4q_s8 (const int8_t * __a)
18893 int8x16x4_t ret;
18894 __builtin_aarch64_simd_xi __o;
18895 __o = __builtin_aarch64_ld4v16qi ((const __builtin_aarch64_simd_qi *) __a);
18896 ret.val[0] = (int8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 0);
18897 ret.val[1] = (int8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 1);
18898 ret.val[2] = (int8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 2);
18899 ret.val[3] = (int8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 3);
18900 return ret;
18903 __extension__ extern __inline poly8x16x4_t
18904 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18905 vld4q_p8 (const poly8_t * __a)
18907 poly8x16x4_t ret;
18908 __builtin_aarch64_simd_xi __o;
18909 __o = __builtin_aarch64_ld4v16qi ((const __builtin_aarch64_simd_qi *) __a);
18910 ret.val[0] = (poly8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 0);
18911 ret.val[1] = (poly8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 1);
18912 ret.val[2] = (poly8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 2);
18913 ret.val[3] = (poly8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 3);
18914 return ret;
18917 __extension__ extern __inline int16x8x4_t
18918 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18919 vld4q_s16 (const int16_t * __a)
18921 int16x8x4_t ret;
18922 __builtin_aarch64_simd_xi __o;
18923 __o = __builtin_aarch64_ld4v8hi ((const __builtin_aarch64_simd_hi *) __a);
18924 ret.val[0] = (int16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 0);
18925 ret.val[1] = (int16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 1);
18926 ret.val[2] = (int16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 2);
18927 ret.val[3] = (int16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 3);
18928 return ret;
18931 __extension__ extern __inline poly16x8x4_t
18932 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18933 vld4q_p16 (const poly16_t * __a)
18935 poly16x8x4_t ret;
18936 __builtin_aarch64_simd_xi __o;
18937 __o = __builtin_aarch64_ld4v8hi ((const __builtin_aarch64_simd_hi *) __a);
18938 ret.val[0] = (poly16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 0);
18939 ret.val[1] = (poly16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 1);
18940 ret.val[2] = (poly16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 2);
18941 ret.val[3] = (poly16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 3);
18942 return ret;
18945 __extension__ extern __inline int32x4x4_t
18946 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18947 vld4q_s32 (const int32_t * __a)
18949 int32x4x4_t ret;
18950 __builtin_aarch64_simd_xi __o;
18951 __o = __builtin_aarch64_ld4v4si ((const __builtin_aarch64_simd_si *) __a);
18952 ret.val[0] = (int32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 0);
18953 ret.val[1] = (int32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 1);
18954 ret.val[2] = (int32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 2);
18955 ret.val[3] = (int32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 3);
18956 return ret;
18959 __extension__ extern __inline int64x2x4_t
18960 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18961 vld4q_s64 (const int64_t * __a)
18963 int64x2x4_t ret;
18964 __builtin_aarch64_simd_xi __o;
18965 __o = __builtin_aarch64_ld4v2di ((const __builtin_aarch64_simd_di *) __a);
18966 ret.val[0] = (int64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 0);
18967 ret.val[1] = (int64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 1);
18968 ret.val[2] = (int64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 2);
18969 ret.val[3] = (int64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 3);
18970 return ret;
18973 __extension__ extern __inline uint8x16x4_t
18974 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18975 vld4q_u8 (const uint8_t * __a)
18977 uint8x16x4_t ret;
18978 __builtin_aarch64_simd_xi __o;
18979 __o = __builtin_aarch64_ld4v16qi ((const __builtin_aarch64_simd_qi *) __a);
18980 ret.val[0] = (uint8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 0);
18981 ret.val[1] = (uint8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 1);
18982 ret.val[2] = (uint8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 2);
18983 ret.val[3] = (uint8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 3);
18984 return ret;
18987 __extension__ extern __inline uint16x8x4_t
18988 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18989 vld4q_u16 (const uint16_t * __a)
18991 uint16x8x4_t ret;
18992 __builtin_aarch64_simd_xi __o;
18993 __o = __builtin_aarch64_ld4v8hi ((const __builtin_aarch64_simd_hi *) __a);
18994 ret.val[0] = (uint16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 0);
18995 ret.val[1] = (uint16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 1);
18996 ret.val[2] = (uint16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 2);
18997 ret.val[3] = (uint16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 3);
18998 return ret;
19001 __extension__ extern __inline uint32x4x4_t
19002 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19003 vld4q_u32 (const uint32_t * __a)
19005 uint32x4x4_t ret;
19006 __builtin_aarch64_simd_xi __o;
19007 __o = __builtin_aarch64_ld4v4si ((const __builtin_aarch64_simd_si *) __a);
19008 ret.val[0] = (uint32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 0);
19009 ret.val[1] = (uint32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 1);
19010 ret.val[2] = (uint32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 2);
19011 ret.val[3] = (uint32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 3);
19012 return ret;
19015 __extension__ extern __inline uint64x2x4_t
19016 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19017 vld4q_u64 (const uint64_t * __a)
19019 uint64x2x4_t ret;
19020 __builtin_aarch64_simd_xi __o;
19021 __o = __builtin_aarch64_ld4v2di ((const __builtin_aarch64_simd_di *) __a);
19022 ret.val[0] = (uint64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 0);
19023 ret.val[1] = (uint64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 1);
19024 ret.val[2] = (uint64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 2);
19025 ret.val[3] = (uint64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 3);
19026 return ret;
19029 __extension__ extern __inline float16x8x4_t
19030 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19031 vld4q_f16 (const float16_t * __a)
19033 float16x8x4_t ret;
19034 __builtin_aarch64_simd_xi __o;
19035 __o = __builtin_aarch64_ld4v8hf (__a);
19036 ret.val[0] = __builtin_aarch64_get_qregxiv8hf (__o, 0);
19037 ret.val[1] = __builtin_aarch64_get_qregxiv8hf (__o, 1);
19038 ret.val[2] = __builtin_aarch64_get_qregxiv8hf (__o, 2);
19039 ret.val[3] = __builtin_aarch64_get_qregxiv8hf (__o, 3);
19040 return ret;
19043 __extension__ extern __inline float32x4x4_t
19044 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19045 vld4q_f32 (const float32_t * __a)
19047 float32x4x4_t ret;
19048 __builtin_aarch64_simd_xi __o;
19049 __o = __builtin_aarch64_ld4v4sf ((const __builtin_aarch64_simd_sf *) __a);
19050 ret.val[0] = (float32x4_t) __builtin_aarch64_get_qregxiv4sf (__o, 0);
19051 ret.val[1] = (float32x4_t) __builtin_aarch64_get_qregxiv4sf (__o, 1);
19052 ret.val[2] = (float32x4_t) __builtin_aarch64_get_qregxiv4sf (__o, 2);
19053 ret.val[3] = (float32x4_t) __builtin_aarch64_get_qregxiv4sf (__o, 3);
19054 return ret;
19057 __extension__ extern __inline float64x2x4_t
19058 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19059 vld4q_f64 (const float64_t * __a)
19061 float64x2x4_t ret;
19062 __builtin_aarch64_simd_xi __o;
19063 __o = __builtin_aarch64_ld4v2df ((const __builtin_aarch64_simd_df *) __a);
19064 ret.val[0] = (float64x2_t) __builtin_aarch64_get_qregxiv2df (__o, 0);
19065 ret.val[1] = (float64x2_t) __builtin_aarch64_get_qregxiv2df (__o, 1);
19066 ret.val[2] = (float64x2_t) __builtin_aarch64_get_qregxiv2df (__o, 2);
19067 ret.val[3] = (float64x2_t) __builtin_aarch64_get_qregxiv2df (__o, 3);
19068 return ret;
19071 __extension__ extern __inline poly64x2x4_t
19072 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19073 vld4q_p64 (const poly64_t * __a)
19075 poly64x2x4_t ret;
19076 __builtin_aarch64_simd_xi __o;
19077 __o = __builtin_aarch64_ld4v2di ((const __builtin_aarch64_simd_di *) __a);
19078 ret.val[0] = (poly64x2_t) __builtin_aarch64_get_qregxiv2di_pss (__o, 0);
19079 ret.val[1] = (poly64x2_t) __builtin_aarch64_get_qregxiv2di_pss (__o, 1);
19080 ret.val[2] = (poly64x2_t) __builtin_aarch64_get_qregxiv2di_pss (__o, 2);
19081 ret.val[3] = (poly64x2_t) __builtin_aarch64_get_qregxiv2di_pss (__o, 3);
19082 return ret;
19085 /* vldn_dup */
19087 __extension__ extern __inline int8x8x2_t
19088 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19089 vld2_dup_s8 (const int8_t * __a)
19091 int8x8x2_t ret;
19092 __builtin_aarch64_simd_oi __o;
19093 __o = __builtin_aarch64_ld2rv8qi ((const __builtin_aarch64_simd_qi *) __a);
19094 ret.val[0] = (int8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 0);
19095 ret.val[1] = (int8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 1);
19096 return ret;
19099 __extension__ extern __inline int16x4x2_t
19100 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19101 vld2_dup_s16 (const int16_t * __a)
19103 int16x4x2_t ret;
19104 __builtin_aarch64_simd_oi __o;
19105 __o = __builtin_aarch64_ld2rv4hi ((const __builtin_aarch64_simd_hi *) __a);
19106 ret.val[0] = (int16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 0);
19107 ret.val[1] = (int16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 1);
19108 return ret;
19111 __extension__ extern __inline int32x2x2_t
19112 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19113 vld2_dup_s32 (const int32_t * __a)
19115 int32x2x2_t ret;
19116 __builtin_aarch64_simd_oi __o;
19117 __o = __builtin_aarch64_ld2rv2si ((const __builtin_aarch64_simd_si *) __a);
19118 ret.val[0] = (int32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 0);
19119 ret.val[1] = (int32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 1);
19120 return ret;
19123 __extension__ extern __inline float16x4x2_t
19124 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19125 vld2_dup_f16 (const float16_t * __a)
19127 float16x4x2_t ret;
19128 __builtin_aarch64_simd_oi __o;
19129 __o = __builtin_aarch64_ld2rv4hf ((const __builtin_aarch64_simd_hf *) __a);
19130 ret.val[0] = __builtin_aarch64_get_dregoiv4hf (__o, 0);
19131 ret.val[1] = (float16x4_t) __builtin_aarch64_get_dregoiv4hf (__o, 1);
19132 return ret;
19135 __extension__ extern __inline float32x2x2_t
19136 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19137 vld2_dup_f32 (const float32_t * __a)
19139 float32x2x2_t ret;
19140 __builtin_aarch64_simd_oi __o;
19141 __o = __builtin_aarch64_ld2rv2sf ((const __builtin_aarch64_simd_sf *) __a);
19142 ret.val[0] = (float32x2_t) __builtin_aarch64_get_dregoiv2sf (__o, 0);
19143 ret.val[1] = (float32x2_t) __builtin_aarch64_get_dregoiv2sf (__o, 1);
19144 return ret;
19147 __extension__ extern __inline float64x1x2_t
19148 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19149 vld2_dup_f64 (const float64_t * __a)
19151 float64x1x2_t ret;
19152 __builtin_aarch64_simd_oi __o;
19153 __o = __builtin_aarch64_ld2rdf ((const __builtin_aarch64_simd_df *) __a);
19154 ret.val[0] = (float64x1_t) {__builtin_aarch64_get_dregoidf (__o, 0)};
19155 ret.val[1] = (float64x1_t) {__builtin_aarch64_get_dregoidf (__o, 1)};
19156 return ret;
19159 __extension__ extern __inline uint8x8x2_t
19160 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19161 vld2_dup_u8 (const uint8_t * __a)
19163 uint8x8x2_t ret;
19164 __builtin_aarch64_simd_oi __o;
19165 __o = __builtin_aarch64_ld2rv8qi ((const __builtin_aarch64_simd_qi *) __a);
19166 ret.val[0] = (uint8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 0);
19167 ret.val[1] = (uint8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 1);
19168 return ret;
19171 __extension__ extern __inline uint16x4x2_t
19172 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19173 vld2_dup_u16 (const uint16_t * __a)
19175 uint16x4x2_t ret;
19176 __builtin_aarch64_simd_oi __o;
19177 __o = __builtin_aarch64_ld2rv4hi ((const __builtin_aarch64_simd_hi *) __a);
19178 ret.val[0] = (uint16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 0);
19179 ret.val[1] = (uint16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 1);
19180 return ret;
19183 __extension__ extern __inline uint32x2x2_t
19184 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19185 vld2_dup_u32 (const uint32_t * __a)
19187 uint32x2x2_t ret;
19188 __builtin_aarch64_simd_oi __o;
19189 __o = __builtin_aarch64_ld2rv2si ((const __builtin_aarch64_simd_si *) __a);
19190 ret.val[0] = (uint32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 0);
19191 ret.val[1] = (uint32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 1);
19192 return ret;
19195 __extension__ extern __inline poly8x8x2_t
19196 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19197 vld2_dup_p8 (const poly8_t * __a)
19199 poly8x8x2_t ret;
19200 __builtin_aarch64_simd_oi __o;
19201 __o = __builtin_aarch64_ld2rv8qi ((const __builtin_aarch64_simd_qi *) __a);
19202 ret.val[0] = (poly8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 0);
19203 ret.val[1] = (poly8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 1);
19204 return ret;
19207 __extension__ extern __inline poly16x4x2_t
19208 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19209 vld2_dup_p16 (const poly16_t * __a)
19211 poly16x4x2_t ret;
19212 __builtin_aarch64_simd_oi __o;
19213 __o = __builtin_aarch64_ld2rv4hi ((const __builtin_aarch64_simd_hi *) __a);
19214 ret.val[0] = (poly16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 0);
19215 ret.val[1] = (poly16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 1);
19216 return ret;
19219 __extension__ extern __inline poly64x1x2_t
19220 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19221 vld2_dup_p64 (const poly64_t * __a)
19223 poly64x1x2_t ret;
19224 __builtin_aarch64_simd_oi __o;
19225 __o = __builtin_aarch64_ld2rv2di ((const __builtin_aarch64_simd_di *) __a);
19226 ret.val[0] = (poly64x1_t) __builtin_aarch64_get_dregoidi_pss (__o, 0);
19227 ret.val[1] = (poly64x1_t) __builtin_aarch64_get_dregoidi_pss (__o, 1);
19228 return ret;
19232 __extension__ extern __inline int64x1x2_t
19233 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19234 vld2_dup_s64 (const int64_t * __a)
19236 int64x1x2_t ret;
19237 __builtin_aarch64_simd_oi __o;
19238 __o = __builtin_aarch64_ld2rdi ((const __builtin_aarch64_simd_di *) __a);
19239 ret.val[0] = (int64x1_t) __builtin_aarch64_get_dregoidi (__o, 0);
19240 ret.val[1] = (int64x1_t) __builtin_aarch64_get_dregoidi (__o, 1);
19241 return ret;
19244 __extension__ extern __inline uint64x1x2_t
19245 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19246 vld2_dup_u64 (const uint64_t * __a)
19248 uint64x1x2_t ret;
19249 __builtin_aarch64_simd_oi __o;
19250 __o = __builtin_aarch64_ld2rdi ((const __builtin_aarch64_simd_di *) __a);
19251 ret.val[0] = (uint64x1_t) __builtin_aarch64_get_dregoidi (__o, 0);
19252 ret.val[1] = (uint64x1_t) __builtin_aarch64_get_dregoidi (__o, 1);
19253 return ret;
19256 __extension__ extern __inline int8x16x2_t
19257 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19258 vld2q_dup_s8 (const int8_t * __a)
19260 int8x16x2_t ret;
19261 __builtin_aarch64_simd_oi __o;
19262 __o = __builtin_aarch64_ld2rv16qi ((const __builtin_aarch64_simd_qi *) __a);
19263 ret.val[0] = (int8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 0);
19264 ret.val[1] = (int8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 1);
19265 return ret;
19268 __extension__ extern __inline poly8x16x2_t
19269 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19270 vld2q_dup_p8 (const poly8_t * __a)
19272 poly8x16x2_t ret;
19273 __builtin_aarch64_simd_oi __o;
19274 __o = __builtin_aarch64_ld2rv16qi ((const __builtin_aarch64_simd_qi *) __a);
19275 ret.val[0] = (poly8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 0);
19276 ret.val[1] = (poly8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 1);
19277 return ret;
19280 __extension__ extern __inline int16x8x2_t
19281 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19282 vld2q_dup_s16 (const int16_t * __a)
19284 int16x8x2_t ret;
19285 __builtin_aarch64_simd_oi __o;
19286 __o = __builtin_aarch64_ld2rv8hi ((const __builtin_aarch64_simd_hi *) __a);
19287 ret.val[0] = (int16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 0);
19288 ret.val[1] = (int16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 1);
19289 return ret;
19292 __extension__ extern __inline poly16x8x2_t
19293 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19294 vld2q_dup_p16 (const poly16_t * __a)
19296 poly16x8x2_t ret;
19297 __builtin_aarch64_simd_oi __o;
19298 __o = __builtin_aarch64_ld2rv8hi ((const __builtin_aarch64_simd_hi *) __a);
19299 ret.val[0] = (poly16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 0);
19300 ret.val[1] = (poly16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 1);
19301 return ret;
19304 __extension__ extern __inline int32x4x2_t
19305 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19306 vld2q_dup_s32 (const int32_t * __a)
19308 int32x4x2_t ret;
19309 __builtin_aarch64_simd_oi __o;
19310 __o = __builtin_aarch64_ld2rv4si ((const __builtin_aarch64_simd_si *) __a);
19311 ret.val[0] = (int32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 0);
19312 ret.val[1] = (int32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 1);
19313 return ret;
19316 __extension__ extern __inline int64x2x2_t
19317 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19318 vld2q_dup_s64 (const int64_t * __a)
19320 int64x2x2_t ret;
19321 __builtin_aarch64_simd_oi __o;
19322 __o = __builtin_aarch64_ld2rv2di ((const __builtin_aarch64_simd_di *) __a);
19323 ret.val[0] = (int64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 0);
19324 ret.val[1] = (int64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 1);
19325 return ret;
19328 __extension__ extern __inline uint8x16x2_t
19329 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19330 vld2q_dup_u8 (const uint8_t * __a)
19332 uint8x16x2_t ret;
19333 __builtin_aarch64_simd_oi __o;
19334 __o = __builtin_aarch64_ld2rv16qi ((const __builtin_aarch64_simd_qi *) __a);
19335 ret.val[0] = (uint8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 0);
19336 ret.val[1] = (uint8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 1);
19337 return ret;
19340 __extension__ extern __inline uint16x8x2_t
19341 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19342 vld2q_dup_u16 (const uint16_t * __a)
19344 uint16x8x2_t ret;
19345 __builtin_aarch64_simd_oi __o;
19346 __o = __builtin_aarch64_ld2rv8hi ((const __builtin_aarch64_simd_hi *) __a);
19347 ret.val[0] = (uint16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 0);
19348 ret.val[1] = (uint16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 1);
19349 return ret;
19352 __extension__ extern __inline uint32x4x2_t
19353 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19354 vld2q_dup_u32 (const uint32_t * __a)
19356 uint32x4x2_t ret;
19357 __builtin_aarch64_simd_oi __o;
19358 __o = __builtin_aarch64_ld2rv4si ((const __builtin_aarch64_simd_si *) __a);
19359 ret.val[0] = (uint32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 0);
19360 ret.val[1] = (uint32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 1);
19361 return ret;
19364 __extension__ extern __inline uint64x2x2_t
19365 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19366 vld2q_dup_u64 (const uint64_t * __a)
19368 uint64x2x2_t ret;
19369 __builtin_aarch64_simd_oi __o;
19370 __o = __builtin_aarch64_ld2rv2di ((const __builtin_aarch64_simd_di *) __a);
19371 ret.val[0] = (uint64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 0);
19372 ret.val[1] = (uint64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 1);
19373 return ret;
19376 __extension__ extern __inline float16x8x2_t
19377 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19378 vld2q_dup_f16 (const float16_t * __a)
19380 float16x8x2_t ret;
19381 __builtin_aarch64_simd_oi __o;
19382 __o = __builtin_aarch64_ld2rv8hf ((const __builtin_aarch64_simd_hf *) __a);
19383 ret.val[0] = (float16x8_t) __builtin_aarch64_get_qregoiv8hf (__o, 0);
19384 ret.val[1] = __builtin_aarch64_get_qregoiv8hf (__o, 1);
19385 return ret;
19388 __extension__ extern __inline float32x4x2_t
19389 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19390 vld2q_dup_f32 (const float32_t * __a)
19392 float32x4x2_t ret;
19393 __builtin_aarch64_simd_oi __o;
19394 __o = __builtin_aarch64_ld2rv4sf ((const __builtin_aarch64_simd_sf *) __a);
19395 ret.val[0] = (float32x4_t) __builtin_aarch64_get_qregoiv4sf (__o, 0);
19396 ret.val[1] = (float32x4_t) __builtin_aarch64_get_qregoiv4sf (__o, 1);
19397 return ret;
19400 __extension__ extern __inline float64x2x2_t
19401 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19402 vld2q_dup_f64 (const float64_t * __a)
19404 float64x2x2_t ret;
19405 __builtin_aarch64_simd_oi __o;
19406 __o = __builtin_aarch64_ld2rv2df ((const __builtin_aarch64_simd_df *) __a);
19407 ret.val[0] = (float64x2_t) __builtin_aarch64_get_qregoiv2df (__o, 0);
19408 ret.val[1] = (float64x2_t) __builtin_aarch64_get_qregoiv2df (__o, 1);
19409 return ret;
19412 __extension__ extern __inline poly64x2x2_t
19413 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19414 vld2q_dup_p64 (const poly64_t * __a)
19416 poly64x2x2_t ret;
19417 __builtin_aarch64_simd_oi __o;
19418 __o = __builtin_aarch64_ld2rv2di ((const __builtin_aarch64_simd_di *) __a);
19419 ret.val[0] = (poly64x2_t) __builtin_aarch64_get_qregoiv2di_pss (__o, 0);
19420 ret.val[1] = (poly64x2_t) __builtin_aarch64_get_qregoiv2di_pss (__o, 1);
19421 return ret;
19424 __extension__ extern __inline int64x1x3_t
19425 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19426 vld3_dup_s64 (const int64_t * __a)
19428 int64x1x3_t ret;
19429 __builtin_aarch64_simd_ci __o;
19430 __o = __builtin_aarch64_ld3rdi ((const __builtin_aarch64_simd_di *) __a);
19431 ret.val[0] = (int64x1_t) __builtin_aarch64_get_dregcidi (__o, 0);
19432 ret.val[1] = (int64x1_t) __builtin_aarch64_get_dregcidi (__o, 1);
19433 ret.val[2] = (int64x1_t) __builtin_aarch64_get_dregcidi (__o, 2);
19434 return ret;
19437 __extension__ extern __inline uint64x1x3_t
19438 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19439 vld3_dup_u64 (const uint64_t * __a)
19441 uint64x1x3_t ret;
19442 __builtin_aarch64_simd_ci __o;
19443 __o = __builtin_aarch64_ld3rdi ((const __builtin_aarch64_simd_di *) __a);
19444 ret.val[0] = (uint64x1_t) __builtin_aarch64_get_dregcidi (__o, 0);
19445 ret.val[1] = (uint64x1_t) __builtin_aarch64_get_dregcidi (__o, 1);
19446 ret.val[2] = (uint64x1_t) __builtin_aarch64_get_dregcidi (__o, 2);
19447 return ret;
19450 __extension__ extern __inline float64x1x3_t
19451 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19452 vld3_dup_f64 (const float64_t * __a)
19454 float64x1x3_t ret;
19455 __builtin_aarch64_simd_ci __o;
19456 __o = __builtin_aarch64_ld3rdf ((const __builtin_aarch64_simd_df *) __a);
19457 ret.val[0] = (float64x1_t) {__builtin_aarch64_get_dregcidf (__o, 0)};
19458 ret.val[1] = (float64x1_t) {__builtin_aarch64_get_dregcidf (__o, 1)};
19459 ret.val[2] = (float64x1_t) {__builtin_aarch64_get_dregcidf (__o, 2)};
19460 return ret;
19463 __extension__ extern __inline int8x8x3_t
19464 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19465 vld3_dup_s8 (const int8_t * __a)
19467 int8x8x3_t ret;
19468 __builtin_aarch64_simd_ci __o;
19469 __o = __builtin_aarch64_ld3rv8qi ((const __builtin_aarch64_simd_qi *) __a);
19470 ret.val[0] = (int8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 0);
19471 ret.val[1] = (int8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 1);
19472 ret.val[2] = (int8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 2);
19473 return ret;
19476 __extension__ extern __inline poly8x8x3_t
19477 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19478 vld3_dup_p8 (const poly8_t * __a)
19480 poly8x8x3_t ret;
19481 __builtin_aarch64_simd_ci __o;
19482 __o = __builtin_aarch64_ld3rv8qi ((const __builtin_aarch64_simd_qi *) __a);
19483 ret.val[0] = (poly8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 0);
19484 ret.val[1] = (poly8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 1);
19485 ret.val[2] = (poly8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 2);
19486 return ret;
19489 __extension__ extern __inline int16x4x3_t
19490 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19491 vld3_dup_s16 (const int16_t * __a)
19493 int16x4x3_t ret;
19494 __builtin_aarch64_simd_ci __o;
19495 __o = __builtin_aarch64_ld3rv4hi ((const __builtin_aarch64_simd_hi *) __a);
19496 ret.val[0] = (int16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 0);
19497 ret.val[1] = (int16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 1);
19498 ret.val[2] = (int16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 2);
19499 return ret;
19502 __extension__ extern __inline poly16x4x3_t
19503 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19504 vld3_dup_p16 (const poly16_t * __a)
19506 poly16x4x3_t ret;
19507 __builtin_aarch64_simd_ci __o;
19508 __o = __builtin_aarch64_ld3rv4hi ((const __builtin_aarch64_simd_hi *) __a);
19509 ret.val[0] = (poly16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 0);
19510 ret.val[1] = (poly16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 1);
19511 ret.val[2] = (poly16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 2);
19512 return ret;
19515 __extension__ extern __inline int32x2x3_t
19516 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19517 vld3_dup_s32 (const int32_t * __a)
19519 int32x2x3_t ret;
19520 __builtin_aarch64_simd_ci __o;
19521 __o = __builtin_aarch64_ld3rv2si ((const __builtin_aarch64_simd_si *) __a);
19522 ret.val[0] = (int32x2_t) __builtin_aarch64_get_dregciv2si (__o, 0);
19523 ret.val[1] = (int32x2_t) __builtin_aarch64_get_dregciv2si (__o, 1);
19524 ret.val[2] = (int32x2_t) __builtin_aarch64_get_dregciv2si (__o, 2);
19525 return ret;
19528 __extension__ extern __inline uint8x8x3_t
19529 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19530 vld3_dup_u8 (const uint8_t * __a)
19532 uint8x8x3_t ret;
19533 __builtin_aarch64_simd_ci __o;
19534 __o = __builtin_aarch64_ld3rv8qi ((const __builtin_aarch64_simd_qi *) __a);
19535 ret.val[0] = (uint8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 0);
19536 ret.val[1] = (uint8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 1);
19537 ret.val[2] = (uint8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 2);
19538 return ret;
19541 __extension__ extern __inline uint16x4x3_t
19542 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19543 vld3_dup_u16 (const uint16_t * __a)
19545 uint16x4x3_t ret;
19546 __builtin_aarch64_simd_ci __o;
19547 __o = __builtin_aarch64_ld3rv4hi ((const __builtin_aarch64_simd_hi *) __a);
19548 ret.val[0] = (uint16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 0);
19549 ret.val[1] = (uint16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 1);
19550 ret.val[2] = (uint16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 2);
19551 return ret;
19554 __extension__ extern __inline uint32x2x3_t
19555 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19556 vld3_dup_u32 (const uint32_t * __a)
19558 uint32x2x3_t ret;
19559 __builtin_aarch64_simd_ci __o;
19560 __o = __builtin_aarch64_ld3rv2si ((const __builtin_aarch64_simd_si *) __a);
19561 ret.val[0] = (uint32x2_t) __builtin_aarch64_get_dregciv2si (__o, 0);
19562 ret.val[1] = (uint32x2_t) __builtin_aarch64_get_dregciv2si (__o, 1);
19563 ret.val[2] = (uint32x2_t) __builtin_aarch64_get_dregciv2si (__o, 2);
19564 return ret;
19567 __extension__ extern __inline float16x4x3_t
19568 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19569 vld3_dup_f16 (const float16_t * __a)
19571 float16x4x3_t ret;
19572 __builtin_aarch64_simd_ci __o;
19573 __o = __builtin_aarch64_ld3rv4hf ((const __builtin_aarch64_simd_hf *) __a);
19574 ret.val[0] = (float16x4_t) __builtin_aarch64_get_dregciv4hf (__o, 0);
19575 ret.val[1] = (float16x4_t) __builtin_aarch64_get_dregciv4hf (__o, 1);
19576 ret.val[2] = (float16x4_t) __builtin_aarch64_get_dregciv4hf (__o, 2);
19577 return ret;
19580 __extension__ extern __inline float32x2x3_t
19581 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19582 vld3_dup_f32 (const float32_t * __a)
19584 float32x2x3_t ret;
19585 __builtin_aarch64_simd_ci __o;
19586 __o = __builtin_aarch64_ld3rv2sf ((const __builtin_aarch64_simd_sf *) __a);
19587 ret.val[0] = (float32x2_t) __builtin_aarch64_get_dregciv2sf (__o, 0);
19588 ret.val[1] = (float32x2_t) __builtin_aarch64_get_dregciv2sf (__o, 1);
19589 ret.val[2] = (float32x2_t) __builtin_aarch64_get_dregciv2sf (__o, 2);
19590 return ret;
19593 __extension__ extern __inline poly64x1x3_t
19594 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19595 vld3_dup_p64 (const poly64_t * __a)
19597 poly64x1x3_t ret;
19598 __builtin_aarch64_simd_ci __o;
19599 __o = __builtin_aarch64_ld3rv2di ((const __builtin_aarch64_simd_di *) __a);
19600 ret.val[0] = (poly64x1_t) __builtin_aarch64_get_dregcidi_pss (__o, 0);
19601 ret.val[1] = (poly64x1_t) __builtin_aarch64_get_dregcidi_pss (__o, 1);
19602 ret.val[2] = (poly64x1_t) __builtin_aarch64_get_dregcidi_pss (__o, 2);
19603 return ret;
19606 __extension__ extern __inline int8x16x3_t
19607 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19608 vld3q_dup_s8 (const int8_t * __a)
19610 int8x16x3_t ret;
19611 __builtin_aarch64_simd_ci __o;
19612 __o = __builtin_aarch64_ld3rv16qi ((const __builtin_aarch64_simd_qi *) __a);
19613 ret.val[0] = (int8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 0);
19614 ret.val[1] = (int8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 1);
19615 ret.val[2] = (int8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 2);
19616 return ret;
19619 __extension__ extern __inline poly8x16x3_t
19620 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19621 vld3q_dup_p8 (const poly8_t * __a)
19623 poly8x16x3_t ret;
19624 __builtin_aarch64_simd_ci __o;
19625 __o = __builtin_aarch64_ld3rv16qi ((const __builtin_aarch64_simd_qi *) __a);
19626 ret.val[0] = (poly8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 0);
19627 ret.val[1] = (poly8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 1);
19628 ret.val[2] = (poly8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 2);
19629 return ret;
19632 __extension__ extern __inline int16x8x3_t
19633 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19634 vld3q_dup_s16 (const int16_t * __a)
19636 int16x8x3_t ret;
19637 __builtin_aarch64_simd_ci __o;
19638 __o = __builtin_aarch64_ld3rv8hi ((const __builtin_aarch64_simd_hi *) __a);
19639 ret.val[0] = (int16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 0);
19640 ret.val[1] = (int16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 1);
19641 ret.val[2] = (int16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 2);
19642 return ret;
19645 __extension__ extern __inline poly16x8x3_t
19646 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19647 vld3q_dup_p16 (const poly16_t * __a)
19649 poly16x8x3_t ret;
19650 __builtin_aarch64_simd_ci __o;
19651 __o = __builtin_aarch64_ld3rv8hi ((const __builtin_aarch64_simd_hi *) __a);
19652 ret.val[0] = (poly16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 0);
19653 ret.val[1] = (poly16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 1);
19654 ret.val[2] = (poly16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 2);
19655 return ret;
19658 __extension__ extern __inline int32x4x3_t
19659 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19660 vld3q_dup_s32 (const int32_t * __a)
19662 int32x4x3_t ret;
19663 __builtin_aarch64_simd_ci __o;
19664 __o = __builtin_aarch64_ld3rv4si ((const __builtin_aarch64_simd_si *) __a);
19665 ret.val[0] = (int32x4_t) __builtin_aarch64_get_qregciv4si (__o, 0);
19666 ret.val[1] = (int32x4_t) __builtin_aarch64_get_qregciv4si (__o, 1);
19667 ret.val[2] = (int32x4_t) __builtin_aarch64_get_qregciv4si (__o, 2);
19668 return ret;
19671 __extension__ extern __inline int64x2x3_t
19672 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19673 vld3q_dup_s64 (const int64_t * __a)
19675 int64x2x3_t ret;
19676 __builtin_aarch64_simd_ci __o;
19677 __o = __builtin_aarch64_ld3rv2di ((const __builtin_aarch64_simd_di *) __a);
19678 ret.val[0] = (int64x2_t) __builtin_aarch64_get_qregciv2di (__o, 0);
19679 ret.val[1] = (int64x2_t) __builtin_aarch64_get_qregciv2di (__o, 1);
19680 ret.val[2] = (int64x2_t) __builtin_aarch64_get_qregciv2di (__o, 2);
19681 return ret;
19684 __extension__ extern __inline uint8x16x3_t
19685 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19686 vld3q_dup_u8 (const uint8_t * __a)
19688 uint8x16x3_t ret;
19689 __builtin_aarch64_simd_ci __o;
19690 __o = __builtin_aarch64_ld3rv16qi ((const __builtin_aarch64_simd_qi *) __a);
19691 ret.val[0] = (uint8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 0);
19692 ret.val[1] = (uint8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 1);
19693 ret.val[2] = (uint8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 2);
19694 return ret;
19697 __extension__ extern __inline uint16x8x3_t
19698 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19699 vld3q_dup_u16 (const uint16_t * __a)
19701 uint16x8x3_t ret;
19702 __builtin_aarch64_simd_ci __o;
19703 __o = __builtin_aarch64_ld3rv8hi ((const __builtin_aarch64_simd_hi *) __a);
19704 ret.val[0] = (uint16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 0);
19705 ret.val[1] = (uint16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 1);
19706 ret.val[2] = (uint16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 2);
19707 return ret;
19710 __extension__ extern __inline uint32x4x3_t
19711 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19712 vld3q_dup_u32 (const uint32_t * __a)
19714 uint32x4x3_t ret;
19715 __builtin_aarch64_simd_ci __o;
19716 __o = __builtin_aarch64_ld3rv4si ((const __builtin_aarch64_simd_si *) __a);
19717 ret.val[0] = (uint32x4_t) __builtin_aarch64_get_qregciv4si (__o, 0);
19718 ret.val[1] = (uint32x4_t) __builtin_aarch64_get_qregciv4si (__o, 1);
19719 ret.val[2] = (uint32x4_t) __builtin_aarch64_get_qregciv4si (__o, 2);
19720 return ret;
19723 __extension__ extern __inline uint64x2x3_t
19724 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19725 vld3q_dup_u64 (const uint64_t * __a)
19727 uint64x2x3_t ret;
19728 __builtin_aarch64_simd_ci __o;
19729 __o = __builtin_aarch64_ld3rv2di ((const __builtin_aarch64_simd_di *) __a);
19730 ret.val[0] = (uint64x2_t) __builtin_aarch64_get_qregciv2di (__o, 0);
19731 ret.val[1] = (uint64x2_t) __builtin_aarch64_get_qregciv2di (__o, 1);
19732 ret.val[2] = (uint64x2_t) __builtin_aarch64_get_qregciv2di (__o, 2);
19733 return ret;
19736 __extension__ extern __inline float16x8x3_t
19737 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19738 vld3q_dup_f16 (const float16_t * __a)
19740 float16x8x3_t ret;
19741 __builtin_aarch64_simd_ci __o;
19742 __o = __builtin_aarch64_ld3rv8hf ((const __builtin_aarch64_simd_hf *) __a);
19743 ret.val[0] = (float16x8_t) __builtin_aarch64_get_qregciv8hf (__o, 0);
19744 ret.val[1] = (float16x8_t) __builtin_aarch64_get_qregciv8hf (__o, 1);
19745 ret.val[2] = (float16x8_t) __builtin_aarch64_get_qregciv8hf (__o, 2);
19746 return ret;
19749 __extension__ extern __inline float32x4x3_t
19750 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19751 vld3q_dup_f32 (const float32_t * __a)
19753 float32x4x3_t ret;
19754 __builtin_aarch64_simd_ci __o;
19755 __o = __builtin_aarch64_ld3rv4sf ((const __builtin_aarch64_simd_sf *) __a);
19756 ret.val[0] = (float32x4_t) __builtin_aarch64_get_qregciv4sf (__o, 0);
19757 ret.val[1] = (float32x4_t) __builtin_aarch64_get_qregciv4sf (__o, 1);
19758 ret.val[2] = (float32x4_t) __builtin_aarch64_get_qregciv4sf (__o, 2);
19759 return ret;
19762 __extension__ extern __inline float64x2x3_t
19763 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19764 vld3q_dup_f64 (const float64_t * __a)
19766 float64x2x3_t ret;
19767 __builtin_aarch64_simd_ci __o;
19768 __o = __builtin_aarch64_ld3rv2df ((const __builtin_aarch64_simd_df *) __a);
19769 ret.val[0] = (float64x2_t) __builtin_aarch64_get_qregciv2df (__o, 0);
19770 ret.val[1] = (float64x2_t) __builtin_aarch64_get_qregciv2df (__o, 1);
19771 ret.val[2] = (float64x2_t) __builtin_aarch64_get_qregciv2df (__o, 2);
19772 return ret;
19775 __extension__ extern __inline poly64x2x3_t
19776 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19777 vld3q_dup_p64 (const poly64_t * __a)
19779 poly64x2x3_t ret;
19780 __builtin_aarch64_simd_ci __o;
19781 __o = __builtin_aarch64_ld3rv2di ((const __builtin_aarch64_simd_di *) __a);
19782 ret.val[0] = (poly64x2_t) __builtin_aarch64_get_qregciv2di_pss (__o, 0);
19783 ret.val[1] = (poly64x2_t) __builtin_aarch64_get_qregciv2di_pss (__o, 1);
19784 ret.val[2] = (poly64x2_t) __builtin_aarch64_get_qregciv2di_pss (__o, 2);
19785 return ret;
19788 __extension__ extern __inline int64x1x4_t
19789 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19790 vld4_dup_s64 (const int64_t * __a)
19792 int64x1x4_t ret;
19793 __builtin_aarch64_simd_xi __o;
19794 __o = __builtin_aarch64_ld4rdi ((const __builtin_aarch64_simd_di *) __a);
19795 ret.val[0] = (int64x1_t) __builtin_aarch64_get_dregxidi (__o, 0);
19796 ret.val[1] = (int64x1_t) __builtin_aarch64_get_dregxidi (__o, 1);
19797 ret.val[2] = (int64x1_t) __builtin_aarch64_get_dregxidi (__o, 2);
19798 ret.val[3] = (int64x1_t) __builtin_aarch64_get_dregxidi (__o, 3);
19799 return ret;
19802 __extension__ extern __inline uint64x1x4_t
19803 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19804 vld4_dup_u64 (const uint64_t * __a)
19806 uint64x1x4_t ret;
19807 __builtin_aarch64_simd_xi __o;
19808 __o = __builtin_aarch64_ld4rdi ((const __builtin_aarch64_simd_di *) __a);
19809 ret.val[0] = (uint64x1_t) __builtin_aarch64_get_dregxidi (__o, 0);
19810 ret.val[1] = (uint64x1_t) __builtin_aarch64_get_dregxidi (__o, 1);
19811 ret.val[2] = (uint64x1_t) __builtin_aarch64_get_dregxidi (__o, 2);
19812 ret.val[3] = (uint64x1_t) __builtin_aarch64_get_dregxidi (__o, 3);
19813 return ret;
19816 __extension__ extern __inline float64x1x4_t
19817 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19818 vld4_dup_f64 (const float64_t * __a)
19820 float64x1x4_t ret;
19821 __builtin_aarch64_simd_xi __o;
19822 __o = __builtin_aarch64_ld4rdf ((const __builtin_aarch64_simd_df *) __a);
19823 ret.val[0] = (float64x1_t) {__builtin_aarch64_get_dregxidf (__o, 0)};
19824 ret.val[1] = (float64x1_t) {__builtin_aarch64_get_dregxidf (__o, 1)};
19825 ret.val[2] = (float64x1_t) {__builtin_aarch64_get_dregxidf (__o, 2)};
19826 ret.val[3] = (float64x1_t) {__builtin_aarch64_get_dregxidf (__o, 3)};
19827 return ret;
19830 __extension__ extern __inline int8x8x4_t
19831 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19832 vld4_dup_s8 (const int8_t * __a)
19834 int8x8x4_t ret;
19835 __builtin_aarch64_simd_xi __o;
19836 __o = __builtin_aarch64_ld4rv8qi ((const __builtin_aarch64_simd_qi *) __a);
19837 ret.val[0] = (int8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 0);
19838 ret.val[1] = (int8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 1);
19839 ret.val[2] = (int8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 2);
19840 ret.val[3] = (int8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 3);
19841 return ret;
19844 __extension__ extern __inline poly8x8x4_t
19845 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19846 vld4_dup_p8 (const poly8_t * __a)
19848 poly8x8x4_t ret;
19849 __builtin_aarch64_simd_xi __o;
19850 __o = __builtin_aarch64_ld4rv8qi ((const __builtin_aarch64_simd_qi *) __a);
19851 ret.val[0] = (poly8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 0);
19852 ret.val[1] = (poly8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 1);
19853 ret.val[2] = (poly8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 2);
19854 ret.val[3] = (poly8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 3);
19855 return ret;
19858 __extension__ extern __inline int16x4x4_t
19859 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19860 vld4_dup_s16 (const int16_t * __a)
19862 int16x4x4_t ret;
19863 __builtin_aarch64_simd_xi __o;
19864 __o = __builtin_aarch64_ld4rv4hi ((const __builtin_aarch64_simd_hi *) __a);
19865 ret.val[0] = (int16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 0);
19866 ret.val[1] = (int16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 1);
19867 ret.val[2] = (int16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 2);
19868 ret.val[3] = (int16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 3);
19869 return ret;
19872 __extension__ extern __inline poly16x4x4_t
19873 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19874 vld4_dup_p16 (const poly16_t * __a)
19876 poly16x4x4_t ret;
19877 __builtin_aarch64_simd_xi __o;
19878 __o = __builtin_aarch64_ld4rv4hi ((const __builtin_aarch64_simd_hi *) __a);
19879 ret.val[0] = (poly16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 0);
19880 ret.val[1] = (poly16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 1);
19881 ret.val[2] = (poly16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 2);
19882 ret.val[3] = (poly16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 3);
19883 return ret;
19886 __extension__ extern __inline int32x2x4_t
19887 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19888 vld4_dup_s32 (const int32_t * __a)
19890 int32x2x4_t ret;
19891 __builtin_aarch64_simd_xi __o;
19892 __o = __builtin_aarch64_ld4rv2si ((const __builtin_aarch64_simd_si *) __a);
19893 ret.val[0] = (int32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 0);
19894 ret.val[1] = (int32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 1);
19895 ret.val[2] = (int32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 2);
19896 ret.val[3] = (int32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 3);
19897 return ret;
19900 __extension__ extern __inline uint8x8x4_t
19901 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19902 vld4_dup_u8 (const uint8_t * __a)
19904 uint8x8x4_t ret;
19905 __builtin_aarch64_simd_xi __o;
19906 __o = __builtin_aarch64_ld4rv8qi ((const __builtin_aarch64_simd_qi *) __a);
19907 ret.val[0] = (uint8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 0);
19908 ret.val[1] = (uint8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 1);
19909 ret.val[2] = (uint8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 2);
19910 ret.val[3] = (uint8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 3);
19911 return ret;
19914 __extension__ extern __inline uint16x4x4_t
19915 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19916 vld4_dup_u16 (const uint16_t * __a)
19918 uint16x4x4_t ret;
19919 __builtin_aarch64_simd_xi __o;
19920 __o = __builtin_aarch64_ld4rv4hi ((const __builtin_aarch64_simd_hi *) __a);
19921 ret.val[0] = (uint16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 0);
19922 ret.val[1] = (uint16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 1);
19923 ret.val[2] = (uint16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 2);
19924 ret.val[3] = (uint16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 3);
19925 return ret;
19928 __extension__ extern __inline uint32x2x4_t
19929 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19930 vld4_dup_u32 (const uint32_t * __a)
19932 uint32x2x4_t ret;
19933 __builtin_aarch64_simd_xi __o;
19934 __o = __builtin_aarch64_ld4rv2si ((const __builtin_aarch64_simd_si *) __a);
19935 ret.val[0] = (uint32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 0);
19936 ret.val[1] = (uint32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 1);
19937 ret.val[2] = (uint32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 2);
19938 ret.val[3] = (uint32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 3);
19939 return ret;
19942 __extension__ extern __inline float16x4x4_t
19943 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19944 vld4_dup_f16 (const float16_t * __a)
19946 float16x4x4_t ret;
19947 __builtin_aarch64_simd_xi __o;
19948 __o = __builtin_aarch64_ld4rv4hf ((const __builtin_aarch64_simd_hf *) __a);
19949 ret.val[0] = (float16x4_t) __builtin_aarch64_get_dregxiv4hf (__o, 0);
19950 ret.val[1] = (float16x4_t) __builtin_aarch64_get_dregxiv4hf (__o, 1);
19951 ret.val[2] = (float16x4_t) __builtin_aarch64_get_dregxiv4hf (__o, 2);
19952 ret.val[3] = (float16x4_t) __builtin_aarch64_get_dregxiv4hf (__o, 3);
19953 return ret;
19956 __extension__ extern __inline float32x2x4_t
19957 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19958 vld4_dup_f32 (const float32_t * __a)
19960 float32x2x4_t ret;
19961 __builtin_aarch64_simd_xi __o;
19962 __o = __builtin_aarch64_ld4rv2sf ((const __builtin_aarch64_simd_sf *) __a);
19963 ret.val[0] = (float32x2_t) __builtin_aarch64_get_dregxiv2sf (__o, 0);
19964 ret.val[1] = (float32x2_t) __builtin_aarch64_get_dregxiv2sf (__o, 1);
19965 ret.val[2] = (float32x2_t) __builtin_aarch64_get_dregxiv2sf (__o, 2);
19966 ret.val[3] = (float32x2_t) __builtin_aarch64_get_dregxiv2sf (__o, 3);
19967 return ret;
19970 __extension__ extern __inline poly64x1x4_t
19971 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19972 vld4_dup_p64 (const poly64_t * __a)
19974 poly64x1x4_t ret;
19975 __builtin_aarch64_simd_xi __o;
19976 __o = __builtin_aarch64_ld4rv2di ((const __builtin_aarch64_simd_di *) __a);
19977 ret.val[0] = (poly64x1_t) __builtin_aarch64_get_dregxidi_pss (__o, 0);
19978 ret.val[1] = (poly64x1_t) __builtin_aarch64_get_dregxidi_pss (__o, 1);
19979 ret.val[2] = (poly64x1_t) __builtin_aarch64_get_dregxidi_pss (__o, 2);
19980 ret.val[3] = (poly64x1_t) __builtin_aarch64_get_dregxidi_pss (__o, 3);
19981 return ret;
19984 __extension__ extern __inline int8x16x4_t
19985 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19986 vld4q_dup_s8 (const int8_t * __a)
19988 int8x16x4_t ret;
19989 __builtin_aarch64_simd_xi __o;
19990 __o = __builtin_aarch64_ld4rv16qi ((const __builtin_aarch64_simd_qi *) __a);
19991 ret.val[0] = (int8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 0);
19992 ret.val[1] = (int8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 1);
19993 ret.val[2] = (int8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 2);
19994 ret.val[3] = (int8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 3);
19995 return ret;
19998 __extension__ extern __inline poly8x16x4_t
19999 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20000 vld4q_dup_p8 (const poly8_t * __a)
20002 poly8x16x4_t ret;
20003 __builtin_aarch64_simd_xi __o;
20004 __o = __builtin_aarch64_ld4rv16qi ((const __builtin_aarch64_simd_qi *) __a);
20005 ret.val[0] = (poly8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 0);
20006 ret.val[1] = (poly8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 1);
20007 ret.val[2] = (poly8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 2);
20008 ret.val[3] = (poly8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 3);
20009 return ret;
20012 __extension__ extern __inline int16x8x4_t
20013 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20014 vld4q_dup_s16 (const int16_t * __a)
20016 int16x8x4_t ret;
20017 __builtin_aarch64_simd_xi __o;
20018 __o = __builtin_aarch64_ld4rv8hi ((const __builtin_aarch64_simd_hi *) __a);
20019 ret.val[0] = (int16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 0);
20020 ret.val[1] = (int16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 1);
20021 ret.val[2] = (int16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 2);
20022 ret.val[3] = (int16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 3);
20023 return ret;
20026 __extension__ extern __inline poly16x8x4_t
20027 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20028 vld4q_dup_p16 (const poly16_t * __a)
20030 poly16x8x4_t ret;
20031 __builtin_aarch64_simd_xi __o;
20032 __o = __builtin_aarch64_ld4rv8hi ((const __builtin_aarch64_simd_hi *) __a);
20033 ret.val[0] = (poly16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 0);
20034 ret.val[1] = (poly16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 1);
20035 ret.val[2] = (poly16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 2);
20036 ret.val[3] = (poly16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 3);
20037 return ret;
20040 __extension__ extern __inline int32x4x4_t
20041 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20042 vld4q_dup_s32 (const int32_t * __a)
20044 int32x4x4_t ret;
20045 __builtin_aarch64_simd_xi __o;
20046 __o = __builtin_aarch64_ld4rv4si ((const __builtin_aarch64_simd_si *) __a);
20047 ret.val[0] = (int32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 0);
20048 ret.val[1] = (int32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 1);
20049 ret.val[2] = (int32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 2);
20050 ret.val[3] = (int32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 3);
20051 return ret;
20054 __extension__ extern __inline int64x2x4_t
20055 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20056 vld4q_dup_s64 (const int64_t * __a)
20058 int64x2x4_t ret;
20059 __builtin_aarch64_simd_xi __o;
20060 __o = __builtin_aarch64_ld4rv2di ((const __builtin_aarch64_simd_di *) __a);
20061 ret.val[0] = (int64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 0);
20062 ret.val[1] = (int64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 1);
20063 ret.val[2] = (int64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 2);
20064 ret.val[3] = (int64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 3);
20065 return ret;
20068 __extension__ extern __inline uint8x16x4_t
20069 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20070 vld4q_dup_u8 (const uint8_t * __a)
20072 uint8x16x4_t ret;
20073 __builtin_aarch64_simd_xi __o;
20074 __o = __builtin_aarch64_ld4rv16qi ((const __builtin_aarch64_simd_qi *) __a);
20075 ret.val[0] = (uint8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 0);
20076 ret.val[1] = (uint8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 1);
20077 ret.val[2] = (uint8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 2);
20078 ret.val[3] = (uint8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 3);
20079 return ret;
20082 __extension__ extern __inline uint16x8x4_t
20083 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20084 vld4q_dup_u16 (const uint16_t * __a)
20086 uint16x8x4_t ret;
20087 __builtin_aarch64_simd_xi __o;
20088 __o = __builtin_aarch64_ld4rv8hi ((const __builtin_aarch64_simd_hi *) __a);
20089 ret.val[0] = (uint16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 0);
20090 ret.val[1] = (uint16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 1);
20091 ret.val[2] = (uint16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 2);
20092 ret.val[3] = (uint16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 3);
20093 return ret;
20096 __extension__ extern __inline uint32x4x4_t
20097 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20098 vld4q_dup_u32 (const uint32_t * __a)
20100 uint32x4x4_t ret;
20101 __builtin_aarch64_simd_xi __o;
20102 __o = __builtin_aarch64_ld4rv4si ((const __builtin_aarch64_simd_si *) __a);
20103 ret.val[0] = (uint32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 0);
20104 ret.val[1] = (uint32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 1);
20105 ret.val[2] = (uint32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 2);
20106 ret.val[3] = (uint32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 3);
20107 return ret;
20110 __extension__ extern __inline uint64x2x4_t
20111 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20112 vld4q_dup_u64 (const uint64_t * __a)
20114 uint64x2x4_t ret;
20115 __builtin_aarch64_simd_xi __o;
20116 __o = __builtin_aarch64_ld4rv2di ((const __builtin_aarch64_simd_di *) __a);
20117 ret.val[0] = (uint64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 0);
20118 ret.val[1] = (uint64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 1);
20119 ret.val[2] = (uint64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 2);
20120 ret.val[3] = (uint64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 3);
20121 return ret;
20124 __extension__ extern __inline float16x8x4_t
20125 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20126 vld4q_dup_f16 (const float16_t * __a)
20128 float16x8x4_t ret;
20129 __builtin_aarch64_simd_xi __o;
20130 __o = __builtin_aarch64_ld4rv8hf ((const __builtin_aarch64_simd_hf *) __a);
20131 ret.val[0] = (float16x8_t) __builtin_aarch64_get_qregxiv8hf (__o, 0);
20132 ret.val[1] = (float16x8_t) __builtin_aarch64_get_qregxiv8hf (__o, 1);
20133 ret.val[2] = (float16x8_t) __builtin_aarch64_get_qregxiv8hf (__o, 2);
20134 ret.val[3] = (float16x8_t) __builtin_aarch64_get_qregxiv8hf (__o, 3);
20135 return ret;
20138 __extension__ extern __inline float32x4x4_t
20139 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20140 vld4q_dup_f32 (const float32_t * __a)
20142 float32x4x4_t ret;
20143 __builtin_aarch64_simd_xi __o;
20144 __o = __builtin_aarch64_ld4rv4sf ((const __builtin_aarch64_simd_sf *) __a);
20145 ret.val[0] = (float32x4_t) __builtin_aarch64_get_qregxiv4sf (__o, 0);
20146 ret.val[1] = (float32x4_t) __builtin_aarch64_get_qregxiv4sf (__o, 1);
20147 ret.val[2] = (float32x4_t) __builtin_aarch64_get_qregxiv4sf (__o, 2);
20148 ret.val[3] = (float32x4_t) __builtin_aarch64_get_qregxiv4sf (__o, 3);
20149 return ret;
20152 __extension__ extern __inline float64x2x4_t
20153 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20154 vld4q_dup_f64 (const float64_t * __a)
20156 float64x2x4_t ret;
20157 __builtin_aarch64_simd_xi __o;
20158 __o = __builtin_aarch64_ld4rv2df ((const __builtin_aarch64_simd_df *) __a);
20159 ret.val[0] = (float64x2_t) __builtin_aarch64_get_qregxiv2df (__o, 0);
20160 ret.val[1] = (float64x2_t) __builtin_aarch64_get_qregxiv2df (__o, 1);
20161 ret.val[2] = (float64x2_t) __builtin_aarch64_get_qregxiv2df (__o, 2);
20162 ret.val[3] = (float64x2_t) __builtin_aarch64_get_qregxiv2df (__o, 3);
20163 return ret;
20166 __extension__ extern __inline poly64x2x4_t
20167 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20168 vld4q_dup_p64 (const poly64_t * __a)
20170 poly64x2x4_t ret;
20171 __builtin_aarch64_simd_xi __o;
20172 __o = __builtin_aarch64_ld4rv2di ((const __builtin_aarch64_simd_di *) __a);
20173 ret.val[0] = (poly64x2_t) __builtin_aarch64_get_qregxiv2di_pss (__o, 0);
20174 ret.val[1] = (poly64x2_t) __builtin_aarch64_get_qregxiv2di_pss (__o, 1);
20175 ret.val[2] = (poly64x2_t) __builtin_aarch64_get_qregxiv2di_pss (__o, 2);
20176 ret.val[3] = (poly64x2_t) __builtin_aarch64_get_qregxiv2di_pss (__o, 3);
20177 return ret;
20180 /* vld2_lane */
20182 #define __LD2_LANE_FUNC(intype, vectype, largetype, ptrtype, mode, \
20183 qmode, ptrmode, funcsuffix, signedtype) \
20184 __extension__ extern __inline intype \
20185 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__)) \
20186 vld2_lane_##funcsuffix (const ptrtype * __ptr, intype __b, const int __c) \
20188 __builtin_aarch64_simd_oi __o; \
20189 largetype __temp; \
20190 __temp.val[0] = \
20191 vcombine_##funcsuffix (__b.val[0], vcreate_##funcsuffix (0)); \
20192 __temp.val[1] = \
20193 vcombine_##funcsuffix (__b.val[1], vcreate_##funcsuffix (0)); \
20194 __o = __builtin_aarch64_set_qregoi##qmode (__o, \
20195 (signedtype) __temp.val[0], \
20196 0); \
20197 __o = __builtin_aarch64_set_qregoi##qmode (__o, \
20198 (signedtype) __temp.val[1], \
20199 1); \
20200 __o = __builtin_aarch64_ld2_lane##mode ( \
20201 (__builtin_aarch64_simd_##ptrmode *) __ptr, __o, __c); \
20202 __b.val[0] = (vectype) __builtin_aarch64_get_dregoidi (__o, 0); \
20203 __b.val[1] = (vectype) __builtin_aarch64_get_dregoidi (__o, 1); \
20204 return __b; \
20207 __LD2_LANE_FUNC (float16x4x2_t, float16x4_t, float16x8x2_t, float16_t, v4hf,
20208 v8hf, hf, f16, float16x8_t)
20209 __LD2_LANE_FUNC (float32x2x2_t, float32x2_t, float32x4x2_t, float32_t, v2sf, v4sf,
20210 sf, f32, float32x4_t)
20211 __LD2_LANE_FUNC (float64x1x2_t, float64x1_t, float64x2x2_t, float64_t, df, v2df,
20212 df, f64, float64x2_t)
20213 __LD2_LANE_FUNC (poly8x8x2_t, poly8x8_t, poly8x16x2_t, poly8_t, v8qi, v16qi, qi, p8,
20214 int8x16_t)
20215 __LD2_LANE_FUNC (poly16x4x2_t, poly16x4_t, poly16x8x2_t, poly16_t, v4hi, v8hi, hi,
20216 p16, int16x8_t)
20217 __LD2_LANE_FUNC (poly64x1x2_t, poly64x1_t, poly64x2x2_t, poly64_t, di,
20218 v2di_ssps, di, p64, poly64x2_t)
20219 __LD2_LANE_FUNC (int8x8x2_t, int8x8_t, int8x16x2_t, int8_t, v8qi, v16qi, qi, s8,
20220 int8x16_t)
20221 __LD2_LANE_FUNC (int16x4x2_t, int16x4_t, int16x8x2_t, int16_t, v4hi, v8hi, hi, s16,
20222 int16x8_t)
20223 __LD2_LANE_FUNC (int32x2x2_t, int32x2_t, int32x4x2_t, int32_t, v2si, v4si, si, s32,
20224 int32x4_t)
20225 __LD2_LANE_FUNC (int64x1x2_t, int64x1_t, int64x2x2_t, int64_t, di, v2di, di, s64,
20226 int64x2_t)
20227 __LD2_LANE_FUNC (uint8x8x2_t, uint8x8_t, uint8x16x2_t, uint8_t, v8qi, v16qi, qi, u8,
20228 int8x16_t)
20229 __LD2_LANE_FUNC (uint16x4x2_t, uint16x4_t, uint16x8x2_t, uint16_t, v4hi, v8hi, hi,
20230 u16, int16x8_t)
20231 __LD2_LANE_FUNC (uint32x2x2_t, uint32x2_t, uint32x4x2_t, uint32_t, v2si, v4si, si,
20232 u32, int32x4_t)
20233 __LD2_LANE_FUNC (uint64x1x2_t, uint64x1_t, uint64x2x2_t, uint64_t, di, v2di, di,
20234 u64, int64x2_t)
20236 #undef __LD2_LANE_FUNC
20238 /* vld2q_lane */
20240 #define __LD2_LANE_FUNC(intype, vtype, ptrtype, mode, ptrmode, funcsuffix) \
20241 __extension__ extern __inline intype \
20242 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__)) \
20243 vld2q_lane_##funcsuffix (const ptrtype * __ptr, intype __b, const int __c) \
20245 __builtin_aarch64_simd_oi __o; \
20246 intype ret; \
20247 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) __b.val[0], 0); \
20248 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) __b.val[1], 1); \
20249 __o = __builtin_aarch64_ld2_lane##mode ( \
20250 (__builtin_aarch64_simd_##ptrmode *) __ptr, __o, __c); \
20251 ret.val[0] = (vtype) __builtin_aarch64_get_qregoiv4si (__o, 0); \
20252 ret.val[1] = (vtype) __builtin_aarch64_get_qregoiv4si (__o, 1); \
20253 return ret; \
20256 __LD2_LANE_FUNC (float16x8x2_t, float16x8_t, float16_t, v8hf, hf, f16)
20257 __LD2_LANE_FUNC (float32x4x2_t, float32x4_t, float32_t, v4sf, sf, f32)
20258 __LD2_LANE_FUNC (float64x2x2_t, float64x2_t, float64_t, v2df, df, f64)
20259 __LD2_LANE_FUNC (poly8x16x2_t, poly8x16_t, poly8_t, v16qi, qi, p8)
20260 __LD2_LANE_FUNC (poly16x8x2_t, poly16x8_t, poly16_t, v8hi, hi, p16)
20261 __LD2_LANE_FUNC (poly64x2x2_t, poly64x2_t, poly64_t, v2di, di, p64)
20262 __LD2_LANE_FUNC (int8x16x2_t, int8x16_t, int8_t, v16qi, qi, s8)
20263 __LD2_LANE_FUNC (int16x8x2_t, int16x8_t, int16_t, v8hi, hi, s16)
20264 __LD2_LANE_FUNC (int32x4x2_t, int32x4_t, int32_t, v4si, si, s32)
20265 __LD2_LANE_FUNC (int64x2x2_t, int64x2_t, int64_t, v2di, di, s64)
20266 __LD2_LANE_FUNC (uint8x16x2_t, uint8x16_t, uint8_t, v16qi, qi, u8)
20267 __LD2_LANE_FUNC (uint16x8x2_t, uint16x8_t, uint16_t, v8hi, hi, u16)
20268 __LD2_LANE_FUNC (uint32x4x2_t, uint32x4_t, uint32_t, v4si, si, u32)
20269 __LD2_LANE_FUNC (uint64x2x2_t, uint64x2_t, uint64_t, v2di, di, u64)
20271 #undef __LD2_LANE_FUNC
20273 /* vld3_lane */
20275 #define __LD3_LANE_FUNC(intype, vectype, largetype, ptrtype, mode, \
20276 qmode, ptrmode, funcsuffix, signedtype) \
20277 __extension__ extern __inline intype \
20278 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__)) \
20279 vld3_lane_##funcsuffix (const ptrtype * __ptr, intype __b, const int __c) \
20281 __builtin_aarch64_simd_ci __o; \
20282 largetype __temp; \
20283 __temp.val[0] = \
20284 vcombine_##funcsuffix (__b.val[0], vcreate_##funcsuffix (0)); \
20285 __temp.val[1] = \
20286 vcombine_##funcsuffix (__b.val[1], vcreate_##funcsuffix (0)); \
20287 __temp.val[2] = \
20288 vcombine_##funcsuffix (__b.val[2], vcreate_##funcsuffix (0)); \
20289 __o = __builtin_aarch64_set_qregci##qmode (__o, \
20290 (signedtype) __temp.val[0], \
20291 0); \
20292 __o = __builtin_aarch64_set_qregci##qmode (__o, \
20293 (signedtype) __temp.val[1], \
20294 1); \
20295 __o = __builtin_aarch64_set_qregci##qmode (__o, \
20296 (signedtype) __temp.val[2], \
20297 2); \
20298 __o = __builtin_aarch64_ld3_lane##mode ( \
20299 (__builtin_aarch64_simd_##ptrmode *) __ptr, __o, __c); \
20300 __b.val[0] = (vectype) __builtin_aarch64_get_dregcidi (__o, 0); \
20301 __b.val[1] = (vectype) __builtin_aarch64_get_dregcidi (__o, 1); \
20302 __b.val[2] = (vectype) __builtin_aarch64_get_dregcidi (__o, 2); \
20303 return __b; \
20306 __LD3_LANE_FUNC (float16x4x3_t, float16x4_t, float16x8x3_t, float16_t, v4hf,
20307 v8hf, hf, f16, float16x8_t)
20308 __LD3_LANE_FUNC (float32x2x3_t, float32x2_t, float32x4x3_t, float32_t, v2sf, v4sf,
20309 sf, f32, float32x4_t)
20310 __LD3_LANE_FUNC (float64x1x3_t, float64x1_t, float64x2x3_t, float64_t, df, v2df,
20311 df, f64, float64x2_t)
20312 __LD3_LANE_FUNC (poly8x8x3_t, poly8x8_t, poly8x16x3_t, poly8_t, v8qi, v16qi, qi, p8,
20313 int8x16_t)
20314 __LD3_LANE_FUNC (poly16x4x3_t, poly16x4_t, poly16x8x3_t, poly16_t, v4hi, v8hi, hi,
20315 p16, int16x8_t)
20316 __LD3_LANE_FUNC (poly64x1x3_t, poly64x1_t, poly64x2x3_t, poly64_t, di,
20317 v2di_ssps, di, p64, poly64x2_t)
20318 __LD3_LANE_FUNC (int8x8x3_t, int8x8_t, int8x16x3_t, int8_t, v8qi, v16qi, qi, s8,
20319 int8x16_t)
20320 __LD3_LANE_FUNC (int16x4x3_t, int16x4_t, int16x8x3_t, int16_t, v4hi, v8hi, hi, s16,
20321 int16x8_t)
20322 __LD3_LANE_FUNC (int32x2x3_t, int32x2_t, int32x4x3_t, int32_t, v2si, v4si, si, s32,
20323 int32x4_t)
20324 __LD3_LANE_FUNC (int64x1x3_t, int64x1_t, int64x2x3_t, int64_t, di, v2di, di, s64,
20325 int64x2_t)
20326 __LD3_LANE_FUNC (uint8x8x3_t, uint8x8_t, uint8x16x3_t, uint8_t, v8qi, v16qi, qi, u8,
20327 int8x16_t)
20328 __LD3_LANE_FUNC (uint16x4x3_t, uint16x4_t, uint16x8x3_t, uint16_t, v4hi, v8hi, hi,
20329 u16, int16x8_t)
20330 __LD3_LANE_FUNC (uint32x2x3_t, uint32x2_t, uint32x4x3_t, uint32_t, v2si, v4si, si,
20331 u32, int32x4_t)
20332 __LD3_LANE_FUNC (uint64x1x3_t, uint64x1_t, uint64x2x3_t, uint64_t, di, v2di, di,
20333 u64, int64x2_t)
20335 #undef __LD3_LANE_FUNC
20337 /* vld3q_lane */
20339 #define __LD3_LANE_FUNC(intype, vtype, ptrtype, mode, ptrmode, funcsuffix) \
20340 __extension__ extern __inline intype \
20341 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__)) \
20342 vld3q_lane_##funcsuffix (const ptrtype * __ptr, intype __b, const int __c) \
20344 __builtin_aarch64_simd_ci __o; \
20345 intype ret; \
20346 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __b.val[0], 0); \
20347 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __b.val[1], 1); \
20348 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __b.val[2], 2); \
20349 __o = __builtin_aarch64_ld3_lane##mode ( \
20350 (__builtin_aarch64_simd_##ptrmode *) __ptr, __o, __c); \
20351 ret.val[0] = (vtype) __builtin_aarch64_get_qregciv4si (__o, 0); \
20352 ret.val[1] = (vtype) __builtin_aarch64_get_qregciv4si (__o, 1); \
20353 ret.val[2] = (vtype) __builtin_aarch64_get_qregciv4si (__o, 2); \
20354 return ret; \
20357 __LD3_LANE_FUNC (float16x8x3_t, float16x8_t, float16_t, v8hf, hf, f16)
20358 __LD3_LANE_FUNC (float32x4x3_t, float32x4_t, float32_t, v4sf, sf, f32)
20359 __LD3_LANE_FUNC (float64x2x3_t, float64x2_t, float64_t, v2df, df, f64)
20360 __LD3_LANE_FUNC (poly8x16x3_t, poly8x16_t, poly8_t, v16qi, qi, p8)
20361 __LD3_LANE_FUNC (poly16x8x3_t, poly16x8_t, poly16_t, v8hi, hi, p16)
20362 __LD3_LANE_FUNC (poly64x2x3_t, poly64x2_t, poly64_t, v2di, di, p64)
20363 __LD3_LANE_FUNC (int8x16x3_t, int8x16_t, int8_t, v16qi, qi, s8)
20364 __LD3_LANE_FUNC (int16x8x3_t, int16x8_t, int16_t, v8hi, hi, s16)
20365 __LD3_LANE_FUNC (int32x4x3_t, int32x4_t, int32_t, v4si, si, s32)
20366 __LD3_LANE_FUNC (int64x2x3_t, int64x2_t, int64_t, v2di, di, s64)
20367 __LD3_LANE_FUNC (uint8x16x3_t, uint8x16_t, uint8_t, v16qi, qi, u8)
20368 __LD3_LANE_FUNC (uint16x8x3_t, uint16x8_t, uint16_t, v8hi, hi, u16)
20369 __LD3_LANE_FUNC (uint32x4x3_t, uint32x4_t, uint32_t, v4si, si, u32)
20370 __LD3_LANE_FUNC (uint64x2x3_t, uint64x2_t, uint64_t, v2di, di, u64)
20372 #undef __LD3_LANE_FUNC
20374 /* vld4_lane */
20376 #define __LD4_LANE_FUNC(intype, vectype, largetype, ptrtype, mode, \
20377 qmode, ptrmode, funcsuffix, signedtype) \
20378 __extension__ extern __inline intype \
20379 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__)) \
20380 vld4_lane_##funcsuffix (const ptrtype * __ptr, intype __b, const int __c) \
20382 __builtin_aarch64_simd_xi __o; \
20383 largetype __temp; \
20384 __temp.val[0] = \
20385 vcombine_##funcsuffix (__b.val[0], vcreate_##funcsuffix (0)); \
20386 __temp.val[1] = \
20387 vcombine_##funcsuffix (__b.val[1], vcreate_##funcsuffix (0)); \
20388 __temp.val[2] = \
20389 vcombine_##funcsuffix (__b.val[2], vcreate_##funcsuffix (0)); \
20390 __temp.val[3] = \
20391 vcombine_##funcsuffix (__b.val[3], vcreate_##funcsuffix (0)); \
20392 __o = __builtin_aarch64_set_qregxi##qmode (__o, \
20393 (signedtype) __temp.val[0], \
20394 0); \
20395 __o = __builtin_aarch64_set_qregxi##qmode (__o, \
20396 (signedtype) __temp.val[1], \
20397 1); \
20398 __o = __builtin_aarch64_set_qregxi##qmode (__o, \
20399 (signedtype) __temp.val[2], \
20400 2); \
20401 __o = __builtin_aarch64_set_qregxi##qmode (__o, \
20402 (signedtype) __temp.val[3], \
20403 3); \
20404 __o = __builtin_aarch64_ld4_lane##mode ( \
20405 (__builtin_aarch64_simd_##ptrmode *) __ptr, __o, __c); \
20406 __b.val[0] = (vectype) __builtin_aarch64_get_dregxidi (__o, 0); \
20407 __b.val[1] = (vectype) __builtin_aarch64_get_dregxidi (__o, 1); \
20408 __b.val[2] = (vectype) __builtin_aarch64_get_dregxidi (__o, 2); \
20409 __b.val[3] = (vectype) __builtin_aarch64_get_dregxidi (__o, 3); \
20410 return __b; \
20413 /* vld4q_lane */
20415 __LD4_LANE_FUNC (float16x4x4_t, float16x4_t, float16x8x4_t, float16_t, v4hf,
20416 v8hf, hf, f16, float16x8_t)
20417 __LD4_LANE_FUNC (float32x2x4_t, float32x2_t, float32x4x4_t, float32_t, v2sf, v4sf,
20418 sf, f32, float32x4_t)
20419 __LD4_LANE_FUNC (float64x1x4_t, float64x1_t, float64x2x4_t, float64_t, df, v2df,
20420 df, f64, float64x2_t)
20421 __LD4_LANE_FUNC (poly8x8x4_t, poly8x8_t, poly8x16x4_t, poly8_t, v8qi, v16qi, qi, p8,
20422 int8x16_t)
20423 __LD4_LANE_FUNC (poly16x4x4_t, poly16x4_t, poly16x8x4_t, poly16_t, v4hi, v8hi, hi,
20424 p16, int16x8_t)
20425 __LD4_LANE_FUNC (poly64x1x4_t, poly64x1_t, poly64x2x4_t, poly64_t, di,
20426 v2di_ssps, di, p64, poly64x2_t)
20427 __LD4_LANE_FUNC (int8x8x4_t, int8x8_t, int8x16x4_t, int8_t, v8qi, v16qi, qi, s8,
20428 int8x16_t)
20429 __LD4_LANE_FUNC (int16x4x4_t, int16x4_t, int16x8x4_t, int16_t, v4hi, v8hi, hi, s16,
20430 int16x8_t)
20431 __LD4_LANE_FUNC (int32x2x4_t, int32x2_t, int32x4x4_t, int32_t, v2si, v4si, si, s32,
20432 int32x4_t)
20433 __LD4_LANE_FUNC (int64x1x4_t, int64x1_t, int64x2x4_t, int64_t, di, v2di, di, s64,
20434 int64x2_t)
20435 __LD4_LANE_FUNC (uint8x8x4_t, uint8x8_t, uint8x16x4_t, uint8_t, v8qi, v16qi, qi, u8,
20436 int8x16_t)
20437 __LD4_LANE_FUNC (uint16x4x4_t, uint16x4_t, uint16x8x4_t, uint16_t, v4hi, v8hi, hi,
20438 u16, int16x8_t)
20439 __LD4_LANE_FUNC (uint32x2x4_t, uint32x2_t, uint32x4x4_t, uint32_t, v2si, v4si, si,
20440 u32, int32x4_t)
20441 __LD4_LANE_FUNC (uint64x1x4_t, uint64x1_t, uint64x2x4_t, uint64_t, di, v2di, di,
20442 u64, int64x2_t)
20444 #undef __LD4_LANE_FUNC
20446 /* vld4q_lane */
20448 #define __LD4_LANE_FUNC(intype, vtype, ptrtype, mode, ptrmode, funcsuffix) \
20449 __extension__ extern __inline intype \
20450 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__)) \
20451 vld4q_lane_##funcsuffix (const ptrtype * __ptr, intype __b, const int __c) \
20453 __builtin_aarch64_simd_xi __o; \
20454 intype ret; \
20455 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __b.val[0], 0); \
20456 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __b.val[1], 1); \
20457 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __b.val[2], 2); \
20458 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __b.val[3], 3); \
20459 __o = __builtin_aarch64_ld4_lane##mode ( \
20460 (__builtin_aarch64_simd_##ptrmode *) __ptr, __o, __c); \
20461 ret.val[0] = (vtype) __builtin_aarch64_get_qregxiv4si (__o, 0); \
20462 ret.val[1] = (vtype) __builtin_aarch64_get_qregxiv4si (__o, 1); \
20463 ret.val[2] = (vtype) __builtin_aarch64_get_qregxiv4si (__o, 2); \
20464 ret.val[3] = (vtype) __builtin_aarch64_get_qregxiv4si (__o, 3); \
20465 return ret; \
20468 __LD4_LANE_FUNC (float16x8x4_t, float16x8_t, float16_t, v8hf, hf, f16)
20469 __LD4_LANE_FUNC (float32x4x4_t, float32x4_t, float32_t, v4sf, sf, f32)
20470 __LD4_LANE_FUNC (float64x2x4_t, float64x2_t, float64_t, v2df, df, f64)
20471 __LD4_LANE_FUNC (poly8x16x4_t, poly8x16_t, poly8_t, v16qi, qi, p8)
20472 __LD4_LANE_FUNC (poly16x8x4_t, poly16x8_t, poly16_t, v8hi, hi, p16)
20473 __LD4_LANE_FUNC (poly64x2x4_t, poly64x2_t, poly64_t, v2di, di, p64)
20474 __LD4_LANE_FUNC (int8x16x4_t, int8x16_t, int8_t, v16qi, qi, s8)
20475 __LD4_LANE_FUNC (int16x8x4_t, int16x8_t, int16_t, v8hi, hi, s16)
20476 __LD4_LANE_FUNC (int32x4x4_t, int32x4_t, int32_t, v4si, si, s32)
20477 __LD4_LANE_FUNC (int64x2x4_t, int64x2_t, int64_t, v2di, di, s64)
20478 __LD4_LANE_FUNC (uint8x16x4_t, uint8x16_t, uint8_t, v16qi, qi, u8)
20479 __LD4_LANE_FUNC (uint16x8x4_t, uint16x8_t, uint16_t, v8hi, hi, u16)
20480 __LD4_LANE_FUNC (uint32x4x4_t, uint32x4_t, uint32_t, v4si, si, u32)
20481 __LD4_LANE_FUNC (uint64x2x4_t, uint64x2_t, uint64_t, v2di, di, u64)
20483 #undef __LD4_LANE_FUNC
20485 /* vmax */
20487 __extension__ extern __inline float32x2_t
20488 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20489 vmax_f32 (float32x2_t __a, float32x2_t __b)
20491 return __builtin_aarch64_smax_nanv2sf (__a, __b);
20494 __extension__ extern __inline float64x1_t
20495 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20496 vmax_f64 (float64x1_t __a, float64x1_t __b)
20498 return (float64x1_t)
20499 { __builtin_aarch64_smax_nandf (vget_lane_f64 (__a, 0),
20500 vget_lane_f64 (__b, 0)) };
20503 __extension__ extern __inline int8x8_t
20504 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20505 vmax_s8 (int8x8_t __a, int8x8_t __b)
20507 return __builtin_aarch64_smaxv8qi (__a, __b);
20510 __extension__ extern __inline int16x4_t
20511 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20512 vmax_s16 (int16x4_t __a, int16x4_t __b)
20514 return __builtin_aarch64_smaxv4hi (__a, __b);
20517 __extension__ extern __inline int32x2_t
20518 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20519 vmax_s32 (int32x2_t __a, int32x2_t __b)
20521 return __builtin_aarch64_smaxv2si (__a, __b);
20524 __extension__ extern __inline uint8x8_t
20525 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20526 vmax_u8 (uint8x8_t __a, uint8x8_t __b)
20528 return (uint8x8_t) __builtin_aarch64_umaxv8qi ((int8x8_t) __a,
20529 (int8x8_t) __b);
20532 __extension__ extern __inline uint16x4_t
20533 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20534 vmax_u16 (uint16x4_t __a, uint16x4_t __b)
20536 return (uint16x4_t) __builtin_aarch64_umaxv4hi ((int16x4_t) __a,
20537 (int16x4_t) __b);
20540 __extension__ extern __inline uint32x2_t
20541 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20542 vmax_u32 (uint32x2_t __a, uint32x2_t __b)
20544 return (uint32x2_t) __builtin_aarch64_umaxv2si ((int32x2_t) __a,
20545 (int32x2_t) __b);
20548 __extension__ extern __inline float32x4_t
20549 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20550 vmaxq_f32 (float32x4_t __a, float32x4_t __b)
20552 return __builtin_aarch64_smax_nanv4sf (__a, __b);
20555 __extension__ extern __inline float64x2_t
20556 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20557 vmaxq_f64 (float64x2_t __a, float64x2_t __b)
20559 return __builtin_aarch64_smax_nanv2df (__a, __b);
20562 __extension__ extern __inline int8x16_t
20563 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20564 vmaxq_s8 (int8x16_t __a, int8x16_t __b)
20566 return __builtin_aarch64_smaxv16qi (__a, __b);
20569 __extension__ extern __inline int16x8_t
20570 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20571 vmaxq_s16 (int16x8_t __a, int16x8_t __b)
20573 return __builtin_aarch64_smaxv8hi (__a, __b);
20576 __extension__ extern __inline int32x4_t
20577 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20578 vmaxq_s32 (int32x4_t __a, int32x4_t __b)
20580 return __builtin_aarch64_smaxv4si (__a, __b);
20583 __extension__ extern __inline uint8x16_t
20584 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20585 vmaxq_u8 (uint8x16_t __a, uint8x16_t __b)
20587 return (uint8x16_t) __builtin_aarch64_umaxv16qi ((int8x16_t) __a,
20588 (int8x16_t) __b);
20591 __extension__ extern __inline uint16x8_t
20592 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20593 vmaxq_u16 (uint16x8_t __a, uint16x8_t __b)
20595 return (uint16x8_t) __builtin_aarch64_umaxv8hi ((int16x8_t) __a,
20596 (int16x8_t) __b);
20599 __extension__ extern __inline uint32x4_t
20600 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20601 vmaxq_u32 (uint32x4_t __a, uint32x4_t __b)
20603 return (uint32x4_t) __builtin_aarch64_umaxv4si ((int32x4_t) __a,
20604 (int32x4_t) __b);
20606 /* vmulx */
20608 __extension__ extern __inline float32x2_t
20609 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20610 vmulx_f32 (float32x2_t __a, float32x2_t __b)
20612 return __builtin_aarch64_fmulxv2sf (__a, __b);
20615 __extension__ extern __inline float32x4_t
20616 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20617 vmulxq_f32 (float32x4_t __a, float32x4_t __b)
20619 return __builtin_aarch64_fmulxv4sf (__a, __b);
20622 __extension__ extern __inline float64x1_t
20623 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20624 vmulx_f64 (float64x1_t __a, float64x1_t __b)
20626 return (float64x1_t) {__builtin_aarch64_fmulxdf (__a[0], __b[0])};
20629 __extension__ extern __inline float64x2_t
20630 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20631 vmulxq_f64 (float64x2_t __a, float64x2_t __b)
20633 return __builtin_aarch64_fmulxv2df (__a, __b);
20636 __extension__ extern __inline float32_t
20637 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20638 vmulxs_f32 (float32_t __a, float32_t __b)
20640 return __builtin_aarch64_fmulxsf (__a, __b);
20643 __extension__ extern __inline float64_t
20644 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20645 vmulxd_f64 (float64_t __a, float64_t __b)
20647 return __builtin_aarch64_fmulxdf (__a, __b);
20650 __extension__ extern __inline float32x2_t
20651 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20652 vmulx_lane_f32 (float32x2_t __a, float32x2_t __v, const int __lane)
20654 return vmulx_f32 (__a, __aarch64_vdup_lane_f32 (__v, __lane));
20657 __extension__ extern __inline float64x1_t
20658 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20659 vmulx_lane_f64 (float64x1_t __a, float64x1_t __v, const int __lane)
20661 return vmulx_f64 (__a, __aarch64_vdup_lane_f64 (__v, __lane));
20664 __extension__ extern __inline float32x4_t
20665 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20666 vmulxq_lane_f32 (float32x4_t __a, float32x2_t __v, const int __lane)
20668 return vmulxq_f32 (__a, __aarch64_vdupq_lane_f32 (__v, __lane));
20671 __extension__ extern __inline float64x2_t
20672 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20673 vmulxq_lane_f64 (float64x2_t __a, float64x1_t __v, const int __lane)
20675 return vmulxq_f64 (__a, __aarch64_vdupq_lane_f64 (__v, __lane));
20678 __extension__ extern __inline float32x2_t
20679 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20680 vmulx_laneq_f32 (float32x2_t __a, float32x4_t __v, const int __lane)
20682 return vmulx_f32 (__a, __aarch64_vdup_laneq_f32 (__v, __lane));
20685 __extension__ extern __inline float64x1_t
20686 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20687 vmulx_laneq_f64 (float64x1_t __a, float64x2_t __v, const int __lane)
20689 return vmulx_f64 (__a, __aarch64_vdup_laneq_f64 (__v, __lane));
20692 __extension__ extern __inline float32x4_t
20693 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20694 vmulxq_laneq_f32 (float32x4_t __a, float32x4_t __v, const int __lane)
20696 return vmulxq_f32 (__a, __aarch64_vdupq_laneq_f32 (__v, __lane));
20699 __extension__ extern __inline float64x2_t
20700 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20701 vmulxq_laneq_f64 (float64x2_t __a, float64x2_t __v, const int __lane)
20703 return vmulxq_f64 (__a, __aarch64_vdupq_laneq_f64 (__v, __lane));
20706 __extension__ extern __inline float32_t
20707 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20708 vmulxs_lane_f32 (float32_t __a, float32x2_t __v, const int __lane)
20710 return vmulxs_f32 (__a, __aarch64_vget_lane_any (__v, __lane));
20713 __extension__ extern __inline float32_t
20714 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20715 vmulxs_laneq_f32 (float32_t __a, float32x4_t __v, const int __lane)
20717 return vmulxs_f32 (__a, __aarch64_vget_lane_any (__v, __lane));
20720 __extension__ extern __inline float64_t
20721 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20722 vmulxd_lane_f64 (float64_t __a, float64x1_t __v, const int __lane)
20724 return vmulxd_f64 (__a, __aarch64_vget_lane_any (__v, __lane));
20727 __extension__ extern __inline float64_t
20728 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20729 vmulxd_laneq_f64 (float64_t __a, float64x2_t __v, const int __lane)
20731 return vmulxd_f64 (__a, __aarch64_vget_lane_any (__v, __lane));
20734 /* vpmax */
20736 __extension__ extern __inline int8x8_t
20737 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20738 vpmax_s8 (int8x8_t a, int8x8_t b)
20740 return __builtin_aarch64_smaxpv8qi (a, b);
20743 __extension__ extern __inline int16x4_t
20744 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20745 vpmax_s16 (int16x4_t a, int16x4_t b)
20747 return __builtin_aarch64_smaxpv4hi (a, b);
20750 __extension__ extern __inline int32x2_t
20751 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20752 vpmax_s32 (int32x2_t a, int32x2_t b)
20754 return __builtin_aarch64_smaxpv2si (a, b);
20757 __extension__ extern __inline uint8x8_t
20758 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20759 vpmax_u8 (uint8x8_t a, uint8x8_t b)
20761 return (uint8x8_t) __builtin_aarch64_umaxpv8qi ((int8x8_t) a,
20762 (int8x8_t) b);
20765 __extension__ extern __inline uint16x4_t
20766 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20767 vpmax_u16 (uint16x4_t a, uint16x4_t b)
20769 return (uint16x4_t) __builtin_aarch64_umaxpv4hi ((int16x4_t) a,
20770 (int16x4_t) b);
20773 __extension__ extern __inline uint32x2_t
20774 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20775 vpmax_u32 (uint32x2_t a, uint32x2_t b)
20777 return (uint32x2_t) __builtin_aarch64_umaxpv2si ((int32x2_t) a,
20778 (int32x2_t) b);
20781 __extension__ extern __inline int8x16_t
20782 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20783 vpmaxq_s8 (int8x16_t a, int8x16_t b)
20785 return __builtin_aarch64_smaxpv16qi (a, b);
20788 __extension__ extern __inline int16x8_t
20789 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20790 vpmaxq_s16 (int16x8_t a, int16x8_t b)
20792 return __builtin_aarch64_smaxpv8hi (a, b);
20795 __extension__ extern __inline int32x4_t
20796 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20797 vpmaxq_s32 (int32x4_t a, int32x4_t b)
20799 return __builtin_aarch64_smaxpv4si (a, b);
20802 __extension__ extern __inline uint8x16_t
20803 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20804 vpmaxq_u8 (uint8x16_t a, uint8x16_t b)
20806 return (uint8x16_t) __builtin_aarch64_umaxpv16qi ((int8x16_t) a,
20807 (int8x16_t) b);
20810 __extension__ extern __inline uint16x8_t
20811 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20812 vpmaxq_u16 (uint16x8_t a, uint16x8_t b)
20814 return (uint16x8_t) __builtin_aarch64_umaxpv8hi ((int16x8_t) a,
20815 (int16x8_t) b);
20818 __extension__ extern __inline uint32x4_t
20819 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20820 vpmaxq_u32 (uint32x4_t a, uint32x4_t b)
20822 return (uint32x4_t) __builtin_aarch64_umaxpv4si ((int32x4_t) a,
20823 (int32x4_t) b);
20826 __extension__ extern __inline float32x2_t
20827 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20828 vpmax_f32 (float32x2_t a, float32x2_t b)
20830 return __builtin_aarch64_smax_nanpv2sf (a, b);
20833 __extension__ extern __inline float32x4_t
20834 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20835 vpmaxq_f32 (float32x4_t a, float32x4_t b)
20837 return __builtin_aarch64_smax_nanpv4sf (a, b);
20840 __extension__ extern __inline float64x2_t
20841 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20842 vpmaxq_f64 (float64x2_t a, float64x2_t b)
20844 return __builtin_aarch64_smax_nanpv2df (a, b);
20847 __extension__ extern __inline float64_t
20848 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20849 vpmaxqd_f64 (float64x2_t a)
20851 return __builtin_aarch64_reduc_smax_nan_scal_v2df (a);
20854 __extension__ extern __inline float32_t
20855 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20856 vpmaxs_f32 (float32x2_t a)
20858 return __builtin_aarch64_reduc_smax_nan_scal_v2sf (a);
20861 /* vpmaxnm */
20863 __extension__ extern __inline float32x2_t
20864 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20865 vpmaxnm_f32 (float32x2_t a, float32x2_t b)
20867 return __builtin_aarch64_smaxpv2sf (a, b);
20870 __extension__ extern __inline float32x4_t
20871 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20872 vpmaxnmq_f32 (float32x4_t a, float32x4_t b)
20874 return __builtin_aarch64_smaxpv4sf (a, b);
20877 __extension__ extern __inline float64x2_t
20878 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20879 vpmaxnmq_f64 (float64x2_t a, float64x2_t b)
20881 return __builtin_aarch64_smaxpv2df (a, b);
20884 __extension__ extern __inline float64_t
20885 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20886 vpmaxnmqd_f64 (float64x2_t a)
20888 return __builtin_aarch64_reduc_smax_scal_v2df (a);
20891 __extension__ extern __inline float32_t
20892 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20893 vpmaxnms_f32 (float32x2_t a)
20895 return __builtin_aarch64_reduc_smax_scal_v2sf (a);
20898 /* vpmin */
20900 __extension__ extern __inline int8x8_t
20901 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20902 vpmin_s8 (int8x8_t a, int8x8_t b)
20904 return __builtin_aarch64_sminpv8qi (a, b);
20907 __extension__ extern __inline int16x4_t
20908 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20909 vpmin_s16 (int16x4_t a, int16x4_t b)
20911 return __builtin_aarch64_sminpv4hi (a, b);
20914 __extension__ extern __inline int32x2_t
20915 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20916 vpmin_s32 (int32x2_t a, int32x2_t b)
20918 return __builtin_aarch64_sminpv2si (a, b);
20921 __extension__ extern __inline uint8x8_t
20922 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20923 vpmin_u8 (uint8x8_t a, uint8x8_t b)
20925 return (uint8x8_t) __builtin_aarch64_uminpv8qi ((int8x8_t) a,
20926 (int8x8_t) b);
20929 __extension__ extern __inline uint16x4_t
20930 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20931 vpmin_u16 (uint16x4_t a, uint16x4_t b)
20933 return (uint16x4_t) __builtin_aarch64_uminpv4hi ((int16x4_t) a,
20934 (int16x4_t) b);
20937 __extension__ extern __inline uint32x2_t
20938 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20939 vpmin_u32 (uint32x2_t a, uint32x2_t b)
20941 return (uint32x2_t) __builtin_aarch64_uminpv2si ((int32x2_t) a,
20942 (int32x2_t) b);
20945 __extension__ extern __inline int8x16_t
20946 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20947 vpminq_s8 (int8x16_t a, int8x16_t b)
20949 return __builtin_aarch64_sminpv16qi (a, b);
20952 __extension__ extern __inline int16x8_t
20953 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20954 vpminq_s16 (int16x8_t a, int16x8_t b)
20956 return __builtin_aarch64_sminpv8hi (a, b);
20959 __extension__ extern __inline int32x4_t
20960 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20961 vpminq_s32 (int32x4_t a, int32x4_t b)
20963 return __builtin_aarch64_sminpv4si (a, b);
20966 __extension__ extern __inline uint8x16_t
20967 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20968 vpminq_u8 (uint8x16_t a, uint8x16_t b)
20970 return (uint8x16_t) __builtin_aarch64_uminpv16qi ((int8x16_t) a,
20971 (int8x16_t) b);
20974 __extension__ extern __inline uint16x8_t
20975 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20976 vpminq_u16 (uint16x8_t a, uint16x8_t b)
20978 return (uint16x8_t) __builtin_aarch64_uminpv8hi ((int16x8_t) a,
20979 (int16x8_t) b);
20982 __extension__ extern __inline uint32x4_t
20983 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20984 vpminq_u32 (uint32x4_t a, uint32x4_t b)
20986 return (uint32x4_t) __builtin_aarch64_uminpv4si ((int32x4_t) a,
20987 (int32x4_t) b);
20990 __extension__ extern __inline float32x2_t
20991 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20992 vpmin_f32 (float32x2_t a, float32x2_t b)
20994 return __builtin_aarch64_smin_nanpv2sf (a, b);
20997 __extension__ extern __inline float32x4_t
20998 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20999 vpminq_f32 (float32x4_t a, float32x4_t b)
21001 return __builtin_aarch64_smin_nanpv4sf (a, b);
21004 __extension__ extern __inline float64x2_t
21005 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21006 vpminq_f64 (float64x2_t a, float64x2_t b)
21008 return __builtin_aarch64_smin_nanpv2df (a, b);
21011 __extension__ extern __inline float64_t
21012 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21013 vpminqd_f64 (float64x2_t a)
21015 return __builtin_aarch64_reduc_smin_nan_scal_v2df (a);
21018 __extension__ extern __inline float32_t
21019 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21020 vpmins_f32 (float32x2_t a)
21022 return __builtin_aarch64_reduc_smin_nan_scal_v2sf (a);
21025 /* vpminnm */
21027 __extension__ extern __inline float32x2_t
21028 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21029 vpminnm_f32 (float32x2_t a, float32x2_t b)
21031 return __builtin_aarch64_sminpv2sf (a, b);
21034 __extension__ extern __inline float32x4_t
21035 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21036 vpminnmq_f32 (float32x4_t a, float32x4_t b)
21038 return __builtin_aarch64_sminpv4sf (a, b);
21041 __extension__ extern __inline float64x2_t
21042 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21043 vpminnmq_f64 (float64x2_t a, float64x2_t b)
21045 return __builtin_aarch64_sminpv2df (a, b);
21048 __extension__ extern __inline float64_t
21049 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21050 vpminnmqd_f64 (float64x2_t a)
21052 return __builtin_aarch64_reduc_smin_scal_v2df (a);
21055 __extension__ extern __inline float32_t
21056 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21057 vpminnms_f32 (float32x2_t a)
21059 return __builtin_aarch64_reduc_smin_scal_v2sf (a);
21062 /* vmaxnm */
21064 __extension__ extern __inline float32x2_t
21065 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21066 vmaxnm_f32 (float32x2_t __a, float32x2_t __b)
21068 return __builtin_aarch64_fmaxv2sf (__a, __b);
21071 __extension__ extern __inline float64x1_t
21072 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21073 vmaxnm_f64 (float64x1_t __a, float64x1_t __b)
21075 return (float64x1_t)
21076 { __builtin_aarch64_fmaxdf (vget_lane_f64 (__a, 0),
21077 vget_lane_f64 (__b, 0)) };
21080 __extension__ extern __inline float32x4_t
21081 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21082 vmaxnmq_f32 (float32x4_t __a, float32x4_t __b)
21084 return __builtin_aarch64_fmaxv4sf (__a, __b);
21087 __extension__ extern __inline float64x2_t
21088 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21089 vmaxnmq_f64 (float64x2_t __a, float64x2_t __b)
21091 return __builtin_aarch64_fmaxv2df (__a, __b);
21094 /* vmaxv */
21096 __extension__ extern __inline float32_t
21097 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21098 vmaxv_f32 (float32x2_t __a)
21100 return __builtin_aarch64_reduc_smax_nan_scal_v2sf (__a);
21103 __extension__ extern __inline int8_t
21104 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21105 vmaxv_s8 (int8x8_t __a)
21107 return __builtin_aarch64_reduc_smax_scal_v8qi (__a);
21110 __extension__ extern __inline int16_t
21111 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21112 vmaxv_s16 (int16x4_t __a)
21114 return __builtin_aarch64_reduc_smax_scal_v4hi (__a);
21117 __extension__ extern __inline int32_t
21118 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21119 vmaxv_s32 (int32x2_t __a)
21121 return __builtin_aarch64_reduc_smax_scal_v2si (__a);
21124 __extension__ extern __inline uint8_t
21125 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21126 vmaxv_u8 (uint8x8_t __a)
21128 return __builtin_aarch64_reduc_umax_scal_v8qi_uu (__a);
21131 __extension__ extern __inline uint16_t
21132 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21133 vmaxv_u16 (uint16x4_t __a)
21135 return __builtin_aarch64_reduc_umax_scal_v4hi_uu (__a);
21138 __extension__ extern __inline uint32_t
21139 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21140 vmaxv_u32 (uint32x2_t __a)
21142 return __builtin_aarch64_reduc_umax_scal_v2si_uu (__a);
21145 __extension__ extern __inline float32_t
21146 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21147 vmaxvq_f32 (float32x4_t __a)
21149 return __builtin_aarch64_reduc_smax_nan_scal_v4sf (__a);
21152 __extension__ extern __inline float64_t
21153 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21154 vmaxvq_f64 (float64x2_t __a)
21156 return __builtin_aarch64_reduc_smax_nan_scal_v2df (__a);
21159 __extension__ extern __inline int8_t
21160 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21161 vmaxvq_s8 (int8x16_t __a)
21163 return __builtin_aarch64_reduc_smax_scal_v16qi (__a);
21166 __extension__ extern __inline int16_t
21167 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21168 vmaxvq_s16 (int16x8_t __a)
21170 return __builtin_aarch64_reduc_smax_scal_v8hi (__a);
21173 __extension__ extern __inline int32_t
21174 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21175 vmaxvq_s32 (int32x4_t __a)
21177 return __builtin_aarch64_reduc_smax_scal_v4si (__a);
21180 __extension__ extern __inline uint8_t
21181 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21182 vmaxvq_u8 (uint8x16_t __a)
21184 return __builtin_aarch64_reduc_umax_scal_v16qi_uu (__a);
21187 __extension__ extern __inline uint16_t
21188 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21189 vmaxvq_u16 (uint16x8_t __a)
21191 return __builtin_aarch64_reduc_umax_scal_v8hi_uu (__a);
21194 __extension__ extern __inline uint32_t
21195 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21196 vmaxvq_u32 (uint32x4_t __a)
21198 return __builtin_aarch64_reduc_umax_scal_v4si_uu (__a);
21201 /* vmaxnmv */
21203 __extension__ extern __inline float32_t
21204 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21205 vmaxnmv_f32 (float32x2_t __a)
21207 return __builtin_aarch64_reduc_smax_scal_v2sf (__a);
21210 __extension__ extern __inline float32_t
21211 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21212 vmaxnmvq_f32 (float32x4_t __a)
21214 return __builtin_aarch64_reduc_smax_scal_v4sf (__a);
21217 __extension__ extern __inline float64_t
21218 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21219 vmaxnmvq_f64 (float64x2_t __a)
21221 return __builtin_aarch64_reduc_smax_scal_v2df (__a);
21224 /* vmin */
21226 __extension__ extern __inline float32x2_t
21227 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21228 vmin_f32 (float32x2_t __a, float32x2_t __b)
21230 return __builtin_aarch64_smin_nanv2sf (__a, __b);
21233 __extension__ extern __inline float64x1_t
21234 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21235 vmin_f64 (float64x1_t __a, float64x1_t __b)
21237 return (float64x1_t)
21238 { __builtin_aarch64_smin_nandf (vget_lane_f64 (__a, 0),
21239 vget_lane_f64 (__b, 0)) };
21242 __extension__ extern __inline int8x8_t
21243 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21244 vmin_s8 (int8x8_t __a, int8x8_t __b)
21246 return __builtin_aarch64_sminv8qi (__a, __b);
21249 __extension__ extern __inline int16x4_t
21250 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21251 vmin_s16 (int16x4_t __a, int16x4_t __b)
21253 return __builtin_aarch64_sminv4hi (__a, __b);
21256 __extension__ extern __inline int32x2_t
21257 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21258 vmin_s32 (int32x2_t __a, int32x2_t __b)
21260 return __builtin_aarch64_sminv2si (__a, __b);
21263 __extension__ extern __inline uint8x8_t
21264 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21265 vmin_u8 (uint8x8_t __a, uint8x8_t __b)
21267 return (uint8x8_t) __builtin_aarch64_uminv8qi ((int8x8_t) __a,
21268 (int8x8_t) __b);
21271 __extension__ extern __inline uint16x4_t
21272 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21273 vmin_u16 (uint16x4_t __a, uint16x4_t __b)
21275 return (uint16x4_t) __builtin_aarch64_uminv4hi ((int16x4_t) __a,
21276 (int16x4_t) __b);
21279 __extension__ extern __inline uint32x2_t
21280 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21281 vmin_u32 (uint32x2_t __a, uint32x2_t __b)
21283 return (uint32x2_t) __builtin_aarch64_uminv2si ((int32x2_t) __a,
21284 (int32x2_t) __b);
21287 __extension__ extern __inline float32x4_t
21288 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21289 vminq_f32 (float32x4_t __a, float32x4_t __b)
21291 return __builtin_aarch64_smin_nanv4sf (__a, __b);
21294 __extension__ extern __inline float64x2_t
21295 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21296 vminq_f64 (float64x2_t __a, float64x2_t __b)
21298 return __builtin_aarch64_smin_nanv2df (__a, __b);
21301 __extension__ extern __inline int8x16_t
21302 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21303 vminq_s8 (int8x16_t __a, int8x16_t __b)
21305 return __builtin_aarch64_sminv16qi (__a, __b);
21308 __extension__ extern __inline int16x8_t
21309 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21310 vminq_s16 (int16x8_t __a, int16x8_t __b)
21312 return __builtin_aarch64_sminv8hi (__a, __b);
21315 __extension__ extern __inline int32x4_t
21316 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21317 vminq_s32 (int32x4_t __a, int32x4_t __b)
21319 return __builtin_aarch64_sminv4si (__a, __b);
21322 __extension__ extern __inline uint8x16_t
21323 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21324 vminq_u8 (uint8x16_t __a, uint8x16_t __b)
21326 return (uint8x16_t) __builtin_aarch64_uminv16qi ((int8x16_t) __a,
21327 (int8x16_t) __b);
21330 __extension__ extern __inline uint16x8_t
21331 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21332 vminq_u16 (uint16x8_t __a, uint16x8_t __b)
21334 return (uint16x8_t) __builtin_aarch64_uminv8hi ((int16x8_t) __a,
21335 (int16x8_t) __b);
21338 __extension__ extern __inline uint32x4_t
21339 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21340 vminq_u32 (uint32x4_t __a, uint32x4_t __b)
21342 return (uint32x4_t) __builtin_aarch64_uminv4si ((int32x4_t) __a,
21343 (int32x4_t) __b);
21346 /* vminnm */
21348 __extension__ extern __inline float32x2_t
21349 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21350 vminnm_f32 (float32x2_t __a, float32x2_t __b)
21352 return __builtin_aarch64_fminv2sf (__a, __b);
21355 __extension__ extern __inline float64x1_t
21356 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21357 vminnm_f64 (float64x1_t __a, float64x1_t __b)
21359 return (float64x1_t)
21360 { __builtin_aarch64_fmindf (vget_lane_f64 (__a, 0),
21361 vget_lane_f64 (__b, 0)) };
21364 __extension__ extern __inline float32x4_t
21365 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21366 vminnmq_f32 (float32x4_t __a, float32x4_t __b)
21368 return __builtin_aarch64_fminv4sf (__a, __b);
21371 __extension__ extern __inline float64x2_t
21372 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21373 vminnmq_f64 (float64x2_t __a, float64x2_t __b)
21375 return __builtin_aarch64_fminv2df (__a, __b);
21378 /* vminv */
21380 __extension__ extern __inline float32_t
21381 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21382 vminv_f32 (float32x2_t __a)
21384 return __builtin_aarch64_reduc_smin_nan_scal_v2sf (__a);
21387 __extension__ extern __inline int8_t
21388 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21389 vminv_s8 (int8x8_t __a)
21391 return __builtin_aarch64_reduc_smin_scal_v8qi (__a);
21394 __extension__ extern __inline int16_t
21395 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21396 vminv_s16 (int16x4_t __a)
21398 return __builtin_aarch64_reduc_smin_scal_v4hi (__a);
21401 __extension__ extern __inline int32_t
21402 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21403 vminv_s32 (int32x2_t __a)
21405 return __builtin_aarch64_reduc_smin_scal_v2si (__a);
21408 __extension__ extern __inline uint8_t
21409 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21410 vminv_u8 (uint8x8_t __a)
21412 return __builtin_aarch64_reduc_umin_scal_v8qi_uu (__a);
21415 __extension__ extern __inline uint16_t
21416 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21417 vminv_u16 (uint16x4_t __a)
21419 return __builtin_aarch64_reduc_umin_scal_v4hi_uu (__a);
21422 __extension__ extern __inline uint32_t
21423 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21424 vminv_u32 (uint32x2_t __a)
21426 return __builtin_aarch64_reduc_umin_scal_v2si_uu (__a);
21429 __extension__ extern __inline float32_t
21430 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21431 vminvq_f32 (float32x4_t __a)
21433 return __builtin_aarch64_reduc_smin_nan_scal_v4sf (__a);
21436 __extension__ extern __inline float64_t
21437 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21438 vminvq_f64 (float64x2_t __a)
21440 return __builtin_aarch64_reduc_smin_nan_scal_v2df (__a);
21443 __extension__ extern __inline int8_t
21444 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21445 vminvq_s8 (int8x16_t __a)
21447 return __builtin_aarch64_reduc_smin_scal_v16qi (__a);
21450 __extension__ extern __inline int16_t
21451 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21452 vminvq_s16 (int16x8_t __a)
21454 return __builtin_aarch64_reduc_smin_scal_v8hi (__a);
21457 __extension__ extern __inline int32_t
21458 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21459 vminvq_s32 (int32x4_t __a)
21461 return __builtin_aarch64_reduc_smin_scal_v4si (__a);
21464 __extension__ extern __inline uint8_t
21465 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21466 vminvq_u8 (uint8x16_t __a)
21468 return __builtin_aarch64_reduc_umin_scal_v16qi_uu (__a);
21471 __extension__ extern __inline uint16_t
21472 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21473 vminvq_u16 (uint16x8_t __a)
21475 return __builtin_aarch64_reduc_umin_scal_v8hi_uu (__a);
21478 __extension__ extern __inline uint32_t
21479 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21480 vminvq_u32 (uint32x4_t __a)
21482 return __builtin_aarch64_reduc_umin_scal_v4si_uu (__a);
21485 /* vminnmv */
21487 __extension__ extern __inline float32_t
21488 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21489 vminnmv_f32 (float32x2_t __a)
21491 return __builtin_aarch64_reduc_smin_scal_v2sf (__a);
21494 __extension__ extern __inline float32_t
21495 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21496 vminnmvq_f32 (float32x4_t __a)
21498 return __builtin_aarch64_reduc_smin_scal_v4sf (__a);
21501 __extension__ extern __inline float64_t
21502 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21503 vminnmvq_f64 (float64x2_t __a)
21505 return __builtin_aarch64_reduc_smin_scal_v2df (__a);
21508 /* vmla */
21510 __extension__ extern __inline float32x2_t
21511 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21512 vmla_f32 (float32x2_t a, float32x2_t b, float32x2_t c)
21514 return a + b * c;
21517 __extension__ extern __inline float64x1_t
21518 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21519 vmla_f64 (float64x1_t __a, float64x1_t __b, float64x1_t __c)
21521 return __a + __b * __c;
21524 __extension__ extern __inline float32x4_t
21525 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21526 vmlaq_f32 (float32x4_t a, float32x4_t b, float32x4_t c)
21528 return a + b * c;
21531 __extension__ extern __inline float64x2_t
21532 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21533 vmlaq_f64 (float64x2_t a, float64x2_t b, float64x2_t c)
21535 return a + b * c;
21538 /* vmla_lane */
21540 __extension__ extern __inline float32x2_t
21541 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21542 vmla_lane_f32 (float32x2_t __a, float32x2_t __b,
21543 float32x2_t __c, const int __lane)
21545 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21548 __extension__ extern __inline int16x4_t
21549 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21550 vmla_lane_s16 (int16x4_t __a, int16x4_t __b,
21551 int16x4_t __c, const int __lane)
21553 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21556 __extension__ extern __inline int32x2_t
21557 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21558 vmla_lane_s32 (int32x2_t __a, int32x2_t __b,
21559 int32x2_t __c, const int __lane)
21561 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21564 __extension__ extern __inline uint16x4_t
21565 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21566 vmla_lane_u16 (uint16x4_t __a, uint16x4_t __b,
21567 uint16x4_t __c, const int __lane)
21569 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21572 __extension__ extern __inline uint32x2_t
21573 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21574 vmla_lane_u32 (uint32x2_t __a, uint32x2_t __b,
21575 uint32x2_t __c, const int __lane)
21577 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21580 /* vmla_laneq */
21582 __extension__ extern __inline float32x2_t
21583 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21584 vmla_laneq_f32 (float32x2_t __a, float32x2_t __b,
21585 float32x4_t __c, const int __lane)
21587 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21590 __extension__ extern __inline int16x4_t
21591 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21592 vmla_laneq_s16 (int16x4_t __a, int16x4_t __b,
21593 int16x8_t __c, const int __lane)
21595 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21598 __extension__ extern __inline int32x2_t
21599 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21600 vmla_laneq_s32 (int32x2_t __a, int32x2_t __b,
21601 int32x4_t __c, const int __lane)
21603 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21606 __extension__ extern __inline uint16x4_t
21607 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21608 vmla_laneq_u16 (uint16x4_t __a, uint16x4_t __b,
21609 uint16x8_t __c, const int __lane)
21611 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21614 __extension__ extern __inline uint32x2_t
21615 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21616 vmla_laneq_u32 (uint32x2_t __a, uint32x2_t __b,
21617 uint32x4_t __c, const int __lane)
21619 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21622 /* vmlaq_lane */
21624 __extension__ extern __inline float32x4_t
21625 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21626 vmlaq_lane_f32 (float32x4_t __a, float32x4_t __b,
21627 float32x2_t __c, const int __lane)
21629 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21632 __extension__ extern __inline int16x8_t
21633 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21634 vmlaq_lane_s16 (int16x8_t __a, int16x8_t __b,
21635 int16x4_t __c, const int __lane)
21637 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21640 __extension__ extern __inline int32x4_t
21641 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21642 vmlaq_lane_s32 (int32x4_t __a, int32x4_t __b,
21643 int32x2_t __c, const int __lane)
21645 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21648 __extension__ extern __inline uint16x8_t
21649 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21650 vmlaq_lane_u16 (uint16x8_t __a, uint16x8_t __b,
21651 uint16x4_t __c, const int __lane)
21653 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21656 __extension__ extern __inline uint32x4_t
21657 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21658 vmlaq_lane_u32 (uint32x4_t __a, uint32x4_t __b,
21659 uint32x2_t __c, const int __lane)
21661 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21664 /* vmlaq_laneq */
21666 __extension__ extern __inline float32x4_t
21667 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21668 vmlaq_laneq_f32 (float32x4_t __a, float32x4_t __b,
21669 float32x4_t __c, const int __lane)
21671 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21674 __extension__ extern __inline int16x8_t
21675 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21676 vmlaq_laneq_s16 (int16x8_t __a, int16x8_t __b,
21677 int16x8_t __c, const int __lane)
21679 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21682 __extension__ extern __inline int32x4_t
21683 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21684 vmlaq_laneq_s32 (int32x4_t __a, int32x4_t __b,
21685 int32x4_t __c, const int __lane)
21687 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21690 __extension__ extern __inline uint16x8_t
21691 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21692 vmlaq_laneq_u16 (uint16x8_t __a, uint16x8_t __b,
21693 uint16x8_t __c, const int __lane)
21695 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21698 __extension__ extern __inline uint32x4_t
21699 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21700 vmlaq_laneq_u32 (uint32x4_t __a, uint32x4_t __b,
21701 uint32x4_t __c, const int __lane)
21703 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21706 /* vmls */
21708 __extension__ extern __inline float32x2_t
21709 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21710 vmls_f32 (float32x2_t a, float32x2_t b, float32x2_t c)
21712 return a - b * c;
21715 __extension__ extern __inline float64x1_t
21716 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21717 vmls_f64 (float64x1_t __a, float64x1_t __b, float64x1_t __c)
21719 return __a - __b * __c;
21722 __extension__ extern __inline float32x4_t
21723 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21724 vmlsq_f32 (float32x4_t a, float32x4_t b, float32x4_t c)
21726 return a - b * c;
21729 __extension__ extern __inline float64x2_t
21730 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21731 vmlsq_f64 (float64x2_t a, float64x2_t b, float64x2_t c)
21733 return a - b * c;
21736 /* vmls_lane */
21738 __extension__ extern __inline float32x2_t
21739 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21740 vmls_lane_f32 (float32x2_t __a, float32x2_t __b,
21741 float32x2_t __c, const int __lane)
21743 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21746 __extension__ extern __inline int16x4_t
21747 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21748 vmls_lane_s16 (int16x4_t __a, int16x4_t __b,
21749 int16x4_t __c, const int __lane)
21751 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21754 __extension__ extern __inline int32x2_t
21755 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21756 vmls_lane_s32 (int32x2_t __a, int32x2_t __b,
21757 int32x2_t __c, const int __lane)
21759 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21762 __extension__ extern __inline uint16x4_t
21763 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21764 vmls_lane_u16 (uint16x4_t __a, uint16x4_t __b,
21765 uint16x4_t __c, const int __lane)
21767 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21770 __extension__ extern __inline uint32x2_t
21771 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21772 vmls_lane_u32 (uint32x2_t __a, uint32x2_t __b,
21773 uint32x2_t __c, const int __lane)
21775 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21778 /* vmls_laneq */
21780 __extension__ extern __inline float32x2_t
21781 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21782 vmls_laneq_f32 (float32x2_t __a, float32x2_t __b,
21783 float32x4_t __c, const int __lane)
21785 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21788 __extension__ extern __inline int16x4_t
21789 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21790 vmls_laneq_s16 (int16x4_t __a, int16x4_t __b,
21791 int16x8_t __c, const int __lane)
21793 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21796 __extension__ extern __inline int32x2_t
21797 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21798 vmls_laneq_s32 (int32x2_t __a, int32x2_t __b,
21799 int32x4_t __c, const int __lane)
21801 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21804 __extension__ extern __inline uint16x4_t
21805 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21806 vmls_laneq_u16 (uint16x4_t __a, uint16x4_t __b,
21807 uint16x8_t __c, const int __lane)
21809 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21812 __extension__ extern __inline uint32x2_t
21813 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21814 vmls_laneq_u32 (uint32x2_t __a, uint32x2_t __b,
21815 uint32x4_t __c, const int __lane)
21817 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21820 /* vmlsq_lane */
21822 __extension__ extern __inline float32x4_t
21823 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21824 vmlsq_lane_f32 (float32x4_t __a, float32x4_t __b,
21825 float32x2_t __c, const int __lane)
21827 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21830 __extension__ extern __inline int16x8_t
21831 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21832 vmlsq_lane_s16 (int16x8_t __a, int16x8_t __b,
21833 int16x4_t __c, const int __lane)
21835 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21838 __extension__ extern __inline int32x4_t
21839 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21840 vmlsq_lane_s32 (int32x4_t __a, int32x4_t __b,
21841 int32x2_t __c, const int __lane)
21843 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21846 __extension__ extern __inline uint16x8_t
21847 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21848 vmlsq_lane_u16 (uint16x8_t __a, uint16x8_t __b,
21849 uint16x4_t __c, const int __lane)
21851 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21854 __extension__ extern __inline uint32x4_t
21855 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21856 vmlsq_lane_u32 (uint32x4_t __a, uint32x4_t __b,
21857 uint32x2_t __c, const int __lane)
21859 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21862 /* vmlsq_laneq */
21864 __extension__ extern __inline float32x4_t
21865 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21866 vmlsq_laneq_f32 (float32x4_t __a, float32x4_t __b,
21867 float32x4_t __c, const int __lane)
21869 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21872 __extension__ extern __inline int16x8_t
21873 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21874 vmlsq_laneq_s16 (int16x8_t __a, int16x8_t __b,
21875 int16x8_t __c, const int __lane)
21877 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21880 __extension__ extern __inline int32x4_t
21881 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21882 vmlsq_laneq_s32 (int32x4_t __a, int32x4_t __b,
21883 int32x4_t __c, const int __lane)
21885 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21887 __extension__ extern __inline uint16x8_t
21888 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21889 vmlsq_laneq_u16 (uint16x8_t __a, uint16x8_t __b,
21890 uint16x8_t __c, const int __lane)
21892 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21895 __extension__ extern __inline uint32x4_t
21896 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21897 vmlsq_laneq_u32 (uint32x4_t __a, uint32x4_t __b,
21898 uint32x4_t __c, const int __lane)
21900 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21903 /* vmov_n_ */
21905 __extension__ extern __inline float16x4_t
21906 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21907 vmov_n_f16 (float16_t __a)
21909 return vdup_n_f16 (__a);
21912 __extension__ extern __inline float32x2_t
21913 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21914 vmov_n_f32 (float32_t __a)
21916 return vdup_n_f32 (__a);
21919 __extension__ extern __inline float64x1_t
21920 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21921 vmov_n_f64 (float64_t __a)
21923 return (float64x1_t) {__a};
21926 __extension__ extern __inline poly8x8_t
21927 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21928 vmov_n_p8 (poly8_t __a)
21930 return vdup_n_p8 (__a);
21933 __extension__ extern __inline poly16x4_t
21934 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21935 vmov_n_p16 (poly16_t __a)
21937 return vdup_n_p16 (__a);
21940 __extension__ extern __inline poly64x1_t
21941 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21942 vmov_n_p64 (poly64_t __a)
21944 return vdup_n_p64 (__a);
21947 __extension__ extern __inline int8x8_t
21948 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21949 vmov_n_s8 (int8_t __a)
21951 return vdup_n_s8 (__a);
21954 __extension__ extern __inline int16x4_t
21955 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21956 vmov_n_s16 (int16_t __a)
21958 return vdup_n_s16 (__a);
21961 __extension__ extern __inline int32x2_t
21962 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21963 vmov_n_s32 (int32_t __a)
21965 return vdup_n_s32 (__a);
21968 __extension__ extern __inline int64x1_t
21969 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21970 vmov_n_s64 (int64_t __a)
21972 return (int64x1_t) {__a};
21975 __extension__ extern __inline uint8x8_t
21976 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21977 vmov_n_u8 (uint8_t __a)
21979 return vdup_n_u8 (__a);
21982 __extension__ extern __inline uint16x4_t
21983 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21984 vmov_n_u16 (uint16_t __a)
21986 return vdup_n_u16 (__a);
21989 __extension__ extern __inline uint32x2_t
21990 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21991 vmov_n_u32 (uint32_t __a)
21993 return vdup_n_u32 (__a);
21996 __extension__ extern __inline uint64x1_t
21997 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21998 vmov_n_u64 (uint64_t __a)
22000 return (uint64x1_t) {__a};
22003 __extension__ extern __inline float16x8_t
22004 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22005 vmovq_n_f16 (float16_t __a)
22007 return vdupq_n_f16 (__a);
22010 __extension__ extern __inline float32x4_t
22011 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22012 vmovq_n_f32 (float32_t __a)
22014 return vdupq_n_f32 (__a);
22017 __extension__ extern __inline float64x2_t
22018 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22019 vmovq_n_f64 (float64_t __a)
22021 return vdupq_n_f64 (__a);
22024 __extension__ extern __inline poly8x16_t
22025 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22026 vmovq_n_p8 (poly8_t __a)
22028 return vdupq_n_p8 (__a);
22031 __extension__ extern __inline poly16x8_t
22032 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22033 vmovq_n_p16 (poly16_t __a)
22035 return vdupq_n_p16 (__a);
22038 __extension__ extern __inline poly64x2_t
22039 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22040 vmovq_n_p64 (poly64_t __a)
22042 return vdupq_n_p64 (__a);
22045 __extension__ extern __inline int8x16_t
22046 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22047 vmovq_n_s8 (int8_t __a)
22049 return vdupq_n_s8 (__a);
22052 __extension__ extern __inline int16x8_t
22053 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22054 vmovq_n_s16 (int16_t __a)
22056 return vdupq_n_s16 (__a);
22059 __extension__ extern __inline int32x4_t
22060 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22061 vmovq_n_s32 (int32_t __a)
22063 return vdupq_n_s32 (__a);
22066 __extension__ extern __inline int64x2_t
22067 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22068 vmovq_n_s64 (int64_t __a)
22070 return vdupq_n_s64 (__a);
22073 __extension__ extern __inline uint8x16_t
22074 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22075 vmovq_n_u8 (uint8_t __a)
22077 return vdupq_n_u8 (__a);
22080 __extension__ extern __inline uint16x8_t
22081 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22082 vmovq_n_u16 (uint16_t __a)
22084 return vdupq_n_u16 (__a);
22087 __extension__ extern __inline uint32x4_t
22088 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22089 vmovq_n_u32 (uint32_t __a)
22091 return vdupq_n_u32 (__a);
22094 __extension__ extern __inline uint64x2_t
22095 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22096 vmovq_n_u64 (uint64_t __a)
22098 return vdupq_n_u64 (__a);
22101 /* vmul_lane */
22103 __extension__ extern __inline float32x2_t
22104 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22105 vmul_lane_f32 (float32x2_t __a, float32x2_t __b, const int __lane)
22107 return __a * __aarch64_vget_lane_any (__b, __lane);
22110 __extension__ extern __inline float64x1_t
22111 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22112 vmul_lane_f64 (float64x1_t __a, float64x1_t __b, const int __lane)
22114 return __a * __b;
22117 __extension__ extern __inline int16x4_t
22118 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22119 vmul_lane_s16 (int16x4_t __a, int16x4_t __b, const int __lane)
22121 return __a * __aarch64_vget_lane_any (__b, __lane);
22124 __extension__ extern __inline int32x2_t
22125 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22126 vmul_lane_s32 (int32x2_t __a, int32x2_t __b, const int __lane)
22128 return __a * __aarch64_vget_lane_any (__b, __lane);
22131 __extension__ extern __inline uint16x4_t
22132 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22133 vmul_lane_u16 (uint16x4_t __a, uint16x4_t __b, const int __lane)
22135 return __a * __aarch64_vget_lane_any (__b, __lane);
22138 __extension__ extern __inline uint32x2_t
22139 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22140 vmul_lane_u32 (uint32x2_t __a, uint32x2_t __b, const int __lane)
22142 return __a * __aarch64_vget_lane_any (__b, __lane);
22145 /* vmuld_lane */
22147 __extension__ extern __inline float64_t
22148 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22149 vmuld_lane_f64 (float64_t __a, float64x1_t __b, const int __lane)
22151 return __a * __aarch64_vget_lane_any (__b, __lane);
22154 __extension__ extern __inline float64_t
22155 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22156 vmuld_laneq_f64 (float64_t __a, float64x2_t __b, const int __lane)
22158 return __a * __aarch64_vget_lane_any (__b, __lane);
22161 /* vmuls_lane */
22163 __extension__ extern __inline float32_t
22164 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22165 vmuls_lane_f32 (float32_t __a, float32x2_t __b, const int __lane)
22167 return __a * __aarch64_vget_lane_any (__b, __lane);
22170 __extension__ extern __inline float32_t
22171 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22172 vmuls_laneq_f32 (float32_t __a, float32x4_t __b, const int __lane)
22174 return __a * __aarch64_vget_lane_any (__b, __lane);
22177 /* vmul_laneq */
22179 __extension__ extern __inline float32x2_t
22180 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22181 vmul_laneq_f32 (float32x2_t __a, float32x4_t __b, const int __lane)
22183 return __a * __aarch64_vget_lane_any (__b, __lane);
22186 __extension__ extern __inline float64x1_t
22187 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22188 vmul_laneq_f64 (float64x1_t __a, float64x2_t __b, const int __lane)
22190 return __a * __aarch64_vget_lane_any (__b, __lane);
22193 __extension__ extern __inline int16x4_t
22194 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22195 vmul_laneq_s16 (int16x4_t __a, int16x8_t __b, const int __lane)
22197 return __a * __aarch64_vget_lane_any (__b, __lane);
22200 __extension__ extern __inline int32x2_t
22201 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22202 vmul_laneq_s32 (int32x2_t __a, int32x4_t __b, const int __lane)
22204 return __a * __aarch64_vget_lane_any (__b, __lane);
22207 __extension__ extern __inline uint16x4_t
22208 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22209 vmul_laneq_u16 (uint16x4_t __a, uint16x8_t __b, const int __lane)
22211 return __a * __aarch64_vget_lane_any (__b, __lane);
22214 __extension__ extern __inline uint32x2_t
22215 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22216 vmul_laneq_u32 (uint32x2_t __a, uint32x4_t __b, const int __lane)
22218 return __a * __aarch64_vget_lane_any (__b, __lane);
22221 /* vmul_n */
22223 __extension__ extern __inline float64x1_t
22224 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22225 vmul_n_f64 (float64x1_t __a, float64_t __b)
22227 return (float64x1_t) { vget_lane_f64 (__a, 0) * __b };
22230 /* vmulq_lane */
22232 __extension__ extern __inline float32x4_t
22233 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22234 vmulq_lane_f32 (float32x4_t __a, float32x2_t __b, const int __lane)
22236 return __a * __aarch64_vget_lane_any (__b, __lane);
22239 __extension__ extern __inline float64x2_t
22240 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22241 vmulq_lane_f64 (float64x2_t __a, float64x1_t __b, const int __lane)
22243 __AARCH64_LANE_CHECK (__a, __lane);
22244 return __a * __b[0];
22247 __extension__ extern __inline int16x8_t
22248 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22249 vmulq_lane_s16 (int16x8_t __a, int16x4_t __b, const int __lane)
22251 return __a * __aarch64_vget_lane_any (__b, __lane);
22254 __extension__ extern __inline int32x4_t
22255 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22256 vmulq_lane_s32 (int32x4_t __a, int32x2_t __b, const int __lane)
22258 return __a * __aarch64_vget_lane_any (__b, __lane);
22261 __extension__ extern __inline uint16x8_t
22262 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22263 vmulq_lane_u16 (uint16x8_t __a, uint16x4_t __b, const int __lane)
22265 return __a * __aarch64_vget_lane_any (__b, __lane);
22268 __extension__ extern __inline uint32x4_t
22269 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22270 vmulq_lane_u32 (uint32x4_t __a, uint32x2_t __b, const int __lane)
22272 return __a * __aarch64_vget_lane_any (__b, __lane);
22275 /* vmulq_laneq */
22277 __extension__ extern __inline float32x4_t
22278 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22279 vmulq_laneq_f32 (float32x4_t __a, float32x4_t __b, const int __lane)
22281 return __a * __aarch64_vget_lane_any (__b, __lane);
22284 __extension__ extern __inline float64x2_t
22285 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22286 vmulq_laneq_f64 (float64x2_t __a, float64x2_t __b, const int __lane)
22288 return __a * __aarch64_vget_lane_any (__b, __lane);
22291 __extension__ extern __inline int16x8_t
22292 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22293 vmulq_laneq_s16 (int16x8_t __a, int16x8_t __b, const int __lane)
22295 return __a * __aarch64_vget_lane_any (__b, __lane);
22298 __extension__ extern __inline int32x4_t
22299 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22300 vmulq_laneq_s32 (int32x4_t __a, int32x4_t __b, const int __lane)
22302 return __a * __aarch64_vget_lane_any (__b, __lane);
22305 __extension__ extern __inline uint16x8_t
22306 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22307 vmulq_laneq_u16 (uint16x8_t __a, uint16x8_t __b, const int __lane)
22309 return __a * __aarch64_vget_lane_any (__b, __lane);
22312 __extension__ extern __inline uint32x4_t
22313 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22314 vmulq_laneq_u32 (uint32x4_t __a, uint32x4_t __b, const int __lane)
22316 return __a * __aarch64_vget_lane_any (__b, __lane);
22319 /* vmul_n. */
22321 __extension__ extern __inline float32x2_t
22322 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22323 vmul_n_f32 (float32x2_t __a, float32_t __b)
22325 return __a * __b;
22328 __extension__ extern __inline float32x4_t
22329 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22330 vmulq_n_f32 (float32x4_t __a, float32_t __b)
22332 return __a * __b;
22335 __extension__ extern __inline float64x2_t
22336 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22337 vmulq_n_f64 (float64x2_t __a, float64_t __b)
22339 return __a * __b;
22342 __extension__ extern __inline int16x4_t
22343 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22344 vmul_n_s16 (int16x4_t __a, int16_t __b)
22346 return __a * __b;
22349 __extension__ extern __inline int16x8_t
22350 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22351 vmulq_n_s16 (int16x8_t __a, int16_t __b)
22353 return __a * __b;
22356 __extension__ extern __inline int32x2_t
22357 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22358 vmul_n_s32 (int32x2_t __a, int32_t __b)
22360 return __a * __b;
22363 __extension__ extern __inline int32x4_t
22364 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22365 vmulq_n_s32 (int32x4_t __a, int32_t __b)
22367 return __a * __b;
22370 __extension__ extern __inline uint16x4_t
22371 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22372 vmul_n_u16 (uint16x4_t __a, uint16_t __b)
22374 return __a * __b;
22377 __extension__ extern __inline uint16x8_t
22378 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22379 vmulq_n_u16 (uint16x8_t __a, uint16_t __b)
22381 return __a * __b;
22384 __extension__ extern __inline uint32x2_t
22385 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22386 vmul_n_u32 (uint32x2_t __a, uint32_t __b)
22388 return __a * __b;
22391 __extension__ extern __inline uint32x4_t
22392 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22393 vmulq_n_u32 (uint32x4_t __a, uint32_t __b)
22395 return __a * __b;
22398 /* vmvn */
22400 __extension__ extern __inline poly8x8_t
22401 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22402 vmvn_p8 (poly8x8_t __a)
22404 return (poly8x8_t) ~((int8x8_t) __a);
22407 __extension__ extern __inline int8x8_t
22408 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22409 vmvn_s8 (int8x8_t __a)
22411 return ~__a;
22414 __extension__ extern __inline int16x4_t
22415 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22416 vmvn_s16 (int16x4_t __a)
22418 return ~__a;
22421 __extension__ extern __inline int32x2_t
22422 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22423 vmvn_s32 (int32x2_t __a)
22425 return ~__a;
22428 __extension__ extern __inline uint8x8_t
22429 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22430 vmvn_u8 (uint8x8_t __a)
22432 return ~__a;
22435 __extension__ extern __inline uint16x4_t
22436 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22437 vmvn_u16 (uint16x4_t __a)
22439 return ~__a;
22442 __extension__ extern __inline uint32x2_t
22443 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22444 vmvn_u32 (uint32x2_t __a)
22446 return ~__a;
22449 __extension__ extern __inline poly8x16_t
22450 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22451 vmvnq_p8 (poly8x16_t __a)
22453 return (poly8x16_t) ~((int8x16_t) __a);
22456 __extension__ extern __inline int8x16_t
22457 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22458 vmvnq_s8 (int8x16_t __a)
22460 return ~__a;
22463 __extension__ extern __inline int16x8_t
22464 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22465 vmvnq_s16 (int16x8_t __a)
22467 return ~__a;
22470 __extension__ extern __inline int32x4_t
22471 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22472 vmvnq_s32 (int32x4_t __a)
22474 return ~__a;
22477 __extension__ extern __inline uint8x16_t
22478 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22479 vmvnq_u8 (uint8x16_t __a)
22481 return ~__a;
22484 __extension__ extern __inline uint16x8_t
22485 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22486 vmvnq_u16 (uint16x8_t __a)
22488 return ~__a;
22491 __extension__ extern __inline uint32x4_t
22492 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22493 vmvnq_u32 (uint32x4_t __a)
22495 return ~__a;
22498 /* vneg */
22500 __extension__ extern __inline float32x2_t
22501 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22502 vneg_f32 (float32x2_t __a)
22504 return -__a;
22507 __extension__ extern __inline float64x1_t
22508 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22509 vneg_f64 (float64x1_t __a)
22511 return -__a;
22514 __extension__ extern __inline int8x8_t
22515 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22516 vneg_s8 (int8x8_t __a)
22518 return -__a;
22521 __extension__ extern __inline int16x4_t
22522 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22523 vneg_s16 (int16x4_t __a)
22525 return -__a;
22528 __extension__ extern __inline int32x2_t
22529 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22530 vneg_s32 (int32x2_t __a)
22532 return -__a;
22535 __extension__ extern __inline int64x1_t
22536 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22537 vneg_s64 (int64x1_t __a)
22539 return -__a;
22542 __extension__ extern __inline float32x4_t
22543 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22544 vnegq_f32 (float32x4_t __a)
22546 return -__a;
22549 __extension__ extern __inline float64x2_t
22550 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22551 vnegq_f64 (float64x2_t __a)
22553 return -__a;
22556 __extension__ extern __inline int8x16_t
22557 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22558 vnegq_s8 (int8x16_t __a)
22560 return -__a;
22563 __extension__ extern __inline int16x8_t
22564 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22565 vnegq_s16 (int16x8_t __a)
22567 return -__a;
22570 __extension__ extern __inline int32x4_t
22571 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22572 vnegq_s32 (int32x4_t __a)
22574 return -__a;
22577 __extension__ extern __inline int64x2_t
22578 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22579 vnegq_s64 (int64x2_t __a)
22581 return -__a;
22584 /* vpadd */
22586 __extension__ extern __inline float32x2_t
22587 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22588 vpadd_f32 (float32x2_t __a, float32x2_t __b)
22590 return __builtin_aarch64_faddpv2sf (__a, __b);
22593 __extension__ extern __inline float32x4_t
22594 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22595 vpaddq_f32 (float32x4_t __a, float32x4_t __b)
22597 return __builtin_aarch64_faddpv4sf (__a, __b);
22600 __extension__ extern __inline float64x2_t
22601 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22602 vpaddq_f64 (float64x2_t __a, float64x2_t __b)
22604 return __builtin_aarch64_faddpv2df (__a, __b);
22607 __extension__ extern __inline int8x8_t
22608 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22609 vpadd_s8 (int8x8_t __a, int8x8_t __b)
22611 return __builtin_aarch64_addpv8qi (__a, __b);
22614 __extension__ extern __inline int16x4_t
22615 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22616 vpadd_s16 (int16x4_t __a, int16x4_t __b)
22618 return __builtin_aarch64_addpv4hi (__a, __b);
22621 __extension__ extern __inline int32x2_t
22622 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22623 vpadd_s32 (int32x2_t __a, int32x2_t __b)
22625 return __builtin_aarch64_addpv2si (__a, __b);
22628 __extension__ extern __inline uint8x8_t
22629 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22630 vpadd_u8 (uint8x8_t __a, uint8x8_t __b)
22632 return (uint8x8_t) __builtin_aarch64_addpv8qi ((int8x8_t) __a,
22633 (int8x8_t) __b);
22636 __extension__ extern __inline uint16x4_t
22637 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22638 vpadd_u16 (uint16x4_t __a, uint16x4_t __b)
22640 return (uint16x4_t) __builtin_aarch64_addpv4hi ((int16x4_t) __a,
22641 (int16x4_t) __b);
22644 __extension__ extern __inline uint32x2_t
22645 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22646 vpadd_u32 (uint32x2_t __a, uint32x2_t __b)
22648 return (uint32x2_t) __builtin_aarch64_addpv2si ((int32x2_t) __a,
22649 (int32x2_t) __b);
22652 __extension__ extern __inline float32_t
22653 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22654 vpadds_f32 (float32x2_t __a)
22656 return __builtin_aarch64_reduc_plus_scal_v2sf (__a);
22659 __extension__ extern __inline float64_t
22660 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22661 vpaddd_f64 (float64x2_t __a)
22663 return __builtin_aarch64_reduc_plus_scal_v2df (__a);
22666 __extension__ extern __inline int64_t
22667 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22668 vpaddd_s64 (int64x2_t __a)
22670 return __builtin_aarch64_addpdi (__a);
22673 __extension__ extern __inline uint64_t
22674 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22675 vpaddd_u64 (uint64x2_t __a)
22677 return __builtin_aarch64_addpdi ((int64x2_t) __a);
22680 /* vqabs */
22682 __extension__ extern __inline int64x2_t
22683 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22684 vqabsq_s64 (int64x2_t __a)
22686 return (int64x2_t) __builtin_aarch64_sqabsv2di (__a);
22689 __extension__ extern __inline int8_t
22690 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22691 vqabsb_s8 (int8_t __a)
22693 return (int8_t) __builtin_aarch64_sqabsqi (__a);
22696 __extension__ extern __inline int16_t
22697 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22698 vqabsh_s16 (int16_t __a)
22700 return (int16_t) __builtin_aarch64_sqabshi (__a);
22703 __extension__ extern __inline int32_t
22704 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22705 vqabss_s32 (int32_t __a)
22707 return (int32_t) __builtin_aarch64_sqabssi (__a);
22710 __extension__ extern __inline int64_t
22711 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22712 vqabsd_s64 (int64_t __a)
22714 return __builtin_aarch64_sqabsdi (__a);
22717 /* vqadd */
22719 __extension__ extern __inline int8_t
22720 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22721 vqaddb_s8 (int8_t __a, int8_t __b)
22723 return (int8_t) __builtin_aarch64_sqaddqi (__a, __b);
22726 __extension__ extern __inline int16_t
22727 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22728 vqaddh_s16 (int16_t __a, int16_t __b)
22730 return (int16_t) __builtin_aarch64_sqaddhi (__a, __b);
22733 __extension__ extern __inline int32_t
22734 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22735 vqadds_s32 (int32_t __a, int32_t __b)
22737 return (int32_t) __builtin_aarch64_sqaddsi (__a, __b);
22740 __extension__ extern __inline int64_t
22741 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22742 vqaddd_s64 (int64_t __a, int64_t __b)
22744 return __builtin_aarch64_sqadddi (__a, __b);
22747 __extension__ extern __inline uint8_t
22748 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22749 vqaddb_u8 (uint8_t __a, uint8_t __b)
22751 return (uint8_t) __builtin_aarch64_uqaddqi_uuu (__a, __b);
22754 __extension__ extern __inline uint16_t
22755 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22756 vqaddh_u16 (uint16_t __a, uint16_t __b)
22758 return (uint16_t) __builtin_aarch64_uqaddhi_uuu (__a, __b);
22761 __extension__ extern __inline uint32_t
22762 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22763 vqadds_u32 (uint32_t __a, uint32_t __b)
22765 return (uint32_t) __builtin_aarch64_uqaddsi_uuu (__a, __b);
22768 __extension__ extern __inline uint64_t
22769 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22770 vqaddd_u64 (uint64_t __a, uint64_t __b)
22772 return __builtin_aarch64_uqadddi_uuu (__a, __b);
22775 /* vqdmlal */
22777 __extension__ extern __inline int32x4_t
22778 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22779 vqdmlal_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
22781 return __builtin_aarch64_sqdmlalv4hi (__a, __b, __c);
22784 __extension__ extern __inline int32x4_t
22785 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22786 vqdmlal_high_s16 (int32x4_t __a, int16x8_t __b, int16x8_t __c)
22788 return __builtin_aarch64_sqdmlal2v8hi (__a, __b, __c);
22791 __extension__ extern __inline int32x4_t
22792 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22793 vqdmlal_high_lane_s16 (int32x4_t __a, int16x8_t __b, int16x4_t __c,
22794 int const __d)
22796 return __builtin_aarch64_sqdmlal2_lanev8hi (__a, __b, __c, __d);
22799 __extension__ extern __inline int32x4_t
22800 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22801 vqdmlal_high_laneq_s16 (int32x4_t __a, int16x8_t __b, int16x8_t __c,
22802 int const __d)
22804 return __builtin_aarch64_sqdmlal2_laneqv8hi (__a, __b, __c, __d);
22807 __extension__ extern __inline int32x4_t
22808 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22809 vqdmlal_high_n_s16 (int32x4_t __a, int16x8_t __b, int16_t __c)
22811 return __builtin_aarch64_sqdmlal2_nv8hi (__a, __b, __c);
22814 __extension__ extern __inline int32x4_t
22815 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22816 vqdmlal_lane_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c, int const __d)
22818 return __builtin_aarch64_sqdmlal_lanev4hi (__a, __b, __c, __d);
22821 __extension__ extern __inline int32x4_t
22822 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22823 vqdmlal_laneq_s16 (int32x4_t __a, int16x4_t __b, int16x8_t __c, int const __d)
22825 return __builtin_aarch64_sqdmlal_laneqv4hi (__a, __b, __c, __d);
22828 __extension__ extern __inline int32x4_t
22829 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22830 vqdmlal_n_s16 (int32x4_t __a, int16x4_t __b, int16_t __c)
22832 return __builtin_aarch64_sqdmlal_nv4hi (__a, __b, __c);
22835 __extension__ extern __inline int64x2_t
22836 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22837 vqdmlal_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
22839 return __builtin_aarch64_sqdmlalv2si (__a, __b, __c);
22842 __extension__ extern __inline int64x2_t
22843 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22844 vqdmlal_high_s32 (int64x2_t __a, int32x4_t __b, int32x4_t __c)
22846 return __builtin_aarch64_sqdmlal2v4si (__a, __b, __c);
22849 __extension__ extern __inline int64x2_t
22850 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22851 vqdmlal_high_lane_s32 (int64x2_t __a, int32x4_t __b, int32x2_t __c,
22852 int const __d)
22854 return __builtin_aarch64_sqdmlal2_lanev4si (__a, __b, __c, __d);
22857 __extension__ extern __inline int64x2_t
22858 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22859 vqdmlal_high_laneq_s32 (int64x2_t __a, int32x4_t __b, int32x4_t __c,
22860 int const __d)
22862 return __builtin_aarch64_sqdmlal2_laneqv4si (__a, __b, __c, __d);
22865 __extension__ extern __inline int64x2_t
22866 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22867 vqdmlal_high_n_s32 (int64x2_t __a, int32x4_t __b, int32_t __c)
22869 return __builtin_aarch64_sqdmlal2_nv4si (__a, __b, __c);
22872 __extension__ extern __inline int64x2_t
22873 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22874 vqdmlal_lane_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c, int const __d)
22876 return __builtin_aarch64_sqdmlal_lanev2si (__a, __b, __c, __d);
22879 __extension__ extern __inline int64x2_t
22880 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22881 vqdmlal_laneq_s32 (int64x2_t __a, int32x2_t __b, int32x4_t __c, int const __d)
22883 return __builtin_aarch64_sqdmlal_laneqv2si (__a, __b, __c, __d);
22886 __extension__ extern __inline int64x2_t
22887 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22888 vqdmlal_n_s32 (int64x2_t __a, int32x2_t __b, int32_t __c)
22890 return __builtin_aarch64_sqdmlal_nv2si (__a, __b, __c);
22893 __extension__ extern __inline int32_t
22894 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22895 vqdmlalh_s16 (int32_t __a, int16_t __b, int16_t __c)
22897 return __builtin_aarch64_sqdmlalhi (__a, __b, __c);
22900 __extension__ extern __inline int32_t
22901 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22902 vqdmlalh_lane_s16 (int32_t __a, int16_t __b, int16x4_t __c, const int __d)
22904 return __builtin_aarch64_sqdmlal_lanehi (__a, __b, __c, __d);
22907 __extension__ extern __inline int32_t
22908 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22909 vqdmlalh_laneq_s16 (int32_t __a, int16_t __b, int16x8_t __c, const int __d)
22911 return __builtin_aarch64_sqdmlal_laneqhi (__a, __b, __c, __d);
22914 __extension__ extern __inline int64_t
22915 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22916 vqdmlals_s32 (int64_t __a, int32_t __b, int32_t __c)
22918 return __builtin_aarch64_sqdmlalsi (__a, __b, __c);
22921 __extension__ extern __inline int64_t
22922 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22923 vqdmlals_lane_s32 (int64_t __a, int32_t __b, int32x2_t __c, const int __d)
22925 return __builtin_aarch64_sqdmlal_lanesi (__a, __b, __c, __d);
22928 __extension__ extern __inline int64_t
22929 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22930 vqdmlals_laneq_s32 (int64_t __a, int32_t __b, int32x4_t __c, const int __d)
22932 return __builtin_aarch64_sqdmlal_laneqsi (__a, __b, __c, __d);
22935 /* vqdmlsl */
22937 __extension__ extern __inline int32x4_t
22938 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22939 vqdmlsl_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
22941 return __builtin_aarch64_sqdmlslv4hi (__a, __b, __c);
22944 __extension__ extern __inline int32x4_t
22945 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22946 vqdmlsl_high_s16 (int32x4_t __a, int16x8_t __b, int16x8_t __c)
22948 return __builtin_aarch64_sqdmlsl2v8hi (__a, __b, __c);
22951 __extension__ extern __inline int32x4_t
22952 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22953 vqdmlsl_high_lane_s16 (int32x4_t __a, int16x8_t __b, int16x4_t __c,
22954 int const __d)
22956 return __builtin_aarch64_sqdmlsl2_lanev8hi (__a, __b, __c, __d);
22959 __extension__ extern __inline int32x4_t
22960 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22961 vqdmlsl_high_laneq_s16 (int32x4_t __a, int16x8_t __b, int16x8_t __c,
22962 int const __d)
22964 return __builtin_aarch64_sqdmlsl2_laneqv8hi (__a, __b, __c, __d);
22967 __extension__ extern __inline int32x4_t
22968 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22969 vqdmlsl_high_n_s16 (int32x4_t __a, int16x8_t __b, int16_t __c)
22971 return __builtin_aarch64_sqdmlsl2_nv8hi (__a, __b, __c);
22974 __extension__ extern __inline int32x4_t
22975 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22976 vqdmlsl_lane_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c, int const __d)
22978 return __builtin_aarch64_sqdmlsl_lanev4hi (__a, __b, __c, __d);
22981 __extension__ extern __inline int32x4_t
22982 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22983 vqdmlsl_laneq_s16 (int32x4_t __a, int16x4_t __b, int16x8_t __c, int const __d)
22985 return __builtin_aarch64_sqdmlsl_laneqv4hi (__a, __b, __c, __d);
22988 __extension__ extern __inline int32x4_t
22989 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22990 vqdmlsl_n_s16 (int32x4_t __a, int16x4_t __b, int16_t __c)
22992 return __builtin_aarch64_sqdmlsl_nv4hi (__a, __b, __c);
22995 __extension__ extern __inline int64x2_t
22996 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22997 vqdmlsl_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
22999 return __builtin_aarch64_sqdmlslv2si (__a, __b, __c);
23002 __extension__ extern __inline int64x2_t
23003 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23004 vqdmlsl_high_s32 (int64x2_t __a, int32x4_t __b, int32x4_t __c)
23006 return __builtin_aarch64_sqdmlsl2v4si (__a, __b, __c);
23009 __extension__ extern __inline int64x2_t
23010 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23011 vqdmlsl_high_lane_s32 (int64x2_t __a, int32x4_t __b, int32x2_t __c,
23012 int const __d)
23014 return __builtin_aarch64_sqdmlsl2_lanev4si (__a, __b, __c, __d);
23017 __extension__ extern __inline int64x2_t
23018 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23019 vqdmlsl_high_laneq_s32 (int64x2_t __a, int32x4_t __b, int32x4_t __c,
23020 int const __d)
23022 return __builtin_aarch64_sqdmlsl2_laneqv4si (__a, __b, __c, __d);
23025 __extension__ extern __inline int64x2_t
23026 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23027 vqdmlsl_high_n_s32 (int64x2_t __a, int32x4_t __b, int32_t __c)
23029 return __builtin_aarch64_sqdmlsl2_nv4si (__a, __b, __c);
23032 __extension__ extern __inline int64x2_t
23033 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23034 vqdmlsl_lane_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c, int const __d)
23036 return __builtin_aarch64_sqdmlsl_lanev2si (__a, __b, __c, __d);
23039 __extension__ extern __inline int64x2_t
23040 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23041 vqdmlsl_laneq_s32 (int64x2_t __a, int32x2_t __b, int32x4_t __c, int const __d)
23043 return __builtin_aarch64_sqdmlsl_laneqv2si (__a, __b, __c, __d);
23046 __extension__ extern __inline int64x2_t
23047 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23048 vqdmlsl_n_s32 (int64x2_t __a, int32x2_t __b, int32_t __c)
23050 return __builtin_aarch64_sqdmlsl_nv2si (__a, __b, __c);
23053 __extension__ extern __inline int32_t
23054 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23055 vqdmlslh_s16 (int32_t __a, int16_t __b, int16_t __c)
23057 return __builtin_aarch64_sqdmlslhi (__a, __b, __c);
23060 __extension__ extern __inline int32_t
23061 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23062 vqdmlslh_lane_s16 (int32_t __a, int16_t __b, int16x4_t __c, const int __d)
23064 return __builtin_aarch64_sqdmlsl_lanehi (__a, __b, __c, __d);
23067 __extension__ extern __inline int32_t
23068 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23069 vqdmlslh_laneq_s16 (int32_t __a, int16_t __b, int16x8_t __c, const int __d)
23071 return __builtin_aarch64_sqdmlsl_laneqhi (__a, __b, __c, __d);
23074 __extension__ extern __inline int64_t
23075 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23076 vqdmlsls_s32 (int64_t __a, int32_t __b, int32_t __c)
23078 return __builtin_aarch64_sqdmlslsi (__a, __b, __c);
23081 __extension__ extern __inline int64_t
23082 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23083 vqdmlsls_lane_s32 (int64_t __a, int32_t __b, int32x2_t __c, const int __d)
23085 return __builtin_aarch64_sqdmlsl_lanesi (__a, __b, __c, __d);
23088 __extension__ extern __inline int64_t
23089 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23090 vqdmlsls_laneq_s32 (int64_t __a, int32_t __b, int32x4_t __c, const int __d)
23092 return __builtin_aarch64_sqdmlsl_laneqsi (__a, __b, __c, __d);
23095 /* vqdmulh */
23097 __extension__ extern __inline int16x4_t
23098 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23099 vqdmulh_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c)
23101 return __builtin_aarch64_sqdmulh_lanev4hi (__a, __b, __c);
23104 __extension__ extern __inline int32x2_t
23105 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23106 vqdmulh_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c)
23108 return __builtin_aarch64_sqdmulh_lanev2si (__a, __b, __c);
23111 __extension__ extern __inline int16x8_t
23112 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23113 vqdmulhq_lane_s16 (int16x8_t __a, int16x4_t __b, const int __c)
23115 return __builtin_aarch64_sqdmulh_lanev8hi (__a, __b, __c);
23118 __extension__ extern __inline int32x4_t
23119 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23120 vqdmulhq_lane_s32 (int32x4_t __a, int32x2_t __b, const int __c)
23122 return __builtin_aarch64_sqdmulh_lanev4si (__a, __b, __c);
23125 __extension__ extern __inline int16_t
23126 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23127 vqdmulhh_s16 (int16_t __a, int16_t __b)
23129 return (int16_t) __builtin_aarch64_sqdmulhhi (__a, __b);
23132 __extension__ extern __inline int16_t
23133 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23134 vqdmulhh_lane_s16 (int16_t __a, int16x4_t __b, const int __c)
23136 return __builtin_aarch64_sqdmulh_lanehi (__a, __b, __c);
23139 __extension__ extern __inline int16_t
23140 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23141 vqdmulhh_laneq_s16 (int16_t __a, int16x8_t __b, const int __c)
23143 return __builtin_aarch64_sqdmulh_laneqhi (__a, __b, __c);
23146 __extension__ extern __inline int32_t
23147 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23148 vqdmulhs_s32 (int32_t __a, int32_t __b)
23150 return (int32_t) __builtin_aarch64_sqdmulhsi (__a, __b);
23153 __extension__ extern __inline int32_t
23154 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23155 vqdmulhs_lane_s32 (int32_t __a, int32x2_t __b, const int __c)
23157 return __builtin_aarch64_sqdmulh_lanesi (__a, __b, __c);
23160 __extension__ extern __inline int32_t
23161 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23162 vqdmulhs_laneq_s32 (int32_t __a, int32x4_t __b, const int __c)
23164 return __builtin_aarch64_sqdmulh_laneqsi (__a, __b, __c);
23167 /* vqdmull */
23169 __extension__ extern __inline int32x4_t
23170 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23171 vqdmull_s16 (int16x4_t __a, int16x4_t __b)
23173 return __builtin_aarch64_sqdmullv4hi (__a, __b);
23176 __extension__ extern __inline int32x4_t
23177 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23178 vqdmull_high_s16 (int16x8_t __a, int16x8_t __b)
23180 return __builtin_aarch64_sqdmull2v8hi (__a, __b);
23183 __extension__ extern __inline int32x4_t
23184 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23185 vqdmull_high_lane_s16 (int16x8_t __a, int16x4_t __b, int const __c)
23187 return __builtin_aarch64_sqdmull2_lanev8hi (__a, __b,__c);
23190 __extension__ extern __inline int32x4_t
23191 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23192 vqdmull_high_laneq_s16 (int16x8_t __a, int16x8_t __b, int const __c)
23194 return __builtin_aarch64_sqdmull2_laneqv8hi (__a, __b,__c);
23197 __extension__ extern __inline int32x4_t
23198 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23199 vqdmull_high_n_s16 (int16x8_t __a, int16_t __b)
23201 return __builtin_aarch64_sqdmull2_nv8hi (__a, __b);
23204 __extension__ extern __inline int32x4_t
23205 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23206 vqdmull_lane_s16 (int16x4_t __a, int16x4_t __b, int const __c)
23208 return __builtin_aarch64_sqdmull_lanev4hi (__a, __b, __c);
23211 __extension__ extern __inline int32x4_t
23212 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23213 vqdmull_laneq_s16 (int16x4_t __a, int16x8_t __b, int const __c)
23215 return __builtin_aarch64_sqdmull_laneqv4hi (__a, __b, __c);
23218 __extension__ extern __inline int32x4_t
23219 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23220 vqdmull_n_s16 (int16x4_t __a, int16_t __b)
23222 return __builtin_aarch64_sqdmull_nv4hi (__a, __b);
23225 __extension__ extern __inline int64x2_t
23226 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23227 vqdmull_s32 (int32x2_t __a, int32x2_t __b)
23229 return __builtin_aarch64_sqdmullv2si (__a, __b);
23232 __extension__ extern __inline int64x2_t
23233 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23234 vqdmull_high_s32 (int32x4_t __a, int32x4_t __b)
23236 return __builtin_aarch64_sqdmull2v4si (__a, __b);
23239 __extension__ extern __inline int64x2_t
23240 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23241 vqdmull_high_lane_s32 (int32x4_t __a, int32x2_t __b, int const __c)
23243 return __builtin_aarch64_sqdmull2_lanev4si (__a, __b, __c);
23246 __extension__ extern __inline int64x2_t
23247 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23248 vqdmull_high_laneq_s32 (int32x4_t __a, int32x4_t __b, int const __c)
23250 return __builtin_aarch64_sqdmull2_laneqv4si (__a, __b, __c);
23253 __extension__ extern __inline int64x2_t
23254 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23255 vqdmull_high_n_s32 (int32x4_t __a, int32_t __b)
23257 return __builtin_aarch64_sqdmull2_nv4si (__a, __b);
23260 __extension__ extern __inline int64x2_t
23261 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23262 vqdmull_lane_s32 (int32x2_t __a, int32x2_t __b, int const __c)
23264 return __builtin_aarch64_sqdmull_lanev2si (__a, __b, __c);
23267 __extension__ extern __inline int64x2_t
23268 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23269 vqdmull_laneq_s32 (int32x2_t __a, int32x4_t __b, int const __c)
23271 return __builtin_aarch64_sqdmull_laneqv2si (__a, __b, __c);
23274 __extension__ extern __inline int64x2_t
23275 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23276 vqdmull_n_s32 (int32x2_t __a, int32_t __b)
23278 return __builtin_aarch64_sqdmull_nv2si (__a, __b);
23281 __extension__ extern __inline int32_t
23282 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23283 vqdmullh_s16 (int16_t __a, int16_t __b)
23285 return (int32_t) __builtin_aarch64_sqdmullhi (__a, __b);
23288 __extension__ extern __inline int32_t
23289 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23290 vqdmullh_lane_s16 (int16_t __a, int16x4_t __b, const int __c)
23292 return __builtin_aarch64_sqdmull_lanehi (__a, __b, __c);
23295 __extension__ extern __inline int32_t
23296 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23297 vqdmullh_laneq_s16 (int16_t __a, int16x8_t __b, const int __c)
23299 return __builtin_aarch64_sqdmull_laneqhi (__a, __b, __c);
23302 __extension__ extern __inline int64_t
23303 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23304 vqdmulls_s32 (int32_t __a, int32_t __b)
23306 return __builtin_aarch64_sqdmullsi (__a, __b);
23309 __extension__ extern __inline int64_t
23310 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23311 vqdmulls_lane_s32 (int32_t __a, int32x2_t __b, const int __c)
23313 return __builtin_aarch64_sqdmull_lanesi (__a, __b, __c);
23316 __extension__ extern __inline int64_t
23317 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23318 vqdmulls_laneq_s32 (int32_t __a, int32x4_t __b, const int __c)
23320 return __builtin_aarch64_sqdmull_laneqsi (__a, __b, __c);
23323 /* vqmovn */
23325 __extension__ extern __inline int8x8_t
23326 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23327 vqmovn_s16 (int16x8_t __a)
23329 return (int8x8_t) __builtin_aarch64_sqmovnv8hi (__a);
23332 __extension__ extern __inline int16x4_t
23333 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23334 vqmovn_s32 (int32x4_t __a)
23336 return (int16x4_t) __builtin_aarch64_sqmovnv4si (__a);
23339 __extension__ extern __inline int32x2_t
23340 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23341 vqmovn_s64 (int64x2_t __a)
23343 return (int32x2_t) __builtin_aarch64_sqmovnv2di (__a);
23346 __extension__ extern __inline uint8x8_t
23347 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23348 vqmovn_u16 (uint16x8_t __a)
23350 return (uint8x8_t) __builtin_aarch64_uqmovnv8hi ((int16x8_t) __a);
23353 __extension__ extern __inline uint16x4_t
23354 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23355 vqmovn_u32 (uint32x4_t __a)
23357 return (uint16x4_t) __builtin_aarch64_uqmovnv4si ((int32x4_t) __a);
23360 __extension__ extern __inline uint32x2_t
23361 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23362 vqmovn_u64 (uint64x2_t __a)
23364 return (uint32x2_t) __builtin_aarch64_uqmovnv2di ((int64x2_t) __a);
23367 __extension__ extern __inline int8_t
23368 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23369 vqmovnh_s16 (int16_t __a)
23371 return (int8_t) __builtin_aarch64_sqmovnhi (__a);
23374 __extension__ extern __inline int16_t
23375 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23376 vqmovns_s32 (int32_t __a)
23378 return (int16_t) __builtin_aarch64_sqmovnsi (__a);
23381 __extension__ extern __inline int32_t
23382 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23383 vqmovnd_s64 (int64_t __a)
23385 return (int32_t) __builtin_aarch64_sqmovndi (__a);
23388 __extension__ extern __inline uint8_t
23389 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23390 vqmovnh_u16 (uint16_t __a)
23392 return (uint8_t) __builtin_aarch64_uqmovnhi (__a);
23395 __extension__ extern __inline uint16_t
23396 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23397 vqmovns_u32 (uint32_t __a)
23399 return (uint16_t) __builtin_aarch64_uqmovnsi (__a);
23402 __extension__ extern __inline uint32_t
23403 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23404 vqmovnd_u64 (uint64_t __a)
23406 return (uint32_t) __builtin_aarch64_uqmovndi (__a);
23409 /* vqmovun */
23411 __extension__ extern __inline uint8x8_t
23412 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23413 vqmovun_s16 (int16x8_t __a)
23415 return (uint8x8_t) __builtin_aarch64_sqmovunv8hi (__a);
23418 __extension__ extern __inline uint16x4_t
23419 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23420 vqmovun_s32 (int32x4_t __a)
23422 return (uint16x4_t) __builtin_aarch64_sqmovunv4si (__a);
23425 __extension__ extern __inline uint32x2_t
23426 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23427 vqmovun_s64 (int64x2_t __a)
23429 return (uint32x2_t) __builtin_aarch64_sqmovunv2di (__a);
23432 __extension__ extern __inline int8_t
23433 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23434 vqmovunh_s16 (int16_t __a)
23436 return (int8_t) __builtin_aarch64_sqmovunhi (__a);
23439 __extension__ extern __inline int16_t
23440 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23441 vqmovuns_s32 (int32_t __a)
23443 return (int16_t) __builtin_aarch64_sqmovunsi (__a);
23446 __extension__ extern __inline int32_t
23447 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23448 vqmovund_s64 (int64_t __a)
23450 return (int32_t) __builtin_aarch64_sqmovundi (__a);
23453 /* vqneg */
23455 __extension__ extern __inline int64x2_t
23456 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23457 vqnegq_s64 (int64x2_t __a)
23459 return (int64x2_t) __builtin_aarch64_sqnegv2di (__a);
23462 __extension__ extern __inline int8_t
23463 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23464 vqnegb_s8 (int8_t __a)
23466 return (int8_t) __builtin_aarch64_sqnegqi (__a);
23469 __extension__ extern __inline int16_t
23470 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23471 vqnegh_s16 (int16_t __a)
23473 return (int16_t) __builtin_aarch64_sqneghi (__a);
23476 __extension__ extern __inline int32_t
23477 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23478 vqnegs_s32 (int32_t __a)
23480 return (int32_t) __builtin_aarch64_sqnegsi (__a);
23483 __extension__ extern __inline int64_t
23484 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23485 vqnegd_s64 (int64_t __a)
23487 return __builtin_aarch64_sqnegdi (__a);
23490 /* vqrdmulh */
23492 __extension__ extern __inline int16x4_t
23493 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23494 vqrdmulh_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c)
23496 return __builtin_aarch64_sqrdmulh_lanev4hi (__a, __b, __c);
23499 __extension__ extern __inline int32x2_t
23500 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23501 vqrdmulh_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c)
23503 return __builtin_aarch64_sqrdmulh_lanev2si (__a, __b, __c);
23506 __extension__ extern __inline int16x8_t
23507 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23508 vqrdmulhq_lane_s16 (int16x8_t __a, int16x4_t __b, const int __c)
23510 return __builtin_aarch64_sqrdmulh_lanev8hi (__a, __b, __c);
23513 __extension__ extern __inline int32x4_t
23514 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23515 vqrdmulhq_lane_s32 (int32x4_t __a, int32x2_t __b, const int __c)
23517 return __builtin_aarch64_sqrdmulh_lanev4si (__a, __b, __c);
23520 __extension__ extern __inline int16_t
23521 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23522 vqrdmulhh_s16 (int16_t __a, int16_t __b)
23524 return (int16_t) __builtin_aarch64_sqrdmulhhi (__a, __b);
23527 __extension__ extern __inline int16_t
23528 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23529 vqrdmulhh_lane_s16 (int16_t __a, int16x4_t __b, const int __c)
23531 return __builtin_aarch64_sqrdmulh_lanehi (__a, __b, __c);
23534 __extension__ extern __inline int16_t
23535 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23536 vqrdmulhh_laneq_s16 (int16_t __a, int16x8_t __b, const int __c)
23538 return __builtin_aarch64_sqrdmulh_laneqhi (__a, __b, __c);
23541 __extension__ extern __inline int32_t
23542 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23543 vqrdmulhs_s32 (int32_t __a, int32_t __b)
23545 return (int32_t) __builtin_aarch64_sqrdmulhsi (__a, __b);
23548 __extension__ extern __inline int32_t
23549 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23550 vqrdmulhs_lane_s32 (int32_t __a, int32x2_t __b, const int __c)
23552 return __builtin_aarch64_sqrdmulh_lanesi (__a, __b, __c);
23555 __extension__ extern __inline int32_t
23556 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23557 vqrdmulhs_laneq_s32 (int32_t __a, int32x4_t __b, const int __c)
23559 return __builtin_aarch64_sqrdmulh_laneqsi (__a, __b, __c);
23562 /* vqrshl */
23564 __extension__ extern __inline int8x8_t
23565 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23566 vqrshl_s8 (int8x8_t __a, int8x8_t __b)
23568 return __builtin_aarch64_sqrshlv8qi (__a, __b);
23571 __extension__ extern __inline int16x4_t
23572 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23573 vqrshl_s16 (int16x4_t __a, int16x4_t __b)
23575 return __builtin_aarch64_sqrshlv4hi (__a, __b);
23578 __extension__ extern __inline int32x2_t
23579 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23580 vqrshl_s32 (int32x2_t __a, int32x2_t __b)
23582 return __builtin_aarch64_sqrshlv2si (__a, __b);
23585 __extension__ extern __inline int64x1_t
23586 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23587 vqrshl_s64 (int64x1_t __a, int64x1_t __b)
23589 return (int64x1_t) {__builtin_aarch64_sqrshldi (__a[0], __b[0])};
23592 __extension__ extern __inline uint8x8_t
23593 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23594 vqrshl_u8 (uint8x8_t __a, int8x8_t __b)
23596 return __builtin_aarch64_uqrshlv8qi_uus ( __a, __b);
23599 __extension__ extern __inline uint16x4_t
23600 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23601 vqrshl_u16 (uint16x4_t __a, int16x4_t __b)
23603 return __builtin_aarch64_uqrshlv4hi_uus ( __a, __b);
23606 __extension__ extern __inline uint32x2_t
23607 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23608 vqrshl_u32 (uint32x2_t __a, int32x2_t __b)
23610 return __builtin_aarch64_uqrshlv2si_uus ( __a, __b);
23613 __extension__ extern __inline uint64x1_t
23614 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23615 vqrshl_u64 (uint64x1_t __a, int64x1_t __b)
23617 return (uint64x1_t) {__builtin_aarch64_uqrshldi_uus (__a[0], __b[0])};
23620 __extension__ extern __inline int8x16_t
23621 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23622 vqrshlq_s8 (int8x16_t __a, int8x16_t __b)
23624 return __builtin_aarch64_sqrshlv16qi (__a, __b);
23627 __extension__ extern __inline int16x8_t
23628 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23629 vqrshlq_s16 (int16x8_t __a, int16x8_t __b)
23631 return __builtin_aarch64_sqrshlv8hi (__a, __b);
23634 __extension__ extern __inline int32x4_t
23635 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23636 vqrshlq_s32 (int32x4_t __a, int32x4_t __b)
23638 return __builtin_aarch64_sqrshlv4si (__a, __b);
23641 __extension__ extern __inline int64x2_t
23642 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23643 vqrshlq_s64 (int64x2_t __a, int64x2_t __b)
23645 return __builtin_aarch64_sqrshlv2di (__a, __b);
23648 __extension__ extern __inline uint8x16_t
23649 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23650 vqrshlq_u8 (uint8x16_t __a, int8x16_t __b)
23652 return __builtin_aarch64_uqrshlv16qi_uus ( __a, __b);
23655 __extension__ extern __inline uint16x8_t
23656 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23657 vqrshlq_u16 (uint16x8_t __a, int16x8_t __b)
23659 return __builtin_aarch64_uqrshlv8hi_uus ( __a, __b);
23662 __extension__ extern __inline uint32x4_t
23663 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23664 vqrshlq_u32 (uint32x4_t __a, int32x4_t __b)
23666 return __builtin_aarch64_uqrshlv4si_uus ( __a, __b);
23669 __extension__ extern __inline uint64x2_t
23670 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23671 vqrshlq_u64 (uint64x2_t __a, int64x2_t __b)
23673 return __builtin_aarch64_uqrshlv2di_uus ( __a, __b);
23676 __extension__ extern __inline int8_t
23677 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23678 vqrshlb_s8 (int8_t __a, int8_t __b)
23680 return __builtin_aarch64_sqrshlqi (__a, __b);
23683 __extension__ extern __inline int16_t
23684 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23685 vqrshlh_s16 (int16_t __a, int16_t __b)
23687 return __builtin_aarch64_sqrshlhi (__a, __b);
23690 __extension__ extern __inline int32_t
23691 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23692 vqrshls_s32 (int32_t __a, int32_t __b)
23694 return __builtin_aarch64_sqrshlsi (__a, __b);
23697 __extension__ extern __inline int64_t
23698 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23699 vqrshld_s64 (int64_t __a, int64_t __b)
23701 return __builtin_aarch64_sqrshldi (__a, __b);
23704 __extension__ extern __inline uint8_t
23705 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23706 vqrshlb_u8 (uint8_t __a, uint8_t __b)
23708 return __builtin_aarch64_uqrshlqi_uus (__a, __b);
23711 __extension__ extern __inline uint16_t
23712 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23713 vqrshlh_u16 (uint16_t __a, uint16_t __b)
23715 return __builtin_aarch64_uqrshlhi_uus (__a, __b);
23718 __extension__ extern __inline uint32_t
23719 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23720 vqrshls_u32 (uint32_t __a, uint32_t __b)
23722 return __builtin_aarch64_uqrshlsi_uus (__a, __b);
23725 __extension__ extern __inline uint64_t
23726 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23727 vqrshld_u64 (uint64_t __a, uint64_t __b)
23729 return __builtin_aarch64_uqrshldi_uus (__a, __b);
23732 /* vqrshrn */
23734 __extension__ extern __inline int8x8_t
23735 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23736 vqrshrn_n_s16 (int16x8_t __a, const int __b)
23738 return (int8x8_t) __builtin_aarch64_sqrshrn_nv8hi (__a, __b);
23741 __extension__ extern __inline int16x4_t
23742 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23743 vqrshrn_n_s32 (int32x4_t __a, const int __b)
23745 return (int16x4_t) __builtin_aarch64_sqrshrn_nv4si (__a, __b);
23748 __extension__ extern __inline int32x2_t
23749 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23750 vqrshrn_n_s64 (int64x2_t __a, const int __b)
23752 return (int32x2_t) __builtin_aarch64_sqrshrn_nv2di (__a, __b);
23755 __extension__ extern __inline uint8x8_t
23756 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23757 vqrshrn_n_u16 (uint16x8_t __a, const int __b)
23759 return __builtin_aarch64_uqrshrn_nv8hi_uus ( __a, __b);
23762 __extension__ extern __inline uint16x4_t
23763 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23764 vqrshrn_n_u32 (uint32x4_t __a, const int __b)
23766 return __builtin_aarch64_uqrshrn_nv4si_uus ( __a, __b);
23769 __extension__ extern __inline uint32x2_t
23770 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23771 vqrshrn_n_u64 (uint64x2_t __a, const int __b)
23773 return __builtin_aarch64_uqrshrn_nv2di_uus ( __a, __b);
23776 __extension__ extern __inline int8_t
23777 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23778 vqrshrnh_n_s16 (int16_t __a, const int __b)
23780 return (int8_t) __builtin_aarch64_sqrshrn_nhi (__a, __b);
23783 __extension__ extern __inline int16_t
23784 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23785 vqrshrns_n_s32 (int32_t __a, const int __b)
23787 return (int16_t) __builtin_aarch64_sqrshrn_nsi (__a, __b);
23790 __extension__ extern __inline int32_t
23791 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23792 vqrshrnd_n_s64 (int64_t __a, const int __b)
23794 return (int32_t) __builtin_aarch64_sqrshrn_ndi (__a, __b);
23797 __extension__ extern __inline uint8_t
23798 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23799 vqrshrnh_n_u16 (uint16_t __a, const int __b)
23801 return __builtin_aarch64_uqrshrn_nhi_uus (__a, __b);
23804 __extension__ extern __inline uint16_t
23805 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23806 vqrshrns_n_u32 (uint32_t __a, const int __b)
23808 return __builtin_aarch64_uqrshrn_nsi_uus (__a, __b);
23811 __extension__ extern __inline uint32_t
23812 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23813 vqrshrnd_n_u64 (uint64_t __a, const int __b)
23815 return __builtin_aarch64_uqrshrn_ndi_uus (__a, __b);
23818 /* vqrshrun */
23820 __extension__ extern __inline uint8x8_t
23821 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23822 vqrshrun_n_s16 (int16x8_t __a, const int __b)
23824 return (uint8x8_t) __builtin_aarch64_sqrshrun_nv8hi (__a, __b);
23827 __extension__ extern __inline uint16x4_t
23828 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23829 vqrshrun_n_s32 (int32x4_t __a, const int __b)
23831 return (uint16x4_t) __builtin_aarch64_sqrshrun_nv4si (__a, __b);
23834 __extension__ extern __inline uint32x2_t
23835 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23836 vqrshrun_n_s64 (int64x2_t __a, const int __b)
23838 return (uint32x2_t) __builtin_aarch64_sqrshrun_nv2di (__a, __b);
23841 __extension__ extern __inline int8_t
23842 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23843 vqrshrunh_n_s16 (int16_t __a, const int __b)
23845 return (int8_t) __builtin_aarch64_sqrshrun_nhi (__a, __b);
23848 __extension__ extern __inline int16_t
23849 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23850 vqrshruns_n_s32 (int32_t __a, const int __b)
23852 return (int16_t) __builtin_aarch64_sqrshrun_nsi (__a, __b);
23855 __extension__ extern __inline int32_t
23856 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23857 vqrshrund_n_s64 (int64_t __a, const int __b)
23859 return (int32_t) __builtin_aarch64_sqrshrun_ndi (__a, __b);
23862 /* vqshl */
23864 __extension__ extern __inline int8x8_t
23865 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23866 vqshl_s8 (int8x8_t __a, int8x8_t __b)
23868 return __builtin_aarch64_sqshlv8qi (__a, __b);
23871 __extension__ extern __inline int16x4_t
23872 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23873 vqshl_s16 (int16x4_t __a, int16x4_t __b)
23875 return __builtin_aarch64_sqshlv4hi (__a, __b);
23878 __extension__ extern __inline int32x2_t
23879 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23880 vqshl_s32 (int32x2_t __a, int32x2_t __b)
23882 return __builtin_aarch64_sqshlv2si (__a, __b);
23885 __extension__ extern __inline int64x1_t
23886 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23887 vqshl_s64 (int64x1_t __a, int64x1_t __b)
23889 return (int64x1_t) {__builtin_aarch64_sqshldi (__a[0], __b[0])};
23892 __extension__ extern __inline uint8x8_t
23893 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23894 vqshl_u8 (uint8x8_t __a, int8x8_t __b)
23896 return __builtin_aarch64_uqshlv8qi_uus ( __a, __b);
23899 __extension__ extern __inline uint16x4_t
23900 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23901 vqshl_u16 (uint16x4_t __a, int16x4_t __b)
23903 return __builtin_aarch64_uqshlv4hi_uus ( __a, __b);
23906 __extension__ extern __inline uint32x2_t
23907 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23908 vqshl_u32 (uint32x2_t __a, int32x2_t __b)
23910 return __builtin_aarch64_uqshlv2si_uus ( __a, __b);
23913 __extension__ extern __inline uint64x1_t
23914 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23915 vqshl_u64 (uint64x1_t __a, int64x1_t __b)
23917 return (uint64x1_t) {__builtin_aarch64_uqshldi_uus (__a[0], __b[0])};
23920 __extension__ extern __inline int8x16_t
23921 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23922 vqshlq_s8 (int8x16_t __a, int8x16_t __b)
23924 return __builtin_aarch64_sqshlv16qi (__a, __b);
23927 __extension__ extern __inline int16x8_t
23928 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23929 vqshlq_s16 (int16x8_t __a, int16x8_t __b)
23931 return __builtin_aarch64_sqshlv8hi (__a, __b);
23934 __extension__ extern __inline int32x4_t
23935 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23936 vqshlq_s32 (int32x4_t __a, int32x4_t __b)
23938 return __builtin_aarch64_sqshlv4si (__a, __b);
23941 __extension__ extern __inline int64x2_t
23942 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23943 vqshlq_s64 (int64x2_t __a, int64x2_t __b)
23945 return __builtin_aarch64_sqshlv2di (__a, __b);
23948 __extension__ extern __inline uint8x16_t
23949 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23950 vqshlq_u8 (uint8x16_t __a, int8x16_t __b)
23952 return __builtin_aarch64_uqshlv16qi_uus ( __a, __b);
23955 __extension__ extern __inline uint16x8_t
23956 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23957 vqshlq_u16 (uint16x8_t __a, int16x8_t __b)
23959 return __builtin_aarch64_uqshlv8hi_uus ( __a, __b);
23962 __extension__ extern __inline uint32x4_t
23963 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23964 vqshlq_u32 (uint32x4_t __a, int32x4_t __b)
23966 return __builtin_aarch64_uqshlv4si_uus ( __a, __b);
23969 __extension__ extern __inline uint64x2_t
23970 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23971 vqshlq_u64 (uint64x2_t __a, int64x2_t __b)
23973 return __builtin_aarch64_uqshlv2di_uus ( __a, __b);
23976 __extension__ extern __inline int8_t
23977 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23978 vqshlb_s8 (int8_t __a, int8_t __b)
23980 return __builtin_aarch64_sqshlqi (__a, __b);
23983 __extension__ extern __inline int16_t
23984 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23985 vqshlh_s16 (int16_t __a, int16_t __b)
23987 return __builtin_aarch64_sqshlhi (__a, __b);
23990 __extension__ extern __inline int32_t
23991 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23992 vqshls_s32 (int32_t __a, int32_t __b)
23994 return __builtin_aarch64_sqshlsi (__a, __b);
23997 __extension__ extern __inline int64_t
23998 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23999 vqshld_s64 (int64_t __a, int64_t __b)
24001 return __builtin_aarch64_sqshldi (__a, __b);
24004 __extension__ extern __inline uint8_t
24005 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24006 vqshlb_u8 (uint8_t __a, uint8_t __b)
24008 return __builtin_aarch64_uqshlqi_uus (__a, __b);
24011 __extension__ extern __inline uint16_t
24012 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24013 vqshlh_u16 (uint16_t __a, uint16_t __b)
24015 return __builtin_aarch64_uqshlhi_uus (__a, __b);
24018 __extension__ extern __inline uint32_t
24019 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24020 vqshls_u32 (uint32_t __a, uint32_t __b)
24022 return __builtin_aarch64_uqshlsi_uus (__a, __b);
24025 __extension__ extern __inline uint64_t
24026 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24027 vqshld_u64 (uint64_t __a, uint64_t __b)
24029 return __builtin_aarch64_uqshldi_uus (__a, __b);
24032 __extension__ extern __inline int8x8_t
24033 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24034 vqshl_n_s8 (int8x8_t __a, const int __b)
24036 return (int8x8_t) __builtin_aarch64_sqshl_nv8qi (__a, __b);
24039 __extension__ extern __inline int16x4_t
24040 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24041 vqshl_n_s16 (int16x4_t __a, const int __b)
24043 return (int16x4_t) __builtin_aarch64_sqshl_nv4hi (__a, __b);
24046 __extension__ extern __inline int32x2_t
24047 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24048 vqshl_n_s32 (int32x2_t __a, const int __b)
24050 return (int32x2_t) __builtin_aarch64_sqshl_nv2si (__a, __b);
24053 __extension__ extern __inline int64x1_t
24054 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24055 vqshl_n_s64 (int64x1_t __a, const int __b)
24057 return (int64x1_t) {__builtin_aarch64_sqshl_ndi (__a[0], __b)};
24060 __extension__ extern __inline uint8x8_t
24061 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24062 vqshl_n_u8 (uint8x8_t __a, const int __b)
24064 return __builtin_aarch64_uqshl_nv8qi_uus (__a, __b);
24067 __extension__ extern __inline uint16x4_t
24068 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24069 vqshl_n_u16 (uint16x4_t __a, const int __b)
24071 return __builtin_aarch64_uqshl_nv4hi_uus (__a, __b);
24074 __extension__ extern __inline uint32x2_t
24075 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24076 vqshl_n_u32 (uint32x2_t __a, const int __b)
24078 return __builtin_aarch64_uqshl_nv2si_uus (__a, __b);
24081 __extension__ extern __inline uint64x1_t
24082 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24083 vqshl_n_u64 (uint64x1_t __a, const int __b)
24085 return (uint64x1_t) {__builtin_aarch64_uqshl_ndi_uus (__a[0], __b)};
24088 __extension__ extern __inline int8x16_t
24089 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24090 vqshlq_n_s8 (int8x16_t __a, const int __b)
24092 return (int8x16_t) __builtin_aarch64_sqshl_nv16qi (__a, __b);
24095 __extension__ extern __inline int16x8_t
24096 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24097 vqshlq_n_s16 (int16x8_t __a, const int __b)
24099 return (int16x8_t) __builtin_aarch64_sqshl_nv8hi (__a, __b);
24102 __extension__ extern __inline int32x4_t
24103 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24104 vqshlq_n_s32 (int32x4_t __a, const int __b)
24106 return (int32x4_t) __builtin_aarch64_sqshl_nv4si (__a, __b);
24109 __extension__ extern __inline int64x2_t
24110 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24111 vqshlq_n_s64 (int64x2_t __a, const int __b)
24113 return (int64x2_t) __builtin_aarch64_sqshl_nv2di (__a, __b);
24116 __extension__ extern __inline uint8x16_t
24117 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24118 vqshlq_n_u8 (uint8x16_t __a, const int __b)
24120 return __builtin_aarch64_uqshl_nv16qi_uus (__a, __b);
24123 __extension__ extern __inline uint16x8_t
24124 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24125 vqshlq_n_u16 (uint16x8_t __a, const int __b)
24127 return __builtin_aarch64_uqshl_nv8hi_uus (__a, __b);
24130 __extension__ extern __inline uint32x4_t
24131 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24132 vqshlq_n_u32 (uint32x4_t __a, const int __b)
24134 return __builtin_aarch64_uqshl_nv4si_uus (__a, __b);
24137 __extension__ extern __inline uint64x2_t
24138 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24139 vqshlq_n_u64 (uint64x2_t __a, const int __b)
24141 return __builtin_aarch64_uqshl_nv2di_uus (__a, __b);
24144 __extension__ extern __inline int8_t
24145 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24146 vqshlb_n_s8 (int8_t __a, const int __b)
24148 return (int8_t) __builtin_aarch64_sqshl_nqi (__a, __b);
24151 __extension__ extern __inline int16_t
24152 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24153 vqshlh_n_s16 (int16_t __a, const int __b)
24155 return (int16_t) __builtin_aarch64_sqshl_nhi (__a, __b);
24158 __extension__ extern __inline int32_t
24159 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24160 vqshls_n_s32 (int32_t __a, const int __b)
24162 return (int32_t) __builtin_aarch64_sqshl_nsi (__a, __b);
24165 __extension__ extern __inline int64_t
24166 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24167 vqshld_n_s64 (int64_t __a, const int __b)
24169 return __builtin_aarch64_sqshl_ndi (__a, __b);
24172 __extension__ extern __inline uint8_t
24173 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24174 vqshlb_n_u8 (uint8_t __a, const int __b)
24176 return __builtin_aarch64_uqshl_nqi_uus (__a, __b);
24179 __extension__ extern __inline uint16_t
24180 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24181 vqshlh_n_u16 (uint16_t __a, const int __b)
24183 return __builtin_aarch64_uqshl_nhi_uus (__a, __b);
24186 __extension__ extern __inline uint32_t
24187 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24188 vqshls_n_u32 (uint32_t __a, const int __b)
24190 return __builtin_aarch64_uqshl_nsi_uus (__a, __b);
24193 __extension__ extern __inline uint64_t
24194 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24195 vqshld_n_u64 (uint64_t __a, const int __b)
24197 return __builtin_aarch64_uqshl_ndi_uus (__a, __b);
24200 /* vqshlu */
24202 __extension__ extern __inline uint8x8_t
24203 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24204 vqshlu_n_s8 (int8x8_t __a, const int __b)
24206 return __builtin_aarch64_sqshlu_nv8qi_uss (__a, __b);
24209 __extension__ extern __inline uint16x4_t
24210 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24211 vqshlu_n_s16 (int16x4_t __a, const int __b)
24213 return __builtin_aarch64_sqshlu_nv4hi_uss (__a, __b);
24216 __extension__ extern __inline uint32x2_t
24217 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24218 vqshlu_n_s32 (int32x2_t __a, const int __b)
24220 return __builtin_aarch64_sqshlu_nv2si_uss (__a, __b);
24223 __extension__ extern __inline uint64x1_t
24224 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24225 vqshlu_n_s64 (int64x1_t __a, const int __b)
24227 return (uint64x1_t) {__builtin_aarch64_sqshlu_ndi_uss (__a[0], __b)};
24230 __extension__ extern __inline uint8x16_t
24231 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24232 vqshluq_n_s8 (int8x16_t __a, const int __b)
24234 return __builtin_aarch64_sqshlu_nv16qi_uss (__a, __b);
24237 __extension__ extern __inline uint16x8_t
24238 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24239 vqshluq_n_s16 (int16x8_t __a, const int __b)
24241 return __builtin_aarch64_sqshlu_nv8hi_uss (__a, __b);
24244 __extension__ extern __inline uint32x4_t
24245 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24246 vqshluq_n_s32 (int32x4_t __a, const int __b)
24248 return __builtin_aarch64_sqshlu_nv4si_uss (__a, __b);
24251 __extension__ extern __inline uint64x2_t
24252 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24253 vqshluq_n_s64 (int64x2_t __a, const int __b)
24255 return __builtin_aarch64_sqshlu_nv2di_uss (__a, __b);
24258 __extension__ extern __inline int8_t
24259 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24260 vqshlub_n_s8 (int8_t __a, const int __b)
24262 return (int8_t) __builtin_aarch64_sqshlu_nqi_uss (__a, __b);
24265 __extension__ extern __inline int16_t
24266 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24267 vqshluh_n_s16 (int16_t __a, const int __b)
24269 return (int16_t) __builtin_aarch64_sqshlu_nhi_uss (__a, __b);
24272 __extension__ extern __inline int32_t
24273 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24274 vqshlus_n_s32 (int32_t __a, const int __b)
24276 return (int32_t) __builtin_aarch64_sqshlu_nsi_uss (__a, __b);
24279 __extension__ extern __inline uint64_t
24280 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24281 vqshlud_n_s64 (int64_t __a, const int __b)
24283 return __builtin_aarch64_sqshlu_ndi_uss (__a, __b);
24286 /* vqshrn */
24288 __extension__ extern __inline int8x8_t
24289 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24290 vqshrn_n_s16 (int16x8_t __a, const int __b)
24292 return (int8x8_t) __builtin_aarch64_sqshrn_nv8hi (__a, __b);
24295 __extension__ extern __inline int16x4_t
24296 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24297 vqshrn_n_s32 (int32x4_t __a, const int __b)
24299 return (int16x4_t) __builtin_aarch64_sqshrn_nv4si (__a, __b);
24302 __extension__ extern __inline int32x2_t
24303 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24304 vqshrn_n_s64 (int64x2_t __a, const int __b)
24306 return (int32x2_t) __builtin_aarch64_sqshrn_nv2di (__a, __b);
24309 __extension__ extern __inline uint8x8_t
24310 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24311 vqshrn_n_u16 (uint16x8_t __a, const int __b)
24313 return __builtin_aarch64_uqshrn_nv8hi_uus ( __a, __b);
24316 __extension__ extern __inline uint16x4_t
24317 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24318 vqshrn_n_u32 (uint32x4_t __a, const int __b)
24320 return __builtin_aarch64_uqshrn_nv4si_uus ( __a, __b);
24323 __extension__ extern __inline uint32x2_t
24324 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24325 vqshrn_n_u64 (uint64x2_t __a, const int __b)
24327 return __builtin_aarch64_uqshrn_nv2di_uus ( __a, __b);
24330 __extension__ extern __inline int8_t
24331 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24332 vqshrnh_n_s16 (int16_t __a, const int __b)
24334 return (int8_t) __builtin_aarch64_sqshrn_nhi (__a, __b);
24337 __extension__ extern __inline int16_t
24338 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24339 vqshrns_n_s32 (int32_t __a, const int __b)
24341 return (int16_t) __builtin_aarch64_sqshrn_nsi (__a, __b);
24344 __extension__ extern __inline int32_t
24345 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24346 vqshrnd_n_s64 (int64_t __a, const int __b)
24348 return (int32_t) __builtin_aarch64_sqshrn_ndi (__a, __b);
24351 __extension__ extern __inline uint8_t
24352 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24353 vqshrnh_n_u16 (uint16_t __a, const int __b)
24355 return __builtin_aarch64_uqshrn_nhi_uus (__a, __b);
24358 __extension__ extern __inline uint16_t
24359 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24360 vqshrns_n_u32 (uint32_t __a, const int __b)
24362 return __builtin_aarch64_uqshrn_nsi_uus (__a, __b);
24365 __extension__ extern __inline uint32_t
24366 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24367 vqshrnd_n_u64 (uint64_t __a, const int __b)
24369 return __builtin_aarch64_uqshrn_ndi_uus (__a, __b);
24372 /* vqshrun */
24374 __extension__ extern __inline uint8x8_t
24375 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24376 vqshrun_n_s16 (int16x8_t __a, const int __b)
24378 return (uint8x8_t) __builtin_aarch64_sqshrun_nv8hi (__a, __b);
24381 __extension__ extern __inline uint16x4_t
24382 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24383 vqshrun_n_s32 (int32x4_t __a, const int __b)
24385 return (uint16x4_t) __builtin_aarch64_sqshrun_nv4si (__a, __b);
24388 __extension__ extern __inline uint32x2_t
24389 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24390 vqshrun_n_s64 (int64x2_t __a, const int __b)
24392 return (uint32x2_t) __builtin_aarch64_sqshrun_nv2di (__a, __b);
24395 __extension__ extern __inline int8_t
24396 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24397 vqshrunh_n_s16 (int16_t __a, const int __b)
24399 return (int8_t) __builtin_aarch64_sqshrun_nhi (__a, __b);
24402 __extension__ extern __inline int16_t
24403 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24404 vqshruns_n_s32 (int32_t __a, const int __b)
24406 return (int16_t) __builtin_aarch64_sqshrun_nsi (__a, __b);
24409 __extension__ extern __inline int32_t
24410 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24411 vqshrund_n_s64 (int64_t __a, const int __b)
24413 return (int32_t) __builtin_aarch64_sqshrun_ndi (__a, __b);
24416 /* vqsub */
24418 __extension__ extern __inline int8_t
24419 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24420 vqsubb_s8 (int8_t __a, int8_t __b)
24422 return (int8_t) __builtin_aarch64_sqsubqi (__a, __b);
24425 __extension__ extern __inline int16_t
24426 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24427 vqsubh_s16 (int16_t __a, int16_t __b)
24429 return (int16_t) __builtin_aarch64_sqsubhi (__a, __b);
24432 __extension__ extern __inline int32_t
24433 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24434 vqsubs_s32 (int32_t __a, int32_t __b)
24436 return (int32_t) __builtin_aarch64_sqsubsi (__a, __b);
24439 __extension__ extern __inline int64_t
24440 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24441 vqsubd_s64 (int64_t __a, int64_t __b)
24443 return __builtin_aarch64_sqsubdi (__a, __b);
24446 __extension__ extern __inline uint8_t
24447 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24448 vqsubb_u8 (uint8_t __a, uint8_t __b)
24450 return (uint8_t) __builtin_aarch64_uqsubqi_uuu (__a, __b);
24453 __extension__ extern __inline uint16_t
24454 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24455 vqsubh_u16 (uint16_t __a, uint16_t __b)
24457 return (uint16_t) __builtin_aarch64_uqsubhi_uuu (__a, __b);
24460 __extension__ extern __inline uint32_t
24461 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24462 vqsubs_u32 (uint32_t __a, uint32_t __b)
24464 return (uint32_t) __builtin_aarch64_uqsubsi_uuu (__a, __b);
24467 __extension__ extern __inline uint64_t
24468 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24469 vqsubd_u64 (uint64_t __a, uint64_t __b)
24471 return __builtin_aarch64_uqsubdi_uuu (__a, __b);
24474 /* vqtbl2 */
24476 __extension__ extern __inline int8x8_t
24477 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24478 vqtbl2_s8 (int8x16x2_t tab, uint8x8_t idx)
24480 __builtin_aarch64_simd_oi __o;
24481 __o = __builtin_aarch64_set_qregoiv16qi (__o, tab.val[0], 0);
24482 __o = __builtin_aarch64_set_qregoiv16qi (__o, tab.val[1], 1);
24483 return __builtin_aarch64_tbl3v8qi (__o, (int8x8_t)idx);
24486 __extension__ extern __inline uint8x8_t
24487 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24488 vqtbl2_u8 (uint8x16x2_t tab, uint8x8_t idx)
24490 __builtin_aarch64_simd_oi __o;
24491 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[0], 0);
24492 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[1], 1);
24493 return (uint8x8_t)__builtin_aarch64_tbl3v8qi (__o, (int8x8_t)idx);
24496 __extension__ extern __inline poly8x8_t
24497 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24498 vqtbl2_p8 (poly8x16x2_t tab, uint8x8_t idx)
24500 __builtin_aarch64_simd_oi __o;
24501 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[0], 0);
24502 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[1], 1);
24503 return (poly8x8_t)__builtin_aarch64_tbl3v8qi (__o, (int8x8_t)idx);
24506 __extension__ extern __inline int8x16_t
24507 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24508 vqtbl2q_s8 (int8x16x2_t tab, uint8x16_t idx)
24510 __builtin_aarch64_simd_oi __o;
24511 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[0], 0);
24512 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[1], 1);
24513 return __builtin_aarch64_tbl3v16qi (__o, (int8x16_t)idx);
24516 __extension__ extern __inline uint8x16_t
24517 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24518 vqtbl2q_u8 (uint8x16x2_t tab, uint8x16_t idx)
24520 __builtin_aarch64_simd_oi __o;
24521 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[0], 0);
24522 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[1], 1);
24523 return (uint8x16_t)__builtin_aarch64_tbl3v16qi (__o, (int8x16_t)idx);
24526 __extension__ extern __inline poly8x16_t
24527 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24528 vqtbl2q_p8 (poly8x16x2_t tab, uint8x16_t idx)
24530 __builtin_aarch64_simd_oi __o;
24531 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[0], 0);
24532 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[1], 1);
24533 return (poly8x16_t)__builtin_aarch64_tbl3v16qi (__o, (int8x16_t)idx);
24536 /* vqtbl3 */
24538 __extension__ extern __inline int8x8_t
24539 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24540 vqtbl3_s8 (int8x16x3_t tab, uint8x8_t idx)
24542 __builtin_aarch64_simd_ci __o;
24543 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[0], 0);
24544 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[1], 1);
24545 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[2], 2);
24546 return __builtin_aarch64_qtbl3v8qi (__o, (int8x8_t)idx);
24549 __extension__ extern __inline uint8x8_t
24550 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24551 vqtbl3_u8 (uint8x16x3_t tab, uint8x8_t idx)
24553 __builtin_aarch64_simd_ci __o;
24554 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[0], 0);
24555 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[1], 1);
24556 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[2], 2);
24557 return (uint8x8_t)__builtin_aarch64_qtbl3v8qi (__o, (int8x8_t)idx);
24560 __extension__ extern __inline poly8x8_t
24561 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24562 vqtbl3_p8 (poly8x16x3_t tab, uint8x8_t idx)
24564 __builtin_aarch64_simd_ci __o;
24565 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[0], 0);
24566 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[1], 1);
24567 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[2], 2);
24568 return (poly8x8_t)__builtin_aarch64_qtbl3v8qi (__o, (int8x8_t)idx);
24571 __extension__ extern __inline int8x16_t
24572 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24573 vqtbl3q_s8 (int8x16x3_t tab, uint8x16_t idx)
24575 __builtin_aarch64_simd_ci __o;
24576 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[0], 0);
24577 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[1], 1);
24578 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[2], 2);
24579 return __builtin_aarch64_qtbl3v16qi (__o, (int8x16_t)idx);
24582 __extension__ extern __inline uint8x16_t
24583 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24584 vqtbl3q_u8 (uint8x16x3_t tab, uint8x16_t idx)
24586 __builtin_aarch64_simd_ci __o;
24587 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[0], 0);
24588 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[1], 1);
24589 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[2], 2);
24590 return (uint8x16_t)__builtin_aarch64_qtbl3v16qi (__o, (int8x16_t)idx);
24593 __extension__ extern __inline poly8x16_t
24594 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24595 vqtbl3q_p8 (poly8x16x3_t tab, uint8x16_t idx)
24597 __builtin_aarch64_simd_ci __o;
24598 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[0], 0);
24599 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[1], 1);
24600 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[2], 2);
24601 return (poly8x16_t)__builtin_aarch64_qtbl3v16qi (__o, (int8x16_t)idx);
24604 /* vqtbl4 */
24606 __extension__ extern __inline int8x8_t
24607 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24608 vqtbl4_s8 (int8x16x4_t tab, uint8x8_t idx)
24610 __builtin_aarch64_simd_xi __o;
24611 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[0], 0);
24612 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[1], 1);
24613 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[2], 2);
24614 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[3], 3);
24615 return __builtin_aarch64_qtbl4v8qi (__o, (int8x8_t)idx);
24618 __extension__ extern __inline uint8x8_t
24619 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24620 vqtbl4_u8 (uint8x16x4_t tab, uint8x8_t idx)
24622 __builtin_aarch64_simd_xi __o;
24623 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[0], 0);
24624 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[1], 1);
24625 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[2], 2);
24626 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[3], 3);
24627 return (uint8x8_t)__builtin_aarch64_qtbl4v8qi (__o, (int8x8_t)idx);
24630 __extension__ extern __inline poly8x8_t
24631 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24632 vqtbl4_p8 (poly8x16x4_t tab, uint8x8_t idx)
24634 __builtin_aarch64_simd_xi __o;
24635 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[0], 0);
24636 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[1], 1);
24637 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[2], 2);
24638 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[3], 3);
24639 return (poly8x8_t)__builtin_aarch64_qtbl4v8qi (__o, (int8x8_t)idx);
24642 __extension__ extern __inline int8x16_t
24643 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24644 vqtbl4q_s8 (int8x16x4_t tab, uint8x16_t idx)
24646 __builtin_aarch64_simd_xi __o;
24647 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[0], 0);
24648 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[1], 1);
24649 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[2], 2);
24650 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[3], 3);
24651 return __builtin_aarch64_qtbl4v16qi (__o, (int8x16_t)idx);
24654 __extension__ extern __inline uint8x16_t
24655 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24656 vqtbl4q_u8 (uint8x16x4_t tab, uint8x16_t idx)
24658 __builtin_aarch64_simd_xi __o;
24659 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[0], 0);
24660 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[1], 1);
24661 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[2], 2);
24662 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[3], 3);
24663 return (uint8x16_t)__builtin_aarch64_qtbl4v16qi (__o, (int8x16_t)idx);
24666 __extension__ extern __inline poly8x16_t
24667 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24668 vqtbl4q_p8 (poly8x16x4_t tab, uint8x16_t idx)
24670 __builtin_aarch64_simd_xi __o;
24671 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[0], 0);
24672 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[1], 1);
24673 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[2], 2);
24674 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[3], 3);
24675 return (poly8x16_t)__builtin_aarch64_qtbl4v16qi (__o, (int8x16_t)idx);
24679 /* vqtbx2 */
24680 __extension__ extern __inline int8x8_t
24681 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24682 vqtbx2_s8 (int8x8_t r, int8x16x2_t tab, uint8x8_t idx)
24684 __builtin_aarch64_simd_oi __o;
24685 __o = __builtin_aarch64_set_qregoiv16qi (__o, tab.val[0], 0);
24686 __o = __builtin_aarch64_set_qregoiv16qi (__o, tab.val[1], 1);
24687 return __builtin_aarch64_tbx4v8qi (r, __o, (int8x8_t)idx);
24690 __extension__ extern __inline uint8x8_t
24691 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24692 vqtbx2_u8 (uint8x8_t r, uint8x16x2_t tab, uint8x8_t idx)
24694 __builtin_aarch64_simd_oi __o;
24695 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[0], 0);
24696 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[1], 1);
24697 return (uint8x8_t)__builtin_aarch64_tbx4v8qi ((int8x8_t)r, __o,
24698 (int8x8_t)idx);
24701 __extension__ extern __inline poly8x8_t
24702 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24703 vqtbx2_p8 (poly8x8_t r, poly8x16x2_t tab, uint8x8_t idx)
24705 __builtin_aarch64_simd_oi __o;
24706 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[0], 0);
24707 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[1], 1);
24708 return (poly8x8_t)__builtin_aarch64_tbx4v8qi ((int8x8_t)r, __o,
24709 (int8x8_t)idx);
24712 __extension__ extern __inline int8x16_t
24713 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24714 vqtbx2q_s8 (int8x16_t r, int8x16x2_t tab, uint8x16_t idx)
24716 __builtin_aarch64_simd_oi __o;
24717 __o = __builtin_aarch64_set_qregoiv16qi (__o, tab.val[0], 0);
24718 __o = __builtin_aarch64_set_qregoiv16qi (__o, tab.val[1], 1);
24719 return __builtin_aarch64_tbx4v16qi (r, __o, (int8x16_t)idx);
24722 __extension__ extern __inline uint8x16_t
24723 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24724 vqtbx2q_u8 (uint8x16_t r, uint8x16x2_t tab, uint8x16_t idx)
24726 __builtin_aarch64_simd_oi __o;
24727 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[0], 0);
24728 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[1], 1);
24729 return (uint8x16_t)__builtin_aarch64_tbx4v16qi ((int8x16_t)r, __o,
24730 (int8x16_t)idx);
24733 __extension__ extern __inline poly8x16_t
24734 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24735 vqtbx2q_p8 (poly8x16_t r, poly8x16x2_t tab, uint8x16_t idx)
24737 __builtin_aarch64_simd_oi __o;
24738 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[0], 0);
24739 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[1], 1);
24740 return (poly8x16_t)__builtin_aarch64_tbx4v16qi ((int8x16_t)r, __o,
24741 (int8x16_t)idx);
24744 /* vqtbx3 */
24745 __extension__ extern __inline int8x8_t
24746 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24747 vqtbx3_s8 (int8x8_t r, int8x16x3_t tab, uint8x8_t idx)
24749 __builtin_aarch64_simd_ci __o;
24750 __o = __builtin_aarch64_set_qregciv16qi (__o, tab.val[0], 0);
24751 __o = __builtin_aarch64_set_qregciv16qi (__o, tab.val[1], 1);
24752 __o = __builtin_aarch64_set_qregciv16qi (__o, tab.val[2], 2);
24753 return __builtin_aarch64_qtbx3v8qi (r, __o, (int8x8_t)idx);
24756 __extension__ extern __inline uint8x8_t
24757 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24758 vqtbx3_u8 (uint8x8_t r, uint8x16x3_t tab, uint8x8_t idx)
24760 __builtin_aarch64_simd_ci __o;
24761 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[0], 0);
24762 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[1], 1);
24763 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[2], 2);
24764 return (uint8x8_t)__builtin_aarch64_qtbx3v8qi ((int8x8_t)r, __o,
24765 (int8x8_t)idx);
24768 __extension__ extern __inline poly8x8_t
24769 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24770 vqtbx3_p8 (poly8x8_t r, poly8x16x3_t tab, uint8x8_t idx)
24772 __builtin_aarch64_simd_ci __o;
24773 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[0], 0);
24774 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[1], 1);
24775 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[2], 2);
24776 return (poly8x8_t)__builtin_aarch64_qtbx3v8qi ((int8x8_t)r, __o,
24777 (int8x8_t)idx);
24780 __extension__ extern __inline int8x16_t
24781 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24782 vqtbx3q_s8 (int8x16_t r, int8x16x3_t tab, uint8x16_t idx)
24784 __builtin_aarch64_simd_ci __o;
24785 __o = __builtin_aarch64_set_qregciv16qi (__o, tab.val[0], 0);
24786 __o = __builtin_aarch64_set_qregciv16qi (__o, tab.val[1], 1);
24787 __o = __builtin_aarch64_set_qregciv16qi (__o, tab.val[2], 2);
24788 return __builtin_aarch64_qtbx3v16qi (r, __o, (int8x16_t)idx);
24791 __extension__ extern __inline uint8x16_t
24792 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24793 vqtbx3q_u8 (uint8x16_t r, uint8x16x3_t tab, uint8x16_t idx)
24795 __builtin_aarch64_simd_ci __o;
24796 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[0], 0);
24797 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[1], 1);
24798 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[2], 2);
24799 return (uint8x16_t)__builtin_aarch64_qtbx3v16qi ((int8x16_t)r, __o,
24800 (int8x16_t)idx);
24803 __extension__ extern __inline poly8x16_t
24804 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24805 vqtbx3q_p8 (poly8x16_t r, poly8x16x3_t tab, uint8x16_t idx)
24807 __builtin_aarch64_simd_ci __o;
24808 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[0], 0);
24809 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[1], 1);
24810 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[2], 2);
24811 return (poly8x16_t)__builtin_aarch64_qtbx3v16qi ((int8x16_t)r, __o,
24812 (int8x16_t)idx);
24815 /* vqtbx4 */
24817 __extension__ extern __inline int8x8_t
24818 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24819 vqtbx4_s8 (int8x8_t r, int8x16x4_t tab, uint8x8_t idx)
24821 __builtin_aarch64_simd_xi __o;
24822 __o = __builtin_aarch64_set_qregxiv16qi (__o, tab.val[0], 0);
24823 __o = __builtin_aarch64_set_qregxiv16qi (__o, tab.val[1], 1);
24824 __o = __builtin_aarch64_set_qregxiv16qi (__o, tab.val[2], 2);
24825 __o = __builtin_aarch64_set_qregxiv16qi (__o, tab.val[3], 3);
24826 return __builtin_aarch64_qtbx4v8qi (r, __o, (int8x8_t)idx);
24829 __extension__ extern __inline uint8x8_t
24830 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24831 vqtbx4_u8 (uint8x8_t r, uint8x16x4_t tab, uint8x8_t idx)
24833 __builtin_aarch64_simd_xi __o;
24834 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[0], 0);
24835 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[1], 1);
24836 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[2], 2);
24837 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[3], 3);
24838 return (uint8x8_t)__builtin_aarch64_qtbx4v8qi ((int8x8_t)r, __o,
24839 (int8x8_t)idx);
24842 __extension__ extern __inline poly8x8_t
24843 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24844 vqtbx4_p8 (poly8x8_t r, poly8x16x4_t tab, uint8x8_t idx)
24846 __builtin_aarch64_simd_xi __o;
24847 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[0], 0);
24848 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[1], 1);
24849 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[2], 2);
24850 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[3], 3);
24851 return (poly8x8_t)__builtin_aarch64_qtbx4v8qi ((int8x8_t)r, __o,
24852 (int8x8_t)idx);
24855 __extension__ extern __inline int8x16_t
24856 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24857 vqtbx4q_s8 (int8x16_t r, int8x16x4_t tab, uint8x16_t idx)
24859 __builtin_aarch64_simd_xi __o;
24860 __o = __builtin_aarch64_set_qregxiv16qi (__o, tab.val[0], 0);
24861 __o = __builtin_aarch64_set_qregxiv16qi (__o, tab.val[1], 1);
24862 __o = __builtin_aarch64_set_qregxiv16qi (__o, tab.val[2], 2);
24863 __o = __builtin_aarch64_set_qregxiv16qi (__o, tab.val[3], 3);
24864 return __builtin_aarch64_qtbx4v16qi (r, __o, (int8x16_t)idx);
24867 __extension__ extern __inline uint8x16_t
24868 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24869 vqtbx4q_u8 (uint8x16_t r, uint8x16x4_t tab, uint8x16_t idx)
24871 __builtin_aarch64_simd_xi __o;
24872 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[0], 0);
24873 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[1], 1);
24874 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[2], 2);
24875 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[3], 3);
24876 return (uint8x16_t)__builtin_aarch64_qtbx4v16qi ((int8x16_t)r, __o,
24877 (int8x16_t)idx);
24880 __extension__ extern __inline poly8x16_t
24881 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24882 vqtbx4q_p8 (poly8x16_t r, poly8x16x4_t tab, uint8x16_t idx)
24884 __builtin_aarch64_simd_xi __o;
24885 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[0], 0);
24886 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[1], 1);
24887 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[2], 2);
24888 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[3], 3);
24889 return (poly8x16_t)__builtin_aarch64_qtbx4v16qi ((int8x16_t)r, __o,
24890 (int8x16_t)idx);
24893 /* vrbit */
24895 __extension__ extern __inline poly8x8_t
24896 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24897 vrbit_p8 (poly8x8_t __a)
24899 return (poly8x8_t) __builtin_aarch64_rbitv8qi ((int8x8_t) __a);
24902 __extension__ extern __inline int8x8_t
24903 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24904 vrbit_s8 (int8x8_t __a)
24906 return __builtin_aarch64_rbitv8qi (__a);
24909 __extension__ extern __inline uint8x8_t
24910 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24911 vrbit_u8 (uint8x8_t __a)
24913 return (uint8x8_t) __builtin_aarch64_rbitv8qi ((int8x8_t) __a);
24916 __extension__ extern __inline poly8x16_t
24917 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24918 vrbitq_p8 (poly8x16_t __a)
24920 return (poly8x16_t) __builtin_aarch64_rbitv16qi ((int8x16_t)__a);
24923 __extension__ extern __inline int8x16_t
24924 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24925 vrbitq_s8 (int8x16_t __a)
24927 return __builtin_aarch64_rbitv16qi (__a);
24930 __extension__ extern __inline uint8x16_t
24931 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24932 vrbitq_u8 (uint8x16_t __a)
24934 return (uint8x16_t) __builtin_aarch64_rbitv16qi ((int8x16_t) __a);
24937 /* vrecpe */
24939 __extension__ extern __inline uint32x2_t
24940 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24941 vrecpe_u32 (uint32x2_t __a)
24943 return (uint32x2_t) __builtin_aarch64_urecpev2si ((int32x2_t) __a);
24946 __extension__ extern __inline uint32x4_t
24947 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24948 vrecpeq_u32 (uint32x4_t __a)
24950 return (uint32x4_t) __builtin_aarch64_urecpev4si ((int32x4_t) __a);
24953 __extension__ extern __inline float32_t
24954 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24955 vrecpes_f32 (float32_t __a)
24957 return __builtin_aarch64_frecpesf (__a);
24960 __extension__ extern __inline float64_t
24961 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24962 vrecped_f64 (float64_t __a)
24964 return __builtin_aarch64_frecpedf (__a);
24967 __extension__ extern __inline float32x2_t
24968 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24969 vrecpe_f32 (float32x2_t __a)
24971 return __builtin_aarch64_frecpev2sf (__a);
24974 __extension__ extern __inline float64x1_t
24975 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24976 vrecpe_f64 (float64x1_t __a)
24978 return (float64x1_t) { vrecped_f64 (vget_lane_f64 (__a, 0)) };
24981 __extension__ extern __inline float32x4_t
24982 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24983 vrecpeq_f32 (float32x4_t __a)
24985 return __builtin_aarch64_frecpev4sf (__a);
24988 __extension__ extern __inline float64x2_t
24989 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24990 vrecpeq_f64 (float64x2_t __a)
24992 return __builtin_aarch64_frecpev2df (__a);
24995 /* vrecps */
24997 __extension__ extern __inline float32_t
24998 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24999 vrecpss_f32 (float32_t __a, float32_t __b)
25001 return __builtin_aarch64_frecpssf (__a, __b);
25004 __extension__ extern __inline float64_t
25005 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25006 vrecpsd_f64 (float64_t __a, float64_t __b)
25008 return __builtin_aarch64_frecpsdf (__a, __b);
25011 __extension__ extern __inline float32x2_t
25012 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25013 vrecps_f32 (float32x2_t __a, float32x2_t __b)
25015 return __builtin_aarch64_frecpsv2sf (__a, __b);
25018 __extension__ extern __inline float64x1_t
25019 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25020 vrecps_f64 (float64x1_t __a, float64x1_t __b)
25022 return (float64x1_t) { vrecpsd_f64 (vget_lane_f64 (__a, 0),
25023 vget_lane_f64 (__b, 0)) };
25026 __extension__ extern __inline float32x4_t
25027 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25028 vrecpsq_f32 (float32x4_t __a, float32x4_t __b)
25030 return __builtin_aarch64_frecpsv4sf (__a, __b);
25033 __extension__ extern __inline float64x2_t
25034 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25035 vrecpsq_f64 (float64x2_t __a, float64x2_t __b)
25037 return __builtin_aarch64_frecpsv2df (__a, __b);
25040 /* vrecpx */
25042 __extension__ extern __inline float32_t
25043 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25044 vrecpxs_f32 (float32_t __a)
25046 return __builtin_aarch64_frecpxsf (__a);
25049 __extension__ extern __inline float64_t
25050 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25051 vrecpxd_f64 (float64_t __a)
25053 return __builtin_aarch64_frecpxdf (__a);
25057 /* vrev */
25059 __extension__ extern __inline poly8x8_t
25060 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25061 vrev16_p8 (poly8x8_t a)
25063 return __builtin_shuffle (a, (uint8x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
25066 __extension__ extern __inline int8x8_t
25067 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25068 vrev16_s8 (int8x8_t a)
25070 return __builtin_shuffle (a, (uint8x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
25073 __extension__ extern __inline uint8x8_t
25074 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25075 vrev16_u8 (uint8x8_t a)
25077 return __builtin_shuffle (a, (uint8x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
25080 __extension__ extern __inline poly8x16_t
25081 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25082 vrev16q_p8 (poly8x16_t a)
25084 return __builtin_shuffle (a,
25085 (uint8x16_t) { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 });
25088 __extension__ extern __inline int8x16_t
25089 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25090 vrev16q_s8 (int8x16_t a)
25092 return __builtin_shuffle (a,
25093 (uint8x16_t) { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 });
25096 __extension__ extern __inline uint8x16_t
25097 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25098 vrev16q_u8 (uint8x16_t a)
25100 return __builtin_shuffle (a,
25101 (uint8x16_t) { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 });
25104 __extension__ extern __inline poly8x8_t
25105 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25106 vrev32_p8 (poly8x8_t a)
25108 return __builtin_shuffle (a, (uint8x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
25111 __extension__ extern __inline poly16x4_t
25112 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25113 vrev32_p16 (poly16x4_t a)
25115 return __builtin_shuffle (a, (uint16x4_t) { 1, 0, 3, 2 });
25118 __extension__ extern __inline int8x8_t
25119 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25120 vrev32_s8 (int8x8_t a)
25122 return __builtin_shuffle (a, (uint8x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
25125 __extension__ extern __inline int16x4_t
25126 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25127 vrev32_s16 (int16x4_t a)
25129 return __builtin_shuffle (a, (uint16x4_t) { 1, 0, 3, 2 });
25132 __extension__ extern __inline uint8x8_t
25133 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25134 vrev32_u8 (uint8x8_t a)
25136 return __builtin_shuffle (a, (uint8x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
25139 __extension__ extern __inline uint16x4_t
25140 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25141 vrev32_u16 (uint16x4_t a)
25143 return __builtin_shuffle (a, (uint16x4_t) { 1, 0, 3, 2 });
25146 __extension__ extern __inline poly8x16_t
25147 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25148 vrev32q_p8 (poly8x16_t a)
25150 return __builtin_shuffle (a,
25151 (uint8x16_t) { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 });
25154 __extension__ extern __inline poly16x8_t
25155 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25156 vrev32q_p16 (poly16x8_t a)
25158 return __builtin_shuffle (a, (uint16x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
25161 __extension__ extern __inline int8x16_t
25162 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25163 vrev32q_s8 (int8x16_t a)
25165 return __builtin_shuffle (a,
25166 (uint8x16_t) { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 });
25169 __extension__ extern __inline int16x8_t
25170 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25171 vrev32q_s16 (int16x8_t a)
25173 return __builtin_shuffle (a, (uint16x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
25176 __extension__ extern __inline uint8x16_t
25177 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25178 vrev32q_u8 (uint8x16_t a)
25180 return __builtin_shuffle (a,
25181 (uint8x16_t) { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 });
25184 __extension__ extern __inline uint16x8_t
25185 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25186 vrev32q_u16 (uint16x8_t a)
25188 return __builtin_shuffle (a, (uint16x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
25191 __extension__ extern __inline float16x4_t
25192 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25193 vrev64_f16 (float16x4_t __a)
25195 return __builtin_shuffle (__a, (uint16x4_t) { 3, 2, 1, 0 });
25198 __extension__ extern __inline float32x2_t
25199 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25200 vrev64_f32 (float32x2_t a)
25202 return __builtin_shuffle (a, (uint32x2_t) { 1, 0 });
25205 __extension__ extern __inline poly8x8_t
25206 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25207 vrev64_p8 (poly8x8_t a)
25209 return __builtin_shuffle (a, (uint8x8_t) { 7, 6, 5, 4, 3, 2, 1, 0 });
25212 __extension__ extern __inline poly16x4_t
25213 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25214 vrev64_p16 (poly16x4_t a)
25216 return __builtin_shuffle (a, (uint16x4_t) { 3, 2, 1, 0 });
25219 __extension__ extern __inline int8x8_t
25220 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25221 vrev64_s8 (int8x8_t a)
25223 return __builtin_shuffle (a, (uint8x8_t) { 7, 6, 5, 4, 3, 2, 1, 0 });
25226 __extension__ extern __inline int16x4_t
25227 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25228 vrev64_s16 (int16x4_t a)
25230 return __builtin_shuffle (a, (uint16x4_t) { 3, 2, 1, 0 });
25233 __extension__ extern __inline int32x2_t
25234 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25235 vrev64_s32 (int32x2_t a)
25237 return __builtin_shuffle (a, (uint32x2_t) { 1, 0 });
25240 __extension__ extern __inline uint8x8_t
25241 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25242 vrev64_u8 (uint8x8_t a)
25244 return __builtin_shuffle (a, (uint8x8_t) { 7, 6, 5, 4, 3, 2, 1, 0 });
25247 __extension__ extern __inline uint16x4_t
25248 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25249 vrev64_u16 (uint16x4_t a)
25251 return __builtin_shuffle (a, (uint16x4_t) { 3, 2, 1, 0 });
25254 __extension__ extern __inline uint32x2_t
25255 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25256 vrev64_u32 (uint32x2_t a)
25258 return __builtin_shuffle (a, (uint32x2_t) { 1, 0 });
25261 __extension__ extern __inline float16x8_t
25262 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25263 vrev64q_f16 (float16x8_t __a)
25265 return __builtin_shuffle (__a, (uint16x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
25268 __extension__ extern __inline float32x4_t
25269 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25270 vrev64q_f32 (float32x4_t a)
25272 return __builtin_shuffle (a, (uint32x4_t) { 1, 0, 3, 2 });
25275 __extension__ extern __inline poly8x16_t
25276 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25277 vrev64q_p8 (poly8x16_t a)
25279 return __builtin_shuffle (a,
25280 (uint8x16_t) { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 });
25283 __extension__ extern __inline poly16x8_t
25284 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25285 vrev64q_p16 (poly16x8_t a)
25287 return __builtin_shuffle (a, (uint16x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
25290 __extension__ extern __inline int8x16_t
25291 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25292 vrev64q_s8 (int8x16_t a)
25294 return __builtin_shuffle (a,
25295 (uint8x16_t) { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 });
25298 __extension__ extern __inline int16x8_t
25299 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25300 vrev64q_s16 (int16x8_t a)
25302 return __builtin_shuffle (a, (uint16x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
25305 __extension__ extern __inline int32x4_t
25306 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25307 vrev64q_s32 (int32x4_t a)
25309 return __builtin_shuffle (a, (uint32x4_t) { 1, 0, 3, 2 });
25312 __extension__ extern __inline uint8x16_t
25313 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25314 vrev64q_u8 (uint8x16_t a)
25316 return __builtin_shuffle (a,
25317 (uint8x16_t) { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 });
25320 __extension__ extern __inline uint16x8_t
25321 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25322 vrev64q_u16 (uint16x8_t a)
25324 return __builtin_shuffle (a, (uint16x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
25327 __extension__ extern __inline uint32x4_t
25328 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25329 vrev64q_u32 (uint32x4_t a)
25331 return __builtin_shuffle (a, (uint32x4_t) { 1, 0, 3, 2 });
25334 /* vrnd */
25336 __extension__ extern __inline float32x2_t
25337 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25338 vrnd_f32 (float32x2_t __a)
25340 return __builtin_aarch64_btruncv2sf (__a);
25343 __extension__ extern __inline float64x1_t
25344 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25345 vrnd_f64 (float64x1_t __a)
25347 return vset_lane_f64 (__builtin_trunc (vget_lane_f64 (__a, 0)), __a, 0);
25350 __extension__ extern __inline float32x4_t
25351 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25352 vrndq_f32 (float32x4_t __a)
25354 return __builtin_aarch64_btruncv4sf (__a);
25357 __extension__ extern __inline float64x2_t
25358 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25359 vrndq_f64 (float64x2_t __a)
25361 return __builtin_aarch64_btruncv2df (__a);
25364 /* vrnda */
25366 __extension__ extern __inline float32x2_t
25367 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25368 vrnda_f32 (float32x2_t __a)
25370 return __builtin_aarch64_roundv2sf (__a);
25373 __extension__ extern __inline float64x1_t
25374 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25375 vrnda_f64 (float64x1_t __a)
25377 return vset_lane_f64 (__builtin_round (vget_lane_f64 (__a, 0)), __a, 0);
25380 __extension__ extern __inline float32x4_t
25381 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25382 vrndaq_f32 (float32x4_t __a)
25384 return __builtin_aarch64_roundv4sf (__a);
25387 __extension__ extern __inline float64x2_t
25388 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25389 vrndaq_f64 (float64x2_t __a)
25391 return __builtin_aarch64_roundv2df (__a);
25394 /* vrndi */
25396 __extension__ extern __inline float32x2_t
25397 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25398 vrndi_f32 (float32x2_t __a)
25400 return __builtin_aarch64_nearbyintv2sf (__a);
25403 __extension__ extern __inline float64x1_t
25404 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25405 vrndi_f64 (float64x1_t __a)
25407 return vset_lane_f64 (__builtin_nearbyint (vget_lane_f64 (__a, 0)), __a, 0);
25410 __extension__ extern __inline float32x4_t
25411 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25412 vrndiq_f32 (float32x4_t __a)
25414 return __builtin_aarch64_nearbyintv4sf (__a);
25417 __extension__ extern __inline float64x2_t
25418 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25419 vrndiq_f64 (float64x2_t __a)
25421 return __builtin_aarch64_nearbyintv2df (__a);
25424 /* vrndm */
25426 __extension__ extern __inline float32x2_t
25427 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25428 vrndm_f32 (float32x2_t __a)
25430 return __builtin_aarch64_floorv2sf (__a);
25433 __extension__ extern __inline float64x1_t
25434 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25435 vrndm_f64 (float64x1_t __a)
25437 return vset_lane_f64 (__builtin_floor (vget_lane_f64 (__a, 0)), __a, 0);
25440 __extension__ extern __inline float32x4_t
25441 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25442 vrndmq_f32 (float32x4_t __a)
25444 return __builtin_aarch64_floorv4sf (__a);
25447 __extension__ extern __inline float64x2_t
25448 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25449 vrndmq_f64 (float64x2_t __a)
25451 return __builtin_aarch64_floorv2df (__a);
25454 /* vrndn */
25456 __extension__ extern __inline float32x2_t
25457 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25458 vrndn_f32 (float32x2_t __a)
25460 return __builtin_aarch64_frintnv2sf (__a);
25463 __extension__ extern __inline float64x1_t
25464 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25465 vrndn_f64 (float64x1_t __a)
25467 return (float64x1_t) {__builtin_aarch64_frintndf (__a[0])};
25470 __extension__ extern __inline float32x4_t
25471 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25472 vrndnq_f32 (float32x4_t __a)
25474 return __builtin_aarch64_frintnv4sf (__a);
25477 __extension__ extern __inline float64x2_t
25478 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25479 vrndnq_f64 (float64x2_t __a)
25481 return __builtin_aarch64_frintnv2df (__a);
25484 /* vrndp */
25486 __extension__ extern __inline float32x2_t
25487 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25488 vrndp_f32 (float32x2_t __a)
25490 return __builtin_aarch64_ceilv2sf (__a);
25493 __extension__ extern __inline float64x1_t
25494 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25495 vrndp_f64 (float64x1_t __a)
25497 return vset_lane_f64 (__builtin_ceil (vget_lane_f64 (__a, 0)), __a, 0);
25500 __extension__ extern __inline float32x4_t
25501 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25502 vrndpq_f32 (float32x4_t __a)
25504 return __builtin_aarch64_ceilv4sf (__a);
25507 __extension__ extern __inline float64x2_t
25508 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25509 vrndpq_f64 (float64x2_t __a)
25511 return __builtin_aarch64_ceilv2df (__a);
25514 /* vrndx */
25516 __extension__ extern __inline float32x2_t
25517 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25518 vrndx_f32 (float32x2_t __a)
25520 return __builtin_aarch64_rintv2sf (__a);
25523 __extension__ extern __inline float64x1_t
25524 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25525 vrndx_f64 (float64x1_t __a)
25527 return vset_lane_f64 (__builtin_rint (vget_lane_f64 (__a, 0)), __a, 0);
25530 __extension__ extern __inline float32x4_t
25531 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25532 vrndxq_f32 (float32x4_t __a)
25534 return __builtin_aarch64_rintv4sf (__a);
25537 __extension__ extern __inline float64x2_t
25538 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25539 vrndxq_f64 (float64x2_t __a)
25541 return __builtin_aarch64_rintv2df (__a);
25544 /* vrshl */
25546 __extension__ extern __inline int8x8_t
25547 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25548 vrshl_s8 (int8x8_t __a, int8x8_t __b)
25550 return (int8x8_t) __builtin_aarch64_srshlv8qi (__a, __b);
25553 __extension__ extern __inline int16x4_t
25554 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25555 vrshl_s16 (int16x4_t __a, int16x4_t __b)
25557 return (int16x4_t) __builtin_aarch64_srshlv4hi (__a, __b);
25560 __extension__ extern __inline int32x2_t
25561 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25562 vrshl_s32 (int32x2_t __a, int32x2_t __b)
25564 return (int32x2_t) __builtin_aarch64_srshlv2si (__a, __b);
25567 __extension__ extern __inline int64x1_t
25568 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25569 vrshl_s64 (int64x1_t __a, int64x1_t __b)
25571 return (int64x1_t) {__builtin_aarch64_srshldi (__a[0], __b[0])};
25574 __extension__ extern __inline uint8x8_t
25575 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25576 vrshl_u8 (uint8x8_t __a, int8x8_t __b)
25578 return __builtin_aarch64_urshlv8qi_uus (__a, __b);
25581 __extension__ extern __inline uint16x4_t
25582 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25583 vrshl_u16 (uint16x4_t __a, int16x4_t __b)
25585 return __builtin_aarch64_urshlv4hi_uus (__a, __b);
25588 __extension__ extern __inline uint32x2_t
25589 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25590 vrshl_u32 (uint32x2_t __a, int32x2_t __b)
25592 return __builtin_aarch64_urshlv2si_uus (__a, __b);
25595 __extension__ extern __inline uint64x1_t
25596 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25597 vrshl_u64 (uint64x1_t __a, int64x1_t __b)
25599 return (uint64x1_t) {__builtin_aarch64_urshldi_uus (__a[0], __b[0])};
25602 __extension__ extern __inline int8x16_t
25603 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25604 vrshlq_s8 (int8x16_t __a, int8x16_t __b)
25606 return (int8x16_t) __builtin_aarch64_srshlv16qi (__a, __b);
25609 __extension__ extern __inline int16x8_t
25610 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25611 vrshlq_s16 (int16x8_t __a, int16x8_t __b)
25613 return (int16x8_t) __builtin_aarch64_srshlv8hi (__a, __b);
25616 __extension__ extern __inline int32x4_t
25617 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25618 vrshlq_s32 (int32x4_t __a, int32x4_t __b)
25620 return (int32x4_t) __builtin_aarch64_srshlv4si (__a, __b);
25623 __extension__ extern __inline int64x2_t
25624 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25625 vrshlq_s64 (int64x2_t __a, int64x2_t __b)
25627 return (int64x2_t) __builtin_aarch64_srshlv2di (__a, __b);
25630 __extension__ extern __inline uint8x16_t
25631 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25632 vrshlq_u8 (uint8x16_t __a, int8x16_t __b)
25634 return __builtin_aarch64_urshlv16qi_uus (__a, __b);
25637 __extension__ extern __inline uint16x8_t
25638 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25639 vrshlq_u16 (uint16x8_t __a, int16x8_t __b)
25641 return __builtin_aarch64_urshlv8hi_uus (__a, __b);
25644 __extension__ extern __inline uint32x4_t
25645 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25646 vrshlq_u32 (uint32x4_t __a, int32x4_t __b)
25648 return __builtin_aarch64_urshlv4si_uus (__a, __b);
25651 __extension__ extern __inline uint64x2_t
25652 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25653 vrshlq_u64 (uint64x2_t __a, int64x2_t __b)
25655 return __builtin_aarch64_urshlv2di_uus (__a, __b);
25658 __extension__ extern __inline int64_t
25659 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25660 vrshld_s64 (int64_t __a, int64_t __b)
25662 return __builtin_aarch64_srshldi (__a, __b);
25665 __extension__ extern __inline uint64_t
25666 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25667 vrshld_u64 (uint64_t __a, int64_t __b)
25669 return __builtin_aarch64_urshldi_uus (__a, __b);
25672 /* vrshr */
25674 __extension__ extern __inline int8x8_t
25675 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25676 vrshr_n_s8 (int8x8_t __a, const int __b)
25678 return (int8x8_t) __builtin_aarch64_srshr_nv8qi (__a, __b);
25681 __extension__ extern __inline int16x4_t
25682 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25683 vrshr_n_s16 (int16x4_t __a, const int __b)
25685 return (int16x4_t) __builtin_aarch64_srshr_nv4hi (__a, __b);
25688 __extension__ extern __inline int32x2_t
25689 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25690 vrshr_n_s32 (int32x2_t __a, const int __b)
25692 return (int32x2_t) __builtin_aarch64_srshr_nv2si (__a, __b);
25695 __extension__ extern __inline int64x1_t
25696 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25697 vrshr_n_s64 (int64x1_t __a, const int __b)
25699 return (int64x1_t) {__builtin_aarch64_srshr_ndi (__a[0], __b)};
25702 __extension__ extern __inline uint8x8_t
25703 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25704 vrshr_n_u8 (uint8x8_t __a, const int __b)
25706 return __builtin_aarch64_urshr_nv8qi_uus (__a, __b);
25709 __extension__ extern __inline uint16x4_t
25710 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25711 vrshr_n_u16 (uint16x4_t __a, const int __b)
25713 return __builtin_aarch64_urshr_nv4hi_uus (__a, __b);
25716 __extension__ extern __inline uint32x2_t
25717 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25718 vrshr_n_u32 (uint32x2_t __a, const int __b)
25720 return __builtin_aarch64_urshr_nv2si_uus (__a, __b);
25723 __extension__ extern __inline uint64x1_t
25724 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25725 vrshr_n_u64 (uint64x1_t __a, const int __b)
25727 return (uint64x1_t) {__builtin_aarch64_urshr_ndi_uus (__a[0], __b)};
25730 __extension__ extern __inline int8x16_t
25731 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25732 vrshrq_n_s8 (int8x16_t __a, const int __b)
25734 return (int8x16_t) __builtin_aarch64_srshr_nv16qi (__a, __b);
25737 __extension__ extern __inline int16x8_t
25738 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25739 vrshrq_n_s16 (int16x8_t __a, const int __b)
25741 return (int16x8_t) __builtin_aarch64_srshr_nv8hi (__a, __b);
25744 __extension__ extern __inline int32x4_t
25745 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25746 vrshrq_n_s32 (int32x4_t __a, const int __b)
25748 return (int32x4_t) __builtin_aarch64_srshr_nv4si (__a, __b);
25751 __extension__ extern __inline int64x2_t
25752 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25753 vrshrq_n_s64 (int64x2_t __a, const int __b)
25755 return (int64x2_t) __builtin_aarch64_srshr_nv2di (__a, __b);
25758 __extension__ extern __inline uint8x16_t
25759 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25760 vrshrq_n_u8 (uint8x16_t __a, const int __b)
25762 return __builtin_aarch64_urshr_nv16qi_uus (__a, __b);
25765 __extension__ extern __inline uint16x8_t
25766 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25767 vrshrq_n_u16 (uint16x8_t __a, const int __b)
25769 return __builtin_aarch64_urshr_nv8hi_uus (__a, __b);
25772 __extension__ extern __inline uint32x4_t
25773 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25774 vrshrq_n_u32 (uint32x4_t __a, const int __b)
25776 return __builtin_aarch64_urshr_nv4si_uus (__a, __b);
25779 __extension__ extern __inline uint64x2_t
25780 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25781 vrshrq_n_u64 (uint64x2_t __a, const int __b)
25783 return __builtin_aarch64_urshr_nv2di_uus (__a, __b);
25786 __extension__ extern __inline int64_t
25787 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25788 vrshrd_n_s64 (int64_t __a, const int __b)
25790 return __builtin_aarch64_srshr_ndi (__a, __b);
25793 __extension__ extern __inline uint64_t
25794 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25795 vrshrd_n_u64 (uint64_t __a, const int __b)
25797 return __builtin_aarch64_urshr_ndi_uus (__a, __b);
25800 /* vrsqrte. */
25802 __extension__ extern __inline float32_t
25803 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25804 vrsqrtes_f32 (float32_t __a)
25806 return __builtin_aarch64_rsqrtesf (__a);
25809 __extension__ extern __inline float64_t
25810 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25811 vrsqrted_f64 (float64_t __a)
25813 return __builtin_aarch64_rsqrtedf (__a);
25816 __extension__ extern __inline float32x2_t
25817 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25818 vrsqrte_f32 (float32x2_t __a)
25820 return __builtin_aarch64_rsqrtev2sf (__a);
25823 __extension__ extern __inline float64x1_t
25824 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25825 vrsqrte_f64 (float64x1_t __a)
25827 return (float64x1_t) {vrsqrted_f64 (vget_lane_f64 (__a, 0))};
25830 __extension__ extern __inline float32x4_t
25831 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25832 vrsqrteq_f32 (float32x4_t __a)
25834 return __builtin_aarch64_rsqrtev4sf (__a);
25837 __extension__ extern __inline float64x2_t
25838 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25839 vrsqrteq_f64 (float64x2_t __a)
25841 return __builtin_aarch64_rsqrtev2df (__a);
25844 /* vrsqrts. */
25846 __extension__ extern __inline float32_t
25847 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25848 vrsqrtss_f32 (float32_t __a, float32_t __b)
25850 return __builtin_aarch64_rsqrtssf (__a, __b);
25853 __extension__ extern __inline float64_t
25854 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25855 vrsqrtsd_f64 (float64_t __a, float64_t __b)
25857 return __builtin_aarch64_rsqrtsdf (__a, __b);
25860 __extension__ extern __inline float32x2_t
25861 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25862 vrsqrts_f32 (float32x2_t __a, float32x2_t __b)
25864 return __builtin_aarch64_rsqrtsv2sf (__a, __b);
25867 __extension__ extern __inline float64x1_t
25868 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25869 vrsqrts_f64 (float64x1_t __a, float64x1_t __b)
25871 return (float64x1_t) {vrsqrtsd_f64 (vget_lane_f64 (__a, 0),
25872 vget_lane_f64 (__b, 0))};
25875 __extension__ extern __inline float32x4_t
25876 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25877 vrsqrtsq_f32 (float32x4_t __a, float32x4_t __b)
25879 return __builtin_aarch64_rsqrtsv4sf (__a, __b);
25882 __extension__ extern __inline float64x2_t
25883 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25884 vrsqrtsq_f64 (float64x2_t __a, float64x2_t __b)
25886 return __builtin_aarch64_rsqrtsv2df (__a, __b);
25889 /* vrsra */
25891 __extension__ extern __inline int8x8_t
25892 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25893 vrsra_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
25895 return (int8x8_t) __builtin_aarch64_srsra_nv8qi (__a, __b, __c);
25898 __extension__ extern __inline int16x4_t
25899 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25900 vrsra_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
25902 return (int16x4_t) __builtin_aarch64_srsra_nv4hi (__a, __b, __c);
25905 __extension__ extern __inline int32x2_t
25906 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25907 vrsra_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
25909 return (int32x2_t) __builtin_aarch64_srsra_nv2si (__a, __b, __c);
25912 __extension__ extern __inline int64x1_t
25913 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25914 vrsra_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
25916 return (int64x1_t) {__builtin_aarch64_srsra_ndi (__a[0], __b[0], __c)};
25919 __extension__ extern __inline uint8x8_t
25920 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25921 vrsra_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
25923 return __builtin_aarch64_ursra_nv8qi_uuus (__a, __b, __c);
25926 __extension__ extern __inline uint16x4_t
25927 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25928 vrsra_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
25930 return __builtin_aarch64_ursra_nv4hi_uuus (__a, __b, __c);
25933 __extension__ extern __inline uint32x2_t
25934 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25935 vrsra_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
25937 return __builtin_aarch64_ursra_nv2si_uuus (__a, __b, __c);
25940 __extension__ extern __inline uint64x1_t
25941 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25942 vrsra_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
25944 return (uint64x1_t) {__builtin_aarch64_ursra_ndi_uuus (__a[0], __b[0], __c)};
25947 __extension__ extern __inline int8x16_t
25948 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25949 vrsraq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
25951 return (int8x16_t) __builtin_aarch64_srsra_nv16qi (__a, __b, __c);
25954 __extension__ extern __inline int16x8_t
25955 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25956 vrsraq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
25958 return (int16x8_t) __builtin_aarch64_srsra_nv8hi (__a, __b, __c);
25961 __extension__ extern __inline int32x4_t
25962 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25963 vrsraq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
25965 return (int32x4_t) __builtin_aarch64_srsra_nv4si (__a, __b, __c);
25968 __extension__ extern __inline int64x2_t
25969 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25970 vrsraq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
25972 return (int64x2_t) __builtin_aarch64_srsra_nv2di (__a, __b, __c);
25975 __extension__ extern __inline uint8x16_t
25976 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25977 vrsraq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
25979 return __builtin_aarch64_ursra_nv16qi_uuus (__a, __b, __c);
25982 __extension__ extern __inline uint16x8_t
25983 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25984 vrsraq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
25986 return __builtin_aarch64_ursra_nv8hi_uuus (__a, __b, __c);
25989 __extension__ extern __inline uint32x4_t
25990 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25991 vrsraq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
25993 return __builtin_aarch64_ursra_nv4si_uuus (__a, __b, __c);
25996 __extension__ extern __inline uint64x2_t
25997 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25998 vrsraq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
26000 return __builtin_aarch64_ursra_nv2di_uuus (__a, __b, __c);
26003 __extension__ extern __inline int64_t
26004 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26005 vrsrad_n_s64 (int64_t __a, int64_t __b, const int __c)
26007 return __builtin_aarch64_srsra_ndi (__a, __b, __c);
26010 __extension__ extern __inline uint64_t
26011 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26012 vrsrad_n_u64 (uint64_t __a, uint64_t __b, const int __c)
26014 return __builtin_aarch64_ursra_ndi_uuus (__a, __b, __c);
26017 #pragma GCC push_options
26018 #pragma GCC target ("+nothing+crypto")
26020 /* vsha1 */
26022 __extension__ extern __inline uint32x4_t
26023 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26024 vsha1cq_u32 (uint32x4_t hash_abcd, uint32_t hash_e, uint32x4_t wk)
26026 return __builtin_aarch64_crypto_sha1cv4si_uuuu (hash_abcd, hash_e, wk);
26029 __extension__ extern __inline uint32x4_t
26030 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26031 vsha1mq_u32 (uint32x4_t hash_abcd, uint32_t hash_e, uint32x4_t wk)
26033 return __builtin_aarch64_crypto_sha1mv4si_uuuu (hash_abcd, hash_e, wk);
26036 __extension__ extern __inline uint32x4_t
26037 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26038 vsha1pq_u32 (uint32x4_t hash_abcd, uint32_t hash_e, uint32x4_t wk)
26040 return __builtin_aarch64_crypto_sha1pv4si_uuuu (hash_abcd, hash_e, wk);
26043 __extension__ extern __inline uint32_t
26044 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26045 vsha1h_u32 (uint32_t hash_e)
26047 return __builtin_aarch64_crypto_sha1hsi_uu (hash_e);
26050 __extension__ extern __inline uint32x4_t
26051 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26052 vsha1su0q_u32 (uint32x4_t w0_3, uint32x4_t w4_7, uint32x4_t w8_11)
26054 return __builtin_aarch64_crypto_sha1su0v4si_uuuu (w0_3, w4_7, w8_11);
26057 __extension__ extern __inline uint32x4_t
26058 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26059 vsha1su1q_u32 (uint32x4_t tw0_3, uint32x4_t w12_15)
26061 return __builtin_aarch64_crypto_sha1su1v4si_uuu (tw0_3, w12_15);
26064 __extension__ extern __inline uint32x4_t
26065 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26066 vsha256hq_u32 (uint32x4_t hash_abcd, uint32x4_t hash_efgh, uint32x4_t wk)
26068 return __builtin_aarch64_crypto_sha256hv4si_uuuu (hash_abcd, hash_efgh, wk);
26071 __extension__ extern __inline uint32x4_t
26072 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26073 vsha256h2q_u32 (uint32x4_t hash_efgh, uint32x4_t hash_abcd, uint32x4_t wk)
26075 return __builtin_aarch64_crypto_sha256h2v4si_uuuu (hash_efgh, hash_abcd, wk);
26078 __extension__ extern __inline uint32x4_t
26079 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26080 vsha256su0q_u32 (uint32x4_t w0_3, uint32x4_t w4_7)
26082 return __builtin_aarch64_crypto_sha256su0v4si_uuu (w0_3, w4_7);
26085 __extension__ extern __inline uint32x4_t
26086 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26087 vsha256su1q_u32 (uint32x4_t tw0_3, uint32x4_t w8_11, uint32x4_t w12_15)
26089 return __builtin_aarch64_crypto_sha256su1v4si_uuuu (tw0_3, w8_11, w12_15);
26092 __extension__ extern __inline poly128_t
26093 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26094 vmull_p64 (poly64_t a, poly64_t b)
26096 return
26097 __builtin_aarch64_crypto_pmulldi_ppp (a, b);
26100 __extension__ extern __inline poly128_t
26101 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26102 vmull_high_p64 (poly64x2_t a, poly64x2_t b)
26104 return __builtin_aarch64_crypto_pmullv2di_ppp (a, b);
26107 #pragma GCC pop_options
26109 /* vshl */
26111 __extension__ extern __inline int8x8_t
26112 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26113 vshl_n_s8 (int8x8_t __a, const int __b)
26115 return (int8x8_t) __builtin_aarch64_ashlv8qi (__a, __b);
26118 __extension__ extern __inline int16x4_t
26119 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26120 vshl_n_s16 (int16x4_t __a, const int __b)
26122 return (int16x4_t) __builtin_aarch64_ashlv4hi (__a, __b);
26125 __extension__ extern __inline int32x2_t
26126 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26127 vshl_n_s32 (int32x2_t __a, const int __b)
26129 return (int32x2_t) __builtin_aarch64_ashlv2si (__a, __b);
26132 __extension__ extern __inline int64x1_t
26133 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26134 vshl_n_s64 (int64x1_t __a, const int __b)
26136 return (int64x1_t) {__builtin_aarch64_ashldi (__a[0], __b)};
26139 __extension__ extern __inline uint8x8_t
26140 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26141 vshl_n_u8 (uint8x8_t __a, const int __b)
26143 return (uint8x8_t) __builtin_aarch64_ashlv8qi ((int8x8_t) __a, __b);
26146 __extension__ extern __inline uint16x4_t
26147 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26148 vshl_n_u16 (uint16x4_t __a, const int __b)
26150 return (uint16x4_t) __builtin_aarch64_ashlv4hi ((int16x4_t) __a, __b);
26153 __extension__ extern __inline uint32x2_t
26154 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26155 vshl_n_u32 (uint32x2_t __a, const int __b)
26157 return (uint32x2_t) __builtin_aarch64_ashlv2si ((int32x2_t) __a, __b);
26160 __extension__ extern __inline uint64x1_t
26161 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26162 vshl_n_u64 (uint64x1_t __a, const int __b)
26164 return (uint64x1_t) {__builtin_aarch64_ashldi ((int64_t) __a[0], __b)};
26167 __extension__ extern __inline int8x16_t
26168 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26169 vshlq_n_s8 (int8x16_t __a, const int __b)
26171 return (int8x16_t) __builtin_aarch64_ashlv16qi (__a, __b);
26174 __extension__ extern __inline int16x8_t
26175 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26176 vshlq_n_s16 (int16x8_t __a, const int __b)
26178 return (int16x8_t) __builtin_aarch64_ashlv8hi (__a, __b);
26181 __extension__ extern __inline int32x4_t
26182 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26183 vshlq_n_s32 (int32x4_t __a, const int __b)
26185 return (int32x4_t) __builtin_aarch64_ashlv4si (__a, __b);
26188 __extension__ extern __inline int64x2_t
26189 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26190 vshlq_n_s64 (int64x2_t __a, const int __b)
26192 return (int64x2_t) __builtin_aarch64_ashlv2di (__a, __b);
26195 __extension__ extern __inline uint8x16_t
26196 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26197 vshlq_n_u8 (uint8x16_t __a, const int __b)
26199 return (uint8x16_t) __builtin_aarch64_ashlv16qi ((int8x16_t) __a, __b);
26202 __extension__ extern __inline uint16x8_t
26203 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26204 vshlq_n_u16 (uint16x8_t __a, const int __b)
26206 return (uint16x8_t) __builtin_aarch64_ashlv8hi ((int16x8_t) __a, __b);
26209 __extension__ extern __inline uint32x4_t
26210 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26211 vshlq_n_u32 (uint32x4_t __a, const int __b)
26213 return (uint32x4_t) __builtin_aarch64_ashlv4si ((int32x4_t) __a, __b);
26216 __extension__ extern __inline uint64x2_t
26217 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26218 vshlq_n_u64 (uint64x2_t __a, const int __b)
26220 return (uint64x2_t) __builtin_aarch64_ashlv2di ((int64x2_t) __a, __b);
26223 __extension__ extern __inline int64_t
26224 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26225 vshld_n_s64 (int64_t __a, const int __b)
26227 return __builtin_aarch64_ashldi (__a, __b);
26230 __extension__ extern __inline uint64_t
26231 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26232 vshld_n_u64 (uint64_t __a, const int __b)
26234 return (uint64_t) __builtin_aarch64_ashldi (__a, __b);
26237 __extension__ extern __inline int8x8_t
26238 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26239 vshl_s8 (int8x8_t __a, int8x8_t __b)
26241 return __builtin_aarch64_sshlv8qi (__a, __b);
26244 __extension__ extern __inline int16x4_t
26245 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26246 vshl_s16 (int16x4_t __a, int16x4_t __b)
26248 return __builtin_aarch64_sshlv4hi (__a, __b);
26251 __extension__ extern __inline int32x2_t
26252 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26253 vshl_s32 (int32x2_t __a, int32x2_t __b)
26255 return __builtin_aarch64_sshlv2si (__a, __b);
26258 __extension__ extern __inline int64x1_t
26259 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26260 vshl_s64 (int64x1_t __a, int64x1_t __b)
26262 return (int64x1_t) {__builtin_aarch64_sshldi (__a[0], __b[0])};
26265 __extension__ extern __inline uint8x8_t
26266 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26267 vshl_u8 (uint8x8_t __a, int8x8_t __b)
26269 return __builtin_aarch64_ushlv8qi_uus (__a, __b);
26272 __extension__ extern __inline uint16x4_t
26273 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26274 vshl_u16 (uint16x4_t __a, int16x4_t __b)
26276 return __builtin_aarch64_ushlv4hi_uus (__a, __b);
26279 __extension__ extern __inline uint32x2_t
26280 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26281 vshl_u32 (uint32x2_t __a, int32x2_t __b)
26283 return __builtin_aarch64_ushlv2si_uus (__a, __b);
26286 __extension__ extern __inline uint64x1_t
26287 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26288 vshl_u64 (uint64x1_t __a, int64x1_t __b)
26290 return (uint64x1_t) {__builtin_aarch64_ushldi_uus (__a[0], __b[0])};
26293 __extension__ extern __inline int8x16_t
26294 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26295 vshlq_s8 (int8x16_t __a, int8x16_t __b)
26297 return __builtin_aarch64_sshlv16qi (__a, __b);
26300 __extension__ extern __inline int16x8_t
26301 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26302 vshlq_s16 (int16x8_t __a, int16x8_t __b)
26304 return __builtin_aarch64_sshlv8hi (__a, __b);
26307 __extension__ extern __inline int32x4_t
26308 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26309 vshlq_s32 (int32x4_t __a, int32x4_t __b)
26311 return __builtin_aarch64_sshlv4si (__a, __b);
26314 __extension__ extern __inline int64x2_t
26315 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26316 vshlq_s64 (int64x2_t __a, int64x2_t __b)
26318 return __builtin_aarch64_sshlv2di (__a, __b);
26321 __extension__ extern __inline uint8x16_t
26322 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26323 vshlq_u8 (uint8x16_t __a, int8x16_t __b)
26325 return __builtin_aarch64_ushlv16qi_uus (__a, __b);
26328 __extension__ extern __inline uint16x8_t
26329 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26330 vshlq_u16 (uint16x8_t __a, int16x8_t __b)
26332 return __builtin_aarch64_ushlv8hi_uus (__a, __b);
26335 __extension__ extern __inline uint32x4_t
26336 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26337 vshlq_u32 (uint32x4_t __a, int32x4_t __b)
26339 return __builtin_aarch64_ushlv4si_uus (__a, __b);
26342 __extension__ extern __inline uint64x2_t
26343 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26344 vshlq_u64 (uint64x2_t __a, int64x2_t __b)
26346 return __builtin_aarch64_ushlv2di_uus (__a, __b);
26349 __extension__ extern __inline int64_t
26350 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26351 vshld_s64 (int64_t __a, int64_t __b)
26353 return __builtin_aarch64_sshldi (__a, __b);
26356 __extension__ extern __inline uint64_t
26357 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26358 vshld_u64 (uint64_t __a, uint64_t __b)
26360 return __builtin_aarch64_ushldi_uus (__a, __b);
26363 __extension__ extern __inline int16x8_t
26364 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26365 vshll_high_n_s8 (int8x16_t __a, const int __b)
26367 return __builtin_aarch64_sshll2_nv16qi (__a, __b);
26370 __extension__ extern __inline int32x4_t
26371 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26372 vshll_high_n_s16 (int16x8_t __a, const int __b)
26374 return __builtin_aarch64_sshll2_nv8hi (__a, __b);
26377 __extension__ extern __inline int64x2_t
26378 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26379 vshll_high_n_s32 (int32x4_t __a, const int __b)
26381 return __builtin_aarch64_sshll2_nv4si (__a, __b);
26384 __extension__ extern __inline uint16x8_t
26385 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26386 vshll_high_n_u8 (uint8x16_t __a, const int __b)
26388 return (uint16x8_t) __builtin_aarch64_ushll2_nv16qi ((int8x16_t) __a, __b);
26391 __extension__ extern __inline uint32x4_t
26392 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26393 vshll_high_n_u16 (uint16x8_t __a, const int __b)
26395 return (uint32x4_t) __builtin_aarch64_ushll2_nv8hi ((int16x8_t) __a, __b);
26398 __extension__ extern __inline uint64x2_t
26399 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26400 vshll_high_n_u32 (uint32x4_t __a, const int __b)
26402 return (uint64x2_t) __builtin_aarch64_ushll2_nv4si ((int32x4_t) __a, __b);
26405 __extension__ extern __inline int16x8_t
26406 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26407 vshll_n_s8 (int8x8_t __a, const int __b)
26409 return __builtin_aarch64_sshll_nv8qi (__a, __b);
26412 __extension__ extern __inline int32x4_t
26413 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26414 vshll_n_s16 (int16x4_t __a, const int __b)
26416 return __builtin_aarch64_sshll_nv4hi (__a, __b);
26419 __extension__ extern __inline int64x2_t
26420 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26421 vshll_n_s32 (int32x2_t __a, const int __b)
26423 return __builtin_aarch64_sshll_nv2si (__a, __b);
26426 __extension__ extern __inline uint16x8_t
26427 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26428 vshll_n_u8 (uint8x8_t __a, const int __b)
26430 return __builtin_aarch64_ushll_nv8qi_uus (__a, __b);
26433 __extension__ extern __inline uint32x4_t
26434 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26435 vshll_n_u16 (uint16x4_t __a, const int __b)
26437 return __builtin_aarch64_ushll_nv4hi_uus (__a, __b);
26440 __extension__ extern __inline uint64x2_t
26441 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26442 vshll_n_u32 (uint32x2_t __a, const int __b)
26444 return __builtin_aarch64_ushll_nv2si_uus (__a, __b);
26447 /* vshr */
26449 __extension__ extern __inline int8x8_t
26450 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26451 vshr_n_s8 (int8x8_t __a, const int __b)
26453 return (int8x8_t) __builtin_aarch64_ashrv8qi (__a, __b);
26456 __extension__ extern __inline int16x4_t
26457 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26458 vshr_n_s16 (int16x4_t __a, const int __b)
26460 return (int16x4_t) __builtin_aarch64_ashrv4hi (__a, __b);
26463 __extension__ extern __inline int32x2_t
26464 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26465 vshr_n_s32 (int32x2_t __a, const int __b)
26467 return (int32x2_t) __builtin_aarch64_ashrv2si (__a, __b);
26470 __extension__ extern __inline int64x1_t
26471 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26472 vshr_n_s64 (int64x1_t __a, const int __b)
26474 return (int64x1_t) {__builtin_aarch64_ashr_simddi (__a[0], __b)};
26477 __extension__ extern __inline uint8x8_t
26478 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26479 vshr_n_u8 (uint8x8_t __a, const int __b)
26481 return (uint8x8_t) __builtin_aarch64_lshrv8qi ((int8x8_t) __a, __b);
26484 __extension__ extern __inline uint16x4_t
26485 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26486 vshr_n_u16 (uint16x4_t __a, const int __b)
26488 return (uint16x4_t) __builtin_aarch64_lshrv4hi ((int16x4_t) __a, __b);
26491 __extension__ extern __inline uint32x2_t
26492 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26493 vshr_n_u32 (uint32x2_t __a, const int __b)
26495 return (uint32x2_t) __builtin_aarch64_lshrv2si ((int32x2_t) __a, __b);
26498 __extension__ extern __inline uint64x1_t
26499 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26500 vshr_n_u64 (uint64x1_t __a, const int __b)
26502 return (uint64x1_t) {__builtin_aarch64_lshr_simddi_uus ( __a[0], __b)};
26505 __extension__ extern __inline int8x16_t
26506 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26507 vshrq_n_s8 (int8x16_t __a, const int __b)
26509 return (int8x16_t) __builtin_aarch64_ashrv16qi (__a, __b);
26512 __extension__ extern __inline int16x8_t
26513 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26514 vshrq_n_s16 (int16x8_t __a, const int __b)
26516 return (int16x8_t) __builtin_aarch64_ashrv8hi (__a, __b);
26519 __extension__ extern __inline int32x4_t
26520 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26521 vshrq_n_s32 (int32x4_t __a, const int __b)
26523 return (int32x4_t) __builtin_aarch64_ashrv4si (__a, __b);
26526 __extension__ extern __inline int64x2_t
26527 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26528 vshrq_n_s64 (int64x2_t __a, const int __b)
26530 return (int64x2_t) __builtin_aarch64_ashrv2di (__a, __b);
26533 __extension__ extern __inline uint8x16_t
26534 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26535 vshrq_n_u8 (uint8x16_t __a, const int __b)
26537 return (uint8x16_t) __builtin_aarch64_lshrv16qi ((int8x16_t) __a, __b);
26540 __extension__ extern __inline uint16x8_t
26541 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26542 vshrq_n_u16 (uint16x8_t __a, const int __b)
26544 return (uint16x8_t) __builtin_aarch64_lshrv8hi ((int16x8_t) __a, __b);
26547 __extension__ extern __inline uint32x4_t
26548 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26549 vshrq_n_u32 (uint32x4_t __a, const int __b)
26551 return (uint32x4_t) __builtin_aarch64_lshrv4si ((int32x4_t) __a, __b);
26554 __extension__ extern __inline uint64x2_t
26555 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26556 vshrq_n_u64 (uint64x2_t __a, const int __b)
26558 return (uint64x2_t) __builtin_aarch64_lshrv2di ((int64x2_t) __a, __b);
26561 __extension__ extern __inline int64_t
26562 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26563 vshrd_n_s64 (int64_t __a, const int __b)
26565 return __builtin_aarch64_ashr_simddi (__a, __b);
26568 __extension__ extern __inline uint64_t
26569 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26570 vshrd_n_u64 (uint64_t __a, const int __b)
26572 return __builtin_aarch64_lshr_simddi_uus (__a, __b);
26575 /* vsli */
26577 __extension__ extern __inline int8x8_t
26578 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26579 vsli_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
26581 return (int8x8_t) __builtin_aarch64_ssli_nv8qi (__a, __b, __c);
26584 __extension__ extern __inline int16x4_t
26585 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26586 vsli_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
26588 return (int16x4_t) __builtin_aarch64_ssli_nv4hi (__a, __b, __c);
26591 __extension__ extern __inline int32x2_t
26592 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26593 vsli_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
26595 return (int32x2_t) __builtin_aarch64_ssli_nv2si (__a, __b, __c);
26598 __extension__ extern __inline int64x1_t
26599 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26600 vsli_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
26602 return (int64x1_t) {__builtin_aarch64_ssli_ndi (__a[0], __b[0], __c)};
26605 __extension__ extern __inline uint8x8_t
26606 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26607 vsli_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
26609 return __builtin_aarch64_usli_nv8qi_uuus (__a, __b, __c);
26612 __extension__ extern __inline uint16x4_t
26613 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26614 vsli_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
26616 return __builtin_aarch64_usli_nv4hi_uuus (__a, __b, __c);
26619 __extension__ extern __inline uint32x2_t
26620 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26621 vsli_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
26623 return __builtin_aarch64_usli_nv2si_uuus (__a, __b, __c);
26626 __extension__ extern __inline uint64x1_t
26627 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26628 vsli_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
26630 return (uint64x1_t) {__builtin_aarch64_usli_ndi_uuus (__a[0], __b[0], __c)};
26633 __extension__ extern __inline poly64x1_t
26634 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26635 vsli_n_p64 (poly64x1_t __a, poly64x1_t __b, const int __c)
26637 return (poly64x1_t) {__builtin_aarch64_ssli_ndi_ppps (__a[0], __b[0], __c)};
26640 __extension__ extern __inline int8x16_t
26641 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26642 vsliq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
26644 return (int8x16_t) __builtin_aarch64_ssli_nv16qi (__a, __b, __c);
26647 __extension__ extern __inline int16x8_t
26648 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26649 vsliq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
26651 return (int16x8_t) __builtin_aarch64_ssli_nv8hi (__a, __b, __c);
26654 __extension__ extern __inline int32x4_t
26655 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26656 vsliq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
26658 return (int32x4_t) __builtin_aarch64_ssli_nv4si (__a, __b, __c);
26661 __extension__ extern __inline int64x2_t
26662 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26663 vsliq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
26665 return (int64x2_t) __builtin_aarch64_ssli_nv2di (__a, __b, __c);
26668 __extension__ extern __inline uint8x16_t
26669 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26670 vsliq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
26672 return __builtin_aarch64_usli_nv16qi_uuus (__a, __b, __c);
26675 __extension__ extern __inline uint16x8_t
26676 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26677 vsliq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
26679 return __builtin_aarch64_usli_nv8hi_uuus (__a, __b, __c);
26682 __extension__ extern __inline uint32x4_t
26683 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26684 vsliq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
26686 return __builtin_aarch64_usli_nv4si_uuus (__a, __b, __c);
26689 __extension__ extern __inline uint64x2_t
26690 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26691 vsliq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
26693 return __builtin_aarch64_usli_nv2di_uuus (__a, __b, __c);
26696 __extension__ extern __inline poly64x2_t
26697 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26698 vsliq_n_p64 (poly64x2_t __a, poly64x2_t __b, const int __c)
26700 return __builtin_aarch64_ssli_nv2di_ppps (__a, __b, __c);
26703 __extension__ extern __inline int64_t
26704 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26705 vslid_n_s64 (int64_t __a, int64_t __b, const int __c)
26707 return __builtin_aarch64_ssli_ndi (__a, __b, __c);
26710 __extension__ extern __inline uint64_t
26711 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26712 vslid_n_u64 (uint64_t __a, uint64_t __b, const int __c)
26714 return __builtin_aarch64_usli_ndi_uuus (__a, __b, __c);
26717 /* vsqadd */
26719 __extension__ extern __inline uint8x8_t
26720 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26721 vsqadd_u8 (uint8x8_t __a, int8x8_t __b)
26723 return __builtin_aarch64_usqaddv8qi_uus (__a, __b);
26726 __extension__ extern __inline uint16x4_t
26727 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26728 vsqadd_u16 (uint16x4_t __a, int16x4_t __b)
26730 return __builtin_aarch64_usqaddv4hi_uus (__a, __b);
26733 __extension__ extern __inline uint32x2_t
26734 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26735 vsqadd_u32 (uint32x2_t __a, int32x2_t __b)
26737 return __builtin_aarch64_usqaddv2si_uus (__a, __b);
26740 __extension__ extern __inline uint64x1_t
26741 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26742 vsqadd_u64 (uint64x1_t __a, int64x1_t __b)
26744 return (uint64x1_t) {__builtin_aarch64_usqadddi_uus (__a[0], __b[0])};
26747 __extension__ extern __inline uint8x16_t
26748 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26749 vsqaddq_u8 (uint8x16_t __a, int8x16_t __b)
26751 return __builtin_aarch64_usqaddv16qi_uus (__a, __b);
26754 __extension__ extern __inline uint16x8_t
26755 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26756 vsqaddq_u16 (uint16x8_t __a, int16x8_t __b)
26758 return __builtin_aarch64_usqaddv8hi_uus (__a, __b);
26761 __extension__ extern __inline uint32x4_t
26762 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26763 vsqaddq_u32 (uint32x4_t __a, int32x4_t __b)
26765 return __builtin_aarch64_usqaddv4si_uus (__a, __b);
26768 __extension__ extern __inline uint64x2_t
26769 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26770 vsqaddq_u64 (uint64x2_t __a, int64x2_t __b)
26772 return __builtin_aarch64_usqaddv2di_uus (__a, __b);
26775 __extension__ extern __inline uint8_t
26776 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26777 vsqaddb_u8 (uint8_t __a, int8_t __b)
26779 return __builtin_aarch64_usqaddqi_uus (__a, __b);
26782 __extension__ extern __inline uint16_t
26783 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26784 vsqaddh_u16 (uint16_t __a, int16_t __b)
26786 return __builtin_aarch64_usqaddhi_uus (__a, __b);
26789 __extension__ extern __inline uint32_t
26790 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26791 vsqadds_u32 (uint32_t __a, int32_t __b)
26793 return __builtin_aarch64_usqaddsi_uus (__a, __b);
26796 __extension__ extern __inline uint64_t
26797 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26798 vsqaddd_u64 (uint64_t __a, int64_t __b)
26800 return __builtin_aarch64_usqadddi_uus (__a, __b);
26803 /* vsqrt */
26804 __extension__ extern __inline float32x2_t
26805 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26806 vsqrt_f32 (float32x2_t a)
26808 return __builtin_aarch64_sqrtv2sf (a);
26811 __extension__ extern __inline float32x4_t
26812 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26813 vsqrtq_f32 (float32x4_t a)
26815 return __builtin_aarch64_sqrtv4sf (a);
26818 __extension__ extern __inline float64x1_t
26819 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26820 vsqrt_f64 (float64x1_t a)
26822 return (float64x1_t) { __builtin_aarch64_sqrtdf (a[0]) };
26825 __extension__ extern __inline float64x2_t
26826 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26827 vsqrtq_f64 (float64x2_t a)
26829 return __builtin_aarch64_sqrtv2df (a);
26832 /* vsra */
26834 __extension__ extern __inline int8x8_t
26835 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26836 vsra_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
26838 return (int8x8_t) __builtin_aarch64_ssra_nv8qi (__a, __b, __c);
26841 __extension__ extern __inline int16x4_t
26842 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26843 vsra_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
26845 return (int16x4_t) __builtin_aarch64_ssra_nv4hi (__a, __b, __c);
26848 __extension__ extern __inline int32x2_t
26849 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26850 vsra_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
26852 return (int32x2_t) __builtin_aarch64_ssra_nv2si (__a, __b, __c);
26855 __extension__ extern __inline int64x1_t
26856 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26857 vsra_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
26859 return (int64x1_t) {__builtin_aarch64_ssra_ndi (__a[0], __b[0], __c)};
26862 __extension__ extern __inline uint8x8_t
26863 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26864 vsra_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
26866 return __builtin_aarch64_usra_nv8qi_uuus (__a, __b, __c);
26869 __extension__ extern __inline uint16x4_t
26870 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26871 vsra_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
26873 return __builtin_aarch64_usra_nv4hi_uuus (__a, __b, __c);
26876 __extension__ extern __inline uint32x2_t
26877 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26878 vsra_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
26880 return __builtin_aarch64_usra_nv2si_uuus (__a, __b, __c);
26883 __extension__ extern __inline uint64x1_t
26884 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26885 vsra_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
26887 return (uint64x1_t) {__builtin_aarch64_usra_ndi_uuus (__a[0], __b[0], __c)};
26890 __extension__ extern __inline int8x16_t
26891 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26892 vsraq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
26894 return (int8x16_t) __builtin_aarch64_ssra_nv16qi (__a, __b, __c);
26897 __extension__ extern __inline int16x8_t
26898 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26899 vsraq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
26901 return (int16x8_t) __builtin_aarch64_ssra_nv8hi (__a, __b, __c);
26904 __extension__ extern __inline int32x4_t
26905 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26906 vsraq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
26908 return (int32x4_t) __builtin_aarch64_ssra_nv4si (__a, __b, __c);
26911 __extension__ extern __inline int64x2_t
26912 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26913 vsraq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
26915 return (int64x2_t) __builtin_aarch64_ssra_nv2di (__a, __b, __c);
26918 __extension__ extern __inline uint8x16_t
26919 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26920 vsraq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
26922 return __builtin_aarch64_usra_nv16qi_uuus (__a, __b, __c);
26925 __extension__ extern __inline uint16x8_t
26926 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26927 vsraq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
26929 return __builtin_aarch64_usra_nv8hi_uuus (__a, __b, __c);
26932 __extension__ extern __inline uint32x4_t
26933 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26934 vsraq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
26936 return __builtin_aarch64_usra_nv4si_uuus (__a, __b, __c);
26939 __extension__ extern __inline uint64x2_t
26940 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26941 vsraq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
26943 return __builtin_aarch64_usra_nv2di_uuus (__a, __b, __c);
26946 __extension__ extern __inline int64_t
26947 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26948 vsrad_n_s64 (int64_t __a, int64_t __b, const int __c)
26950 return __builtin_aarch64_ssra_ndi (__a, __b, __c);
26953 __extension__ extern __inline uint64_t
26954 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26955 vsrad_n_u64 (uint64_t __a, uint64_t __b, const int __c)
26957 return __builtin_aarch64_usra_ndi_uuus (__a, __b, __c);
26960 /* vsri */
26962 __extension__ extern __inline int8x8_t
26963 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26964 vsri_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
26966 return (int8x8_t) __builtin_aarch64_ssri_nv8qi (__a, __b, __c);
26969 __extension__ extern __inline int16x4_t
26970 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26971 vsri_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
26973 return (int16x4_t) __builtin_aarch64_ssri_nv4hi (__a, __b, __c);
26976 __extension__ extern __inline int32x2_t
26977 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26978 vsri_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
26980 return (int32x2_t) __builtin_aarch64_ssri_nv2si (__a, __b, __c);
26983 __extension__ extern __inline int64x1_t
26984 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26985 vsri_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
26987 return (int64x1_t) {__builtin_aarch64_ssri_ndi (__a[0], __b[0], __c)};
26990 __extension__ extern __inline uint8x8_t
26991 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26992 vsri_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
26994 return __builtin_aarch64_usri_nv8qi_uuus (__a, __b, __c);
26997 __extension__ extern __inline uint16x4_t
26998 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26999 vsri_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
27001 return __builtin_aarch64_usri_nv4hi_uuus (__a, __b, __c);
27004 __extension__ extern __inline uint32x2_t
27005 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27006 vsri_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
27008 return __builtin_aarch64_usri_nv2si_uuus (__a, __b, __c);
27011 __extension__ extern __inline uint64x1_t
27012 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27013 vsri_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
27015 return (uint64x1_t) {__builtin_aarch64_usri_ndi_uuus (__a[0], __b[0], __c)};
27018 __extension__ extern __inline int8x16_t
27019 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27020 vsriq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
27022 return (int8x16_t) __builtin_aarch64_ssri_nv16qi (__a, __b, __c);
27025 __extension__ extern __inline int16x8_t
27026 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27027 vsriq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
27029 return (int16x8_t) __builtin_aarch64_ssri_nv8hi (__a, __b, __c);
27032 __extension__ extern __inline int32x4_t
27033 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27034 vsriq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
27036 return (int32x4_t) __builtin_aarch64_ssri_nv4si (__a, __b, __c);
27039 __extension__ extern __inline int64x2_t
27040 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27041 vsriq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
27043 return (int64x2_t) __builtin_aarch64_ssri_nv2di (__a, __b, __c);
27046 __extension__ extern __inline uint8x16_t
27047 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27048 vsriq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
27050 return __builtin_aarch64_usri_nv16qi_uuus (__a, __b, __c);
27053 __extension__ extern __inline uint16x8_t
27054 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27055 vsriq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
27057 return __builtin_aarch64_usri_nv8hi_uuus (__a, __b, __c);
27060 __extension__ extern __inline uint32x4_t
27061 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27062 vsriq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
27064 return __builtin_aarch64_usri_nv4si_uuus (__a, __b, __c);
27067 __extension__ extern __inline uint64x2_t
27068 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27069 vsriq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
27071 return __builtin_aarch64_usri_nv2di_uuus (__a, __b, __c);
27074 __extension__ extern __inline int64_t
27075 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27076 vsrid_n_s64 (int64_t __a, int64_t __b, const int __c)
27078 return __builtin_aarch64_ssri_ndi (__a, __b, __c);
27081 __extension__ extern __inline uint64_t
27082 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27083 vsrid_n_u64 (uint64_t __a, uint64_t __b, const int __c)
27085 return __builtin_aarch64_usri_ndi_uuus (__a, __b, __c);
27088 /* vst1 */
27090 __extension__ extern __inline void
27091 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27092 vst1_f16 (float16_t *__a, float16x4_t __b)
27094 __builtin_aarch64_st1v4hf (__a, __b);
27097 __extension__ extern __inline void
27098 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27099 vst1_f32 (float32_t *a, float32x2_t b)
27101 __builtin_aarch64_st1v2sf ((__builtin_aarch64_simd_sf *) a, b);
27104 __extension__ extern __inline void
27105 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27106 vst1_f64 (float64_t *a, float64x1_t b)
27108 *a = b[0];
27111 __extension__ extern __inline void
27112 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27113 vst1_p8 (poly8_t *a, poly8x8_t b)
27115 __builtin_aarch64_st1v8qi ((__builtin_aarch64_simd_qi *) a,
27116 (int8x8_t) b);
27119 __extension__ extern __inline void
27120 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27121 vst1_p16 (poly16_t *a, poly16x4_t b)
27123 __builtin_aarch64_st1v4hi ((__builtin_aarch64_simd_hi *) a,
27124 (int16x4_t) b);
27127 __extension__ extern __inline void
27128 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27129 vst1_p64 (poly64_t *a, poly64x1_t b)
27131 *a = b[0];
27134 __extension__ extern __inline void
27135 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27136 vst1_s8 (int8_t *a, int8x8_t b)
27138 __builtin_aarch64_st1v8qi ((__builtin_aarch64_simd_qi *) a, b);
27141 __extension__ extern __inline void
27142 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27143 vst1_s16 (int16_t *a, int16x4_t b)
27145 __builtin_aarch64_st1v4hi ((__builtin_aarch64_simd_hi *) a, b);
27148 __extension__ extern __inline void
27149 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27150 vst1_s32 (int32_t *a, int32x2_t b)
27152 __builtin_aarch64_st1v2si ((__builtin_aarch64_simd_si *) a, b);
27155 __extension__ extern __inline void
27156 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27157 vst1_s64 (int64_t *a, int64x1_t b)
27159 *a = b[0];
27162 __extension__ extern __inline void
27163 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27164 vst1_u8 (uint8_t *a, uint8x8_t b)
27166 __builtin_aarch64_st1v8qi ((__builtin_aarch64_simd_qi *) a,
27167 (int8x8_t) b);
27170 __extension__ extern __inline void
27171 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27172 vst1_u16 (uint16_t *a, uint16x4_t b)
27174 __builtin_aarch64_st1v4hi ((__builtin_aarch64_simd_hi *) a,
27175 (int16x4_t) b);
27178 __extension__ extern __inline void
27179 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27180 vst1_u32 (uint32_t *a, uint32x2_t b)
27182 __builtin_aarch64_st1v2si ((__builtin_aarch64_simd_si *) a,
27183 (int32x2_t) b);
27186 __extension__ extern __inline void
27187 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27188 vst1_u64 (uint64_t *a, uint64x1_t b)
27190 *a = b[0];
27193 /* vst1q */
27195 __extension__ extern __inline void
27196 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27197 vst1q_f16 (float16_t *__a, float16x8_t __b)
27199 __builtin_aarch64_st1v8hf (__a, __b);
27202 __extension__ extern __inline void
27203 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27204 vst1q_f32 (float32_t *a, float32x4_t b)
27206 __builtin_aarch64_st1v4sf ((__builtin_aarch64_simd_sf *) a, b);
27209 __extension__ extern __inline void
27210 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27211 vst1q_f64 (float64_t *a, float64x2_t b)
27213 __builtin_aarch64_st1v2df ((__builtin_aarch64_simd_df *) a, b);
27216 __extension__ extern __inline void
27217 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27218 vst1q_p8 (poly8_t *a, poly8x16_t b)
27220 __builtin_aarch64_st1v16qi ((__builtin_aarch64_simd_qi *) a,
27221 (int8x16_t) b);
27224 __extension__ extern __inline void
27225 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27226 vst1q_p16 (poly16_t *a, poly16x8_t b)
27228 __builtin_aarch64_st1v8hi ((__builtin_aarch64_simd_hi *) a,
27229 (int16x8_t) b);
27232 __extension__ extern __inline void
27233 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27234 vst1q_p64 (poly64_t *a, poly64x2_t b)
27236 __builtin_aarch64_st1v2di_sp ((__builtin_aarch64_simd_di *) a,
27237 (poly64x2_t) b);
27240 __extension__ extern __inline void
27241 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27242 vst1q_s8 (int8_t *a, int8x16_t b)
27244 __builtin_aarch64_st1v16qi ((__builtin_aarch64_simd_qi *) a, b);
27247 __extension__ extern __inline void
27248 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27249 vst1q_s16 (int16_t *a, int16x8_t b)
27251 __builtin_aarch64_st1v8hi ((__builtin_aarch64_simd_hi *) a, b);
27254 __extension__ extern __inline void
27255 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27256 vst1q_s32 (int32_t *a, int32x4_t b)
27258 __builtin_aarch64_st1v4si ((__builtin_aarch64_simd_si *) a, b);
27261 __extension__ extern __inline void
27262 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27263 vst1q_s64 (int64_t *a, int64x2_t b)
27265 __builtin_aarch64_st1v2di ((__builtin_aarch64_simd_di *) a, b);
27268 __extension__ extern __inline void
27269 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27270 vst1q_u8 (uint8_t *a, uint8x16_t b)
27272 __builtin_aarch64_st1v16qi ((__builtin_aarch64_simd_qi *) a,
27273 (int8x16_t) b);
27276 __extension__ extern __inline void
27277 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27278 vst1q_u16 (uint16_t *a, uint16x8_t b)
27280 __builtin_aarch64_st1v8hi ((__builtin_aarch64_simd_hi *) a,
27281 (int16x8_t) b);
27284 __extension__ extern __inline void
27285 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27286 vst1q_u32 (uint32_t *a, uint32x4_t b)
27288 __builtin_aarch64_st1v4si ((__builtin_aarch64_simd_si *) a,
27289 (int32x4_t) b);
27292 __extension__ extern __inline void
27293 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27294 vst1q_u64 (uint64_t *a, uint64x2_t b)
27296 __builtin_aarch64_st1v2di ((__builtin_aarch64_simd_di *) a,
27297 (int64x2_t) b);
27300 /* vst1_lane */
27302 __extension__ extern __inline void
27303 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27304 vst1_lane_f16 (float16_t *__a, float16x4_t __b, const int __lane)
27306 *__a = __aarch64_vget_lane_any (__b, __lane);
27309 __extension__ extern __inline void
27310 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27311 vst1_lane_f32 (float32_t *__a, float32x2_t __b, const int __lane)
27313 *__a = __aarch64_vget_lane_any (__b, __lane);
27316 __extension__ extern __inline void
27317 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27318 vst1_lane_f64 (float64_t *__a, float64x1_t __b, const int __lane)
27320 *__a = __aarch64_vget_lane_any (__b, __lane);
27323 __extension__ extern __inline void
27324 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27325 vst1_lane_p8 (poly8_t *__a, poly8x8_t __b, const int __lane)
27327 *__a = __aarch64_vget_lane_any (__b, __lane);
27330 __extension__ extern __inline void
27331 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27332 vst1_lane_p16 (poly16_t *__a, poly16x4_t __b, const int __lane)
27334 *__a = __aarch64_vget_lane_any (__b, __lane);
27337 __extension__ extern __inline void
27338 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27339 vst1_lane_p64 (poly64_t *__a, poly64x1_t __b, const int __lane)
27341 *__a = __aarch64_vget_lane_any (__b, __lane);
27344 __extension__ extern __inline void
27345 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27346 vst1_lane_s8 (int8_t *__a, int8x8_t __b, const int __lane)
27348 *__a = __aarch64_vget_lane_any (__b, __lane);
27351 __extension__ extern __inline void
27352 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27353 vst1_lane_s16 (int16_t *__a, int16x4_t __b, const int __lane)
27355 *__a = __aarch64_vget_lane_any (__b, __lane);
27358 __extension__ extern __inline void
27359 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27360 vst1_lane_s32 (int32_t *__a, int32x2_t __b, const int __lane)
27362 *__a = __aarch64_vget_lane_any (__b, __lane);
27365 __extension__ extern __inline void
27366 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27367 vst1_lane_s64 (int64_t *__a, int64x1_t __b, const int __lane)
27369 *__a = __aarch64_vget_lane_any (__b, __lane);
27372 __extension__ extern __inline void
27373 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27374 vst1_lane_u8 (uint8_t *__a, uint8x8_t __b, const int __lane)
27376 *__a = __aarch64_vget_lane_any (__b, __lane);
27379 __extension__ extern __inline void
27380 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27381 vst1_lane_u16 (uint16_t *__a, uint16x4_t __b, const int __lane)
27383 *__a = __aarch64_vget_lane_any (__b, __lane);
27386 __extension__ extern __inline void
27387 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27388 vst1_lane_u32 (uint32_t *__a, uint32x2_t __b, const int __lane)
27390 *__a = __aarch64_vget_lane_any (__b, __lane);
27393 __extension__ extern __inline void
27394 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27395 vst1_lane_u64 (uint64_t *__a, uint64x1_t __b, const int __lane)
27397 *__a = __aarch64_vget_lane_any (__b, __lane);
27400 /* vst1q_lane */
27402 __extension__ extern __inline void
27403 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27404 vst1q_lane_f16 (float16_t *__a, float16x8_t __b, const int __lane)
27406 *__a = __aarch64_vget_lane_any (__b, __lane);
27409 __extension__ extern __inline void
27410 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27411 vst1q_lane_f32 (float32_t *__a, float32x4_t __b, const int __lane)
27413 *__a = __aarch64_vget_lane_any (__b, __lane);
27416 __extension__ extern __inline void
27417 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27418 vst1q_lane_f64 (float64_t *__a, float64x2_t __b, const int __lane)
27420 *__a = __aarch64_vget_lane_any (__b, __lane);
27423 __extension__ extern __inline void
27424 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27425 vst1q_lane_p8 (poly8_t *__a, poly8x16_t __b, const int __lane)
27427 *__a = __aarch64_vget_lane_any (__b, __lane);
27430 __extension__ extern __inline void
27431 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27432 vst1q_lane_p16 (poly16_t *__a, poly16x8_t __b, const int __lane)
27434 *__a = __aarch64_vget_lane_any (__b, __lane);
27437 __extension__ extern __inline void
27438 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27439 vst1q_lane_p64 (poly64_t *__a, poly64x2_t __b, const int __lane)
27441 *__a = __aarch64_vget_lane_any (__b, __lane);
27444 __extension__ extern __inline void
27445 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27446 vst1q_lane_s8 (int8_t *__a, int8x16_t __b, const int __lane)
27448 *__a = __aarch64_vget_lane_any (__b, __lane);
27451 __extension__ extern __inline void
27452 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27453 vst1q_lane_s16 (int16_t *__a, int16x8_t __b, const int __lane)
27455 *__a = __aarch64_vget_lane_any (__b, __lane);
27458 __extension__ extern __inline void
27459 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27460 vst1q_lane_s32 (int32_t *__a, int32x4_t __b, const int __lane)
27462 *__a = __aarch64_vget_lane_any (__b, __lane);
27465 __extension__ extern __inline void
27466 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27467 vst1q_lane_s64 (int64_t *__a, int64x2_t __b, const int __lane)
27469 *__a = __aarch64_vget_lane_any (__b, __lane);
27472 __extension__ extern __inline void
27473 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27474 vst1q_lane_u8 (uint8_t *__a, uint8x16_t __b, const int __lane)
27476 *__a = __aarch64_vget_lane_any (__b, __lane);
27479 __extension__ extern __inline void
27480 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27481 vst1q_lane_u16 (uint16_t *__a, uint16x8_t __b, const int __lane)
27483 *__a = __aarch64_vget_lane_any (__b, __lane);
27486 __extension__ extern __inline void
27487 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27488 vst1q_lane_u32 (uint32_t *__a, uint32x4_t __b, const int __lane)
27490 *__a = __aarch64_vget_lane_any (__b, __lane);
27493 __extension__ extern __inline void
27494 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27495 vst1q_lane_u64 (uint64_t *__a, uint64x2_t __b, const int __lane)
27497 *__a = __aarch64_vget_lane_any (__b, __lane);
27500 /* vstn */
27502 __extension__ extern __inline void
27503 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27504 vst2_s64 (int64_t * __a, int64x1x2_t val)
27506 __builtin_aarch64_simd_oi __o;
27507 int64x2x2_t temp;
27508 temp.val[0] = vcombine_s64 (val.val[0], vcreate_s64 (__AARCH64_INT64_C (0)));
27509 temp.val[1] = vcombine_s64 (val.val[1], vcreate_s64 (__AARCH64_INT64_C (0)));
27510 __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) temp.val[0], 0);
27511 __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) temp.val[1], 1);
27512 __builtin_aarch64_st2di ((__builtin_aarch64_simd_di *) __a, __o);
27515 __extension__ extern __inline void
27516 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27517 vst2_u64 (uint64_t * __a, uint64x1x2_t val)
27519 __builtin_aarch64_simd_oi __o;
27520 uint64x2x2_t temp;
27521 temp.val[0] = vcombine_u64 (val.val[0], vcreate_u64 (__AARCH64_UINT64_C (0)));
27522 temp.val[1] = vcombine_u64 (val.val[1], vcreate_u64 (__AARCH64_UINT64_C (0)));
27523 __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) temp.val[0], 0);
27524 __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) temp.val[1], 1);
27525 __builtin_aarch64_st2di ((__builtin_aarch64_simd_di *) __a, __o);
27528 __extension__ extern __inline void
27529 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27530 vst2_f64 (float64_t * __a, float64x1x2_t val)
27532 __builtin_aarch64_simd_oi __o;
27533 float64x2x2_t temp;
27534 temp.val[0] = vcombine_f64 (val.val[0], vcreate_f64 (__AARCH64_UINT64_C (0)));
27535 temp.val[1] = vcombine_f64 (val.val[1], vcreate_f64 (__AARCH64_UINT64_C (0)));
27536 __o = __builtin_aarch64_set_qregoiv2df (__o, (float64x2_t) temp.val[0], 0);
27537 __o = __builtin_aarch64_set_qregoiv2df (__o, (float64x2_t) temp.val[1], 1);
27538 __builtin_aarch64_st2df ((__builtin_aarch64_simd_df *) __a, __o);
27541 __extension__ extern __inline void
27542 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27543 vst2_s8 (int8_t * __a, int8x8x2_t val)
27545 __builtin_aarch64_simd_oi __o;
27546 int8x16x2_t temp;
27547 temp.val[0] = vcombine_s8 (val.val[0], vcreate_s8 (__AARCH64_INT64_C (0)));
27548 temp.val[1] = vcombine_s8 (val.val[1], vcreate_s8 (__AARCH64_INT64_C (0)));
27549 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) temp.val[0], 0);
27550 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) temp.val[1], 1);
27551 __builtin_aarch64_st2v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
27554 __extension__ extern __inline void
27555 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27556 vst2_p8 (poly8_t * __a, poly8x8x2_t val)
27558 __builtin_aarch64_simd_oi __o;
27559 poly8x16x2_t temp;
27560 temp.val[0] = vcombine_p8 (val.val[0], vcreate_p8 (__AARCH64_UINT64_C (0)));
27561 temp.val[1] = vcombine_p8 (val.val[1], vcreate_p8 (__AARCH64_UINT64_C (0)));
27562 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) temp.val[0], 0);
27563 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) temp.val[1], 1);
27564 __builtin_aarch64_st2v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
27567 __extension__ extern __inline void
27568 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27569 vst2_s16 (int16_t * __a, int16x4x2_t val)
27571 __builtin_aarch64_simd_oi __o;
27572 int16x8x2_t temp;
27573 temp.val[0] = vcombine_s16 (val.val[0], vcreate_s16 (__AARCH64_INT64_C (0)));
27574 temp.val[1] = vcombine_s16 (val.val[1], vcreate_s16 (__AARCH64_INT64_C (0)));
27575 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) temp.val[0], 0);
27576 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) temp.val[1], 1);
27577 __builtin_aarch64_st2v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
27580 __extension__ extern __inline void
27581 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27582 vst2_p16 (poly16_t * __a, poly16x4x2_t val)
27584 __builtin_aarch64_simd_oi __o;
27585 poly16x8x2_t temp;
27586 temp.val[0] = vcombine_p16 (val.val[0], vcreate_p16 (__AARCH64_UINT64_C (0)));
27587 temp.val[1] = vcombine_p16 (val.val[1], vcreate_p16 (__AARCH64_UINT64_C (0)));
27588 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) temp.val[0], 0);
27589 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) temp.val[1], 1);
27590 __builtin_aarch64_st2v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
27593 __extension__ extern __inline void
27594 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27595 vst2_s32 (int32_t * __a, int32x2x2_t val)
27597 __builtin_aarch64_simd_oi __o;
27598 int32x4x2_t temp;
27599 temp.val[0] = vcombine_s32 (val.val[0], vcreate_s32 (__AARCH64_INT64_C (0)));
27600 temp.val[1] = vcombine_s32 (val.val[1], vcreate_s32 (__AARCH64_INT64_C (0)));
27601 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) temp.val[0], 0);
27602 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) temp.val[1], 1);
27603 __builtin_aarch64_st2v2si ((__builtin_aarch64_simd_si *) __a, __o);
27606 __extension__ extern __inline void
27607 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27608 vst2_u8 (uint8_t * __a, uint8x8x2_t val)
27610 __builtin_aarch64_simd_oi __o;
27611 uint8x16x2_t temp;
27612 temp.val[0] = vcombine_u8 (val.val[0], vcreate_u8 (__AARCH64_UINT64_C (0)));
27613 temp.val[1] = vcombine_u8 (val.val[1], vcreate_u8 (__AARCH64_UINT64_C (0)));
27614 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) temp.val[0], 0);
27615 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) temp.val[1], 1);
27616 __builtin_aarch64_st2v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
27619 __extension__ extern __inline void
27620 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27621 vst2_u16 (uint16_t * __a, uint16x4x2_t val)
27623 __builtin_aarch64_simd_oi __o;
27624 uint16x8x2_t temp;
27625 temp.val[0] = vcombine_u16 (val.val[0], vcreate_u16 (__AARCH64_UINT64_C (0)));
27626 temp.val[1] = vcombine_u16 (val.val[1], vcreate_u16 (__AARCH64_UINT64_C (0)));
27627 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) temp.val[0], 0);
27628 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) temp.val[1], 1);
27629 __builtin_aarch64_st2v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
27632 __extension__ extern __inline void
27633 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27634 vst2_u32 (uint32_t * __a, uint32x2x2_t val)
27636 __builtin_aarch64_simd_oi __o;
27637 uint32x4x2_t temp;
27638 temp.val[0] = vcombine_u32 (val.val[0], vcreate_u32 (__AARCH64_UINT64_C (0)));
27639 temp.val[1] = vcombine_u32 (val.val[1], vcreate_u32 (__AARCH64_UINT64_C (0)));
27640 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) temp.val[0], 0);
27641 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) temp.val[1], 1);
27642 __builtin_aarch64_st2v2si ((__builtin_aarch64_simd_si *) __a, __o);
27645 __extension__ extern __inline void
27646 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27647 vst2_f16 (float16_t * __a, float16x4x2_t val)
27649 __builtin_aarch64_simd_oi __o;
27650 float16x8x2_t temp;
27651 temp.val[0] = vcombine_f16 (val.val[0], vcreate_f16 (__AARCH64_UINT64_C (0)));
27652 temp.val[1] = vcombine_f16 (val.val[1], vcreate_f16 (__AARCH64_UINT64_C (0)));
27653 __o = __builtin_aarch64_set_qregoiv8hf (__o, temp.val[0], 0);
27654 __o = __builtin_aarch64_set_qregoiv8hf (__o, temp.val[1], 1);
27655 __builtin_aarch64_st2v4hf (__a, __o);
27658 __extension__ extern __inline void
27659 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27660 vst2_f32 (float32_t * __a, float32x2x2_t val)
27662 __builtin_aarch64_simd_oi __o;
27663 float32x4x2_t temp;
27664 temp.val[0] = vcombine_f32 (val.val[0], vcreate_f32 (__AARCH64_UINT64_C (0)));
27665 temp.val[1] = vcombine_f32 (val.val[1], vcreate_f32 (__AARCH64_UINT64_C (0)));
27666 __o = __builtin_aarch64_set_qregoiv4sf (__o, (float32x4_t) temp.val[0], 0);
27667 __o = __builtin_aarch64_set_qregoiv4sf (__o, (float32x4_t) temp.val[1], 1);
27668 __builtin_aarch64_st2v2sf ((__builtin_aarch64_simd_sf *) __a, __o);
27671 __extension__ extern __inline void
27672 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27673 vst2_p64 (poly64_t * __a, poly64x1x2_t val)
27675 __builtin_aarch64_simd_oi __o;
27676 poly64x2x2_t temp;
27677 temp.val[0] = vcombine_p64 (val.val[0], vcreate_p64 (__AARCH64_UINT64_C (0)));
27678 temp.val[1] = vcombine_p64 (val.val[1], vcreate_p64 (__AARCH64_UINT64_C (0)));
27679 __o = __builtin_aarch64_set_qregoiv2di_ssps (__o,
27680 (poly64x2_t) temp.val[0], 0);
27681 __o = __builtin_aarch64_set_qregoiv2di_ssps (__o,
27682 (poly64x2_t) temp.val[1], 1);
27683 __builtin_aarch64_st2di ((__builtin_aarch64_simd_di *) __a, __o);
27686 __extension__ extern __inline void
27687 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27688 vst2q_s8 (int8_t * __a, int8x16x2_t val)
27690 __builtin_aarch64_simd_oi __o;
27691 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) val.val[0], 0);
27692 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) val.val[1], 1);
27693 __builtin_aarch64_st2v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
27696 __extension__ extern __inline void
27697 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27698 vst2q_p8 (poly8_t * __a, poly8x16x2_t val)
27700 __builtin_aarch64_simd_oi __o;
27701 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) val.val[0], 0);
27702 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) val.val[1], 1);
27703 __builtin_aarch64_st2v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
27706 __extension__ extern __inline void
27707 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27708 vst2q_s16 (int16_t * __a, int16x8x2_t val)
27710 __builtin_aarch64_simd_oi __o;
27711 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) val.val[0], 0);
27712 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) val.val[1], 1);
27713 __builtin_aarch64_st2v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
27716 __extension__ extern __inline void
27717 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27718 vst2q_p16 (poly16_t * __a, poly16x8x2_t val)
27720 __builtin_aarch64_simd_oi __o;
27721 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) val.val[0], 0);
27722 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) val.val[1], 1);
27723 __builtin_aarch64_st2v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
27726 __extension__ extern __inline void
27727 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27728 vst2q_s32 (int32_t * __a, int32x4x2_t val)
27730 __builtin_aarch64_simd_oi __o;
27731 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) val.val[0], 0);
27732 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) val.val[1], 1);
27733 __builtin_aarch64_st2v4si ((__builtin_aarch64_simd_si *) __a, __o);
27736 __extension__ extern __inline void
27737 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27738 vst2q_s64 (int64_t * __a, int64x2x2_t val)
27740 __builtin_aarch64_simd_oi __o;
27741 __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) val.val[0], 0);
27742 __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) val.val[1], 1);
27743 __builtin_aarch64_st2v2di ((__builtin_aarch64_simd_di *) __a, __o);
27746 __extension__ extern __inline void
27747 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27748 vst2q_u8 (uint8_t * __a, uint8x16x2_t val)
27750 __builtin_aarch64_simd_oi __o;
27751 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) val.val[0], 0);
27752 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) val.val[1], 1);
27753 __builtin_aarch64_st2v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
27756 __extension__ extern __inline void
27757 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27758 vst2q_u16 (uint16_t * __a, uint16x8x2_t val)
27760 __builtin_aarch64_simd_oi __o;
27761 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) val.val[0], 0);
27762 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) val.val[1], 1);
27763 __builtin_aarch64_st2v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
27766 __extension__ extern __inline void
27767 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27768 vst2q_u32 (uint32_t * __a, uint32x4x2_t val)
27770 __builtin_aarch64_simd_oi __o;
27771 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) val.val[0], 0);
27772 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) val.val[1], 1);
27773 __builtin_aarch64_st2v4si ((__builtin_aarch64_simd_si *) __a, __o);
27776 __extension__ extern __inline void
27777 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27778 vst2q_u64 (uint64_t * __a, uint64x2x2_t val)
27780 __builtin_aarch64_simd_oi __o;
27781 __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) val.val[0], 0);
27782 __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) val.val[1], 1);
27783 __builtin_aarch64_st2v2di ((__builtin_aarch64_simd_di *) __a, __o);
27786 __extension__ extern __inline void
27787 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27788 vst2q_f16 (float16_t * __a, float16x8x2_t val)
27790 __builtin_aarch64_simd_oi __o;
27791 __o = __builtin_aarch64_set_qregoiv8hf (__o, val.val[0], 0);
27792 __o = __builtin_aarch64_set_qregoiv8hf (__o, val.val[1], 1);
27793 __builtin_aarch64_st2v8hf (__a, __o);
27796 __extension__ extern __inline void
27797 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27798 vst2q_f32 (float32_t * __a, float32x4x2_t val)
27800 __builtin_aarch64_simd_oi __o;
27801 __o = __builtin_aarch64_set_qregoiv4sf (__o, (float32x4_t) val.val[0], 0);
27802 __o = __builtin_aarch64_set_qregoiv4sf (__o, (float32x4_t) val.val[1], 1);
27803 __builtin_aarch64_st2v4sf ((__builtin_aarch64_simd_sf *) __a, __o);
27806 __extension__ extern __inline void
27807 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27808 vst2q_f64 (float64_t * __a, float64x2x2_t val)
27810 __builtin_aarch64_simd_oi __o;
27811 __o = __builtin_aarch64_set_qregoiv2df (__o, (float64x2_t) val.val[0], 0);
27812 __o = __builtin_aarch64_set_qregoiv2df (__o, (float64x2_t) val.val[1], 1);
27813 __builtin_aarch64_st2v2df ((__builtin_aarch64_simd_df *) __a, __o);
27816 __extension__ extern __inline void
27817 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27818 vst2q_p64 (poly64_t * __a, poly64x2x2_t val)
27820 __builtin_aarch64_simd_oi __o;
27821 __o = __builtin_aarch64_set_qregoiv2di_ssps (__o,
27822 (poly64x2_t) val.val[0], 0);
27823 __o = __builtin_aarch64_set_qregoiv2di_ssps (__o,
27824 (poly64x2_t) val.val[1], 1);
27825 __builtin_aarch64_st2v2di ((__builtin_aarch64_simd_di *) __a, __o);
27828 __extension__ extern __inline void
27829 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27830 vst3_s64 (int64_t * __a, int64x1x3_t val)
27832 __builtin_aarch64_simd_ci __o;
27833 int64x2x3_t temp;
27834 temp.val[0] = vcombine_s64 (val.val[0], vcreate_s64 (__AARCH64_INT64_C (0)));
27835 temp.val[1] = vcombine_s64 (val.val[1], vcreate_s64 (__AARCH64_INT64_C (0)));
27836 temp.val[2] = vcombine_s64 (val.val[2], vcreate_s64 (__AARCH64_INT64_C (0)));
27837 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) temp.val[0], 0);
27838 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) temp.val[1], 1);
27839 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) temp.val[2], 2);
27840 __builtin_aarch64_st3di ((__builtin_aarch64_simd_di *) __a, __o);
27843 __extension__ extern __inline void
27844 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27845 vst3_u64 (uint64_t * __a, uint64x1x3_t val)
27847 __builtin_aarch64_simd_ci __o;
27848 uint64x2x3_t temp;
27849 temp.val[0] = vcombine_u64 (val.val[0], vcreate_u64 (__AARCH64_UINT64_C (0)));
27850 temp.val[1] = vcombine_u64 (val.val[1], vcreate_u64 (__AARCH64_UINT64_C (0)));
27851 temp.val[2] = vcombine_u64 (val.val[2], vcreate_u64 (__AARCH64_UINT64_C (0)));
27852 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) temp.val[0], 0);
27853 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) temp.val[1], 1);
27854 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) temp.val[2], 2);
27855 __builtin_aarch64_st3di ((__builtin_aarch64_simd_di *) __a, __o);
27858 __extension__ extern __inline void
27859 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27860 vst3_f64 (float64_t * __a, float64x1x3_t val)
27862 __builtin_aarch64_simd_ci __o;
27863 float64x2x3_t temp;
27864 temp.val[0] = vcombine_f64 (val.val[0], vcreate_f64 (__AARCH64_UINT64_C (0)));
27865 temp.val[1] = vcombine_f64 (val.val[1], vcreate_f64 (__AARCH64_UINT64_C (0)));
27866 temp.val[2] = vcombine_f64 (val.val[2], vcreate_f64 (__AARCH64_UINT64_C (0)));
27867 __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) temp.val[0], 0);
27868 __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) temp.val[1], 1);
27869 __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) temp.val[2], 2);
27870 __builtin_aarch64_st3df ((__builtin_aarch64_simd_df *) __a, __o);
27873 __extension__ extern __inline void
27874 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27875 vst3_s8 (int8_t * __a, int8x8x3_t val)
27877 __builtin_aarch64_simd_ci __o;
27878 int8x16x3_t temp;
27879 temp.val[0] = vcombine_s8 (val.val[0], vcreate_s8 (__AARCH64_INT64_C (0)));
27880 temp.val[1] = vcombine_s8 (val.val[1], vcreate_s8 (__AARCH64_INT64_C (0)));
27881 temp.val[2] = vcombine_s8 (val.val[2], vcreate_s8 (__AARCH64_INT64_C (0)));
27882 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[0], 0);
27883 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[1], 1);
27884 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[2], 2);
27885 __builtin_aarch64_st3v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
27888 __extension__ extern __inline void
27889 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27890 vst3_p8 (poly8_t * __a, poly8x8x3_t val)
27892 __builtin_aarch64_simd_ci __o;
27893 poly8x16x3_t temp;
27894 temp.val[0] = vcombine_p8 (val.val[0], vcreate_p8 (__AARCH64_UINT64_C (0)));
27895 temp.val[1] = vcombine_p8 (val.val[1], vcreate_p8 (__AARCH64_UINT64_C (0)));
27896 temp.val[2] = vcombine_p8 (val.val[2], vcreate_p8 (__AARCH64_UINT64_C (0)));
27897 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[0], 0);
27898 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[1], 1);
27899 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[2], 2);
27900 __builtin_aarch64_st3v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
27903 __extension__ extern __inline void
27904 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27905 vst3_s16 (int16_t * __a, int16x4x3_t val)
27907 __builtin_aarch64_simd_ci __o;
27908 int16x8x3_t temp;
27909 temp.val[0] = vcombine_s16 (val.val[0], vcreate_s16 (__AARCH64_INT64_C (0)));
27910 temp.val[1] = vcombine_s16 (val.val[1], vcreate_s16 (__AARCH64_INT64_C (0)));
27911 temp.val[2] = vcombine_s16 (val.val[2], vcreate_s16 (__AARCH64_INT64_C (0)));
27912 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[0], 0);
27913 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[1], 1);
27914 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[2], 2);
27915 __builtin_aarch64_st3v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
27918 __extension__ extern __inline void
27919 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27920 vst3_p16 (poly16_t * __a, poly16x4x3_t val)
27922 __builtin_aarch64_simd_ci __o;
27923 poly16x8x3_t temp;
27924 temp.val[0] = vcombine_p16 (val.val[0], vcreate_p16 (__AARCH64_UINT64_C (0)));
27925 temp.val[1] = vcombine_p16 (val.val[1], vcreate_p16 (__AARCH64_UINT64_C (0)));
27926 temp.val[2] = vcombine_p16 (val.val[2], vcreate_p16 (__AARCH64_UINT64_C (0)));
27927 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[0], 0);
27928 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[1], 1);
27929 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[2], 2);
27930 __builtin_aarch64_st3v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
27933 __extension__ extern __inline void
27934 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27935 vst3_s32 (int32_t * __a, int32x2x3_t val)
27937 __builtin_aarch64_simd_ci __o;
27938 int32x4x3_t temp;
27939 temp.val[0] = vcombine_s32 (val.val[0], vcreate_s32 (__AARCH64_INT64_C (0)));
27940 temp.val[1] = vcombine_s32 (val.val[1], vcreate_s32 (__AARCH64_INT64_C (0)));
27941 temp.val[2] = vcombine_s32 (val.val[2], vcreate_s32 (__AARCH64_INT64_C (0)));
27942 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) temp.val[0], 0);
27943 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) temp.val[1], 1);
27944 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) temp.val[2], 2);
27945 __builtin_aarch64_st3v2si ((__builtin_aarch64_simd_si *) __a, __o);
27948 __extension__ extern __inline void
27949 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27950 vst3_u8 (uint8_t * __a, uint8x8x3_t val)
27952 __builtin_aarch64_simd_ci __o;
27953 uint8x16x3_t temp;
27954 temp.val[0] = vcombine_u8 (val.val[0], vcreate_u8 (__AARCH64_UINT64_C (0)));
27955 temp.val[1] = vcombine_u8 (val.val[1], vcreate_u8 (__AARCH64_UINT64_C (0)));
27956 temp.val[2] = vcombine_u8 (val.val[2], vcreate_u8 (__AARCH64_UINT64_C (0)));
27957 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[0], 0);
27958 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[1], 1);
27959 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[2], 2);
27960 __builtin_aarch64_st3v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
27963 __extension__ extern __inline void
27964 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27965 vst3_u16 (uint16_t * __a, uint16x4x3_t val)
27967 __builtin_aarch64_simd_ci __o;
27968 uint16x8x3_t temp;
27969 temp.val[0] = vcombine_u16 (val.val[0], vcreate_u16 (__AARCH64_UINT64_C (0)));
27970 temp.val[1] = vcombine_u16 (val.val[1], vcreate_u16 (__AARCH64_UINT64_C (0)));
27971 temp.val[2] = vcombine_u16 (val.val[2], vcreate_u16 (__AARCH64_UINT64_C (0)));
27972 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[0], 0);
27973 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[1], 1);
27974 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[2], 2);
27975 __builtin_aarch64_st3v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
27978 __extension__ extern __inline void
27979 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27980 vst3_u32 (uint32_t * __a, uint32x2x3_t val)
27982 __builtin_aarch64_simd_ci __o;
27983 uint32x4x3_t temp;
27984 temp.val[0] = vcombine_u32 (val.val[0], vcreate_u32 (__AARCH64_UINT64_C (0)));
27985 temp.val[1] = vcombine_u32 (val.val[1], vcreate_u32 (__AARCH64_UINT64_C (0)));
27986 temp.val[2] = vcombine_u32 (val.val[2], vcreate_u32 (__AARCH64_UINT64_C (0)));
27987 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) temp.val[0], 0);
27988 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) temp.val[1], 1);
27989 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) temp.val[2], 2);
27990 __builtin_aarch64_st3v2si ((__builtin_aarch64_simd_si *) __a, __o);
27993 __extension__ extern __inline void
27994 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27995 vst3_f16 (float16_t * __a, float16x4x3_t val)
27997 __builtin_aarch64_simd_ci __o;
27998 float16x8x3_t temp;
27999 temp.val[0] = vcombine_f16 (val.val[0], vcreate_f16 (__AARCH64_UINT64_C (0)));
28000 temp.val[1] = vcombine_f16 (val.val[1], vcreate_f16 (__AARCH64_UINT64_C (0)));
28001 temp.val[2] = vcombine_f16 (val.val[2], vcreate_f16 (__AARCH64_UINT64_C (0)));
28002 __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) temp.val[0], 0);
28003 __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) temp.val[1], 1);
28004 __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) temp.val[2], 2);
28005 __builtin_aarch64_st3v4hf ((__builtin_aarch64_simd_hf *) __a, __o);
28008 __extension__ extern __inline void
28009 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28010 vst3_f32 (float32_t * __a, float32x2x3_t val)
28012 __builtin_aarch64_simd_ci __o;
28013 float32x4x3_t temp;
28014 temp.val[0] = vcombine_f32 (val.val[0], vcreate_f32 (__AARCH64_UINT64_C (0)));
28015 temp.val[1] = vcombine_f32 (val.val[1], vcreate_f32 (__AARCH64_UINT64_C (0)));
28016 temp.val[2] = vcombine_f32 (val.val[2], vcreate_f32 (__AARCH64_UINT64_C (0)));
28017 __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) temp.val[0], 0);
28018 __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) temp.val[1], 1);
28019 __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) temp.val[2], 2);
28020 __builtin_aarch64_st3v2sf ((__builtin_aarch64_simd_sf *) __a, __o);
28023 __extension__ extern __inline void
28024 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28025 vst3_p64 (poly64_t * __a, poly64x1x3_t val)
28027 __builtin_aarch64_simd_ci __o;
28028 poly64x2x3_t temp;
28029 temp.val[0] = vcombine_p64 (val.val[0], vcreate_p64 (__AARCH64_UINT64_C (0)));
28030 temp.val[1] = vcombine_p64 (val.val[1], vcreate_p64 (__AARCH64_UINT64_C (0)));
28031 temp.val[2] = vcombine_p64 (val.val[2], vcreate_p64 (__AARCH64_UINT64_C (0)));
28032 __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
28033 (poly64x2_t) temp.val[0], 0);
28034 __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
28035 (poly64x2_t) temp.val[1], 1);
28036 __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
28037 (poly64x2_t) temp.val[2], 2);
28038 __builtin_aarch64_st3di ((__builtin_aarch64_simd_di *) __a, __o);
28041 __extension__ extern __inline void
28042 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28043 vst3q_s8 (int8_t * __a, int8x16x3_t val)
28045 __builtin_aarch64_simd_ci __o;
28046 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[0], 0);
28047 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[1], 1);
28048 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[2], 2);
28049 __builtin_aarch64_st3v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
28052 __extension__ extern __inline void
28053 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28054 vst3q_p8 (poly8_t * __a, poly8x16x3_t val)
28056 __builtin_aarch64_simd_ci __o;
28057 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[0], 0);
28058 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[1], 1);
28059 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[2], 2);
28060 __builtin_aarch64_st3v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
28063 __extension__ extern __inline void
28064 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28065 vst3q_s16 (int16_t * __a, int16x8x3_t val)
28067 __builtin_aarch64_simd_ci __o;
28068 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[0], 0);
28069 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[1], 1);
28070 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[2], 2);
28071 __builtin_aarch64_st3v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
28074 __extension__ extern __inline void
28075 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28076 vst3q_p16 (poly16_t * __a, poly16x8x3_t val)
28078 __builtin_aarch64_simd_ci __o;
28079 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[0], 0);
28080 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[1], 1);
28081 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[2], 2);
28082 __builtin_aarch64_st3v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
28085 __extension__ extern __inline void
28086 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28087 vst3q_s32 (int32_t * __a, int32x4x3_t val)
28089 __builtin_aarch64_simd_ci __o;
28090 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) val.val[0], 0);
28091 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) val.val[1], 1);
28092 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) val.val[2], 2);
28093 __builtin_aarch64_st3v4si ((__builtin_aarch64_simd_si *) __a, __o);
28096 __extension__ extern __inline void
28097 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28098 vst3q_s64 (int64_t * __a, int64x2x3_t val)
28100 __builtin_aarch64_simd_ci __o;
28101 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) val.val[0], 0);
28102 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) val.val[1], 1);
28103 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) val.val[2], 2);
28104 __builtin_aarch64_st3v2di ((__builtin_aarch64_simd_di *) __a, __o);
28107 __extension__ extern __inline void
28108 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28109 vst3q_u8 (uint8_t * __a, uint8x16x3_t val)
28111 __builtin_aarch64_simd_ci __o;
28112 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[0], 0);
28113 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[1], 1);
28114 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[2], 2);
28115 __builtin_aarch64_st3v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
28118 __extension__ extern __inline void
28119 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28120 vst3q_u16 (uint16_t * __a, uint16x8x3_t val)
28122 __builtin_aarch64_simd_ci __o;
28123 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[0], 0);
28124 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[1], 1);
28125 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[2], 2);
28126 __builtin_aarch64_st3v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
28129 __extension__ extern __inline void
28130 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28131 vst3q_u32 (uint32_t * __a, uint32x4x3_t val)
28133 __builtin_aarch64_simd_ci __o;
28134 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) val.val[0], 0);
28135 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) val.val[1], 1);
28136 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) val.val[2], 2);
28137 __builtin_aarch64_st3v4si ((__builtin_aarch64_simd_si *) __a, __o);
28140 __extension__ extern __inline void
28141 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28142 vst3q_u64 (uint64_t * __a, uint64x2x3_t val)
28144 __builtin_aarch64_simd_ci __o;
28145 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) val.val[0], 0);
28146 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) val.val[1], 1);
28147 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) val.val[2], 2);
28148 __builtin_aarch64_st3v2di ((__builtin_aarch64_simd_di *) __a, __o);
28151 __extension__ extern __inline void
28152 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28153 vst3q_f16 (float16_t * __a, float16x8x3_t val)
28155 __builtin_aarch64_simd_ci __o;
28156 __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) val.val[0], 0);
28157 __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) val.val[1], 1);
28158 __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) val.val[2], 2);
28159 __builtin_aarch64_st3v8hf ((__builtin_aarch64_simd_hf *) __a, __o);
28162 __extension__ extern __inline void
28163 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28164 vst3q_f32 (float32_t * __a, float32x4x3_t val)
28166 __builtin_aarch64_simd_ci __o;
28167 __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) val.val[0], 0);
28168 __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) val.val[1], 1);
28169 __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) val.val[2], 2);
28170 __builtin_aarch64_st3v4sf ((__builtin_aarch64_simd_sf *) __a, __o);
28173 __extension__ extern __inline void
28174 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28175 vst3q_f64 (float64_t * __a, float64x2x3_t val)
28177 __builtin_aarch64_simd_ci __o;
28178 __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) val.val[0], 0);
28179 __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) val.val[1], 1);
28180 __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) val.val[2], 2);
28181 __builtin_aarch64_st3v2df ((__builtin_aarch64_simd_df *) __a, __o);
28184 __extension__ extern __inline void
28185 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28186 vst3q_p64 (poly64_t * __a, poly64x2x3_t val)
28188 __builtin_aarch64_simd_ci __o;
28189 __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
28190 (poly64x2_t) val.val[0], 0);
28191 __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
28192 (poly64x2_t) val.val[1], 1);
28193 __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
28194 (poly64x2_t) val.val[2], 2);
28195 __builtin_aarch64_st3v2di ((__builtin_aarch64_simd_di *) __a, __o);
28198 __extension__ extern __inline void
28199 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28200 vst4_s64 (int64_t * __a, int64x1x4_t val)
28202 __builtin_aarch64_simd_xi __o;
28203 int64x2x4_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 temp.val[3] = vcombine_s64 (val.val[3], vcreate_s64 (__AARCH64_INT64_C (0)));
28208 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) temp.val[0], 0);
28209 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) temp.val[1], 1);
28210 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) temp.val[2], 2);
28211 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) temp.val[3], 3);
28212 __builtin_aarch64_st4di ((__builtin_aarch64_simd_di *) __a, __o);
28215 __extension__ extern __inline void
28216 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28217 vst4_u64 (uint64_t * __a, uint64x1x4_t val)
28219 __builtin_aarch64_simd_xi __o;
28220 uint64x2x4_t temp;
28221 temp.val[0] = vcombine_u64 (val.val[0], vcreate_u64 (__AARCH64_UINT64_C (0)));
28222 temp.val[1] = vcombine_u64 (val.val[1], vcreate_u64 (__AARCH64_UINT64_C (0)));
28223 temp.val[2] = vcombine_u64 (val.val[2], vcreate_u64 (__AARCH64_UINT64_C (0)));
28224 temp.val[3] = vcombine_u64 (val.val[3], vcreate_u64 (__AARCH64_UINT64_C (0)));
28225 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) temp.val[0], 0);
28226 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) temp.val[1], 1);
28227 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) temp.val[2], 2);
28228 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) temp.val[3], 3);
28229 __builtin_aarch64_st4di ((__builtin_aarch64_simd_di *) __a, __o);
28232 __extension__ extern __inline void
28233 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28234 vst4_f64 (float64_t * __a, float64x1x4_t val)
28236 __builtin_aarch64_simd_xi __o;
28237 float64x2x4_t temp;
28238 temp.val[0] = vcombine_f64 (val.val[0], vcreate_f64 (__AARCH64_UINT64_C (0)));
28239 temp.val[1] = vcombine_f64 (val.val[1], vcreate_f64 (__AARCH64_UINT64_C (0)));
28240 temp.val[2] = vcombine_f64 (val.val[2], vcreate_f64 (__AARCH64_UINT64_C (0)));
28241 temp.val[3] = vcombine_f64 (val.val[3], vcreate_f64 (__AARCH64_UINT64_C (0)));
28242 __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) temp.val[0], 0);
28243 __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) temp.val[1], 1);
28244 __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) temp.val[2], 2);
28245 __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) temp.val[3], 3);
28246 __builtin_aarch64_st4df ((__builtin_aarch64_simd_df *) __a, __o);
28249 __extension__ extern __inline void
28250 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28251 vst4_s8 (int8_t * __a, int8x8x4_t val)
28253 __builtin_aarch64_simd_xi __o;
28254 int8x16x4_t temp;
28255 temp.val[0] = vcombine_s8 (val.val[0], vcreate_s8 (__AARCH64_INT64_C (0)));
28256 temp.val[1] = vcombine_s8 (val.val[1], vcreate_s8 (__AARCH64_INT64_C (0)));
28257 temp.val[2] = vcombine_s8 (val.val[2], vcreate_s8 (__AARCH64_INT64_C (0)));
28258 temp.val[3] = vcombine_s8 (val.val[3], vcreate_s8 (__AARCH64_INT64_C (0)));
28259 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) temp.val[0], 0);
28260 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) temp.val[1], 1);
28261 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) temp.val[2], 2);
28262 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) temp.val[3], 3);
28263 __builtin_aarch64_st4v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
28266 __extension__ extern __inline void
28267 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28268 vst4_p8 (poly8_t * __a, poly8x8x4_t val)
28270 __builtin_aarch64_simd_xi __o;
28271 poly8x16x4_t temp;
28272 temp.val[0] = vcombine_p8 (val.val[0], vcreate_p8 (__AARCH64_UINT64_C (0)));
28273 temp.val[1] = vcombine_p8 (val.val[1], vcreate_p8 (__AARCH64_UINT64_C (0)));
28274 temp.val[2] = vcombine_p8 (val.val[2], vcreate_p8 (__AARCH64_UINT64_C (0)));
28275 temp.val[3] = vcombine_p8 (val.val[3], vcreate_p8 (__AARCH64_UINT64_C (0)));
28276 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) temp.val[0], 0);
28277 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) temp.val[1], 1);
28278 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) temp.val[2], 2);
28279 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) temp.val[3], 3);
28280 __builtin_aarch64_st4v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
28283 __extension__ extern __inline void
28284 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28285 vst4_s16 (int16_t * __a, int16x4x4_t val)
28287 __builtin_aarch64_simd_xi __o;
28288 int16x8x4_t temp;
28289 temp.val[0] = vcombine_s16 (val.val[0], vcreate_s16 (__AARCH64_INT64_C (0)));
28290 temp.val[1] = vcombine_s16 (val.val[1], vcreate_s16 (__AARCH64_INT64_C (0)));
28291 temp.val[2] = vcombine_s16 (val.val[2], vcreate_s16 (__AARCH64_INT64_C (0)));
28292 temp.val[3] = vcombine_s16 (val.val[3], vcreate_s16 (__AARCH64_INT64_C (0)));
28293 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) temp.val[0], 0);
28294 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) temp.val[1], 1);
28295 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) temp.val[2], 2);
28296 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) temp.val[3], 3);
28297 __builtin_aarch64_st4v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
28300 __extension__ extern __inline void
28301 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28302 vst4_p16 (poly16_t * __a, poly16x4x4_t val)
28304 __builtin_aarch64_simd_xi __o;
28305 poly16x8x4_t temp;
28306 temp.val[0] = vcombine_p16 (val.val[0], vcreate_p16 (__AARCH64_UINT64_C (0)));
28307 temp.val[1] = vcombine_p16 (val.val[1], vcreate_p16 (__AARCH64_UINT64_C (0)));
28308 temp.val[2] = vcombine_p16 (val.val[2], vcreate_p16 (__AARCH64_UINT64_C (0)));
28309 temp.val[3] = vcombine_p16 (val.val[3], vcreate_p16 (__AARCH64_UINT64_C (0)));
28310 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) temp.val[0], 0);
28311 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) temp.val[1], 1);
28312 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) temp.val[2], 2);
28313 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) temp.val[3], 3);
28314 __builtin_aarch64_st4v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
28317 __extension__ extern __inline void
28318 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28319 vst4_s32 (int32_t * __a, int32x2x4_t val)
28321 __builtin_aarch64_simd_xi __o;
28322 int32x4x4_t temp;
28323 temp.val[0] = vcombine_s32 (val.val[0], vcreate_s32 (__AARCH64_INT64_C (0)));
28324 temp.val[1] = vcombine_s32 (val.val[1], vcreate_s32 (__AARCH64_INT64_C (0)));
28325 temp.val[2] = vcombine_s32 (val.val[2], vcreate_s32 (__AARCH64_INT64_C (0)));
28326 temp.val[3] = vcombine_s32 (val.val[3], vcreate_s32 (__AARCH64_INT64_C (0)));
28327 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) temp.val[0], 0);
28328 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) temp.val[1], 1);
28329 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) temp.val[2], 2);
28330 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) temp.val[3], 3);
28331 __builtin_aarch64_st4v2si ((__builtin_aarch64_simd_si *) __a, __o);
28334 __extension__ extern __inline void
28335 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28336 vst4_u8 (uint8_t * __a, uint8x8x4_t val)
28338 __builtin_aarch64_simd_xi __o;
28339 uint8x16x4_t temp;
28340 temp.val[0] = vcombine_u8 (val.val[0], vcreate_u8 (__AARCH64_UINT64_C (0)));
28341 temp.val[1] = vcombine_u8 (val.val[1], vcreate_u8 (__AARCH64_UINT64_C (0)));
28342 temp.val[2] = vcombine_u8 (val.val[2], vcreate_u8 (__AARCH64_UINT64_C (0)));
28343 temp.val[3] = vcombine_u8 (val.val[3], vcreate_u8 (__AARCH64_UINT64_C (0)));
28344 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) temp.val[0], 0);
28345 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) temp.val[1], 1);
28346 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) temp.val[2], 2);
28347 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) temp.val[3], 3);
28348 __builtin_aarch64_st4v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
28351 __extension__ extern __inline void
28352 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28353 vst4_u16 (uint16_t * __a, uint16x4x4_t val)
28355 __builtin_aarch64_simd_xi __o;
28356 uint16x8x4_t temp;
28357 temp.val[0] = vcombine_u16 (val.val[0], vcreate_u16 (__AARCH64_UINT64_C (0)));
28358 temp.val[1] = vcombine_u16 (val.val[1], vcreate_u16 (__AARCH64_UINT64_C (0)));
28359 temp.val[2] = vcombine_u16 (val.val[2], vcreate_u16 (__AARCH64_UINT64_C (0)));
28360 temp.val[3] = vcombine_u16 (val.val[3], vcreate_u16 (__AARCH64_UINT64_C (0)));
28361 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) temp.val[0], 0);
28362 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) temp.val[1], 1);
28363 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) temp.val[2], 2);
28364 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) temp.val[3], 3);
28365 __builtin_aarch64_st4v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
28368 __extension__ extern __inline void
28369 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28370 vst4_u32 (uint32_t * __a, uint32x2x4_t val)
28372 __builtin_aarch64_simd_xi __o;
28373 uint32x4x4_t temp;
28374 temp.val[0] = vcombine_u32 (val.val[0], vcreate_u32 (__AARCH64_UINT64_C (0)));
28375 temp.val[1] = vcombine_u32 (val.val[1], vcreate_u32 (__AARCH64_UINT64_C (0)));
28376 temp.val[2] = vcombine_u32 (val.val[2], vcreate_u32 (__AARCH64_UINT64_C (0)));
28377 temp.val[3] = vcombine_u32 (val.val[3], vcreate_u32 (__AARCH64_UINT64_C (0)));
28378 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) temp.val[0], 0);
28379 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) temp.val[1], 1);
28380 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) temp.val[2], 2);
28381 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) temp.val[3], 3);
28382 __builtin_aarch64_st4v2si ((__builtin_aarch64_simd_si *) __a, __o);
28385 __extension__ extern __inline void
28386 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28387 vst4_f16 (float16_t * __a, float16x4x4_t val)
28389 __builtin_aarch64_simd_xi __o;
28390 float16x8x4_t temp;
28391 temp.val[0] = vcombine_f16 (val.val[0], vcreate_f16 (__AARCH64_UINT64_C (0)));
28392 temp.val[1] = vcombine_f16 (val.val[1], vcreate_f16 (__AARCH64_UINT64_C (0)));
28393 temp.val[2] = vcombine_f16 (val.val[2], vcreate_f16 (__AARCH64_UINT64_C (0)));
28394 temp.val[3] = vcombine_f16 (val.val[3], vcreate_f16 (__AARCH64_UINT64_C (0)));
28395 __o = __builtin_aarch64_set_qregxiv8hf (__o, (float16x8_t) temp.val[0], 0);
28396 __o = __builtin_aarch64_set_qregxiv8hf (__o, (float16x8_t) temp.val[1], 1);
28397 __o = __builtin_aarch64_set_qregxiv8hf (__o, (float16x8_t) temp.val[2], 2);
28398 __o = __builtin_aarch64_set_qregxiv8hf (__o, (float16x8_t) temp.val[3], 3);
28399 __builtin_aarch64_st4v4hf ((__builtin_aarch64_simd_hf *) __a, __o);
28402 __extension__ extern __inline void
28403 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28404 vst4_f32 (float32_t * __a, float32x2x4_t val)
28406 __builtin_aarch64_simd_xi __o;
28407 float32x4x4_t temp;
28408 temp.val[0] = vcombine_f32 (val.val[0], vcreate_f32 (__AARCH64_UINT64_C (0)));
28409 temp.val[1] = vcombine_f32 (val.val[1], vcreate_f32 (__AARCH64_UINT64_C (0)));
28410 temp.val[2] = vcombine_f32 (val.val[2], vcreate_f32 (__AARCH64_UINT64_C (0)));
28411 temp.val[3] = vcombine_f32 (val.val[3], vcreate_f32 (__AARCH64_UINT64_C (0)));
28412 __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) temp.val[0], 0);
28413 __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) temp.val[1], 1);
28414 __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) temp.val[2], 2);
28415 __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) temp.val[3], 3);
28416 __builtin_aarch64_st4v2sf ((__builtin_aarch64_simd_sf *) __a, __o);
28419 __extension__ extern __inline void
28420 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28421 vst4_p64 (poly64_t * __a, poly64x1x4_t val)
28423 __builtin_aarch64_simd_xi __o;
28424 poly64x2x4_t temp;
28425 temp.val[0] = vcombine_p64 (val.val[0], vcreate_p64 (__AARCH64_UINT64_C (0)));
28426 temp.val[1] = vcombine_p64 (val.val[1], vcreate_p64 (__AARCH64_UINT64_C (0)));
28427 temp.val[2] = vcombine_p64 (val.val[2], vcreate_p64 (__AARCH64_UINT64_C (0)));
28428 temp.val[3] = vcombine_p64 (val.val[3], vcreate_p64 (__AARCH64_UINT64_C (0)));
28429 __o = __builtin_aarch64_set_qregxiv2di_ssps (__o,
28430 (poly64x2_t) temp.val[0], 0);
28431 __o = __builtin_aarch64_set_qregxiv2di_ssps (__o,
28432 (poly64x2_t) temp.val[1], 1);
28433 __o = __builtin_aarch64_set_qregxiv2di_ssps (__o,
28434 (poly64x2_t) temp.val[2], 2);
28435 __o = __builtin_aarch64_set_qregxiv2di_ssps (__o,
28436 (poly64x2_t) temp.val[3], 3);
28437 __builtin_aarch64_st4di ((__builtin_aarch64_simd_di *) __a, __o);
28440 __extension__ extern __inline void
28441 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28442 vst4q_s8 (int8_t * __a, int8x16x4_t val)
28444 __builtin_aarch64_simd_xi __o;
28445 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[0], 0);
28446 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[1], 1);
28447 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[2], 2);
28448 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[3], 3);
28449 __builtin_aarch64_st4v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
28452 __extension__ extern __inline void
28453 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28454 vst4q_p8 (poly8_t * __a, poly8x16x4_t val)
28456 __builtin_aarch64_simd_xi __o;
28457 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[0], 0);
28458 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[1], 1);
28459 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[2], 2);
28460 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[3], 3);
28461 __builtin_aarch64_st4v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
28464 __extension__ extern __inline void
28465 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28466 vst4q_s16 (int16_t * __a, int16x8x4_t val)
28468 __builtin_aarch64_simd_xi __o;
28469 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[0], 0);
28470 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[1], 1);
28471 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[2], 2);
28472 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[3], 3);
28473 __builtin_aarch64_st4v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
28476 __extension__ extern __inline void
28477 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28478 vst4q_p16 (poly16_t * __a, poly16x8x4_t val)
28480 __builtin_aarch64_simd_xi __o;
28481 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[0], 0);
28482 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[1], 1);
28483 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[2], 2);
28484 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[3], 3);
28485 __builtin_aarch64_st4v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
28488 __extension__ extern __inline void
28489 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28490 vst4q_s32 (int32_t * __a, int32x4x4_t val)
28492 __builtin_aarch64_simd_xi __o;
28493 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) val.val[0], 0);
28494 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) val.val[1], 1);
28495 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) val.val[2], 2);
28496 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) val.val[3], 3);
28497 __builtin_aarch64_st4v4si ((__builtin_aarch64_simd_si *) __a, __o);
28500 __extension__ extern __inline void
28501 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28502 vst4q_s64 (int64_t * __a, int64x2x4_t val)
28504 __builtin_aarch64_simd_xi __o;
28505 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) val.val[0], 0);
28506 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) val.val[1], 1);
28507 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) val.val[2], 2);
28508 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) val.val[3], 3);
28509 __builtin_aarch64_st4v2di ((__builtin_aarch64_simd_di *) __a, __o);
28512 __extension__ extern __inline void
28513 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28514 vst4q_u8 (uint8_t * __a, uint8x16x4_t val)
28516 __builtin_aarch64_simd_xi __o;
28517 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[0], 0);
28518 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[1], 1);
28519 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[2], 2);
28520 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[3], 3);
28521 __builtin_aarch64_st4v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
28524 __extension__ extern __inline void
28525 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28526 vst4q_u16 (uint16_t * __a, uint16x8x4_t val)
28528 __builtin_aarch64_simd_xi __o;
28529 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[0], 0);
28530 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[1], 1);
28531 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[2], 2);
28532 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[3], 3);
28533 __builtin_aarch64_st4v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
28536 __extension__ extern __inline void
28537 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28538 vst4q_u32 (uint32_t * __a, uint32x4x4_t val)
28540 __builtin_aarch64_simd_xi __o;
28541 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) val.val[0], 0);
28542 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) val.val[1], 1);
28543 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) val.val[2], 2);
28544 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) val.val[3], 3);
28545 __builtin_aarch64_st4v4si ((__builtin_aarch64_simd_si *) __a, __o);
28548 __extension__ extern __inline void
28549 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28550 vst4q_u64 (uint64_t * __a, uint64x2x4_t val)
28552 __builtin_aarch64_simd_xi __o;
28553 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) val.val[0], 0);
28554 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) val.val[1], 1);
28555 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) val.val[2], 2);
28556 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) val.val[3], 3);
28557 __builtin_aarch64_st4v2di ((__builtin_aarch64_simd_di *) __a, __o);
28560 __extension__ extern __inline void
28561 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28562 vst4q_f16 (float16_t * __a, float16x8x4_t val)
28564 __builtin_aarch64_simd_xi __o;
28565 __o = __builtin_aarch64_set_qregxiv8hf (__o, (float16x8_t) val.val[0], 0);
28566 __o = __builtin_aarch64_set_qregxiv8hf (__o, (float16x8_t) val.val[1], 1);
28567 __o = __builtin_aarch64_set_qregxiv8hf (__o, (float16x8_t) val.val[2], 2);
28568 __o = __builtin_aarch64_set_qregxiv8hf (__o, (float16x8_t) val.val[3], 3);
28569 __builtin_aarch64_st4v8hf ((__builtin_aarch64_simd_hf *) __a, __o);
28572 __extension__ extern __inline void
28573 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28574 vst4q_f32 (float32_t * __a, float32x4x4_t val)
28576 __builtin_aarch64_simd_xi __o;
28577 __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) val.val[0], 0);
28578 __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) val.val[1], 1);
28579 __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) val.val[2], 2);
28580 __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) val.val[3], 3);
28581 __builtin_aarch64_st4v4sf ((__builtin_aarch64_simd_sf *) __a, __o);
28584 __extension__ extern __inline void
28585 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28586 vst4q_f64 (float64_t * __a, float64x2x4_t val)
28588 __builtin_aarch64_simd_xi __o;
28589 __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) val.val[0], 0);
28590 __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) val.val[1], 1);
28591 __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) val.val[2], 2);
28592 __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) val.val[3], 3);
28593 __builtin_aarch64_st4v2df ((__builtin_aarch64_simd_df *) __a, __o);
28596 __extension__ extern __inline void
28597 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28598 vst4q_p64 (poly64_t * __a, poly64x2x4_t val)
28600 __builtin_aarch64_simd_xi __o;
28601 __o = __builtin_aarch64_set_qregxiv2di_ssps (__o,
28602 (poly64x2_t) val.val[0], 0);
28603 __o = __builtin_aarch64_set_qregxiv2di_ssps (__o,
28604 (poly64x2_t) val.val[1], 1);
28605 __o = __builtin_aarch64_set_qregxiv2di_ssps (__o,
28606 (poly64x2_t) val.val[2], 2);
28607 __o = __builtin_aarch64_set_qregxiv2di_ssps (__o,
28608 (poly64x2_t) val.val[3], 3);
28609 __builtin_aarch64_st4v2di ((__builtin_aarch64_simd_di *) __a, __o);
28612 /* vsub */
28614 __extension__ extern __inline int64_t
28615 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28616 vsubd_s64 (int64_t __a, int64_t __b)
28618 return __a - __b;
28621 __extension__ extern __inline uint64_t
28622 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28623 vsubd_u64 (uint64_t __a, uint64_t __b)
28625 return __a - __b;
28628 /* vtbx1 */
28630 __extension__ extern __inline int8x8_t
28631 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28632 vtbx1_s8 (int8x8_t __r, int8x8_t __tab, int8x8_t __idx)
28634 uint8x8_t __mask = vclt_u8 (vreinterpret_u8_s8 (__idx),
28635 vmov_n_u8 (8));
28636 int8x8_t __tbl = vtbl1_s8 (__tab, __idx);
28638 return vbsl_s8 (__mask, __tbl, __r);
28641 __extension__ extern __inline uint8x8_t
28642 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28643 vtbx1_u8 (uint8x8_t __r, uint8x8_t __tab, uint8x8_t __idx)
28645 uint8x8_t __mask = vclt_u8 (__idx, vmov_n_u8 (8));
28646 uint8x8_t __tbl = vtbl1_u8 (__tab, __idx);
28648 return vbsl_u8 (__mask, __tbl, __r);
28651 __extension__ extern __inline poly8x8_t
28652 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28653 vtbx1_p8 (poly8x8_t __r, poly8x8_t __tab, uint8x8_t __idx)
28655 uint8x8_t __mask = vclt_u8 (__idx, vmov_n_u8 (8));
28656 poly8x8_t __tbl = vtbl1_p8 (__tab, __idx);
28658 return vbsl_p8 (__mask, __tbl, __r);
28661 /* vtbx3 */
28663 __extension__ extern __inline int8x8_t
28664 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28665 vtbx3_s8 (int8x8_t __r, int8x8x3_t __tab, int8x8_t __idx)
28667 uint8x8_t __mask = vclt_u8 (vreinterpret_u8_s8 (__idx),
28668 vmov_n_u8 (24));
28669 int8x8_t __tbl = vtbl3_s8 (__tab, __idx);
28671 return vbsl_s8 (__mask, __tbl, __r);
28674 __extension__ extern __inline uint8x8_t
28675 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28676 vtbx3_u8 (uint8x8_t __r, uint8x8x3_t __tab, uint8x8_t __idx)
28678 uint8x8_t __mask = vclt_u8 (__idx, vmov_n_u8 (24));
28679 uint8x8_t __tbl = vtbl3_u8 (__tab, __idx);
28681 return vbsl_u8 (__mask, __tbl, __r);
28684 __extension__ extern __inline poly8x8_t
28685 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28686 vtbx3_p8 (poly8x8_t __r, poly8x8x3_t __tab, uint8x8_t __idx)
28688 uint8x8_t __mask = vclt_u8 (__idx, vmov_n_u8 (24));
28689 poly8x8_t __tbl = vtbl3_p8 (__tab, __idx);
28691 return vbsl_p8 (__mask, __tbl, __r);
28694 /* vtbx4 */
28696 __extension__ extern __inline int8x8_t
28697 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28698 vtbx4_s8 (int8x8_t __r, int8x8x4_t __tab, int8x8_t __idx)
28700 int8x8_t result;
28701 int8x16x2_t temp;
28702 __builtin_aarch64_simd_oi __o;
28703 temp.val[0] = vcombine_s8 (__tab.val[0], __tab.val[1]);
28704 temp.val[1] = vcombine_s8 (__tab.val[2], __tab.val[3]);
28705 __o = __builtin_aarch64_set_qregoiv16qi (__o,
28706 (int8x16_t) temp.val[0], 0);
28707 __o = __builtin_aarch64_set_qregoiv16qi (__o,
28708 (int8x16_t) temp.val[1], 1);
28709 result = __builtin_aarch64_tbx4v8qi (__r, __o, __idx);
28710 return result;
28713 __extension__ extern __inline uint8x8_t
28714 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28715 vtbx4_u8 (uint8x8_t __r, uint8x8x4_t __tab, uint8x8_t __idx)
28717 uint8x8_t result;
28718 uint8x16x2_t temp;
28719 __builtin_aarch64_simd_oi __o;
28720 temp.val[0] = vcombine_u8 (__tab.val[0], __tab.val[1]);
28721 temp.val[1] = vcombine_u8 (__tab.val[2], __tab.val[3]);
28722 __o = __builtin_aarch64_set_qregoiv16qi (__o,
28723 (int8x16_t) temp.val[0], 0);
28724 __o = __builtin_aarch64_set_qregoiv16qi (__o,
28725 (int8x16_t) temp.val[1], 1);
28726 result = (uint8x8_t)__builtin_aarch64_tbx4v8qi ((int8x8_t)__r, __o,
28727 (int8x8_t)__idx);
28728 return result;
28731 __extension__ extern __inline poly8x8_t
28732 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28733 vtbx4_p8 (poly8x8_t __r, poly8x8x4_t __tab, uint8x8_t __idx)
28735 poly8x8_t result;
28736 poly8x16x2_t temp;
28737 __builtin_aarch64_simd_oi __o;
28738 temp.val[0] = vcombine_p8 (__tab.val[0], __tab.val[1]);
28739 temp.val[1] = vcombine_p8 (__tab.val[2], __tab.val[3]);
28740 __o = __builtin_aarch64_set_qregoiv16qi (__o,
28741 (int8x16_t) temp.val[0], 0);
28742 __o = __builtin_aarch64_set_qregoiv16qi (__o,
28743 (int8x16_t) temp.val[1], 1);
28744 result = (poly8x8_t)__builtin_aarch64_tbx4v8qi ((int8x8_t)__r, __o,
28745 (int8x8_t)__idx);
28746 return result;
28749 /* vtrn */
28751 __extension__ extern __inline float16x4_t
28752 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28753 vtrn1_f16 (float16x4_t __a, float16x4_t __b)
28755 #ifdef __AARCH64EB__
28756 return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 1, 7, 3});
28757 #else
28758 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 2, 6});
28759 #endif
28762 __extension__ extern __inline float32x2_t
28763 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28764 vtrn1_f32 (float32x2_t __a, float32x2_t __b)
28766 #ifdef __AARCH64EB__
28767 return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
28768 #else
28769 return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
28770 #endif
28773 __extension__ extern __inline poly8x8_t
28774 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28775 vtrn1_p8 (poly8x8_t __a, poly8x8_t __b)
28777 #ifdef __AARCH64EB__
28778 return __builtin_shuffle (__a, __b, (uint8x8_t) {9, 1, 11, 3, 13, 5, 15, 7});
28779 #else
28780 return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 8, 2, 10, 4, 12, 6, 14});
28781 #endif
28784 __extension__ extern __inline poly16x4_t
28785 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28786 vtrn1_p16 (poly16x4_t __a, poly16x4_t __b)
28788 #ifdef __AARCH64EB__
28789 return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 1, 7, 3});
28790 #else
28791 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 2, 6});
28792 #endif
28795 __extension__ extern __inline int8x8_t
28796 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28797 vtrn1_s8 (int8x8_t __a, int8x8_t __b)
28799 #ifdef __AARCH64EB__
28800 return __builtin_shuffle (__a, __b, (uint8x8_t) {9, 1, 11, 3, 13, 5, 15, 7});
28801 #else
28802 return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 8, 2, 10, 4, 12, 6, 14});
28803 #endif
28806 __extension__ extern __inline int16x4_t
28807 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28808 vtrn1_s16 (int16x4_t __a, int16x4_t __b)
28810 #ifdef __AARCH64EB__
28811 return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 1, 7, 3});
28812 #else
28813 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 2, 6});
28814 #endif
28817 __extension__ extern __inline int32x2_t
28818 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28819 vtrn1_s32 (int32x2_t __a, int32x2_t __b)
28821 #ifdef __AARCH64EB__
28822 return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
28823 #else
28824 return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
28825 #endif
28828 __extension__ extern __inline uint8x8_t
28829 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28830 vtrn1_u8 (uint8x8_t __a, uint8x8_t __b)
28832 #ifdef __AARCH64EB__
28833 return __builtin_shuffle (__a, __b, (uint8x8_t) {9, 1, 11, 3, 13, 5, 15, 7});
28834 #else
28835 return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 8, 2, 10, 4, 12, 6, 14});
28836 #endif
28839 __extension__ extern __inline uint16x4_t
28840 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28841 vtrn1_u16 (uint16x4_t __a, uint16x4_t __b)
28843 #ifdef __AARCH64EB__
28844 return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 1, 7, 3});
28845 #else
28846 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 2, 6});
28847 #endif
28850 __extension__ extern __inline uint32x2_t
28851 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28852 vtrn1_u32 (uint32x2_t __a, uint32x2_t __b)
28854 #ifdef __AARCH64EB__
28855 return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
28856 #else
28857 return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
28858 #endif
28861 __extension__ extern __inline float16x8_t
28862 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28863 vtrn1q_f16 (float16x8_t __a, float16x8_t __b)
28865 #ifdef __AARCH64EB__
28866 return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 1, 11, 3, 13, 5, 15, 7});
28867 #else
28868 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 8, 2, 10, 4, 12, 6, 14});
28869 #endif
28872 __extension__ extern __inline float32x4_t
28873 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28874 vtrn1q_f32 (float32x4_t __a, float32x4_t __b)
28876 #ifdef __AARCH64EB__
28877 return __builtin_shuffle (__a, __b, (uint32x4_t) {5, 1, 7, 3});
28878 #else
28879 return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 4, 2, 6});
28880 #endif
28883 __extension__ extern __inline float64x2_t
28884 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28885 vtrn1q_f64 (float64x2_t __a, float64x2_t __b)
28887 #ifdef __AARCH64EB__
28888 return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
28889 #else
28890 return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
28891 #endif
28894 __extension__ extern __inline poly8x16_t
28895 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28896 vtrn1q_p8 (poly8x16_t __a, poly8x16_t __b)
28898 #ifdef __AARCH64EB__
28899 return __builtin_shuffle (__a, __b,
28900 (uint8x16_t) {17, 1, 19, 3, 21, 5, 23, 7, 25, 9, 27, 11, 29, 13, 31, 15});
28901 #else
28902 return __builtin_shuffle (__a, __b,
28903 (uint8x16_t) {0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30});
28904 #endif
28907 __extension__ extern __inline poly16x8_t
28908 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28909 vtrn1q_p16 (poly16x8_t __a, poly16x8_t __b)
28911 #ifdef __AARCH64EB__
28912 return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 1, 11, 3, 13, 5, 15, 7});
28913 #else
28914 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 8, 2, 10, 4, 12, 6, 14});
28915 #endif
28918 __extension__ extern __inline int8x16_t
28919 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28920 vtrn1q_s8 (int8x16_t __a, int8x16_t __b)
28922 #ifdef __AARCH64EB__
28923 return __builtin_shuffle (__a, __b,
28924 (uint8x16_t) {17, 1, 19, 3, 21, 5, 23, 7, 25, 9, 27, 11, 29, 13, 31, 15});
28925 #else
28926 return __builtin_shuffle (__a, __b,
28927 (uint8x16_t) {0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30});
28928 #endif
28931 __extension__ extern __inline int16x8_t
28932 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28933 vtrn1q_s16 (int16x8_t __a, int16x8_t __b)
28935 #ifdef __AARCH64EB__
28936 return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 1, 11, 3, 13, 5, 15, 7});
28937 #else
28938 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 8, 2, 10, 4, 12, 6, 14});
28939 #endif
28942 __extension__ extern __inline int32x4_t
28943 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28944 vtrn1q_s32 (int32x4_t __a, int32x4_t __b)
28946 #ifdef __AARCH64EB__
28947 return __builtin_shuffle (__a, __b, (uint32x4_t) {5, 1, 7, 3});
28948 #else
28949 return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 4, 2, 6});
28950 #endif
28953 __extension__ extern __inline int64x2_t
28954 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28955 vtrn1q_s64 (int64x2_t __a, int64x2_t __b)
28957 #ifdef __AARCH64EB__
28958 return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
28959 #else
28960 return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
28961 #endif
28964 __extension__ extern __inline uint8x16_t
28965 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28966 vtrn1q_u8 (uint8x16_t __a, uint8x16_t __b)
28968 #ifdef __AARCH64EB__
28969 return __builtin_shuffle (__a, __b,
28970 (uint8x16_t) {17, 1, 19, 3, 21, 5, 23, 7, 25, 9, 27, 11, 29, 13, 31, 15});
28971 #else
28972 return __builtin_shuffle (__a, __b,
28973 (uint8x16_t) {0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30});
28974 #endif
28977 __extension__ extern __inline uint16x8_t
28978 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28979 vtrn1q_u16 (uint16x8_t __a, uint16x8_t __b)
28981 #ifdef __AARCH64EB__
28982 return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 1, 11, 3, 13, 5, 15, 7});
28983 #else
28984 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 8, 2, 10, 4, 12, 6, 14});
28985 #endif
28988 __extension__ extern __inline uint32x4_t
28989 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28990 vtrn1q_u32 (uint32x4_t __a, uint32x4_t __b)
28992 #ifdef __AARCH64EB__
28993 return __builtin_shuffle (__a, __b, (uint32x4_t) {5, 1, 7, 3});
28994 #else
28995 return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 4, 2, 6});
28996 #endif
28999 __extension__ extern __inline uint64x2_t
29000 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29001 vtrn1q_u64 (uint64x2_t __a, uint64x2_t __b)
29003 #ifdef __AARCH64EB__
29004 return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
29005 #else
29006 return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
29007 #endif
29010 __extension__ extern __inline float16x4_t
29011 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29012 vtrn2_f16 (float16x4_t __a, float16x4_t __b)
29014 #ifdef __AARCH64EB__
29015 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 6, 2});
29016 #else
29017 return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 5, 3, 7});
29018 #endif
29021 __extension__ extern __inline float32x2_t
29022 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29023 vtrn2_f32 (float32x2_t __a, float32x2_t __b)
29025 #ifdef __AARCH64EB__
29026 return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
29027 #else
29028 return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
29029 #endif
29032 __extension__ extern __inline poly8x8_t
29033 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29034 vtrn2_p8 (poly8x8_t __a, poly8x8_t __b)
29036 #ifdef __AARCH64EB__
29037 return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 0, 10, 2, 12, 4, 14, 6});
29038 #else
29039 return __builtin_shuffle (__a, __b, (uint8x8_t) {1, 9, 3, 11, 5, 13, 7, 15});
29040 #endif
29043 __extension__ extern __inline poly16x4_t
29044 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29045 vtrn2_p16 (poly16x4_t __a, poly16x4_t __b)
29047 #ifdef __AARCH64EB__
29048 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 6, 2});
29049 #else
29050 return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 5, 3, 7});
29051 #endif
29054 __extension__ extern __inline int8x8_t
29055 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29056 vtrn2_s8 (int8x8_t __a, int8x8_t __b)
29058 #ifdef __AARCH64EB__
29059 return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 0, 10, 2, 12, 4, 14, 6});
29060 #else
29061 return __builtin_shuffle (__a, __b, (uint8x8_t) {1, 9, 3, 11, 5, 13, 7, 15});
29062 #endif
29065 __extension__ extern __inline int16x4_t
29066 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29067 vtrn2_s16 (int16x4_t __a, int16x4_t __b)
29069 #ifdef __AARCH64EB__
29070 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 6, 2});
29071 #else
29072 return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 5, 3, 7});
29073 #endif
29076 __extension__ extern __inline int32x2_t
29077 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29078 vtrn2_s32 (int32x2_t __a, int32x2_t __b)
29080 #ifdef __AARCH64EB__
29081 return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
29082 #else
29083 return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
29084 #endif
29087 __extension__ extern __inline uint8x8_t
29088 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29089 vtrn2_u8 (uint8x8_t __a, uint8x8_t __b)
29091 #ifdef __AARCH64EB__
29092 return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 0, 10, 2, 12, 4, 14, 6});
29093 #else
29094 return __builtin_shuffle (__a, __b, (uint8x8_t) {1, 9, 3, 11, 5, 13, 7, 15});
29095 #endif
29098 __extension__ extern __inline uint16x4_t
29099 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29100 vtrn2_u16 (uint16x4_t __a, uint16x4_t __b)
29102 #ifdef __AARCH64EB__
29103 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 6, 2});
29104 #else
29105 return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 5, 3, 7});
29106 #endif
29109 __extension__ extern __inline uint32x2_t
29110 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29111 vtrn2_u32 (uint32x2_t __a, uint32x2_t __b)
29113 #ifdef __AARCH64EB__
29114 return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
29115 #else
29116 return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
29117 #endif
29120 __extension__ extern __inline float16x8_t
29121 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29122 vtrn2q_f16 (float16x8_t __a, float16x8_t __b)
29124 #ifdef __AARCH64EB__
29125 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 0, 10, 2, 12, 4, 14, 6});
29126 #else
29127 return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 9, 3, 11, 5, 13, 7, 15});
29128 #endif
29131 __extension__ extern __inline float32x4_t
29132 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29133 vtrn2q_f32 (float32x4_t __a, float32x4_t __b)
29135 #ifdef __AARCH64EB__
29136 return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 0, 6, 2});
29137 #else
29138 return __builtin_shuffle (__a, __b, (uint32x4_t) {1, 5, 3, 7});
29139 #endif
29142 __extension__ extern __inline float64x2_t
29143 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29144 vtrn2q_f64 (float64x2_t __a, float64x2_t __b)
29146 #ifdef __AARCH64EB__
29147 return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
29148 #else
29149 return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
29150 #endif
29153 __extension__ extern __inline poly8x16_t
29154 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29155 vtrn2q_p8 (poly8x16_t __a, poly8x16_t __b)
29157 #ifdef __AARCH64EB__
29158 return __builtin_shuffle (__a, __b,
29159 (uint8x16_t) {16, 0, 18, 2, 20, 4, 22, 6, 24, 8, 26, 10, 28, 12, 30, 14});
29160 #else
29161 return __builtin_shuffle (__a, __b,
29162 (uint8x16_t) {1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31});
29163 #endif
29166 __extension__ extern __inline poly16x8_t
29167 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29168 vtrn2q_p16 (poly16x8_t __a, poly16x8_t __b)
29170 #ifdef __AARCH64EB__
29171 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 0, 10, 2, 12, 4, 14, 6});
29172 #else
29173 return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 9, 3, 11, 5, 13, 7, 15});
29174 #endif
29177 __extension__ extern __inline int8x16_t
29178 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29179 vtrn2q_s8 (int8x16_t __a, int8x16_t __b)
29181 #ifdef __AARCH64EB__
29182 return __builtin_shuffle (__a, __b,
29183 (uint8x16_t) {16, 0, 18, 2, 20, 4, 22, 6, 24, 8, 26, 10, 28, 12, 30, 14});
29184 #else
29185 return __builtin_shuffle (__a, __b,
29186 (uint8x16_t) {1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31});
29187 #endif
29190 __extension__ extern __inline int16x8_t
29191 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29192 vtrn2q_s16 (int16x8_t __a, int16x8_t __b)
29194 #ifdef __AARCH64EB__
29195 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 0, 10, 2, 12, 4, 14, 6});
29196 #else
29197 return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 9, 3, 11, 5, 13, 7, 15});
29198 #endif
29201 __extension__ extern __inline int32x4_t
29202 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29203 vtrn2q_s32 (int32x4_t __a, int32x4_t __b)
29205 #ifdef __AARCH64EB__
29206 return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 0, 6, 2});
29207 #else
29208 return __builtin_shuffle (__a, __b, (uint32x4_t) {1, 5, 3, 7});
29209 #endif
29212 __extension__ extern __inline int64x2_t
29213 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29214 vtrn2q_s64 (int64x2_t __a, int64x2_t __b)
29216 #ifdef __AARCH64EB__
29217 return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
29218 #else
29219 return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
29220 #endif
29223 __extension__ extern __inline uint8x16_t
29224 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29225 vtrn2q_u8 (uint8x16_t __a, uint8x16_t __b)
29227 #ifdef __AARCH64EB__
29228 return __builtin_shuffle (__a, __b,
29229 (uint8x16_t) {16, 0, 18, 2, 20, 4, 22, 6, 24, 8, 26, 10, 28, 12, 30, 14});
29230 #else
29231 return __builtin_shuffle (__a, __b,
29232 (uint8x16_t) {1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31});
29233 #endif
29236 __extension__ extern __inline uint16x8_t
29237 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29238 vtrn2q_u16 (uint16x8_t __a, uint16x8_t __b)
29240 #ifdef __AARCH64EB__
29241 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 0, 10, 2, 12, 4, 14, 6});
29242 #else
29243 return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 9, 3, 11, 5, 13, 7, 15});
29244 #endif
29247 __extension__ extern __inline uint32x4_t
29248 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29249 vtrn2q_u32 (uint32x4_t __a, uint32x4_t __b)
29251 #ifdef __AARCH64EB__
29252 return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 0, 6, 2});
29253 #else
29254 return __builtin_shuffle (__a, __b, (uint32x4_t) {1, 5, 3, 7});
29255 #endif
29258 __extension__ extern __inline uint64x2_t
29259 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29260 vtrn2q_u64 (uint64x2_t __a, uint64x2_t __b)
29262 #ifdef __AARCH64EB__
29263 return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
29264 #else
29265 return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
29266 #endif
29269 __extension__ extern __inline float16x4x2_t
29270 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29271 vtrn_f16 (float16x4_t __a, float16x4_t __b)
29273 return (float16x4x2_t) {vtrn1_f16 (__a, __b), vtrn2_f16 (__a, __b)};
29276 __extension__ extern __inline float32x2x2_t
29277 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29278 vtrn_f32 (float32x2_t a, float32x2_t b)
29280 return (float32x2x2_t) {vtrn1_f32 (a, b), vtrn2_f32 (a, b)};
29283 __extension__ extern __inline poly8x8x2_t
29284 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29285 vtrn_p8 (poly8x8_t a, poly8x8_t b)
29287 return (poly8x8x2_t) {vtrn1_p8 (a, b), vtrn2_p8 (a, b)};
29290 __extension__ extern __inline poly16x4x2_t
29291 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29292 vtrn_p16 (poly16x4_t a, poly16x4_t b)
29294 return (poly16x4x2_t) {vtrn1_p16 (a, b), vtrn2_p16 (a, b)};
29297 __extension__ extern __inline int8x8x2_t
29298 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29299 vtrn_s8 (int8x8_t a, int8x8_t b)
29301 return (int8x8x2_t) {vtrn1_s8 (a, b), vtrn2_s8 (a, b)};
29304 __extension__ extern __inline int16x4x2_t
29305 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29306 vtrn_s16 (int16x4_t a, int16x4_t b)
29308 return (int16x4x2_t) {vtrn1_s16 (a, b), vtrn2_s16 (a, b)};
29311 __extension__ extern __inline int32x2x2_t
29312 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29313 vtrn_s32 (int32x2_t a, int32x2_t b)
29315 return (int32x2x2_t) {vtrn1_s32 (a, b), vtrn2_s32 (a, b)};
29318 __extension__ extern __inline uint8x8x2_t
29319 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29320 vtrn_u8 (uint8x8_t a, uint8x8_t b)
29322 return (uint8x8x2_t) {vtrn1_u8 (a, b), vtrn2_u8 (a, b)};
29325 __extension__ extern __inline uint16x4x2_t
29326 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29327 vtrn_u16 (uint16x4_t a, uint16x4_t b)
29329 return (uint16x4x2_t) {vtrn1_u16 (a, b), vtrn2_u16 (a, b)};
29332 __extension__ extern __inline uint32x2x2_t
29333 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29334 vtrn_u32 (uint32x2_t a, uint32x2_t b)
29336 return (uint32x2x2_t) {vtrn1_u32 (a, b), vtrn2_u32 (a, b)};
29339 __extension__ extern __inline float16x8x2_t
29340 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29341 vtrnq_f16 (float16x8_t __a, float16x8_t __b)
29343 return (float16x8x2_t) {vtrn1q_f16 (__a, __b), vtrn2q_f16 (__a, __b)};
29346 __extension__ extern __inline float32x4x2_t
29347 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29348 vtrnq_f32 (float32x4_t a, float32x4_t b)
29350 return (float32x4x2_t) {vtrn1q_f32 (a, b), vtrn2q_f32 (a, b)};
29353 __extension__ extern __inline poly8x16x2_t
29354 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29355 vtrnq_p8 (poly8x16_t a, poly8x16_t b)
29357 return (poly8x16x2_t) {vtrn1q_p8 (a, b), vtrn2q_p8 (a, b)};
29360 __extension__ extern __inline poly16x8x2_t
29361 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29362 vtrnq_p16 (poly16x8_t a, poly16x8_t b)
29364 return (poly16x8x2_t) {vtrn1q_p16 (a, b), vtrn2q_p16 (a, b)};
29367 __extension__ extern __inline int8x16x2_t
29368 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29369 vtrnq_s8 (int8x16_t a, int8x16_t b)
29371 return (int8x16x2_t) {vtrn1q_s8 (a, b), vtrn2q_s8 (a, b)};
29374 __extension__ extern __inline int16x8x2_t
29375 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29376 vtrnq_s16 (int16x8_t a, int16x8_t b)
29378 return (int16x8x2_t) {vtrn1q_s16 (a, b), vtrn2q_s16 (a, b)};
29381 __extension__ extern __inline int32x4x2_t
29382 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29383 vtrnq_s32 (int32x4_t a, int32x4_t b)
29385 return (int32x4x2_t) {vtrn1q_s32 (a, b), vtrn2q_s32 (a, b)};
29388 __extension__ extern __inline uint8x16x2_t
29389 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29390 vtrnq_u8 (uint8x16_t a, uint8x16_t b)
29392 return (uint8x16x2_t) {vtrn1q_u8 (a, b), vtrn2q_u8 (a, b)};
29395 __extension__ extern __inline uint16x8x2_t
29396 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29397 vtrnq_u16 (uint16x8_t a, uint16x8_t b)
29399 return (uint16x8x2_t) {vtrn1q_u16 (a, b), vtrn2q_u16 (a, b)};
29402 __extension__ extern __inline uint32x4x2_t
29403 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29404 vtrnq_u32 (uint32x4_t a, uint32x4_t b)
29406 return (uint32x4x2_t) {vtrn1q_u32 (a, b), vtrn2q_u32 (a, b)};
29409 /* vtst */
29411 __extension__ extern __inline uint8x8_t
29412 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29413 vtst_s8 (int8x8_t __a, int8x8_t __b)
29415 return (uint8x8_t) ((__a & __b) != 0);
29418 __extension__ extern __inline uint16x4_t
29419 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29420 vtst_s16 (int16x4_t __a, int16x4_t __b)
29422 return (uint16x4_t) ((__a & __b) != 0);
29425 __extension__ extern __inline uint32x2_t
29426 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29427 vtst_s32 (int32x2_t __a, int32x2_t __b)
29429 return (uint32x2_t) ((__a & __b) != 0);
29432 __extension__ extern __inline uint64x1_t
29433 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29434 vtst_s64 (int64x1_t __a, int64x1_t __b)
29436 return (uint64x1_t) ((__a & __b) != __AARCH64_INT64_C (0));
29439 __extension__ extern __inline uint8x8_t
29440 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29441 vtst_u8 (uint8x8_t __a, uint8x8_t __b)
29443 return ((__a & __b) != 0);
29446 __extension__ extern __inline uint16x4_t
29447 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29448 vtst_u16 (uint16x4_t __a, uint16x4_t __b)
29450 return ((__a & __b) != 0);
29453 __extension__ extern __inline uint32x2_t
29454 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29455 vtst_u32 (uint32x2_t __a, uint32x2_t __b)
29457 return ((__a & __b) != 0);
29460 __extension__ extern __inline uint64x1_t
29461 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29462 vtst_u64 (uint64x1_t __a, uint64x1_t __b)
29464 return ((__a & __b) != __AARCH64_UINT64_C (0));
29467 __extension__ extern __inline uint8x16_t
29468 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29469 vtstq_s8 (int8x16_t __a, int8x16_t __b)
29471 return (uint8x16_t) ((__a & __b) != 0);
29474 __extension__ extern __inline uint16x8_t
29475 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29476 vtstq_s16 (int16x8_t __a, int16x8_t __b)
29478 return (uint16x8_t) ((__a & __b) != 0);
29481 __extension__ extern __inline uint32x4_t
29482 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29483 vtstq_s32 (int32x4_t __a, int32x4_t __b)
29485 return (uint32x4_t) ((__a & __b) != 0);
29488 __extension__ extern __inline uint64x2_t
29489 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29490 vtstq_s64 (int64x2_t __a, int64x2_t __b)
29492 return (uint64x2_t) ((__a & __b) != __AARCH64_INT64_C (0));
29495 __extension__ extern __inline uint8x16_t
29496 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29497 vtstq_u8 (uint8x16_t __a, uint8x16_t __b)
29499 return ((__a & __b) != 0);
29502 __extension__ extern __inline uint16x8_t
29503 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29504 vtstq_u16 (uint16x8_t __a, uint16x8_t __b)
29506 return ((__a & __b) != 0);
29509 __extension__ extern __inline uint32x4_t
29510 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29511 vtstq_u32 (uint32x4_t __a, uint32x4_t __b)
29513 return ((__a & __b) != 0);
29516 __extension__ extern __inline uint64x2_t
29517 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29518 vtstq_u64 (uint64x2_t __a, uint64x2_t __b)
29520 return ((__a & __b) != __AARCH64_UINT64_C (0));
29523 __extension__ extern __inline uint64_t
29524 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29525 vtstd_s64 (int64_t __a, int64_t __b)
29527 return (__a & __b) ? -1ll : 0ll;
29530 __extension__ extern __inline uint64_t
29531 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29532 vtstd_u64 (uint64_t __a, uint64_t __b)
29534 return (__a & __b) ? -1ll : 0ll;
29537 /* vuqadd */
29539 __extension__ extern __inline int8x8_t
29540 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29541 vuqadd_s8 (int8x8_t __a, uint8x8_t __b)
29543 return __builtin_aarch64_suqaddv8qi_ssu (__a, __b);
29546 __extension__ extern __inline int16x4_t
29547 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29548 vuqadd_s16 (int16x4_t __a, uint16x4_t __b)
29550 return __builtin_aarch64_suqaddv4hi_ssu (__a, __b);
29553 __extension__ extern __inline int32x2_t
29554 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29555 vuqadd_s32 (int32x2_t __a, uint32x2_t __b)
29557 return __builtin_aarch64_suqaddv2si_ssu (__a, __b);
29560 __extension__ extern __inline int64x1_t
29561 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29562 vuqadd_s64 (int64x1_t __a, uint64x1_t __b)
29564 return (int64x1_t) {__builtin_aarch64_suqadddi_ssu (__a[0], __b[0])};
29567 __extension__ extern __inline int8x16_t
29568 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29569 vuqaddq_s8 (int8x16_t __a, uint8x16_t __b)
29571 return __builtin_aarch64_suqaddv16qi_ssu (__a, __b);
29574 __extension__ extern __inline int16x8_t
29575 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29576 vuqaddq_s16 (int16x8_t __a, uint16x8_t __b)
29578 return __builtin_aarch64_suqaddv8hi_ssu (__a, __b);
29581 __extension__ extern __inline int32x4_t
29582 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29583 vuqaddq_s32 (int32x4_t __a, uint32x4_t __b)
29585 return __builtin_aarch64_suqaddv4si_ssu (__a, __b);
29588 __extension__ extern __inline int64x2_t
29589 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29590 vuqaddq_s64 (int64x2_t __a, uint64x2_t __b)
29592 return __builtin_aarch64_suqaddv2di_ssu (__a, __b);
29595 __extension__ extern __inline int8_t
29596 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29597 vuqaddb_s8 (int8_t __a, uint8_t __b)
29599 return __builtin_aarch64_suqaddqi_ssu (__a, __b);
29602 __extension__ extern __inline int16_t
29603 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29604 vuqaddh_s16 (int16_t __a, uint16_t __b)
29606 return __builtin_aarch64_suqaddhi_ssu (__a, __b);
29609 __extension__ extern __inline int32_t
29610 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29611 vuqadds_s32 (int32_t __a, uint32_t __b)
29613 return __builtin_aarch64_suqaddsi_ssu (__a, __b);
29616 __extension__ extern __inline int64_t
29617 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29618 vuqaddd_s64 (int64_t __a, uint64_t __b)
29620 return __builtin_aarch64_suqadddi_ssu (__a, __b);
29623 #define __DEFINTERLEAVE(op, rettype, intype, funcsuffix, Q) \
29624 __extension__ extern __inline rettype \
29625 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) \
29626 v ## op ## Q ## _ ## funcsuffix (intype a, intype b) \
29628 return (rettype) {v ## op ## 1 ## Q ## _ ## funcsuffix (a, b), \
29629 v ## op ## 2 ## Q ## _ ## funcsuffix (a, b)}; \
29632 #define __INTERLEAVE_LIST(op) \
29633 __DEFINTERLEAVE (op, float16x4x2_t, float16x4_t, f16,) \
29634 __DEFINTERLEAVE (op, float32x2x2_t, float32x2_t, f32,) \
29635 __DEFINTERLEAVE (op, poly8x8x2_t, poly8x8_t, p8,) \
29636 __DEFINTERLEAVE (op, poly16x4x2_t, poly16x4_t, p16,) \
29637 __DEFINTERLEAVE (op, int8x8x2_t, int8x8_t, s8,) \
29638 __DEFINTERLEAVE (op, int16x4x2_t, int16x4_t, s16,) \
29639 __DEFINTERLEAVE (op, int32x2x2_t, int32x2_t, s32,) \
29640 __DEFINTERLEAVE (op, uint8x8x2_t, uint8x8_t, u8,) \
29641 __DEFINTERLEAVE (op, uint16x4x2_t, uint16x4_t, u16,) \
29642 __DEFINTERLEAVE (op, uint32x2x2_t, uint32x2_t, u32,) \
29643 __DEFINTERLEAVE (op, float16x8x2_t, float16x8_t, f16, q) \
29644 __DEFINTERLEAVE (op, float32x4x2_t, float32x4_t, f32, q) \
29645 __DEFINTERLEAVE (op, poly8x16x2_t, poly8x16_t, p8, q) \
29646 __DEFINTERLEAVE (op, poly16x8x2_t, poly16x8_t, p16, q) \
29647 __DEFINTERLEAVE (op, int8x16x2_t, int8x16_t, s8, q) \
29648 __DEFINTERLEAVE (op, int16x8x2_t, int16x8_t, s16, q) \
29649 __DEFINTERLEAVE (op, int32x4x2_t, int32x4_t, s32, q) \
29650 __DEFINTERLEAVE (op, uint8x16x2_t, uint8x16_t, u8, q) \
29651 __DEFINTERLEAVE (op, uint16x8x2_t, uint16x8_t, u16, q) \
29652 __DEFINTERLEAVE (op, uint32x4x2_t, uint32x4_t, u32, q)
29654 /* vuzp */
29656 __extension__ extern __inline float16x4_t
29657 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29658 vuzp1_f16 (float16x4_t __a, float16x4_t __b)
29660 #ifdef __AARCH64EB__
29661 return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 7, 1, 3});
29662 #else
29663 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 2, 4, 6});
29664 #endif
29667 __extension__ extern __inline float32x2_t
29668 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29669 vuzp1_f32 (float32x2_t __a, float32x2_t __b)
29671 #ifdef __AARCH64EB__
29672 return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
29673 #else
29674 return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
29675 #endif
29678 __extension__ extern __inline poly8x8_t
29679 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29680 vuzp1_p8 (poly8x8_t __a, poly8x8_t __b)
29682 #ifdef __AARCH64EB__
29683 return __builtin_shuffle (__a, __b, (uint8x8_t) {9, 11, 13, 15, 1, 3, 5, 7});
29684 #else
29685 return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 2, 4, 6, 8, 10, 12, 14});
29686 #endif
29689 __extension__ extern __inline poly16x4_t
29690 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29691 vuzp1_p16 (poly16x4_t __a, poly16x4_t __b)
29693 #ifdef __AARCH64EB__
29694 return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 7, 1, 3});
29695 #else
29696 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 2, 4, 6});
29697 #endif
29700 __extension__ extern __inline int8x8_t
29701 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29702 vuzp1_s8 (int8x8_t __a, int8x8_t __b)
29704 #ifdef __AARCH64EB__
29705 return __builtin_shuffle (__a, __b, (uint8x8_t) {9, 11, 13, 15, 1, 3, 5, 7});
29706 #else
29707 return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 2, 4, 6, 8, 10, 12, 14});
29708 #endif
29711 __extension__ extern __inline int16x4_t
29712 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29713 vuzp1_s16 (int16x4_t __a, int16x4_t __b)
29715 #ifdef __AARCH64EB__
29716 return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 7, 1, 3});
29717 #else
29718 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 2, 4, 6});
29719 #endif
29722 __extension__ extern __inline int32x2_t
29723 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29724 vuzp1_s32 (int32x2_t __a, int32x2_t __b)
29726 #ifdef __AARCH64EB__
29727 return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
29728 #else
29729 return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
29730 #endif
29733 __extension__ extern __inline uint8x8_t
29734 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29735 vuzp1_u8 (uint8x8_t __a, uint8x8_t __b)
29737 #ifdef __AARCH64EB__
29738 return __builtin_shuffle (__a, __b, (uint8x8_t) {9, 11, 13, 15, 1, 3, 5, 7});
29739 #else
29740 return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 2, 4, 6, 8, 10, 12, 14});
29741 #endif
29744 __extension__ extern __inline uint16x4_t
29745 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29746 vuzp1_u16 (uint16x4_t __a, uint16x4_t __b)
29748 #ifdef __AARCH64EB__
29749 return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 7, 1, 3});
29750 #else
29751 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 2, 4, 6});
29752 #endif
29755 __extension__ extern __inline uint32x2_t
29756 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29757 vuzp1_u32 (uint32x2_t __a, uint32x2_t __b)
29759 #ifdef __AARCH64EB__
29760 return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
29761 #else
29762 return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
29763 #endif
29766 __extension__ extern __inline float16x8_t
29767 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29768 vuzp1q_f16 (float16x8_t __a, float16x8_t __b)
29770 #ifdef __AARCH64EB__
29771 return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 11, 13, 15, 1, 3, 5, 7});
29772 #else
29773 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 2, 4, 6, 8, 10, 12, 14});
29774 #endif
29777 __extension__ extern __inline float32x4_t
29778 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29779 vuzp1q_f32 (float32x4_t __a, float32x4_t __b)
29781 #ifdef __AARCH64EB__
29782 return __builtin_shuffle (__a, __b, (uint32x4_t) {5, 7, 1, 3});
29783 #else
29784 return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 2, 4, 6});
29785 #endif
29788 __extension__ extern __inline float64x2_t
29789 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29790 vuzp1q_f64 (float64x2_t __a, float64x2_t __b)
29792 #ifdef __AARCH64EB__
29793 return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
29794 #else
29795 return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
29796 #endif
29799 __extension__ extern __inline poly8x16_t
29800 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29801 vuzp1q_p8 (poly8x16_t __a, poly8x16_t __b)
29803 #ifdef __AARCH64EB__
29804 return __builtin_shuffle (__a, __b, (uint8x16_t)
29805 {17, 19, 21, 23, 25, 27, 29, 31, 1, 3, 5, 7, 9, 11, 13, 15});
29806 #else
29807 return __builtin_shuffle (__a, __b, (uint8x16_t)
29808 {0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30});
29809 #endif
29812 __extension__ extern __inline poly16x8_t
29813 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29814 vuzp1q_p16 (poly16x8_t __a, poly16x8_t __b)
29816 #ifdef __AARCH64EB__
29817 return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 11, 13, 15, 1, 3, 5, 7});
29818 #else
29819 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 2, 4, 6, 8, 10, 12, 14});
29820 #endif
29823 __extension__ extern __inline int8x16_t
29824 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29825 vuzp1q_s8 (int8x16_t __a, int8x16_t __b)
29827 #ifdef __AARCH64EB__
29828 return __builtin_shuffle (__a, __b,
29829 (uint8x16_t) {17, 19, 21, 23, 25, 27, 29, 31, 1, 3, 5, 7, 9, 11, 13, 15});
29830 #else
29831 return __builtin_shuffle (__a, __b,
29832 (uint8x16_t) {0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30});
29833 #endif
29836 __extension__ extern __inline int16x8_t
29837 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29838 vuzp1q_s16 (int16x8_t __a, int16x8_t __b)
29840 #ifdef __AARCH64EB__
29841 return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 11, 13, 15, 1, 3, 5, 7});
29842 #else
29843 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 2, 4, 6, 8, 10, 12, 14});
29844 #endif
29847 __extension__ extern __inline int32x4_t
29848 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29849 vuzp1q_s32 (int32x4_t __a, int32x4_t __b)
29851 #ifdef __AARCH64EB__
29852 return __builtin_shuffle (__a, __b, (uint32x4_t) {5, 7, 1, 3});
29853 #else
29854 return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 2, 4, 6});
29855 #endif
29858 __extension__ extern __inline int64x2_t
29859 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29860 vuzp1q_s64 (int64x2_t __a, int64x2_t __b)
29862 #ifdef __AARCH64EB__
29863 return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
29864 #else
29865 return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
29866 #endif
29869 __extension__ extern __inline uint8x16_t
29870 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29871 vuzp1q_u8 (uint8x16_t __a, uint8x16_t __b)
29873 #ifdef __AARCH64EB__
29874 return __builtin_shuffle (__a, __b,
29875 (uint8x16_t) {17, 19, 21, 23, 25, 27, 29, 31, 1, 3, 5, 7, 9, 11, 13, 15});
29876 #else
29877 return __builtin_shuffle (__a, __b,
29878 (uint8x16_t) {0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30});
29879 #endif
29882 __extension__ extern __inline uint16x8_t
29883 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29884 vuzp1q_u16 (uint16x8_t __a, uint16x8_t __b)
29886 #ifdef __AARCH64EB__
29887 return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 11, 13, 15, 1, 3, 5, 7});
29888 #else
29889 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 2, 4, 6, 8, 10, 12, 14});
29890 #endif
29893 __extension__ extern __inline uint32x4_t
29894 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29895 vuzp1q_u32 (uint32x4_t __a, uint32x4_t __b)
29897 #ifdef __AARCH64EB__
29898 return __builtin_shuffle (__a, __b, (uint32x4_t) {5, 7, 1, 3});
29899 #else
29900 return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 2, 4, 6});
29901 #endif
29904 __extension__ extern __inline uint64x2_t
29905 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29906 vuzp1q_u64 (uint64x2_t __a, uint64x2_t __b)
29908 #ifdef __AARCH64EB__
29909 return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
29910 #else
29911 return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
29912 #endif
29915 __extension__ extern __inline float16x4_t
29916 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29917 vuzp2_f16 (float16x4_t __a, float16x4_t __b)
29919 #ifdef __AARCH64EB__
29920 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 6, 0, 2});
29921 #else
29922 return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 3, 5, 7});
29923 #endif
29926 __extension__ extern __inline float32x2_t
29927 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29928 vuzp2_f32 (float32x2_t __a, float32x2_t __b)
29930 #ifdef __AARCH64EB__
29931 return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
29932 #else
29933 return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
29934 #endif
29937 __extension__ extern __inline poly8x8_t
29938 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29939 vuzp2_p8 (poly8x8_t __a, poly8x8_t __b)
29941 #ifdef __AARCH64EB__
29942 return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 10, 12, 14, 0, 2, 4, 6});
29943 #else
29944 return __builtin_shuffle (__a, __b, (uint8x8_t) {1, 3, 5, 7, 9, 11, 13, 15});
29945 #endif
29948 __extension__ extern __inline poly16x4_t
29949 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29950 vuzp2_p16 (poly16x4_t __a, poly16x4_t __b)
29952 #ifdef __AARCH64EB__
29953 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 6, 0, 2});
29954 #else
29955 return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 3, 5, 7});
29956 #endif
29959 __extension__ extern __inline int8x8_t
29960 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29961 vuzp2_s8 (int8x8_t __a, int8x8_t __b)
29963 #ifdef __AARCH64EB__
29964 return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 10, 12, 14, 0, 2, 4, 6});
29965 #else
29966 return __builtin_shuffle (__a, __b, (uint8x8_t) {1, 3, 5, 7, 9, 11, 13, 15});
29967 #endif
29970 __extension__ extern __inline int16x4_t
29971 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29972 vuzp2_s16 (int16x4_t __a, int16x4_t __b)
29974 #ifdef __AARCH64EB__
29975 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 6, 0, 2});
29976 #else
29977 return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 3, 5, 7});
29978 #endif
29981 __extension__ extern __inline int32x2_t
29982 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29983 vuzp2_s32 (int32x2_t __a, int32x2_t __b)
29985 #ifdef __AARCH64EB__
29986 return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
29987 #else
29988 return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
29989 #endif
29992 __extension__ extern __inline uint8x8_t
29993 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29994 vuzp2_u8 (uint8x8_t __a, uint8x8_t __b)
29996 #ifdef __AARCH64EB__
29997 return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 10, 12, 14, 0, 2, 4, 6});
29998 #else
29999 return __builtin_shuffle (__a, __b, (uint8x8_t) {1, 3, 5, 7, 9, 11, 13, 15});
30000 #endif
30003 __extension__ extern __inline uint16x4_t
30004 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30005 vuzp2_u16 (uint16x4_t __a, uint16x4_t __b)
30007 #ifdef __AARCH64EB__
30008 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 6, 0, 2});
30009 #else
30010 return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 3, 5, 7});
30011 #endif
30014 __extension__ extern __inline uint32x2_t
30015 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30016 vuzp2_u32 (uint32x2_t __a, uint32x2_t __b)
30018 #ifdef __AARCH64EB__
30019 return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
30020 #else
30021 return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
30022 #endif
30025 __extension__ extern __inline float16x8_t
30026 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30027 vuzp2q_f16 (float16x8_t __a, float16x8_t __b)
30029 #ifdef __AARCH64EB__
30030 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 10, 12, 14, 0, 2, 4, 6});
30031 #else
30032 return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 3, 5, 7, 9, 11, 13, 15});
30033 #endif
30036 __extension__ extern __inline float32x4_t
30037 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30038 vuzp2q_f32 (float32x4_t __a, float32x4_t __b)
30040 #ifdef __AARCH64EB__
30041 return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 6, 0, 2});
30042 #else
30043 return __builtin_shuffle (__a, __b, (uint32x4_t) {1, 3, 5, 7});
30044 #endif
30047 __extension__ extern __inline float64x2_t
30048 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30049 vuzp2q_f64 (float64x2_t __a, float64x2_t __b)
30051 #ifdef __AARCH64EB__
30052 return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
30053 #else
30054 return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
30055 #endif
30058 __extension__ extern __inline poly8x16_t
30059 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30060 vuzp2q_p8 (poly8x16_t __a, poly8x16_t __b)
30062 #ifdef __AARCH64EB__
30063 return __builtin_shuffle (__a, __b,
30064 (uint8x16_t) {16, 18, 20, 22, 24, 26, 28, 30, 0, 2, 4, 6, 8, 10, 12, 14});
30065 #else
30066 return __builtin_shuffle (__a, __b,
30067 (uint8x16_t) {1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31});
30068 #endif
30071 __extension__ extern __inline poly16x8_t
30072 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30073 vuzp2q_p16 (poly16x8_t __a, poly16x8_t __b)
30075 #ifdef __AARCH64EB__
30076 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 10, 12, 14, 0, 2, 4, 6});
30077 #else
30078 return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 3, 5, 7, 9, 11, 13, 15});
30079 #endif
30082 __extension__ extern __inline int8x16_t
30083 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30084 vuzp2q_s8 (int8x16_t __a, int8x16_t __b)
30086 #ifdef __AARCH64EB__
30087 return __builtin_shuffle (__a, __b,
30088 (uint8x16_t) {16, 18, 20, 22, 24, 26, 28, 30, 0, 2, 4, 6, 8, 10, 12, 14});
30089 #else
30090 return __builtin_shuffle (__a, __b,
30091 (uint8x16_t) {1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31});
30092 #endif
30095 __extension__ extern __inline int16x8_t
30096 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30097 vuzp2q_s16 (int16x8_t __a, int16x8_t __b)
30099 #ifdef __AARCH64EB__
30100 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 10, 12, 14, 0, 2, 4, 6});
30101 #else
30102 return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 3, 5, 7, 9, 11, 13, 15});
30103 #endif
30106 __extension__ extern __inline int32x4_t
30107 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30108 vuzp2q_s32 (int32x4_t __a, int32x4_t __b)
30110 #ifdef __AARCH64EB__
30111 return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 6, 0, 2});
30112 #else
30113 return __builtin_shuffle (__a, __b, (uint32x4_t) {1, 3, 5, 7});
30114 #endif
30117 __extension__ extern __inline int64x2_t
30118 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30119 vuzp2q_s64 (int64x2_t __a, int64x2_t __b)
30121 #ifdef __AARCH64EB__
30122 return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
30123 #else
30124 return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
30125 #endif
30128 __extension__ extern __inline uint8x16_t
30129 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30130 vuzp2q_u8 (uint8x16_t __a, uint8x16_t __b)
30132 #ifdef __AARCH64EB__
30133 return __builtin_shuffle (__a, __b, (uint8x16_t)
30134 {16, 18, 20, 22, 24, 26, 28, 30, 0, 2, 4, 6, 8, 10, 12, 14});
30135 #else
30136 return __builtin_shuffle (__a, __b, (uint8x16_t)
30137 {1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31});
30138 #endif
30141 __extension__ extern __inline uint16x8_t
30142 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30143 vuzp2q_u16 (uint16x8_t __a, uint16x8_t __b)
30145 #ifdef __AARCH64EB__
30146 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 10, 12, 14, 0, 2, 4, 6});
30147 #else
30148 return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 3, 5, 7, 9, 11, 13, 15});
30149 #endif
30152 __extension__ extern __inline uint32x4_t
30153 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30154 vuzp2q_u32 (uint32x4_t __a, uint32x4_t __b)
30156 #ifdef __AARCH64EB__
30157 return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 6, 0, 2});
30158 #else
30159 return __builtin_shuffle (__a, __b, (uint32x4_t) {1, 3, 5, 7});
30160 #endif
30163 __extension__ extern __inline uint64x2_t
30164 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30165 vuzp2q_u64 (uint64x2_t __a, uint64x2_t __b)
30167 #ifdef __AARCH64EB__
30168 return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
30169 #else
30170 return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
30171 #endif
30174 __INTERLEAVE_LIST (uzp)
30176 /* vzip */
30178 __extension__ extern __inline float16x4_t
30179 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30180 vzip1_f16 (float16x4_t __a, float16x4_t __b)
30182 #ifdef __AARCH64EB__
30183 return __builtin_shuffle (__a, __b, (uint16x4_t) {6, 2, 7, 3});
30184 #else
30185 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 1, 5});
30186 #endif
30189 __extension__ extern __inline float32x2_t
30190 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30191 vzip1_f32 (float32x2_t __a, float32x2_t __b)
30193 #ifdef __AARCH64EB__
30194 return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
30195 #else
30196 return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
30197 #endif
30200 __extension__ extern __inline poly8x8_t
30201 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30202 vzip1_p8 (poly8x8_t __a, poly8x8_t __b)
30204 #ifdef __AARCH64EB__
30205 return __builtin_shuffle (__a, __b, (uint8x8_t) {12, 4, 13, 5, 14, 6, 15, 7});
30206 #else
30207 return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 8, 1, 9, 2, 10, 3, 11});
30208 #endif
30211 __extension__ extern __inline poly16x4_t
30212 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30213 vzip1_p16 (poly16x4_t __a, poly16x4_t __b)
30215 #ifdef __AARCH64EB__
30216 return __builtin_shuffle (__a, __b, (uint16x4_t) {6, 2, 7, 3});
30217 #else
30218 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 1, 5});
30219 #endif
30222 __extension__ extern __inline int8x8_t
30223 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30224 vzip1_s8 (int8x8_t __a, int8x8_t __b)
30226 #ifdef __AARCH64EB__
30227 return __builtin_shuffle (__a, __b, (uint8x8_t) {12, 4, 13, 5, 14, 6, 15, 7});
30228 #else
30229 return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 8, 1, 9, 2, 10, 3, 11});
30230 #endif
30233 __extension__ extern __inline int16x4_t
30234 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30235 vzip1_s16 (int16x4_t __a, int16x4_t __b)
30237 #ifdef __AARCH64EB__
30238 return __builtin_shuffle (__a, __b, (uint16x4_t) {6, 2, 7, 3});
30239 #else
30240 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 1, 5});
30241 #endif
30244 __extension__ extern __inline int32x2_t
30245 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30246 vzip1_s32 (int32x2_t __a, int32x2_t __b)
30248 #ifdef __AARCH64EB__
30249 return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
30250 #else
30251 return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
30252 #endif
30255 __extension__ extern __inline uint8x8_t
30256 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30257 vzip1_u8 (uint8x8_t __a, uint8x8_t __b)
30259 #ifdef __AARCH64EB__
30260 return __builtin_shuffle (__a, __b, (uint8x8_t) {12, 4, 13, 5, 14, 6, 15, 7});
30261 #else
30262 return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 8, 1, 9, 2, 10, 3, 11});
30263 #endif
30266 __extension__ extern __inline uint16x4_t
30267 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30268 vzip1_u16 (uint16x4_t __a, uint16x4_t __b)
30270 #ifdef __AARCH64EB__
30271 return __builtin_shuffle (__a, __b, (uint16x4_t) {6, 2, 7, 3});
30272 #else
30273 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 1, 5});
30274 #endif
30277 __extension__ extern __inline uint32x2_t
30278 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30279 vzip1_u32 (uint32x2_t __a, uint32x2_t __b)
30281 #ifdef __AARCH64EB__
30282 return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
30283 #else
30284 return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
30285 #endif
30288 __extension__ extern __inline float16x8_t
30289 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30290 vzip1q_f16 (float16x8_t __a, float16x8_t __b)
30292 #ifdef __AARCH64EB__
30293 return __builtin_shuffle (__a, __b,
30294 (uint16x8_t) {12, 4, 13, 5, 14, 6, 15, 7});
30295 #else
30296 return __builtin_shuffle (__a, __b,
30297 (uint16x8_t) {0, 8, 1, 9, 2, 10, 3, 11});
30298 #endif
30301 __extension__ extern __inline float32x4_t
30302 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30303 vzip1q_f32 (float32x4_t __a, float32x4_t __b)
30305 #ifdef __AARCH64EB__
30306 return __builtin_shuffle (__a, __b, (uint32x4_t) {6, 2, 7, 3});
30307 #else
30308 return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 4, 1, 5});
30309 #endif
30312 __extension__ extern __inline float64x2_t
30313 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30314 vzip1q_f64 (float64x2_t __a, float64x2_t __b)
30316 #ifdef __AARCH64EB__
30317 return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
30318 #else
30319 return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
30320 #endif
30323 __extension__ extern __inline poly8x16_t
30324 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30325 vzip1q_p8 (poly8x16_t __a, poly8x16_t __b)
30327 #ifdef __AARCH64EB__
30328 return __builtin_shuffle (__a, __b, (uint8x16_t)
30329 {24, 8, 25, 9, 26, 10, 27, 11, 28, 12, 29, 13, 30, 14, 31, 15});
30330 #else
30331 return __builtin_shuffle (__a, __b, (uint8x16_t)
30332 {0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23});
30333 #endif
30336 __extension__ extern __inline poly16x8_t
30337 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30338 vzip1q_p16 (poly16x8_t __a, poly16x8_t __b)
30340 #ifdef __AARCH64EB__
30341 return __builtin_shuffle (__a, __b, (uint16x8_t)
30342 {12, 4, 13, 5, 14, 6, 15, 7});
30343 #else
30344 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 8, 1, 9, 2, 10, 3, 11});
30345 #endif
30348 __extension__ extern __inline int8x16_t
30349 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30350 vzip1q_s8 (int8x16_t __a, int8x16_t __b)
30352 #ifdef __AARCH64EB__
30353 return __builtin_shuffle (__a, __b, (uint8x16_t)
30354 {24, 8, 25, 9, 26, 10, 27, 11, 28, 12, 29, 13, 30, 14, 31, 15});
30355 #else
30356 return __builtin_shuffle (__a, __b, (uint8x16_t)
30357 {0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23});
30358 #endif
30361 __extension__ extern __inline int16x8_t
30362 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30363 vzip1q_s16 (int16x8_t __a, int16x8_t __b)
30365 #ifdef __AARCH64EB__
30366 return __builtin_shuffle (__a, __b, (uint16x8_t)
30367 {12, 4, 13, 5, 14, 6, 15, 7});
30368 #else
30369 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 8, 1, 9, 2, 10, 3, 11});
30370 #endif
30373 __extension__ extern __inline int32x4_t
30374 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30375 vzip1q_s32 (int32x4_t __a, int32x4_t __b)
30377 #ifdef __AARCH64EB__
30378 return __builtin_shuffle (__a, __b, (uint32x4_t) {6, 2, 7, 3});
30379 #else
30380 return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 4, 1, 5});
30381 #endif
30384 __extension__ extern __inline int64x2_t
30385 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30386 vzip1q_s64 (int64x2_t __a, int64x2_t __b)
30388 #ifdef __AARCH64EB__
30389 return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
30390 #else
30391 return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
30392 #endif
30395 __extension__ extern __inline uint8x16_t
30396 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30397 vzip1q_u8 (uint8x16_t __a, uint8x16_t __b)
30399 #ifdef __AARCH64EB__
30400 return __builtin_shuffle (__a, __b, (uint8x16_t)
30401 {24, 8, 25, 9, 26, 10, 27, 11, 28, 12, 29, 13, 30, 14, 31, 15});
30402 #else
30403 return __builtin_shuffle (__a, __b, (uint8x16_t)
30404 {0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23});
30405 #endif
30408 __extension__ extern __inline uint16x8_t
30409 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30410 vzip1q_u16 (uint16x8_t __a, uint16x8_t __b)
30412 #ifdef __AARCH64EB__
30413 return __builtin_shuffle (__a, __b, (uint16x8_t)
30414 {12, 4, 13, 5, 14, 6, 15, 7});
30415 #else
30416 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 8, 1, 9, 2, 10, 3, 11});
30417 #endif
30420 __extension__ extern __inline uint32x4_t
30421 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30422 vzip1q_u32 (uint32x4_t __a, uint32x4_t __b)
30424 #ifdef __AARCH64EB__
30425 return __builtin_shuffle (__a, __b, (uint32x4_t) {6, 2, 7, 3});
30426 #else
30427 return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 4, 1, 5});
30428 #endif
30431 __extension__ extern __inline uint64x2_t
30432 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30433 vzip1q_u64 (uint64x2_t __a, uint64x2_t __b)
30435 #ifdef __AARCH64EB__
30436 return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
30437 #else
30438 return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
30439 #endif
30442 __extension__ extern __inline float16x4_t
30443 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30444 vzip2_f16 (float16x4_t __a, float16x4_t __b)
30446 #ifdef __AARCH64EB__
30447 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 5, 1});
30448 #else
30449 return __builtin_shuffle (__a, __b, (uint16x4_t) {2, 6, 3, 7});
30450 #endif
30453 __extension__ extern __inline float32x2_t
30454 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30455 vzip2_f32 (float32x2_t __a, float32x2_t __b)
30457 #ifdef __AARCH64EB__
30458 return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
30459 #else
30460 return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
30461 #endif
30464 __extension__ extern __inline poly8x8_t
30465 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30466 vzip2_p8 (poly8x8_t __a, poly8x8_t __b)
30468 #ifdef __AARCH64EB__
30469 return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 0, 9, 1, 10, 2, 11, 3});
30470 #else
30471 return __builtin_shuffle (__a, __b, (uint8x8_t) {4, 12, 5, 13, 6, 14, 7, 15});
30472 #endif
30475 __extension__ extern __inline poly16x4_t
30476 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30477 vzip2_p16 (poly16x4_t __a, poly16x4_t __b)
30479 #ifdef __AARCH64EB__
30480 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 5, 1});
30481 #else
30482 return __builtin_shuffle (__a, __b, (uint16x4_t) {2, 6, 3, 7});
30483 #endif
30486 __extension__ extern __inline int8x8_t
30487 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30488 vzip2_s8 (int8x8_t __a, int8x8_t __b)
30490 #ifdef __AARCH64EB__
30491 return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 0, 9, 1, 10, 2, 11, 3});
30492 #else
30493 return __builtin_shuffle (__a, __b, (uint8x8_t) {4, 12, 5, 13, 6, 14, 7, 15});
30494 #endif
30497 __extension__ extern __inline int16x4_t
30498 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30499 vzip2_s16 (int16x4_t __a, int16x4_t __b)
30501 #ifdef __AARCH64EB__
30502 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 5, 1});
30503 #else
30504 return __builtin_shuffle (__a, __b, (uint16x4_t) {2, 6, 3, 7});
30505 #endif
30508 __extension__ extern __inline int32x2_t
30509 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30510 vzip2_s32 (int32x2_t __a, int32x2_t __b)
30512 #ifdef __AARCH64EB__
30513 return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
30514 #else
30515 return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
30516 #endif
30519 __extension__ extern __inline uint8x8_t
30520 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30521 vzip2_u8 (uint8x8_t __a, uint8x8_t __b)
30523 #ifdef __AARCH64EB__
30524 return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 0, 9, 1, 10, 2, 11, 3});
30525 #else
30526 return __builtin_shuffle (__a, __b, (uint8x8_t) {4, 12, 5, 13, 6, 14, 7, 15});
30527 #endif
30530 __extension__ extern __inline uint16x4_t
30531 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30532 vzip2_u16 (uint16x4_t __a, uint16x4_t __b)
30534 #ifdef __AARCH64EB__
30535 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 5, 1});
30536 #else
30537 return __builtin_shuffle (__a, __b, (uint16x4_t) {2, 6, 3, 7});
30538 #endif
30541 __extension__ extern __inline uint32x2_t
30542 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30543 vzip2_u32 (uint32x2_t __a, uint32x2_t __b)
30545 #ifdef __AARCH64EB__
30546 return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
30547 #else
30548 return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
30549 #endif
30552 __extension__ extern __inline float16x8_t
30553 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30554 vzip2q_f16 (float16x8_t __a, float16x8_t __b)
30556 #ifdef __AARCH64EB__
30557 return __builtin_shuffle (__a, __b,
30558 (uint16x8_t) {8, 0, 9, 1, 10, 2, 11, 3});
30559 #else
30560 return __builtin_shuffle (__a, __b,
30561 (uint16x8_t) {4, 12, 5, 13, 6, 14, 7, 15});
30562 #endif
30565 __extension__ extern __inline float32x4_t
30566 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30567 vzip2q_f32 (float32x4_t __a, float32x4_t __b)
30569 #ifdef __AARCH64EB__
30570 return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 0, 5, 1});
30571 #else
30572 return __builtin_shuffle (__a, __b, (uint32x4_t) {2, 6, 3, 7});
30573 #endif
30576 __extension__ extern __inline float64x2_t
30577 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30578 vzip2q_f64 (float64x2_t __a, float64x2_t __b)
30580 #ifdef __AARCH64EB__
30581 return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
30582 #else
30583 return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
30584 #endif
30587 __extension__ extern __inline poly8x16_t
30588 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30589 vzip2q_p8 (poly8x16_t __a, poly8x16_t __b)
30591 #ifdef __AARCH64EB__
30592 return __builtin_shuffle (__a, __b, (uint8x16_t)
30593 {16, 0, 17, 1, 18, 2, 19, 3, 20, 4, 21, 5, 22, 6, 23, 7});
30594 #else
30595 return __builtin_shuffle (__a, __b, (uint8x16_t)
30596 {8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31});
30597 #endif
30600 __extension__ extern __inline poly16x8_t
30601 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30602 vzip2q_p16 (poly16x8_t __a, poly16x8_t __b)
30604 #ifdef __AARCH64EB__
30605 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 0, 9, 1, 10, 2, 11, 3});
30606 #else
30607 return __builtin_shuffle (__a, __b, (uint16x8_t)
30608 {4, 12, 5, 13, 6, 14, 7, 15});
30609 #endif
30612 __extension__ extern __inline int8x16_t
30613 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30614 vzip2q_s8 (int8x16_t __a, int8x16_t __b)
30616 #ifdef __AARCH64EB__
30617 return __builtin_shuffle (__a, __b, (uint8x16_t)
30618 {16, 0, 17, 1, 18, 2, 19, 3, 20, 4, 21, 5, 22, 6, 23, 7});
30619 #else
30620 return __builtin_shuffle (__a, __b, (uint8x16_t)
30621 {8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31});
30622 #endif
30625 __extension__ extern __inline int16x8_t
30626 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30627 vzip2q_s16 (int16x8_t __a, int16x8_t __b)
30629 #ifdef __AARCH64EB__
30630 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 0, 9, 1, 10, 2, 11, 3});
30631 #else
30632 return __builtin_shuffle (__a, __b, (uint16x8_t)
30633 {4, 12, 5, 13, 6, 14, 7, 15});
30634 #endif
30637 __extension__ extern __inline int32x4_t
30638 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30639 vzip2q_s32 (int32x4_t __a, int32x4_t __b)
30641 #ifdef __AARCH64EB__
30642 return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 0, 5, 1});
30643 #else
30644 return __builtin_shuffle (__a, __b, (uint32x4_t) {2, 6, 3, 7});
30645 #endif
30648 __extension__ extern __inline int64x2_t
30649 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30650 vzip2q_s64 (int64x2_t __a, int64x2_t __b)
30652 #ifdef __AARCH64EB__
30653 return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
30654 #else
30655 return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
30656 #endif
30659 __extension__ extern __inline uint8x16_t
30660 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30661 vzip2q_u8 (uint8x16_t __a, uint8x16_t __b)
30663 #ifdef __AARCH64EB__
30664 return __builtin_shuffle (__a, __b, (uint8x16_t)
30665 {16, 0, 17, 1, 18, 2, 19, 3, 20, 4, 21, 5, 22, 6, 23, 7});
30666 #else
30667 return __builtin_shuffle (__a, __b, (uint8x16_t)
30668 {8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31});
30669 #endif
30672 __extension__ extern __inline uint16x8_t
30673 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30674 vzip2q_u16 (uint16x8_t __a, uint16x8_t __b)
30676 #ifdef __AARCH64EB__
30677 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 0, 9, 1, 10, 2, 11, 3});
30678 #else
30679 return __builtin_shuffle (__a, __b, (uint16x8_t)
30680 {4, 12, 5, 13, 6, 14, 7, 15});
30681 #endif
30684 __extension__ extern __inline uint32x4_t
30685 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30686 vzip2q_u32 (uint32x4_t __a, uint32x4_t __b)
30688 #ifdef __AARCH64EB__
30689 return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 0, 5, 1});
30690 #else
30691 return __builtin_shuffle (__a, __b, (uint32x4_t) {2, 6, 3, 7});
30692 #endif
30695 __extension__ extern __inline uint64x2_t
30696 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30697 vzip2q_u64 (uint64x2_t __a, uint64x2_t __b)
30699 #ifdef __AARCH64EB__
30700 return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
30701 #else
30702 return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
30703 #endif
30706 __INTERLEAVE_LIST (zip)
30708 #undef __INTERLEAVE_LIST
30709 #undef __DEFINTERLEAVE
30711 /* End of optimal implementations in approved order. */
30713 #pragma GCC pop_options
30715 /* ARMv8.2-A FP16 intrinsics. */
30717 #include "arm_fp16.h"
30719 #pragma GCC push_options
30720 #pragma GCC target ("arch=armv8.2-a+fp16")
30722 /* ARMv8.2-A FP16 one operand vector intrinsics. */
30724 __extension__ extern __inline float16x4_t
30725 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30726 vabs_f16 (float16x4_t __a)
30728 return __builtin_aarch64_absv4hf (__a);
30731 __extension__ extern __inline float16x8_t
30732 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30733 vabsq_f16 (float16x8_t __a)
30735 return __builtin_aarch64_absv8hf (__a);
30738 __extension__ extern __inline uint16x4_t
30739 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30740 vceqz_f16 (float16x4_t __a)
30742 return __builtin_aarch64_cmeqv4hf_uss (__a, vdup_n_f16 (0.0f));
30745 __extension__ extern __inline uint16x8_t
30746 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30747 vceqzq_f16 (float16x8_t __a)
30749 return __builtin_aarch64_cmeqv8hf_uss (__a, vdupq_n_f16 (0.0f));
30752 __extension__ extern __inline uint16x4_t
30753 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30754 vcgez_f16 (float16x4_t __a)
30756 return __builtin_aarch64_cmgev4hf_uss (__a, vdup_n_f16 (0.0f));
30759 __extension__ extern __inline uint16x8_t
30760 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30761 vcgezq_f16 (float16x8_t __a)
30763 return __builtin_aarch64_cmgev8hf_uss (__a, vdupq_n_f16 (0.0f));
30766 __extension__ extern __inline uint16x4_t
30767 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30768 vcgtz_f16 (float16x4_t __a)
30770 return __builtin_aarch64_cmgtv4hf_uss (__a, vdup_n_f16 (0.0f));
30773 __extension__ extern __inline uint16x8_t
30774 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30775 vcgtzq_f16 (float16x8_t __a)
30777 return __builtin_aarch64_cmgtv8hf_uss (__a, vdupq_n_f16 (0.0f));
30780 __extension__ extern __inline uint16x4_t
30781 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30782 vclez_f16 (float16x4_t __a)
30784 return __builtin_aarch64_cmlev4hf_uss (__a, vdup_n_f16 (0.0f));
30787 __extension__ extern __inline uint16x8_t
30788 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30789 vclezq_f16 (float16x8_t __a)
30791 return __builtin_aarch64_cmlev8hf_uss (__a, vdupq_n_f16 (0.0f));
30794 __extension__ extern __inline uint16x4_t
30795 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30796 vcltz_f16 (float16x4_t __a)
30798 return __builtin_aarch64_cmltv4hf_uss (__a, vdup_n_f16 (0.0f));
30801 __extension__ extern __inline uint16x8_t
30802 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30803 vcltzq_f16 (float16x8_t __a)
30805 return __builtin_aarch64_cmltv8hf_uss (__a, vdupq_n_f16 (0.0f));
30808 __extension__ extern __inline float16x4_t
30809 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30810 vcvt_f16_s16 (int16x4_t __a)
30812 return __builtin_aarch64_floatv4hiv4hf (__a);
30815 __extension__ extern __inline float16x8_t
30816 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30817 vcvtq_f16_s16 (int16x8_t __a)
30819 return __builtin_aarch64_floatv8hiv8hf (__a);
30822 __extension__ extern __inline float16x4_t
30823 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30824 vcvt_f16_u16 (uint16x4_t __a)
30826 return __builtin_aarch64_floatunsv4hiv4hf ((int16x4_t) __a);
30829 __extension__ extern __inline float16x8_t
30830 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30831 vcvtq_f16_u16 (uint16x8_t __a)
30833 return __builtin_aarch64_floatunsv8hiv8hf ((int16x8_t) __a);
30836 __extension__ extern __inline int16x4_t
30837 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30838 vcvt_s16_f16 (float16x4_t __a)
30840 return __builtin_aarch64_lbtruncv4hfv4hi (__a);
30843 __extension__ extern __inline int16x8_t
30844 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30845 vcvtq_s16_f16 (float16x8_t __a)
30847 return __builtin_aarch64_lbtruncv8hfv8hi (__a);
30850 __extension__ extern __inline uint16x4_t
30851 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30852 vcvt_u16_f16 (float16x4_t __a)
30854 return __builtin_aarch64_lbtruncuv4hfv4hi_us (__a);
30857 __extension__ extern __inline uint16x8_t
30858 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30859 vcvtq_u16_f16 (float16x8_t __a)
30861 return __builtin_aarch64_lbtruncuv8hfv8hi_us (__a);
30864 __extension__ extern __inline int16x4_t
30865 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30866 vcvta_s16_f16 (float16x4_t __a)
30868 return __builtin_aarch64_lroundv4hfv4hi (__a);
30871 __extension__ extern __inline int16x8_t
30872 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30873 vcvtaq_s16_f16 (float16x8_t __a)
30875 return __builtin_aarch64_lroundv8hfv8hi (__a);
30878 __extension__ extern __inline uint16x4_t
30879 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30880 vcvta_u16_f16 (float16x4_t __a)
30882 return __builtin_aarch64_lrounduv4hfv4hi_us (__a);
30885 __extension__ extern __inline uint16x8_t
30886 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30887 vcvtaq_u16_f16 (float16x8_t __a)
30889 return __builtin_aarch64_lrounduv8hfv8hi_us (__a);
30892 __extension__ extern __inline int16x4_t
30893 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30894 vcvtm_s16_f16 (float16x4_t __a)
30896 return __builtin_aarch64_lfloorv4hfv4hi (__a);
30899 __extension__ extern __inline int16x8_t
30900 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30901 vcvtmq_s16_f16 (float16x8_t __a)
30903 return __builtin_aarch64_lfloorv8hfv8hi (__a);
30906 __extension__ extern __inline uint16x4_t
30907 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30908 vcvtm_u16_f16 (float16x4_t __a)
30910 return __builtin_aarch64_lflooruv4hfv4hi_us (__a);
30913 __extension__ extern __inline uint16x8_t
30914 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30915 vcvtmq_u16_f16 (float16x8_t __a)
30917 return __builtin_aarch64_lflooruv8hfv8hi_us (__a);
30920 __extension__ extern __inline int16x4_t
30921 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30922 vcvtn_s16_f16 (float16x4_t __a)
30924 return __builtin_aarch64_lfrintnv4hfv4hi (__a);
30927 __extension__ extern __inline int16x8_t
30928 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30929 vcvtnq_s16_f16 (float16x8_t __a)
30931 return __builtin_aarch64_lfrintnv8hfv8hi (__a);
30934 __extension__ extern __inline uint16x4_t
30935 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30936 vcvtn_u16_f16 (float16x4_t __a)
30938 return __builtin_aarch64_lfrintnuv4hfv4hi_us (__a);
30941 __extension__ extern __inline uint16x8_t
30942 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30943 vcvtnq_u16_f16 (float16x8_t __a)
30945 return __builtin_aarch64_lfrintnuv8hfv8hi_us (__a);
30948 __extension__ extern __inline int16x4_t
30949 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30950 vcvtp_s16_f16 (float16x4_t __a)
30952 return __builtin_aarch64_lceilv4hfv4hi (__a);
30955 __extension__ extern __inline int16x8_t
30956 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30957 vcvtpq_s16_f16 (float16x8_t __a)
30959 return __builtin_aarch64_lceilv8hfv8hi (__a);
30962 __extension__ extern __inline uint16x4_t
30963 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30964 vcvtp_u16_f16 (float16x4_t __a)
30966 return __builtin_aarch64_lceiluv4hfv4hi_us (__a);
30969 __extension__ extern __inline uint16x8_t
30970 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30971 vcvtpq_u16_f16 (float16x8_t __a)
30973 return __builtin_aarch64_lceiluv8hfv8hi_us (__a);
30976 __extension__ extern __inline float16x4_t
30977 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30978 vneg_f16 (float16x4_t __a)
30980 return -__a;
30983 __extension__ extern __inline float16x8_t
30984 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30985 vnegq_f16 (float16x8_t __a)
30987 return -__a;
30990 __extension__ extern __inline float16x4_t
30991 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30992 vrecpe_f16 (float16x4_t __a)
30994 return __builtin_aarch64_frecpev4hf (__a);
30997 __extension__ extern __inline float16x8_t
30998 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30999 vrecpeq_f16 (float16x8_t __a)
31001 return __builtin_aarch64_frecpev8hf (__a);
31004 __extension__ extern __inline float16x4_t
31005 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31006 vrnd_f16 (float16x4_t __a)
31008 return __builtin_aarch64_btruncv4hf (__a);
31011 __extension__ extern __inline float16x8_t
31012 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31013 vrndq_f16 (float16x8_t __a)
31015 return __builtin_aarch64_btruncv8hf (__a);
31018 __extension__ extern __inline float16x4_t
31019 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31020 vrnda_f16 (float16x4_t __a)
31022 return __builtin_aarch64_roundv4hf (__a);
31025 __extension__ extern __inline float16x8_t
31026 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31027 vrndaq_f16 (float16x8_t __a)
31029 return __builtin_aarch64_roundv8hf (__a);
31032 __extension__ extern __inline float16x4_t
31033 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31034 vrndi_f16 (float16x4_t __a)
31036 return __builtin_aarch64_nearbyintv4hf (__a);
31039 __extension__ extern __inline float16x8_t
31040 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31041 vrndiq_f16 (float16x8_t __a)
31043 return __builtin_aarch64_nearbyintv8hf (__a);
31046 __extension__ extern __inline float16x4_t
31047 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31048 vrndm_f16 (float16x4_t __a)
31050 return __builtin_aarch64_floorv4hf (__a);
31053 __extension__ extern __inline float16x8_t
31054 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31055 vrndmq_f16 (float16x8_t __a)
31057 return __builtin_aarch64_floorv8hf (__a);
31060 __extension__ extern __inline float16x4_t
31061 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31062 vrndn_f16 (float16x4_t __a)
31064 return __builtin_aarch64_frintnv4hf (__a);
31067 __extension__ extern __inline float16x8_t
31068 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31069 vrndnq_f16 (float16x8_t __a)
31071 return __builtin_aarch64_frintnv8hf (__a);
31074 __extension__ extern __inline float16x4_t
31075 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31076 vrndp_f16 (float16x4_t __a)
31078 return __builtin_aarch64_ceilv4hf (__a);
31081 __extension__ extern __inline float16x8_t
31082 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31083 vrndpq_f16 (float16x8_t __a)
31085 return __builtin_aarch64_ceilv8hf (__a);
31088 __extension__ extern __inline float16x4_t
31089 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31090 vrndx_f16 (float16x4_t __a)
31092 return __builtin_aarch64_rintv4hf (__a);
31095 __extension__ extern __inline float16x8_t
31096 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31097 vrndxq_f16 (float16x8_t __a)
31099 return __builtin_aarch64_rintv8hf (__a);
31102 __extension__ extern __inline float16x4_t
31103 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31104 vrsqrte_f16 (float16x4_t a)
31106 return __builtin_aarch64_rsqrtev4hf (a);
31109 __extension__ extern __inline float16x8_t
31110 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31111 vrsqrteq_f16 (float16x8_t a)
31113 return __builtin_aarch64_rsqrtev8hf (a);
31116 __extension__ extern __inline float16x4_t
31117 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31118 vsqrt_f16 (float16x4_t a)
31120 return __builtin_aarch64_sqrtv4hf (a);
31123 __extension__ extern __inline float16x8_t
31124 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31125 vsqrtq_f16 (float16x8_t a)
31127 return __builtin_aarch64_sqrtv8hf (a);
31130 /* ARMv8.2-A FP16 two operands vector intrinsics. */
31132 __extension__ extern __inline float16x4_t
31133 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31134 vadd_f16 (float16x4_t __a, float16x4_t __b)
31136 return __a + __b;
31139 __extension__ extern __inline float16x8_t
31140 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31141 vaddq_f16 (float16x8_t __a, float16x8_t __b)
31143 return __a + __b;
31146 __extension__ extern __inline float16x4_t
31147 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31148 vabd_f16 (float16x4_t a, float16x4_t b)
31150 return __builtin_aarch64_fabdv4hf (a, b);
31153 __extension__ extern __inline float16x8_t
31154 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31155 vabdq_f16 (float16x8_t a, float16x8_t b)
31157 return __builtin_aarch64_fabdv8hf (a, b);
31160 __extension__ extern __inline uint16x4_t
31161 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31162 vcage_f16 (float16x4_t __a, float16x4_t __b)
31164 return __builtin_aarch64_facgev4hf_uss (__a, __b);
31167 __extension__ extern __inline uint16x8_t
31168 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31169 vcageq_f16 (float16x8_t __a, float16x8_t __b)
31171 return __builtin_aarch64_facgev8hf_uss (__a, __b);
31174 __extension__ extern __inline uint16x4_t
31175 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31176 vcagt_f16 (float16x4_t __a, float16x4_t __b)
31178 return __builtin_aarch64_facgtv4hf_uss (__a, __b);
31181 __extension__ extern __inline uint16x8_t
31182 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31183 vcagtq_f16 (float16x8_t __a, float16x8_t __b)
31185 return __builtin_aarch64_facgtv8hf_uss (__a, __b);
31188 __extension__ extern __inline uint16x4_t
31189 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31190 vcale_f16 (float16x4_t __a, float16x4_t __b)
31192 return __builtin_aarch64_faclev4hf_uss (__a, __b);
31195 __extension__ extern __inline uint16x8_t
31196 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31197 vcaleq_f16 (float16x8_t __a, float16x8_t __b)
31199 return __builtin_aarch64_faclev8hf_uss (__a, __b);
31202 __extension__ extern __inline uint16x4_t
31203 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31204 vcalt_f16 (float16x4_t __a, float16x4_t __b)
31206 return __builtin_aarch64_facltv4hf_uss (__a, __b);
31209 __extension__ extern __inline uint16x8_t
31210 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31211 vcaltq_f16 (float16x8_t __a, float16x8_t __b)
31213 return __builtin_aarch64_facltv8hf_uss (__a, __b);
31216 __extension__ extern __inline uint16x4_t
31217 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31218 vceq_f16 (float16x4_t __a, float16x4_t __b)
31220 return __builtin_aarch64_cmeqv4hf_uss (__a, __b);
31223 __extension__ extern __inline uint16x8_t
31224 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31225 vceqq_f16 (float16x8_t __a, float16x8_t __b)
31227 return __builtin_aarch64_cmeqv8hf_uss (__a, __b);
31230 __extension__ extern __inline uint16x4_t
31231 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31232 vcge_f16 (float16x4_t __a, float16x4_t __b)
31234 return __builtin_aarch64_cmgev4hf_uss (__a, __b);
31237 __extension__ extern __inline uint16x8_t
31238 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31239 vcgeq_f16 (float16x8_t __a, float16x8_t __b)
31241 return __builtin_aarch64_cmgev8hf_uss (__a, __b);
31244 __extension__ extern __inline uint16x4_t
31245 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31246 vcgt_f16 (float16x4_t __a, float16x4_t __b)
31248 return __builtin_aarch64_cmgtv4hf_uss (__a, __b);
31251 __extension__ extern __inline uint16x8_t
31252 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31253 vcgtq_f16 (float16x8_t __a, float16x8_t __b)
31255 return __builtin_aarch64_cmgtv8hf_uss (__a, __b);
31258 __extension__ extern __inline uint16x4_t
31259 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31260 vcle_f16 (float16x4_t __a, float16x4_t __b)
31262 return __builtin_aarch64_cmlev4hf_uss (__a, __b);
31265 __extension__ extern __inline uint16x8_t
31266 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31267 vcleq_f16 (float16x8_t __a, float16x8_t __b)
31269 return __builtin_aarch64_cmlev8hf_uss (__a, __b);
31272 __extension__ extern __inline uint16x4_t
31273 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31274 vclt_f16 (float16x4_t __a, float16x4_t __b)
31276 return __builtin_aarch64_cmltv4hf_uss (__a, __b);
31279 __extension__ extern __inline uint16x8_t
31280 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31281 vcltq_f16 (float16x8_t __a, float16x8_t __b)
31283 return __builtin_aarch64_cmltv8hf_uss (__a, __b);
31286 __extension__ extern __inline float16x4_t
31287 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31288 vcvt_n_f16_s16 (int16x4_t __a, const int __b)
31290 return __builtin_aarch64_scvtfv4hi (__a, __b);
31293 __extension__ extern __inline float16x8_t
31294 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31295 vcvtq_n_f16_s16 (int16x8_t __a, const int __b)
31297 return __builtin_aarch64_scvtfv8hi (__a, __b);
31300 __extension__ extern __inline float16x4_t
31301 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31302 vcvt_n_f16_u16 (uint16x4_t __a, const int __b)
31304 return __builtin_aarch64_ucvtfv4hi_sus (__a, __b);
31307 __extension__ extern __inline float16x8_t
31308 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31309 vcvtq_n_f16_u16 (uint16x8_t __a, const int __b)
31311 return __builtin_aarch64_ucvtfv8hi_sus (__a, __b);
31314 __extension__ extern __inline int16x4_t
31315 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31316 vcvt_n_s16_f16 (float16x4_t __a, const int __b)
31318 return __builtin_aarch64_fcvtzsv4hf (__a, __b);
31321 __extension__ extern __inline int16x8_t
31322 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31323 vcvtq_n_s16_f16 (float16x8_t __a, const int __b)
31325 return __builtin_aarch64_fcvtzsv8hf (__a, __b);
31328 __extension__ extern __inline uint16x4_t
31329 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31330 vcvt_n_u16_f16 (float16x4_t __a, const int __b)
31332 return __builtin_aarch64_fcvtzuv4hf_uss (__a, __b);
31335 __extension__ extern __inline uint16x8_t
31336 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31337 vcvtq_n_u16_f16 (float16x8_t __a, const int __b)
31339 return __builtin_aarch64_fcvtzuv8hf_uss (__a, __b);
31342 __extension__ extern __inline float16x4_t
31343 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31344 vdiv_f16 (float16x4_t __a, float16x4_t __b)
31346 return __a / __b;
31349 __extension__ extern __inline float16x8_t
31350 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31351 vdivq_f16 (float16x8_t __a, float16x8_t __b)
31353 return __a / __b;
31356 __extension__ extern __inline float16x4_t
31357 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31358 vmax_f16 (float16x4_t __a, float16x4_t __b)
31360 return __builtin_aarch64_smax_nanv4hf (__a, __b);
31363 __extension__ extern __inline float16x8_t
31364 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31365 vmaxq_f16 (float16x8_t __a, float16x8_t __b)
31367 return __builtin_aarch64_smax_nanv8hf (__a, __b);
31370 __extension__ extern __inline float16x4_t
31371 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31372 vmaxnm_f16 (float16x4_t __a, float16x4_t __b)
31374 return __builtin_aarch64_fmaxv4hf (__a, __b);
31377 __extension__ extern __inline float16x8_t
31378 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31379 vmaxnmq_f16 (float16x8_t __a, float16x8_t __b)
31381 return __builtin_aarch64_fmaxv8hf (__a, __b);
31384 __extension__ extern __inline float16x4_t
31385 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31386 vmin_f16 (float16x4_t __a, float16x4_t __b)
31388 return __builtin_aarch64_smin_nanv4hf (__a, __b);
31391 __extension__ extern __inline float16x8_t
31392 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31393 vminq_f16 (float16x8_t __a, float16x8_t __b)
31395 return __builtin_aarch64_smin_nanv8hf (__a, __b);
31398 __extension__ extern __inline float16x4_t
31399 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31400 vminnm_f16 (float16x4_t __a, float16x4_t __b)
31402 return __builtin_aarch64_fminv4hf (__a, __b);
31405 __extension__ extern __inline float16x8_t
31406 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31407 vminnmq_f16 (float16x8_t __a, float16x8_t __b)
31409 return __builtin_aarch64_fminv8hf (__a, __b);
31412 __extension__ extern __inline float16x4_t
31413 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31414 vmul_f16 (float16x4_t __a, float16x4_t __b)
31416 return __a * __b;
31419 __extension__ extern __inline float16x8_t
31420 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31421 vmulq_f16 (float16x8_t __a, float16x8_t __b)
31423 return __a * __b;
31426 __extension__ extern __inline float16x4_t
31427 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31428 vmulx_f16 (float16x4_t __a, float16x4_t __b)
31430 return __builtin_aarch64_fmulxv4hf (__a, __b);
31433 __extension__ extern __inline float16x8_t
31434 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31435 vmulxq_f16 (float16x8_t __a, float16x8_t __b)
31437 return __builtin_aarch64_fmulxv8hf (__a, __b);
31440 __extension__ extern __inline float16x4_t
31441 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31442 vpadd_f16 (float16x4_t a, float16x4_t b)
31444 return __builtin_aarch64_faddpv4hf (a, b);
31447 __extension__ extern __inline float16x8_t
31448 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31449 vpaddq_f16 (float16x8_t a, float16x8_t b)
31451 return __builtin_aarch64_faddpv8hf (a, b);
31454 __extension__ extern __inline float16x4_t
31455 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31456 vpmax_f16 (float16x4_t a, float16x4_t b)
31458 return __builtin_aarch64_smax_nanpv4hf (a, b);
31461 __extension__ extern __inline float16x8_t
31462 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31463 vpmaxq_f16 (float16x8_t a, float16x8_t b)
31465 return __builtin_aarch64_smax_nanpv8hf (a, b);
31468 __extension__ extern __inline float16x4_t
31469 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31470 vpmaxnm_f16 (float16x4_t a, float16x4_t b)
31472 return __builtin_aarch64_smaxpv4hf (a, b);
31475 __extension__ extern __inline float16x8_t
31476 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31477 vpmaxnmq_f16 (float16x8_t a, float16x8_t b)
31479 return __builtin_aarch64_smaxpv8hf (a, b);
31482 __extension__ extern __inline float16x4_t
31483 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31484 vpmin_f16 (float16x4_t a, float16x4_t b)
31486 return __builtin_aarch64_smin_nanpv4hf (a, b);
31489 __extension__ extern __inline float16x8_t
31490 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31491 vpminq_f16 (float16x8_t a, float16x8_t b)
31493 return __builtin_aarch64_smin_nanpv8hf (a, b);
31496 __extension__ extern __inline float16x4_t
31497 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31498 vpminnm_f16 (float16x4_t a, float16x4_t b)
31500 return __builtin_aarch64_sminpv4hf (a, b);
31503 __extension__ extern __inline float16x8_t
31504 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31505 vpminnmq_f16 (float16x8_t a, float16x8_t b)
31507 return __builtin_aarch64_sminpv8hf (a, b);
31510 __extension__ extern __inline float16x4_t
31511 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31512 vrecps_f16 (float16x4_t __a, float16x4_t __b)
31514 return __builtin_aarch64_frecpsv4hf (__a, __b);
31517 __extension__ extern __inline float16x8_t
31518 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31519 vrecpsq_f16 (float16x8_t __a, float16x8_t __b)
31521 return __builtin_aarch64_frecpsv8hf (__a, __b);
31524 __extension__ extern __inline float16x4_t
31525 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31526 vrsqrts_f16 (float16x4_t a, float16x4_t b)
31528 return __builtin_aarch64_rsqrtsv4hf (a, b);
31531 __extension__ extern __inline float16x8_t
31532 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31533 vrsqrtsq_f16 (float16x8_t a, float16x8_t b)
31535 return __builtin_aarch64_rsqrtsv8hf (a, b);
31538 __extension__ extern __inline float16x4_t
31539 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31540 vsub_f16 (float16x4_t __a, float16x4_t __b)
31542 return __a - __b;
31545 __extension__ extern __inline float16x8_t
31546 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31547 vsubq_f16 (float16x8_t __a, float16x8_t __b)
31549 return __a - __b;
31552 /* ARMv8.2-A FP16 three operands vector intrinsics. */
31554 __extension__ extern __inline float16x4_t
31555 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31556 vfma_f16 (float16x4_t __a, float16x4_t __b, float16x4_t __c)
31558 return __builtin_aarch64_fmav4hf (__b, __c, __a);
31561 __extension__ extern __inline float16x8_t
31562 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31563 vfmaq_f16 (float16x8_t __a, float16x8_t __b, float16x8_t __c)
31565 return __builtin_aarch64_fmav8hf (__b, __c, __a);
31568 __extension__ extern __inline float16x4_t
31569 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31570 vfms_f16 (float16x4_t __a, float16x4_t __b, float16x4_t __c)
31572 return __builtin_aarch64_fnmav4hf (__b, __c, __a);
31575 __extension__ extern __inline float16x8_t
31576 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31577 vfmsq_f16 (float16x8_t __a, float16x8_t __b, float16x8_t __c)
31579 return __builtin_aarch64_fnmav8hf (__b, __c, __a);
31582 /* ARMv8.2-A FP16 lane vector intrinsics. */
31584 __extension__ extern __inline float16_t
31585 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31586 vfmah_lane_f16 (float16_t __a, float16_t __b,
31587 float16x4_t __c, const int __lane)
31589 return vfmah_f16 (__a, __b, __aarch64_vget_lane_any (__c, __lane));
31592 __extension__ extern __inline float16_t
31593 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31594 vfmah_laneq_f16 (float16_t __a, float16_t __b,
31595 float16x8_t __c, const int __lane)
31597 return vfmah_f16 (__a, __b, __aarch64_vget_lane_any (__c, __lane));
31600 __extension__ extern __inline float16x4_t
31601 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31602 vfma_lane_f16 (float16x4_t __a, float16x4_t __b,
31603 float16x4_t __c, const int __lane)
31605 return vfma_f16 (__a, __b, __aarch64_vdup_lane_f16 (__c, __lane));
31608 __extension__ extern __inline float16x8_t
31609 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31610 vfmaq_lane_f16 (float16x8_t __a, float16x8_t __b,
31611 float16x4_t __c, const int __lane)
31613 return vfmaq_f16 (__a, __b, __aarch64_vdupq_lane_f16 (__c, __lane));
31616 __extension__ extern __inline float16x4_t
31617 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31618 vfma_laneq_f16 (float16x4_t __a, float16x4_t __b,
31619 float16x8_t __c, const int __lane)
31621 return vfma_f16 (__a, __b, __aarch64_vdup_laneq_f16 (__c, __lane));
31624 __extension__ extern __inline float16x8_t
31625 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31626 vfmaq_laneq_f16 (float16x8_t __a, float16x8_t __b,
31627 float16x8_t __c, const int __lane)
31629 return vfmaq_f16 (__a, __b, __aarch64_vdupq_laneq_f16 (__c, __lane));
31632 __extension__ extern __inline float16x4_t
31633 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31634 vfma_n_f16 (float16x4_t __a, float16x4_t __b, float16_t __c)
31636 return vfma_f16 (__a, __b, vdup_n_f16 (__c));
31639 __extension__ extern __inline float16x8_t
31640 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31641 vfmaq_n_f16 (float16x8_t __a, float16x8_t __b, float16_t __c)
31643 return vfmaq_f16 (__a, __b, vdupq_n_f16 (__c));
31646 __extension__ extern __inline float16_t
31647 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31648 vfmsh_lane_f16 (float16_t __a, float16_t __b,
31649 float16x4_t __c, const int __lane)
31651 return vfmsh_f16 (__a, __b, __aarch64_vget_lane_any (__c, __lane));
31654 __extension__ extern __inline float16_t
31655 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31656 vfmsh_laneq_f16 (float16_t __a, float16_t __b,
31657 float16x8_t __c, const int __lane)
31659 return vfmsh_f16 (__a, __b, __aarch64_vget_lane_any (__c, __lane));
31662 __extension__ extern __inline float16x4_t
31663 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31664 vfms_lane_f16 (float16x4_t __a, float16x4_t __b,
31665 float16x4_t __c, const int __lane)
31667 return vfms_f16 (__a, __b, __aarch64_vdup_lane_f16 (__c, __lane));
31670 __extension__ extern __inline float16x8_t
31671 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31672 vfmsq_lane_f16 (float16x8_t __a, float16x8_t __b,
31673 float16x4_t __c, const int __lane)
31675 return vfmsq_f16 (__a, __b, __aarch64_vdupq_lane_f16 (__c, __lane));
31678 __extension__ extern __inline float16x4_t
31679 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31680 vfms_laneq_f16 (float16x4_t __a, float16x4_t __b,
31681 float16x8_t __c, const int __lane)
31683 return vfms_f16 (__a, __b, __aarch64_vdup_laneq_f16 (__c, __lane));
31686 __extension__ extern __inline float16x8_t
31687 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31688 vfmsq_laneq_f16 (float16x8_t __a, float16x8_t __b,
31689 float16x8_t __c, const int __lane)
31691 return vfmsq_f16 (__a, __b, __aarch64_vdupq_laneq_f16 (__c, __lane));
31694 __extension__ extern __inline float16x4_t
31695 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31696 vfms_n_f16 (float16x4_t __a, float16x4_t __b, float16_t __c)
31698 return vfms_f16 (__a, __b, vdup_n_f16 (__c));
31701 __extension__ extern __inline float16x8_t
31702 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31703 vfmsq_n_f16 (float16x8_t __a, float16x8_t __b, float16_t __c)
31705 return vfmsq_f16 (__a, __b, vdupq_n_f16 (__c));
31708 __extension__ extern __inline float16_t
31709 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31710 vmulh_lane_f16 (float16_t __a, float16x4_t __b, const int __lane)
31712 return __a * __aarch64_vget_lane_any (__b, __lane);
31715 __extension__ extern __inline float16x4_t
31716 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31717 vmul_lane_f16 (float16x4_t __a, float16x4_t __b, const int __lane)
31719 return vmul_f16 (__a, vdup_n_f16 (__aarch64_vget_lane_any (__b, __lane)));
31722 __extension__ extern __inline float16x8_t
31723 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31724 vmulq_lane_f16 (float16x8_t __a, float16x4_t __b, const int __lane)
31726 return vmulq_f16 (__a, vdupq_n_f16 (__aarch64_vget_lane_any (__b, __lane)));
31729 __extension__ extern __inline float16_t
31730 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31731 vmulh_laneq_f16 (float16_t __a, float16x8_t __b, const int __lane)
31733 return __a * __aarch64_vget_lane_any (__b, __lane);
31736 __extension__ extern __inline float16x4_t
31737 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31738 vmul_laneq_f16 (float16x4_t __a, float16x8_t __b, const int __lane)
31740 return vmul_f16 (__a, vdup_n_f16 (__aarch64_vget_lane_any (__b, __lane)));
31743 __extension__ extern __inline float16x8_t
31744 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31745 vmulq_laneq_f16 (float16x8_t __a, float16x8_t __b, const int __lane)
31747 return vmulq_f16 (__a, vdupq_n_f16 (__aarch64_vget_lane_any (__b, __lane)));
31750 __extension__ extern __inline float16x4_t
31751 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31752 vmul_n_f16 (float16x4_t __a, float16_t __b)
31754 return vmul_lane_f16 (__a, vdup_n_f16 (__b), 0);
31757 __extension__ extern __inline float16x8_t
31758 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31759 vmulq_n_f16 (float16x8_t __a, float16_t __b)
31761 return vmulq_laneq_f16 (__a, vdupq_n_f16 (__b), 0);
31764 __extension__ extern __inline float16_t
31765 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31766 vmulxh_lane_f16 (float16_t __a, float16x4_t __b, const int __lane)
31768 return vmulxh_f16 (__a, __aarch64_vget_lane_any (__b, __lane));
31771 __extension__ extern __inline float16x4_t
31772 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31773 vmulx_lane_f16 (float16x4_t __a, float16x4_t __b, const int __lane)
31775 return vmulx_f16 (__a, __aarch64_vdup_lane_f16 (__b, __lane));
31778 __extension__ extern __inline float16x8_t
31779 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31780 vmulxq_lane_f16 (float16x8_t __a, float16x4_t __b, const int __lane)
31782 return vmulxq_f16 (__a, __aarch64_vdupq_lane_f16 (__b, __lane));
31785 __extension__ extern __inline float16_t
31786 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31787 vmulxh_laneq_f16 (float16_t __a, float16x8_t __b, const int __lane)
31789 return vmulxh_f16 (__a, __aarch64_vget_lane_any (__b, __lane));
31792 __extension__ extern __inline float16x4_t
31793 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31794 vmulx_laneq_f16 (float16x4_t __a, float16x8_t __b, const int __lane)
31796 return vmulx_f16 (__a, __aarch64_vdup_laneq_f16 (__b, __lane));
31799 __extension__ extern __inline float16x8_t
31800 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31801 vmulxq_laneq_f16 (float16x8_t __a, float16x8_t __b, const int __lane)
31803 return vmulxq_f16 (__a, __aarch64_vdupq_laneq_f16 (__b, __lane));
31806 __extension__ extern __inline float16x4_t
31807 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31808 vmulx_n_f16 (float16x4_t __a, float16_t __b)
31810 return vmulx_f16 (__a, vdup_n_f16 (__b));
31813 __extension__ extern __inline float16x8_t
31814 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31815 vmulxq_n_f16 (float16x8_t __a, float16_t __b)
31817 return vmulxq_f16 (__a, vdupq_n_f16 (__b));
31820 /* ARMv8.2-A FP16 reduction vector intrinsics. */
31822 __extension__ extern __inline float16_t
31823 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31824 vmaxv_f16 (float16x4_t __a)
31826 return __builtin_aarch64_reduc_smax_nan_scal_v4hf (__a);
31829 __extension__ extern __inline float16_t
31830 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31831 vmaxvq_f16 (float16x8_t __a)
31833 return __builtin_aarch64_reduc_smax_nan_scal_v8hf (__a);
31836 __extension__ extern __inline float16_t
31837 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31838 vminv_f16 (float16x4_t __a)
31840 return __builtin_aarch64_reduc_smin_nan_scal_v4hf (__a);
31843 __extension__ extern __inline float16_t
31844 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31845 vminvq_f16 (float16x8_t __a)
31847 return __builtin_aarch64_reduc_smin_nan_scal_v8hf (__a);
31850 __extension__ extern __inline float16_t
31851 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31852 vmaxnmv_f16 (float16x4_t __a)
31854 return __builtin_aarch64_reduc_smax_scal_v4hf (__a);
31857 __extension__ extern __inline float16_t
31858 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31859 vmaxnmvq_f16 (float16x8_t __a)
31861 return __builtin_aarch64_reduc_smax_scal_v8hf (__a);
31864 __extension__ extern __inline float16_t
31865 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31866 vminnmv_f16 (float16x4_t __a)
31868 return __builtin_aarch64_reduc_smin_scal_v4hf (__a);
31871 __extension__ extern __inline float16_t
31872 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31873 vminnmvq_f16 (float16x8_t __a)
31875 return __builtin_aarch64_reduc_smin_scal_v8hf (__a);
31878 #pragma GCC pop_options
31880 /* AdvSIMD Dot Product intrinsics. */
31882 #pragma GCC push_options
31883 #pragma GCC target ("arch=armv8.2-a+dotprod")
31885 __extension__ extern __inline uint32x2_t
31886 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31887 vdot_u32 (uint32x2_t __r, uint8x8_t __a, uint8x8_t __b)
31889 return __builtin_aarch64_udotv8qi_uuuu (__r, __a, __b);
31892 __extension__ extern __inline uint32x4_t
31893 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31894 vdotq_u32 (uint32x4_t __r, uint8x16_t __a, uint8x16_t __b)
31896 return __builtin_aarch64_udotv16qi_uuuu (__r, __a, __b);
31899 __extension__ extern __inline int32x2_t
31900 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31901 vdot_s32 (int32x2_t __r, int8x8_t __a, int8x8_t __b)
31903 return __builtin_aarch64_sdotv8qi (__r, __a, __b);
31906 __extension__ extern __inline int32x4_t
31907 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31908 vdotq_s32 (int32x4_t __r, int8x16_t __a, int8x16_t __b)
31910 return __builtin_aarch64_sdotv16qi (__r, __a, __b);
31913 __extension__ extern __inline uint32x2_t
31914 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31915 vdot_lane_u32 (uint32x2_t __r, uint8x8_t __a, uint8x8_t __b, const int __index)
31917 return __builtin_aarch64_udot_lanev8qi_uuuus (__r, __a, __b, __index);
31920 __extension__ extern __inline uint32x2_t
31921 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31922 vdot_laneq_u32 (uint32x2_t __r, uint8x8_t __a, uint8x16_t __b,
31923 const int __index)
31925 return __builtin_aarch64_udot_laneqv8qi_uuuus (__r, __a, __b, __index);
31928 __extension__ extern __inline uint32x4_t
31929 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31930 vdotq_lane_u32 (uint32x4_t __r, uint8x16_t __a, uint8x8_t __b,
31931 const int __index)
31933 return __builtin_aarch64_udot_lanev16qi_uuuus (__r, __a, __b, __index);
31936 __extension__ extern __inline uint32x4_t
31937 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31938 vdotq_laneq_u32 (uint32x4_t __r, uint8x16_t __a, uint8x16_t __b,
31939 const int __index)
31941 return __builtin_aarch64_udot_laneqv16qi_uuuus (__r, __a, __b, __index);
31944 __extension__ extern __inline int32x2_t
31945 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31946 vdot_lane_s32 (int32x2_t __r, int8x8_t __a, int8x8_t __b, const int __index)
31948 return __builtin_aarch64_sdot_lanev8qi (__r, __a, __b, __index);
31951 __extension__ extern __inline int32x2_t
31952 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31953 vdot_laneq_s32 (int32x2_t __r, int8x8_t __a, int8x16_t __b, const int __index)
31955 return __builtin_aarch64_sdot_laneqv8qi (__r, __a, __b, __index);
31958 __extension__ extern __inline int32x4_t
31959 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31960 vdotq_lane_s32 (int32x4_t __r, int8x16_t __a, int8x8_t __b, const int __index)
31962 return __builtin_aarch64_sdot_lanev16qi (__r, __a, __b, __index);
31965 __extension__ extern __inline int32x4_t
31966 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31967 vdotq_laneq_s32 (int32x4_t __r, int8x16_t __a, int8x16_t __b, const int __index)
31969 return __builtin_aarch64_sdot_laneqv16qi (__r, __a, __b, __index);
31971 #pragma GCC pop_options
31973 #pragma GCC push_options
31974 #pragma GCC target(("arch=armv8.2-a+sm4"))
31976 __extension__ extern __inline uint32x4_t
31977 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31978 vsm3ss1q_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
31980 return __builtin_aarch64_sm3ss1qv4si_uuuu (__a, __b, __c);
31983 __extension__ extern __inline uint32x4_t
31984 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31985 vsm3tt1aq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c, const int __imm2)
31987 return __builtin_aarch64_sm3tt1aqv4si_uuuus (__a, __b, __c, __imm2);
31990 __extension__ extern __inline uint32x4_t
31991 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31992 vsm3tt1bq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c, const int __imm2)
31994 return __builtin_aarch64_sm3tt1bqv4si_uuuus (__a, __b, __c, __imm2);
31997 __extension__ extern __inline uint32x4_t
31998 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31999 vsm3tt2aq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c, const int __imm2)
32001 return __builtin_aarch64_sm3tt2aqv4si_uuuus (__a, __b, __c, __imm2);
32004 __extension__ extern __inline uint32x4_t
32005 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32006 vsm3tt2bq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c, const int __imm2)
32008 return __builtin_aarch64_sm3tt2bqv4si_uuuus (__a, __b, __c, __imm2);
32011 __extension__ extern __inline uint32x4_t
32012 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32013 vsm3partw1q_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
32015 return __builtin_aarch64_sm3partw1qv4si_uuuu (__a, __b, __c);
32017 __extension__ extern __inline uint32x4_t
32018 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32019 vsm3partw2q_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
32021 return __builtin_aarch64_sm3partw2qv4si_uuuu (__a, __b, __c);
32024 __extension__ extern __inline uint32x4_t
32025 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32026 vsm4eq_u32 (uint32x4_t __a, uint32x4_t __b)
32028 return __builtin_aarch64_sm4eqv4si_uuu (__a, __b);
32031 __extension__ extern __inline uint32x4_t
32032 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32033 vsm4ekeyq_u32 (uint32x4_t __a, uint32x4_t __b)
32035 return __builtin_aarch64_sm4ekeyqv4si_uuu (__a, __b);
32038 #pragma GCC pop_options
32040 #pragma GCC push_options
32041 #pragma GCC target(("arch=armv8.2-a+crypto"))
32043 __extension__ extern __inline uint64x2_t
32044 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32045 vsha512hq_u64 (uint64x2_t __a, uint64x2_t __b, uint64x2_t __c)
32047 return __builtin_aarch64_crypto_sha512hqv2di_uuuu (__a, __b, __c);
32050 __extension__ extern __inline uint64x2_t
32051 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32052 vsha512h2q_u64 (uint64x2_t __a, uint64x2_t __b, uint64x2_t __c)
32054 return __builtin_aarch64_crypto_sha512h2qv2di_uuuu (__a, __b, __c);
32057 __extension__ extern __inline uint64x2_t
32058 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32059 vsha512su0q_u64 (uint64x2_t __a, uint64x2_t __b)
32061 return __builtin_aarch64_crypto_sha512su0qv2di_uuu (__a, __b);
32064 __extension__ extern __inline uint64x2_t
32065 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32066 vsha512su1q_u64 (uint64x2_t __a, uint64x2_t __b, uint64x2_t __c)
32068 return __builtin_aarch64_crypto_sha512su1qv2di_uuuu (__a, __b, __c);
32071 __extension__ extern __inline uint16x8_t
32072 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32073 veor3q_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
32075 return __builtin_aarch64_eor3qv8hi_uuuu (__a, __b, __c);
32078 __extension__ extern __inline uint64x2_t
32079 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32080 vrax1q_u64 (uint64x2_t __a, uint64x2_t __b)
32082 return __builtin_aarch64_rax1qv2di_uuu (__a, __b);
32085 __extension__ extern __inline uint64x2_t
32086 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32087 vxarq_u64 (uint64x2_t __a, uint64x2_t __b, const int imm6)
32089 return __builtin_aarch64_xarqv2di_uuus (__a, __b,imm6);
32092 __extension__ extern __inline uint16x8_t
32093 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32094 vbcaxq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
32096 return __builtin_aarch64_bcaxqv8hi_uuuu (__a, __b, __c);
32098 #pragma GCC pop_options
32100 #pragma GCC push_options
32101 #pragma GCC target(("arch=armv8.2-a+fp16fml"))
32103 __extension__ extern __inline float32x2_t
32104 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32105 vfmlal_low_u32 (float32x2_t __r, float16x4_t __a, float16x4_t __b)
32107 return __builtin_aarch64_fmlal_lowv2sf (__r, __a, __b);
32110 __extension__ extern __inline float32x2_t
32111 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32112 vfmlsl_low_u32 (float32x2_t __r, float16x4_t __a, float16x4_t __b)
32114 return __builtin_aarch64_fmlsl_lowv2sf (__r, __a, __b);
32117 __extension__ extern __inline float32x4_t
32118 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32119 vfmlalq_low_u32 (float32x4_t __r, float16x8_t __a, float16x8_t __b)
32121 return __builtin_aarch64_fmlalq_lowv4sf (__r, __a, __b);
32124 __extension__ extern __inline float32x4_t
32125 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32126 vfmlslq_low_u32 (float32x4_t __r, float16x8_t __a, float16x8_t __b)
32128 return __builtin_aarch64_fmlslq_lowv4sf (__r, __a, __b);
32131 __extension__ extern __inline float32x2_t
32132 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32133 vfmlal_high_u32 (float32x2_t __r, float16x4_t __a, float16x4_t __b)
32135 return __builtin_aarch64_fmlal_highv2sf (__r, __a, __b);
32138 __extension__ extern __inline float32x2_t
32139 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32140 vfmlsl_high_u32 (float32x2_t __r, float16x4_t __a, float16x4_t __b)
32142 return __builtin_aarch64_fmlsl_highv2sf (__r, __a, __b);
32145 __extension__ extern __inline float32x4_t
32146 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32147 vfmlalq_high_u32 (float32x4_t __r, float16x8_t __a, float16x8_t __b)
32149 return __builtin_aarch64_fmlalq_highv4sf (__r, __a, __b);
32152 __extension__ extern __inline float32x4_t
32153 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32154 vfmlslq_high_u32 (float32x4_t __r, float16x8_t __a, float16x8_t __b)
32156 return __builtin_aarch64_fmlslq_highv4sf (__r, __a, __b);
32159 __extension__ extern __inline float32x2_t
32160 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32161 vfmlal_lane_low_u32 (float32x2_t __r, float16x4_t __a, float16x4_t __b,
32162 const int __lane)
32164 return __builtin_aarch64_fmlal_lane_lowv2sf (__r, __a, __b, __lane);
32167 __extension__ extern __inline float32x2_t
32168 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32169 vfmlsl_lane_low_u32 (float32x2_t __r, float16x4_t __a, float16x4_t __b,
32170 const int __lane)
32172 return __builtin_aarch64_fmlsl_lane_lowv2sf (__r, __a, __b, __lane);
32175 __extension__ extern __inline float32x2_t
32176 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32177 vfmlal_laneq_low_u32 (float32x2_t __r, float16x4_t __a, float16x8_t __b,
32178 const int __lane)
32180 return __builtin_aarch64_fmlal_laneq_lowv2sf (__r, __a, __b, __lane);
32183 __extension__ extern __inline float32x2_t
32184 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32185 vfmlsl_laneq_low_u32 (float32x2_t __r, float16x4_t __a, float16x8_t __b,
32186 const int __lane)
32188 return __builtin_aarch64_fmlsl_laneq_lowv2sf (__r, __a, __b, __lane);
32191 __extension__ extern __inline float32x4_t
32192 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32193 vfmlalq_lane_low_u32 (float32x4_t __r, float16x8_t __a, float16x4_t __b,
32194 const int __lane)
32196 return __builtin_aarch64_fmlalq_lane_lowv4sf (__r, __a, __b, __lane);
32199 __extension__ extern __inline float32x4_t
32200 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32201 vfmlslq_lane_low_u32 (float32x4_t __r, float16x8_t __a, float16x4_t __b,
32202 const int __lane)
32204 return __builtin_aarch64_fmlslq_lane_lowv4sf (__r, __a, __b, __lane);
32207 __extension__ extern __inline float32x4_t
32208 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32209 vfmlalq_laneq_low_u32 (float32x4_t __r, float16x8_t __a, float16x8_t __b,
32210 const int __lane)
32212 return __builtin_aarch64_fmlalq_laneq_lowv4sf (__r, __a, __b, __lane);
32215 __extension__ extern __inline float32x4_t
32216 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32217 vfmlslq_laneq_low_u32 (float32x4_t __r, float16x8_t __a, float16x8_t __b,
32218 const int __lane)
32220 return __builtin_aarch64_fmlslq_laneq_lowv4sf (__r, __a, __b, __lane);
32223 __extension__ extern __inline float32x2_t
32224 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32225 vfmlal_lane_high_u32 (float32x2_t __r, float16x4_t __a, float16x4_t __b,
32226 const int __lane)
32228 return __builtin_aarch64_fmlal_lane_highv2sf (__r, __a, __b, __lane);
32231 __extension__ extern __inline float32x2_t
32232 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32233 vfmlsl_lane_high_u32 (float32x2_t __r, float16x4_t __a, float16x4_t __b,
32234 const int __lane)
32236 return __builtin_aarch64_fmlsl_lane_highv2sf (__r, __a, __b, __lane);
32239 __extension__ extern __inline float32x2_t
32240 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32241 vfmlal_laneq_high_u32 (float32x2_t __r, float16x4_t __a, float16x8_t __b,
32242 const int __lane)
32244 return __builtin_aarch64_fmlal_laneq_highv2sf (__r, __a, __b, __lane);
32247 __extension__ extern __inline float32x2_t
32248 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32249 vfmlsl_laneq_high_u32 (float32x2_t __r, float16x4_t __a, float16x8_t __b,
32250 const int __lane)
32252 return __builtin_aarch64_fmlsl_laneq_highv2sf (__r, __a, __b, __lane);
32255 __extension__ extern __inline float32x4_t
32256 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32257 vfmlalq_lane_high_u32 (float32x4_t __r, float16x8_t __a, float16x4_t __b,
32258 const int __lane)
32260 return __builtin_aarch64_fmlalq_lane_highv4sf (__r, __a, __b, __lane);
32263 __extension__ extern __inline float32x4_t
32264 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32265 vfmlslq_lane_high_u32 (float32x4_t __r, float16x8_t __a, float16x4_t __b,
32266 const int __lane)
32268 return __builtin_aarch64_fmlslq_lane_highv4sf (__r, __a, __b, __lane);
32271 __extension__ extern __inline float32x4_t
32272 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32273 vfmlalq_laneq_high_u32 (float32x4_t __r, float16x8_t __a, float16x8_t __b,
32274 const int __lane)
32276 return __builtin_aarch64_fmlalq_laneq_highv4sf (__r, __a, __b, __lane);
32279 __extension__ extern __inline float32x4_t
32280 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32281 vfmlslq_laneq_high_u32 (float32x4_t __r, float16x8_t __a, float16x8_t __b,
32282 const int __lane)
32284 return __builtin_aarch64_fmlslq_laneq_highv4sf (__r, __a, __b, __lane);
32287 #pragma GCC pop_options
32289 #undef __aarch64_vget_lane_any
32291 #undef __aarch64_vdup_lane_any
32292 #undef __aarch64_vdup_lane_f16
32293 #undef __aarch64_vdup_lane_f32
32294 #undef __aarch64_vdup_lane_f64
32295 #undef __aarch64_vdup_lane_p8
32296 #undef __aarch64_vdup_lane_p16
32297 #undef __aarch64_vdup_lane_s8
32298 #undef __aarch64_vdup_lane_s16
32299 #undef __aarch64_vdup_lane_s32
32300 #undef __aarch64_vdup_lane_s64
32301 #undef __aarch64_vdup_lane_u8
32302 #undef __aarch64_vdup_lane_u16
32303 #undef __aarch64_vdup_lane_u32
32304 #undef __aarch64_vdup_lane_u64
32305 #undef __aarch64_vdup_laneq_f16
32306 #undef __aarch64_vdup_laneq_f32
32307 #undef __aarch64_vdup_laneq_f64
32308 #undef __aarch64_vdup_laneq_p8
32309 #undef __aarch64_vdup_laneq_p16
32310 #undef __aarch64_vdup_laneq_s8
32311 #undef __aarch64_vdup_laneq_s16
32312 #undef __aarch64_vdup_laneq_s32
32313 #undef __aarch64_vdup_laneq_s64
32314 #undef __aarch64_vdup_laneq_u8
32315 #undef __aarch64_vdup_laneq_u16
32316 #undef __aarch64_vdup_laneq_u32
32317 #undef __aarch64_vdup_laneq_u64
32318 #undef __aarch64_vdupq_lane_f16
32319 #undef __aarch64_vdupq_lane_f32
32320 #undef __aarch64_vdupq_lane_f64
32321 #undef __aarch64_vdupq_lane_p8
32322 #undef __aarch64_vdupq_lane_p16
32323 #undef __aarch64_vdupq_lane_s8
32324 #undef __aarch64_vdupq_lane_s16
32325 #undef __aarch64_vdupq_lane_s32
32326 #undef __aarch64_vdupq_lane_s64
32327 #undef __aarch64_vdupq_lane_u8
32328 #undef __aarch64_vdupq_lane_u16
32329 #undef __aarch64_vdupq_lane_u32
32330 #undef __aarch64_vdupq_lane_u64
32331 #undef __aarch64_vdupq_laneq_f16
32332 #undef __aarch64_vdupq_laneq_f32
32333 #undef __aarch64_vdupq_laneq_f64
32334 #undef __aarch64_vdupq_laneq_p8
32335 #undef __aarch64_vdupq_laneq_p16
32336 #undef __aarch64_vdupq_laneq_s8
32337 #undef __aarch64_vdupq_laneq_s16
32338 #undef __aarch64_vdupq_laneq_s32
32339 #undef __aarch64_vdupq_laneq_s64
32340 #undef __aarch64_vdupq_laneq_u8
32341 #undef __aarch64_vdupq_laneq_u16
32342 #undef __aarch64_vdupq_laneq_u32
32343 #undef __aarch64_vdupq_laneq_u64
32345 #endif