[PR testsuite/116860] Testsuite adjustment for recently added tests
[official-gcc.git] / gcc / config / aarch64 / arm_neon.h
blob4899acead9b7c04a7a8f45a7d308e94e369e2186
1 /* ARM NEON intrinsics include file.
3 Copyright (C) 2011-2025 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>
34 #include <arm_private_fp8.h>
35 #include <arm_private_neon_types.h>
37 #pragma GCC aarch64 "arm_neon.h"
39 #define __AARCH64_UINT64_C(__C) ((uint64_t) __C)
40 #define __AARCH64_INT64_C(__C) ((int64_t) __C)
42 /* __aarch64_vdup_lane internal macros. */
43 #define __aarch64_vdup_lane_any(__size, __q, __a, __b) \
44 vdup##__q##_n_##__size (__aarch64_vget_lane_any (__a, __b))
46 #define __aarch64_vdup_lane_f16(__a, __b) \
47 __aarch64_vdup_lane_any (f16, , __a, __b)
48 #define __aarch64_vdup_lane_f32(__a, __b) \
49 __aarch64_vdup_lane_any (f32, , __a, __b)
50 #define __aarch64_vdup_lane_f64(__a, __b) \
51 __aarch64_vdup_lane_any (f64, , __a, __b)
52 #define __aarch64_vdup_lane_p8(__a, __b) \
53 __aarch64_vdup_lane_any (p8, , __a, __b)
54 #define __aarch64_vdup_lane_p16(__a, __b) \
55 __aarch64_vdup_lane_any (p16, , __a, __b)
56 #define __aarch64_vdup_lane_p64(__a, __b) \
57 __aarch64_vdup_lane_any (p64, , __a, __b)
58 #define __aarch64_vdup_lane_s8(__a, __b) \
59 __aarch64_vdup_lane_any (s8, , __a, __b)
60 #define __aarch64_vdup_lane_s16(__a, __b) \
61 __aarch64_vdup_lane_any (s16, , __a, __b)
62 #define __aarch64_vdup_lane_s32(__a, __b) \
63 __aarch64_vdup_lane_any (s32, , __a, __b)
64 #define __aarch64_vdup_lane_s64(__a, __b) \
65 __aarch64_vdup_lane_any (s64, , __a, __b)
66 #define __aarch64_vdup_lane_u8(__a, __b) \
67 __aarch64_vdup_lane_any (u8, , __a, __b)
68 #define __aarch64_vdup_lane_u16(__a, __b) \
69 __aarch64_vdup_lane_any (u16, , __a, __b)
70 #define __aarch64_vdup_lane_u32(__a, __b) \
71 __aarch64_vdup_lane_any (u32, , __a, __b)
72 #define __aarch64_vdup_lane_u64(__a, __b) \
73 __aarch64_vdup_lane_any (u64, , __a, __b)
75 /* __aarch64_vdup_laneq internal macros. */
76 #define __aarch64_vdup_laneq_f16(__a, __b) \
77 __aarch64_vdup_lane_any (f16, , __a, __b)
78 #define __aarch64_vdup_laneq_f32(__a, __b) \
79 __aarch64_vdup_lane_any (f32, , __a, __b)
80 #define __aarch64_vdup_laneq_f64(__a, __b) \
81 __aarch64_vdup_lane_any (f64, , __a, __b)
82 #define __aarch64_vdup_laneq_p8(__a, __b) \
83 __aarch64_vdup_lane_any (p8, , __a, __b)
84 #define __aarch64_vdup_laneq_p16(__a, __b) \
85 __aarch64_vdup_lane_any (p16, , __a, __b)
86 #define __aarch64_vdup_laneq_p64(__a, __b) \
87 __aarch64_vdup_lane_any (p64, , __a, __b)
88 #define __aarch64_vdup_laneq_s8(__a, __b) \
89 __aarch64_vdup_lane_any (s8, , __a, __b)
90 #define __aarch64_vdup_laneq_s16(__a, __b) \
91 __aarch64_vdup_lane_any (s16, , __a, __b)
92 #define __aarch64_vdup_laneq_s32(__a, __b) \
93 __aarch64_vdup_lane_any (s32, , __a, __b)
94 #define __aarch64_vdup_laneq_s64(__a, __b) \
95 __aarch64_vdup_lane_any (s64, , __a, __b)
96 #define __aarch64_vdup_laneq_u8(__a, __b) \
97 __aarch64_vdup_lane_any (u8, , __a, __b)
98 #define __aarch64_vdup_laneq_u16(__a, __b) \
99 __aarch64_vdup_lane_any (u16, , __a, __b)
100 #define __aarch64_vdup_laneq_u32(__a, __b) \
101 __aarch64_vdup_lane_any (u32, , __a, __b)
102 #define __aarch64_vdup_laneq_u64(__a, __b) \
103 __aarch64_vdup_lane_any (u64, , __a, __b)
105 /* __aarch64_vdupq_lane internal macros. */
106 #define __aarch64_vdupq_lane_f16(__a, __b) \
107 __aarch64_vdup_lane_any (f16, q, __a, __b)
108 #define __aarch64_vdupq_lane_f32(__a, __b) \
109 __aarch64_vdup_lane_any (f32, q, __a, __b)
110 #define __aarch64_vdupq_lane_f64(__a, __b) \
111 __aarch64_vdup_lane_any (f64, q, __a, __b)
112 #define __aarch64_vdupq_lane_p8(__a, __b) \
113 __aarch64_vdup_lane_any (p8, q, __a, __b)
114 #define __aarch64_vdupq_lane_p16(__a, __b) \
115 __aarch64_vdup_lane_any (p16, q, __a, __b)
116 #define __aarch64_vdupq_lane_p64(__a, __b) \
117 __aarch64_vdup_lane_any (p64, q, __a, __b)
118 #define __aarch64_vdupq_lane_s8(__a, __b) \
119 __aarch64_vdup_lane_any (s8, q, __a, __b)
120 #define __aarch64_vdupq_lane_s16(__a, __b) \
121 __aarch64_vdup_lane_any (s16, q, __a, __b)
122 #define __aarch64_vdupq_lane_s32(__a, __b) \
123 __aarch64_vdup_lane_any (s32, q, __a, __b)
124 #define __aarch64_vdupq_lane_s64(__a, __b) \
125 __aarch64_vdup_lane_any (s64, q, __a, __b)
126 #define __aarch64_vdupq_lane_u8(__a, __b) \
127 __aarch64_vdup_lane_any (u8, q, __a, __b)
128 #define __aarch64_vdupq_lane_u16(__a, __b) \
129 __aarch64_vdup_lane_any (u16, q, __a, __b)
130 #define __aarch64_vdupq_lane_u32(__a, __b) \
131 __aarch64_vdup_lane_any (u32, q, __a, __b)
132 #define __aarch64_vdupq_lane_u64(__a, __b) \
133 __aarch64_vdup_lane_any (u64, q, __a, __b)
135 /* __aarch64_vdupq_laneq internal macros. */
136 #define __aarch64_vdupq_laneq_f16(__a, __b) \
137 __aarch64_vdup_lane_any (f16, q, __a, __b)
138 #define __aarch64_vdupq_laneq_f32(__a, __b) \
139 __aarch64_vdup_lane_any (f32, q, __a, __b)
140 #define __aarch64_vdupq_laneq_f64(__a, __b) \
141 __aarch64_vdup_lane_any (f64, q, __a, __b)
142 #define __aarch64_vdupq_laneq_p8(__a, __b) \
143 __aarch64_vdup_lane_any (p8, q, __a, __b)
144 #define __aarch64_vdupq_laneq_p16(__a, __b) \
145 __aarch64_vdup_lane_any (p16, q, __a, __b)
146 #define __aarch64_vdupq_laneq_p64(__a, __b) \
147 __aarch64_vdup_lane_any (p64, q, __a, __b)
148 #define __aarch64_vdupq_laneq_s8(__a, __b) \
149 __aarch64_vdup_lane_any (s8, q, __a, __b)
150 #define __aarch64_vdupq_laneq_s16(__a, __b) \
151 __aarch64_vdup_lane_any (s16, q, __a, __b)
152 #define __aarch64_vdupq_laneq_s32(__a, __b) \
153 __aarch64_vdup_lane_any (s32, q, __a, __b)
154 #define __aarch64_vdupq_laneq_s64(__a, __b) \
155 __aarch64_vdup_lane_any (s64, q, __a, __b)
156 #define __aarch64_vdupq_laneq_u8(__a, __b) \
157 __aarch64_vdup_lane_any (u8, q, __a, __b)
158 #define __aarch64_vdupq_laneq_u16(__a, __b) \
159 __aarch64_vdup_lane_any (u16, q, __a, __b)
160 #define __aarch64_vdupq_laneq_u32(__a, __b) \
161 __aarch64_vdup_lane_any (u32, q, __a, __b)
162 #define __aarch64_vdupq_laneq_u64(__a, __b) \
163 __aarch64_vdup_lane_any (u64, q, __a, __b)
165 /* Internal macro for lane indices. */
167 #define __AARCH64_NUM_LANES(__v) (sizeof (__v) / sizeof (__v[0]))
168 #define __AARCH64_LANE_CHECK(__vec, __idx) \
169 __builtin_aarch64_im_lane_boundsi (sizeof(__vec), sizeof(__vec[0]), __idx)
171 /* For big-endian, GCC's vector indices are the opposite way around
172 to the architectural lane indices used by Neon intrinsics. */
173 #ifdef __AARCH64EB__
174 #define __aarch64_lane(__vec, __idx) (__AARCH64_NUM_LANES (__vec) - 1 - __idx)
175 #else
176 #define __aarch64_lane(__vec, __idx) __idx
177 #endif
179 /* vget_lane internal macro. */
180 #define __aarch64_vget_lane_any(__vec, __index) \
181 __extension__ \
182 ({ \
183 __AARCH64_LANE_CHECK (__vec, __index); \
184 __vec[__aarch64_lane (__vec, __index)]; \
187 /* vset_lane and vld1_lane internal macro. */
188 #define __aarch64_vset_lane_any(__elem, __vec, __index) \
189 __extension__ \
190 ({ \
191 __AARCH64_LANE_CHECK (__vec, __index); \
192 __vec[__aarch64_lane (__vec, __index)] = __elem; \
193 __vec; \
196 /* vadd */
197 __extension__ extern __inline int8x8_t
198 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
199 vadd_s8 (int8x8_t __a, int8x8_t __b)
201 return __a + __b;
204 __extension__ extern __inline int16x4_t
205 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
206 vadd_s16 (int16x4_t __a, int16x4_t __b)
208 return __a + __b;
211 __extension__ extern __inline int32x2_t
212 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
213 vadd_s32 (int32x2_t __a, int32x2_t __b)
215 return __a + __b;
218 __extension__ extern __inline float32x2_t
219 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
220 vadd_f32 (float32x2_t __a, float32x2_t __b)
222 return __a + __b;
225 __extension__ extern __inline float64x1_t
226 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
227 vadd_f64 (float64x1_t __a, float64x1_t __b)
229 return __a + __b;
232 __extension__ extern __inline uint8x8_t
233 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
234 vadd_u8 (uint8x8_t __a, uint8x8_t __b)
236 return __a + __b;
239 __extension__ extern __inline uint16x4_t
240 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
241 vadd_u16 (uint16x4_t __a, uint16x4_t __b)
243 return __a + __b;
246 __extension__ extern __inline uint32x2_t
247 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
248 vadd_u32 (uint32x2_t __a, uint32x2_t __b)
250 return __a + __b;
253 __extension__ extern __inline int64x1_t
254 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
255 vadd_s64 (int64x1_t __a, int64x1_t __b)
257 return __a + __b;
260 __extension__ extern __inline uint64x1_t
261 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
262 vadd_u64 (uint64x1_t __a, uint64x1_t __b)
264 return __a + __b;
267 __extension__ extern __inline int8x16_t
268 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
269 vaddq_s8 (int8x16_t __a, int8x16_t __b)
271 return __a + __b;
274 __extension__ extern __inline int16x8_t
275 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
276 vaddq_s16 (int16x8_t __a, int16x8_t __b)
278 return __a + __b;
281 __extension__ extern __inline int32x4_t
282 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
283 vaddq_s32 (int32x4_t __a, int32x4_t __b)
285 return __a + __b;
288 __extension__ extern __inline int64x2_t
289 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
290 vaddq_s64 (int64x2_t __a, int64x2_t __b)
292 return __a + __b;
295 __extension__ extern __inline float32x4_t
296 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
297 vaddq_f32 (float32x4_t __a, float32x4_t __b)
299 return __a + __b;
302 __extension__ extern __inline float64x2_t
303 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
304 vaddq_f64 (float64x2_t __a, float64x2_t __b)
306 return __a + __b;
309 __extension__ extern __inline uint8x16_t
310 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
311 vaddq_u8 (uint8x16_t __a, uint8x16_t __b)
313 return __a + __b;
316 __extension__ extern __inline uint16x8_t
317 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
318 vaddq_u16 (uint16x8_t __a, uint16x8_t __b)
320 return __a + __b;
323 __extension__ extern __inline uint32x4_t
324 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
325 vaddq_u32 (uint32x4_t __a, uint32x4_t __b)
327 return __a + __b;
330 __extension__ extern __inline uint64x2_t
331 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
332 vaddq_u64 (uint64x2_t __a, uint64x2_t __b)
334 return __a + __b;
337 __extension__ extern __inline int16x8_t
338 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
339 vaddl_s8 (int8x8_t __a, int8x8_t __b)
341 return __builtin_aarch64_saddlv8qi (__a, __b);
344 __extension__ extern __inline int32x4_t
345 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
346 vaddl_s16 (int16x4_t __a, int16x4_t __b)
348 return __builtin_aarch64_saddlv4hi (__a, __b);
351 __extension__ extern __inline int64x2_t
352 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
353 vaddl_s32 (int32x2_t __a, int32x2_t __b)
355 return __builtin_aarch64_saddlv2si (__a, __b);
358 __extension__ extern __inline uint16x8_t
359 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
360 vaddl_u8 (uint8x8_t __a, uint8x8_t __b)
362 return __builtin_aarch64_uaddlv8qi_uuu (__a, __b);
365 __extension__ extern __inline uint32x4_t
366 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
367 vaddl_u16 (uint16x4_t __a, uint16x4_t __b)
369 return __builtin_aarch64_uaddlv4hi_uuu (__a, __b);
372 __extension__ extern __inline uint64x2_t
373 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
374 vaddl_u32 (uint32x2_t __a, uint32x2_t __b)
376 return __builtin_aarch64_uaddlv2si_uuu (__a, __b);
379 __extension__ extern __inline int16x8_t
380 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
381 vaddl_high_s8 (int8x16_t __a, int8x16_t __b)
383 return __builtin_aarch64_saddl2v16qi (__a, __b);
386 __extension__ extern __inline int32x4_t
387 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
388 vaddl_high_s16 (int16x8_t __a, int16x8_t __b)
390 return __builtin_aarch64_saddl2v8hi (__a, __b);
393 __extension__ extern __inline int64x2_t
394 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
395 vaddl_high_s32 (int32x4_t __a, int32x4_t __b)
397 return __builtin_aarch64_saddl2v4si (__a, __b);
400 __extension__ extern __inline uint16x8_t
401 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
402 vaddl_high_u8 (uint8x16_t __a, uint8x16_t __b)
404 return __builtin_aarch64_uaddl2v16qi_uuu (__a, __b);
407 __extension__ extern __inline uint32x4_t
408 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
409 vaddl_high_u16 (uint16x8_t __a, uint16x8_t __b)
411 return __builtin_aarch64_uaddl2v8hi_uuu (__a, __b);
414 __extension__ extern __inline uint64x2_t
415 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
416 vaddl_high_u32 (uint32x4_t __a, uint32x4_t __b)
418 return __builtin_aarch64_uaddl2v4si_uuu (__a, __b);
421 __extension__ extern __inline int16x8_t
422 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
423 vaddw_s8 (int16x8_t __a, int8x8_t __b)
425 return __builtin_aarch64_saddwv8qi (__a, __b);
428 __extension__ extern __inline int32x4_t
429 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
430 vaddw_s16 (int32x4_t __a, int16x4_t __b)
432 return __builtin_aarch64_saddwv4hi (__a, __b);
435 __extension__ extern __inline int64x2_t
436 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
437 vaddw_s32 (int64x2_t __a, int32x2_t __b)
439 return __builtin_aarch64_saddwv2si (__a, __b);
442 __extension__ extern __inline uint16x8_t
443 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
444 vaddw_u8 (uint16x8_t __a, uint8x8_t __b)
446 return __builtin_aarch64_uaddwv8qi_uuu (__a, __b);
449 __extension__ extern __inline uint32x4_t
450 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
451 vaddw_u16 (uint32x4_t __a, uint16x4_t __b)
453 return __builtin_aarch64_uaddwv4hi_uuu (__a, __b);
456 __extension__ extern __inline uint64x2_t
457 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
458 vaddw_u32 (uint64x2_t __a, uint32x2_t __b)
460 return __builtin_aarch64_uaddwv2si_uuu (__a, __b);
463 __extension__ extern __inline int16x8_t
464 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
465 vaddw_high_s8 (int16x8_t __a, int8x16_t __b)
467 return __builtin_aarch64_saddw2v16qi (__a, __b);
470 __extension__ extern __inline int32x4_t
471 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
472 vaddw_high_s16 (int32x4_t __a, int16x8_t __b)
474 return __builtin_aarch64_saddw2v8hi (__a, __b);
477 __extension__ extern __inline int64x2_t
478 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
479 vaddw_high_s32 (int64x2_t __a, int32x4_t __b)
481 return __builtin_aarch64_saddw2v4si (__a, __b);
484 __extension__ extern __inline uint16x8_t
485 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
486 vaddw_high_u8 (uint16x8_t __a, uint8x16_t __b)
488 return __builtin_aarch64_uaddw2v16qi_uuu (__a, __b);
491 __extension__ extern __inline uint32x4_t
492 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
493 vaddw_high_u16 (uint32x4_t __a, uint16x8_t __b)
495 return __builtin_aarch64_uaddw2v8hi_uuu (__a, __b);
498 __extension__ extern __inline uint64x2_t
499 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
500 vaddw_high_u32 (uint64x2_t __a, uint32x4_t __b)
502 return __builtin_aarch64_uaddw2v4si_uuu (__a, __b);
505 __extension__ extern __inline int8x8_t
506 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
507 vhadd_s8 (int8x8_t __a, int8x8_t __b)
509 return __builtin_aarch64_shaddv8qi (__a, __b);
512 __extension__ extern __inline int16x4_t
513 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
514 vhadd_s16 (int16x4_t __a, int16x4_t __b)
516 return __builtin_aarch64_shaddv4hi (__a, __b);
519 __extension__ extern __inline int32x2_t
520 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
521 vhadd_s32 (int32x2_t __a, int32x2_t __b)
523 return __builtin_aarch64_shaddv2si (__a, __b);
526 __extension__ extern __inline uint8x8_t
527 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
528 vhadd_u8 (uint8x8_t __a, uint8x8_t __b)
530 return __builtin_aarch64_uhaddv8qi_uuu (__a, __b);
533 __extension__ extern __inline uint16x4_t
534 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
535 vhadd_u16 (uint16x4_t __a, uint16x4_t __b)
537 return __builtin_aarch64_uhaddv4hi_uuu (__a, __b);
540 __extension__ extern __inline uint32x2_t
541 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
542 vhadd_u32 (uint32x2_t __a, uint32x2_t __b)
544 return __builtin_aarch64_uhaddv2si_uuu (__a, __b);
547 __extension__ extern __inline int8x16_t
548 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
549 vhaddq_s8 (int8x16_t __a, int8x16_t __b)
551 return __builtin_aarch64_shaddv16qi (__a, __b);
554 __extension__ extern __inline int16x8_t
555 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
556 vhaddq_s16 (int16x8_t __a, int16x8_t __b)
558 return __builtin_aarch64_shaddv8hi (__a, __b);
561 __extension__ extern __inline int32x4_t
562 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
563 vhaddq_s32 (int32x4_t __a, int32x4_t __b)
565 return __builtin_aarch64_shaddv4si (__a, __b);
568 __extension__ extern __inline uint8x16_t
569 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
570 vhaddq_u8 (uint8x16_t __a, uint8x16_t __b)
572 return __builtin_aarch64_uhaddv16qi_uuu (__a, __b);
575 __extension__ extern __inline uint16x8_t
576 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
577 vhaddq_u16 (uint16x8_t __a, uint16x8_t __b)
579 return __builtin_aarch64_uhaddv8hi_uuu (__a, __b);
582 __extension__ extern __inline uint32x4_t
583 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
584 vhaddq_u32 (uint32x4_t __a, uint32x4_t __b)
586 return __builtin_aarch64_uhaddv4si_uuu (__a, __b);
589 __extension__ extern __inline int8x8_t
590 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
591 vrhadd_s8 (int8x8_t __a, int8x8_t __b)
593 return __builtin_aarch64_srhaddv8qi (__a, __b);
596 __extension__ extern __inline int16x4_t
597 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
598 vrhadd_s16 (int16x4_t __a, int16x4_t __b)
600 return __builtin_aarch64_srhaddv4hi (__a, __b);
603 __extension__ extern __inline int32x2_t
604 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
605 vrhadd_s32 (int32x2_t __a, int32x2_t __b)
607 return __builtin_aarch64_srhaddv2si (__a, __b);
610 __extension__ extern __inline uint8x8_t
611 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
612 vrhadd_u8 (uint8x8_t __a, uint8x8_t __b)
614 return __builtin_aarch64_urhaddv8qi_uuu (__a, __b);
617 __extension__ extern __inline uint16x4_t
618 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
619 vrhadd_u16 (uint16x4_t __a, uint16x4_t __b)
621 return __builtin_aarch64_urhaddv4hi_uuu (__a, __b);
624 __extension__ extern __inline uint32x2_t
625 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
626 vrhadd_u32 (uint32x2_t __a, uint32x2_t __b)
628 return __builtin_aarch64_urhaddv2si_uuu (__a, __b);
631 __extension__ extern __inline int8x16_t
632 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
633 vrhaddq_s8 (int8x16_t __a, int8x16_t __b)
635 return __builtin_aarch64_srhaddv16qi (__a, __b);
638 __extension__ extern __inline int16x8_t
639 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
640 vrhaddq_s16 (int16x8_t __a, int16x8_t __b)
642 return __builtin_aarch64_srhaddv8hi (__a, __b);
645 __extension__ extern __inline int32x4_t
646 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
647 vrhaddq_s32 (int32x4_t __a, int32x4_t __b)
649 return __builtin_aarch64_srhaddv4si (__a, __b);
652 __extension__ extern __inline uint8x16_t
653 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
654 vrhaddq_u8 (uint8x16_t __a, uint8x16_t __b)
656 return __builtin_aarch64_urhaddv16qi_uuu (__a, __b);
659 __extension__ extern __inline uint16x8_t
660 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
661 vrhaddq_u16 (uint16x8_t __a, uint16x8_t __b)
663 return __builtin_aarch64_urhaddv8hi_uuu (__a, __b);
666 __extension__ extern __inline uint32x4_t
667 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
668 vrhaddq_u32 (uint32x4_t __a, uint32x4_t __b)
670 return __builtin_aarch64_urhaddv4si_uuu (__a, __b);
673 __extension__ extern __inline int8x8_t
674 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
675 vaddhn_s16 (int16x8_t __a, int16x8_t __b)
677 return __builtin_aarch64_addhnv8hi (__a, __b);
680 __extension__ extern __inline int16x4_t
681 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
682 vaddhn_s32 (int32x4_t __a, int32x4_t __b)
684 return __builtin_aarch64_addhnv4si (__a, __b);
687 __extension__ extern __inline int32x2_t
688 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
689 vaddhn_s64 (int64x2_t __a, int64x2_t __b)
691 return __builtin_aarch64_addhnv2di (__a, __b);
694 __extension__ extern __inline uint8x8_t
695 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
696 vaddhn_u16 (uint16x8_t __a, uint16x8_t __b)
698 return __builtin_aarch64_addhnv8hi_uuu (__a, __b);
701 __extension__ extern __inline uint16x4_t
702 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
703 vaddhn_u32 (uint32x4_t __a, uint32x4_t __b)
705 return __builtin_aarch64_addhnv4si_uuu (__a, __b);
708 __extension__ extern __inline uint32x2_t
709 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
710 vaddhn_u64 (uint64x2_t __a, uint64x2_t __b)
712 return __builtin_aarch64_addhnv2di_uuu (__a, __b);
715 __extension__ extern __inline int8x8_t
716 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
717 vraddhn_s16 (int16x8_t __a, int16x8_t __b)
719 return __builtin_aarch64_raddhnv8hi (__a, __b);
722 __extension__ extern __inline int16x4_t
723 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
724 vraddhn_s32 (int32x4_t __a, int32x4_t __b)
726 return __builtin_aarch64_raddhnv4si (__a, __b);
729 __extension__ extern __inline int32x2_t
730 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
731 vraddhn_s64 (int64x2_t __a, int64x2_t __b)
733 return __builtin_aarch64_raddhnv2di (__a, __b);
736 __extension__ extern __inline uint8x8_t
737 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
738 vraddhn_u16 (uint16x8_t __a, uint16x8_t __b)
740 return __builtin_aarch64_raddhnv8hi_uuu (__a, __b);
743 __extension__ extern __inline uint16x4_t
744 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
745 vraddhn_u32 (uint32x4_t __a, uint32x4_t __b)
747 return __builtin_aarch64_raddhnv4si_uuu (__a, __b);
750 __extension__ extern __inline uint32x2_t
751 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
752 vraddhn_u64 (uint64x2_t __a, uint64x2_t __b)
754 return __builtin_aarch64_raddhnv2di_uuu (__a, __b);
757 __extension__ extern __inline int8x16_t
758 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
759 vaddhn_high_s16 (int8x8_t __a, int16x8_t __b, int16x8_t __c)
761 return __builtin_aarch64_addhn2v8hi (__a, __b, __c);
764 __extension__ extern __inline int16x8_t
765 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
766 vaddhn_high_s32 (int16x4_t __a, int32x4_t __b, int32x4_t __c)
768 return __builtin_aarch64_addhn2v4si (__a, __b, __c);
771 __extension__ extern __inline int32x4_t
772 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
773 vaddhn_high_s64 (int32x2_t __a, int64x2_t __b, int64x2_t __c)
775 return __builtin_aarch64_addhn2v2di (__a, __b, __c);
778 __extension__ extern __inline uint8x16_t
779 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
780 vaddhn_high_u16 (uint8x8_t __a, uint16x8_t __b, uint16x8_t __c)
782 return __builtin_aarch64_addhn2v8hi_uuuu (__a, __b, __c);
785 __extension__ extern __inline uint16x8_t
786 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
787 vaddhn_high_u32 (uint16x4_t __a, uint32x4_t __b, uint32x4_t __c)
789 return __builtin_aarch64_addhn2v4si_uuuu (__a, __b, __c);
792 __extension__ extern __inline uint32x4_t
793 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
794 vaddhn_high_u64 (uint32x2_t __a, uint64x2_t __b, uint64x2_t __c)
796 return __builtin_aarch64_addhn2v2di_uuuu (__a, __b, __c);
799 __extension__ extern __inline int8x16_t
800 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
801 vraddhn_high_s16 (int8x8_t __a, int16x8_t __b, int16x8_t __c)
803 return __builtin_aarch64_raddhn2v8hi (__a, __b, __c);
806 __extension__ extern __inline int16x8_t
807 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
808 vraddhn_high_s32 (int16x4_t __a, int32x4_t __b, int32x4_t __c)
810 return __builtin_aarch64_raddhn2v4si (__a, __b, __c);
813 __extension__ extern __inline int32x4_t
814 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
815 vraddhn_high_s64 (int32x2_t __a, int64x2_t __b, int64x2_t __c)
817 return __builtin_aarch64_raddhn2v2di (__a, __b, __c);
820 __extension__ extern __inline uint8x16_t
821 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
822 vraddhn_high_u16 (uint8x8_t __a, uint16x8_t __b, uint16x8_t __c)
824 return __builtin_aarch64_raddhn2v8hi_uuuu (__a, __b, __c);
827 __extension__ extern __inline uint16x8_t
828 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
829 vraddhn_high_u32 (uint16x4_t __a, uint32x4_t __b, uint32x4_t __c)
831 return __builtin_aarch64_raddhn2v4si_uuuu (__a, __b, __c);
834 __extension__ extern __inline uint32x4_t
835 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
836 vraddhn_high_u64 (uint32x2_t __a, uint64x2_t __b, uint64x2_t __c)
838 return __builtin_aarch64_raddhn2v2di_uuuu (__a, __b, __c);
841 __extension__ extern __inline float32x2_t
842 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
843 vdiv_f32 (float32x2_t __a, float32x2_t __b)
845 return __a / __b;
848 __extension__ extern __inline float64x1_t
849 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
850 vdiv_f64 (float64x1_t __a, float64x1_t __b)
852 return __a / __b;
855 __extension__ extern __inline float32x4_t
856 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
857 vdivq_f32 (float32x4_t __a, float32x4_t __b)
859 return __a / __b;
862 __extension__ extern __inline float64x2_t
863 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
864 vdivq_f64 (float64x2_t __a, float64x2_t __b)
866 return __a / __b;
869 __extension__ extern __inline int8x8_t
870 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
871 vmul_s8 (int8x8_t __a, int8x8_t __b)
873 return __a * __b;
876 __extension__ extern __inline int16x4_t
877 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
878 vmul_s16 (int16x4_t __a, int16x4_t __b)
880 return __a * __b;
883 __extension__ extern __inline int32x2_t
884 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
885 vmul_s32 (int32x2_t __a, int32x2_t __b)
887 return __a * __b;
890 __extension__ extern __inline float32x2_t
891 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
892 vmul_f32 (float32x2_t __a, float32x2_t __b)
894 return __a * __b;
897 __extension__ extern __inline float64x1_t
898 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
899 vmul_f64 (float64x1_t __a, float64x1_t __b)
901 return __a * __b;
904 __extension__ extern __inline uint8x8_t
905 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
906 vmul_u8 (uint8x8_t __a, uint8x8_t __b)
908 return __a * __b;
911 __extension__ extern __inline uint16x4_t
912 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
913 vmul_u16 (uint16x4_t __a, uint16x4_t __b)
915 return __a * __b;
918 __extension__ extern __inline uint32x2_t
919 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
920 vmul_u32 (uint32x2_t __a, uint32x2_t __b)
922 return __a * __b;
925 __extension__ extern __inline poly8x8_t
926 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
927 vmul_p8 (poly8x8_t __a, poly8x8_t __b)
929 return __builtin_aarch64_pmulv8qi_ppp (__a, __b);
932 __extension__ extern __inline int8x16_t
933 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
934 vmulq_s8 (int8x16_t __a, int8x16_t __b)
936 return __a * __b;
939 __extension__ extern __inline int16x8_t
940 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
941 vmulq_s16 (int16x8_t __a, int16x8_t __b)
943 return __a * __b;
946 __extension__ extern __inline int32x4_t
947 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
948 vmulq_s32 (int32x4_t __a, int32x4_t __b)
950 return __a * __b;
953 __extension__ extern __inline float32x4_t
954 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
955 vmulq_f32 (float32x4_t __a, float32x4_t __b)
957 return __a * __b;
960 __extension__ extern __inline float64x2_t
961 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
962 vmulq_f64 (float64x2_t __a, float64x2_t __b)
964 return __a * __b;
967 __extension__ extern __inline uint8x16_t
968 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
969 vmulq_u8 (uint8x16_t __a, uint8x16_t __b)
971 return __a * __b;
974 __extension__ extern __inline uint16x8_t
975 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
976 vmulq_u16 (uint16x8_t __a, uint16x8_t __b)
978 return __a * __b;
981 __extension__ extern __inline uint32x4_t
982 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
983 vmulq_u32 (uint32x4_t __a, uint32x4_t __b)
985 return __a * __b;
988 __extension__ extern __inline poly8x16_t
989 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
990 vmulq_p8 (poly8x16_t __a, poly8x16_t __b)
992 return __builtin_aarch64_pmulv16qi_ppp (__a, __b);
995 __extension__ extern __inline int8x8_t
996 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
997 vand_s8 (int8x8_t __a, int8x8_t __b)
999 return __a & __b;
1002 __extension__ extern __inline int16x4_t
1003 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1004 vand_s16 (int16x4_t __a, int16x4_t __b)
1006 return __a & __b;
1009 __extension__ extern __inline int32x2_t
1010 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1011 vand_s32 (int32x2_t __a, int32x2_t __b)
1013 return __a & __b;
1016 __extension__ extern __inline uint8x8_t
1017 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1018 vand_u8 (uint8x8_t __a, uint8x8_t __b)
1020 return __a & __b;
1023 __extension__ extern __inline uint16x4_t
1024 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1025 vand_u16 (uint16x4_t __a, uint16x4_t __b)
1027 return __a & __b;
1030 __extension__ extern __inline uint32x2_t
1031 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1032 vand_u32 (uint32x2_t __a, uint32x2_t __b)
1034 return __a & __b;
1037 __extension__ extern __inline int64x1_t
1038 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1039 vand_s64 (int64x1_t __a, int64x1_t __b)
1041 return __a & __b;
1044 __extension__ extern __inline uint64x1_t
1045 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1046 vand_u64 (uint64x1_t __a, uint64x1_t __b)
1048 return __a & __b;
1051 __extension__ extern __inline int8x16_t
1052 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1053 vandq_s8 (int8x16_t __a, int8x16_t __b)
1055 return __a & __b;
1058 __extension__ extern __inline int16x8_t
1059 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1060 vandq_s16 (int16x8_t __a, int16x8_t __b)
1062 return __a & __b;
1065 __extension__ extern __inline int32x4_t
1066 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1067 vandq_s32 (int32x4_t __a, int32x4_t __b)
1069 return __a & __b;
1072 __extension__ extern __inline int64x2_t
1073 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1074 vandq_s64 (int64x2_t __a, int64x2_t __b)
1076 return __a & __b;
1079 __extension__ extern __inline uint8x16_t
1080 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1081 vandq_u8 (uint8x16_t __a, uint8x16_t __b)
1083 return __a & __b;
1086 __extension__ extern __inline uint16x8_t
1087 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1088 vandq_u16 (uint16x8_t __a, uint16x8_t __b)
1090 return __a & __b;
1093 __extension__ extern __inline uint32x4_t
1094 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1095 vandq_u32 (uint32x4_t __a, uint32x4_t __b)
1097 return __a & __b;
1100 __extension__ extern __inline uint64x2_t
1101 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1102 vandq_u64 (uint64x2_t __a, uint64x2_t __b)
1104 return __a & __b;
1107 __extension__ extern __inline int8x8_t
1108 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1109 vorr_s8 (int8x8_t __a, int8x8_t __b)
1111 return __a | __b;
1114 __extension__ extern __inline int16x4_t
1115 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1116 vorr_s16 (int16x4_t __a, int16x4_t __b)
1118 return __a | __b;
1121 __extension__ extern __inline int32x2_t
1122 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1123 vorr_s32 (int32x2_t __a, int32x2_t __b)
1125 return __a | __b;
1128 __extension__ extern __inline uint8x8_t
1129 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1130 vorr_u8 (uint8x8_t __a, uint8x8_t __b)
1132 return __a | __b;
1135 __extension__ extern __inline uint16x4_t
1136 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1137 vorr_u16 (uint16x4_t __a, uint16x4_t __b)
1139 return __a | __b;
1142 __extension__ extern __inline uint32x2_t
1143 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1144 vorr_u32 (uint32x2_t __a, uint32x2_t __b)
1146 return __a | __b;
1149 __extension__ extern __inline int64x1_t
1150 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1151 vorr_s64 (int64x1_t __a, int64x1_t __b)
1153 return __a | __b;
1156 __extension__ extern __inline uint64x1_t
1157 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1158 vorr_u64 (uint64x1_t __a, uint64x1_t __b)
1160 return __a | __b;
1163 __extension__ extern __inline int8x16_t
1164 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1165 vorrq_s8 (int8x16_t __a, int8x16_t __b)
1167 return __a | __b;
1170 __extension__ extern __inline int16x8_t
1171 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1172 vorrq_s16 (int16x8_t __a, int16x8_t __b)
1174 return __a | __b;
1177 __extension__ extern __inline int32x4_t
1178 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1179 vorrq_s32 (int32x4_t __a, int32x4_t __b)
1181 return __a | __b;
1184 __extension__ extern __inline int64x2_t
1185 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1186 vorrq_s64 (int64x2_t __a, int64x2_t __b)
1188 return __a | __b;
1191 __extension__ extern __inline uint8x16_t
1192 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1193 vorrq_u8 (uint8x16_t __a, uint8x16_t __b)
1195 return __a | __b;
1198 __extension__ extern __inline uint16x8_t
1199 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1200 vorrq_u16 (uint16x8_t __a, uint16x8_t __b)
1202 return __a | __b;
1205 __extension__ extern __inline uint32x4_t
1206 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1207 vorrq_u32 (uint32x4_t __a, uint32x4_t __b)
1209 return __a | __b;
1212 __extension__ extern __inline uint64x2_t
1213 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1214 vorrq_u64 (uint64x2_t __a, uint64x2_t __b)
1216 return __a | __b;
1219 __extension__ extern __inline int8x8_t
1220 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1221 veor_s8 (int8x8_t __a, int8x8_t __b)
1223 return __a ^ __b;
1226 __extension__ extern __inline int16x4_t
1227 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1228 veor_s16 (int16x4_t __a, int16x4_t __b)
1230 return __a ^ __b;
1233 __extension__ extern __inline int32x2_t
1234 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1235 veor_s32 (int32x2_t __a, int32x2_t __b)
1237 return __a ^ __b;
1240 __extension__ extern __inline uint8x8_t
1241 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1242 veor_u8 (uint8x8_t __a, uint8x8_t __b)
1244 return __a ^ __b;
1247 __extension__ extern __inline uint16x4_t
1248 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1249 veor_u16 (uint16x4_t __a, uint16x4_t __b)
1251 return __a ^ __b;
1254 __extension__ extern __inline uint32x2_t
1255 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1256 veor_u32 (uint32x2_t __a, uint32x2_t __b)
1258 return __a ^ __b;
1261 __extension__ extern __inline int64x1_t
1262 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1263 veor_s64 (int64x1_t __a, int64x1_t __b)
1265 return __a ^ __b;
1268 __extension__ extern __inline uint64x1_t
1269 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1270 veor_u64 (uint64x1_t __a, uint64x1_t __b)
1272 return __a ^ __b;
1275 __extension__ extern __inline int8x16_t
1276 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1277 veorq_s8 (int8x16_t __a, int8x16_t __b)
1279 return __a ^ __b;
1282 __extension__ extern __inline int16x8_t
1283 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1284 veorq_s16 (int16x8_t __a, int16x8_t __b)
1286 return __a ^ __b;
1289 __extension__ extern __inline int32x4_t
1290 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1291 veorq_s32 (int32x4_t __a, int32x4_t __b)
1293 return __a ^ __b;
1296 __extension__ extern __inline int64x2_t
1297 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1298 veorq_s64 (int64x2_t __a, int64x2_t __b)
1300 return __a ^ __b;
1303 __extension__ extern __inline uint8x16_t
1304 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1305 veorq_u8 (uint8x16_t __a, uint8x16_t __b)
1307 return __a ^ __b;
1310 __extension__ extern __inline uint16x8_t
1311 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1312 veorq_u16 (uint16x8_t __a, uint16x8_t __b)
1314 return __a ^ __b;
1317 __extension__ extern __inline uint32x4_t
1318 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1319 veorq_u32 (uint32x4_t __a, uint32x4_t __b)
1321 return __a ^ __b;
1324 __extension__ extern __inline uint64x2_t
1325 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1326 veorq_u64 (uint64x2_t __a, uint64x2_t __b)
1328 return __a ^ __b;
1331 __extension__ extern __inline int8x8_t
1332 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1333 vbic_s8 (int8x8_t __a, int8x8_t __b)
1335 return __a & ~__b;
1338 __extension__ extern __inline int16x4_t
1339 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1340 vbic_s16 (int16x4_t __a, int16x4_t __b)
1342 return __a & ~__b;
1345 __extension__ extern __inline int32x2_t
1346 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1347 vbic_s32 (int32x2_t __a, int32x2_t __b)
1349 return __a & ~__b;
1352 __extension__ extern __inline uint8x8_t
1353 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1354 vbic_u8 (uint8x8_t __a, uint8x8_t __b)
1356 return __a & ~__b;
1359 __extension__ extern __inline uint16x4_t
1360 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1361 vbic_u16 (uint16x4_t __a, uint16x4_t __b)
1363 return __a & ~__b;
1366 __extension__ extern __inline uint32x2_t
1367 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1368 vbic_u32 (uint32x2_t __a, uint32x2_t __b)
1370 return __a & ~__b;
1373 __extension__ extern __inline int64x1_t
1374 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1375 vbic_s64 (int64x1_t __a, int64x1_t __b)
1377 return __a & ~__b;
1380 __extension__ extern __inline uint64x1_t
1381 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1382 vbic_u64 (uint64x1_t __a, uint64x1_t __b)
1384 return __a & ~__b;
1387 __extension__ extern __inline int8x16_t
1388 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1389 vbicq_s8 (int8x16_t __a, int8x16_t __b)
1391 return __a & ~__b;
1394 __extension__ extern __inline int16x8_t
1395 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1396 vbicq_s16 (int16x8_t __a, int16x8_t __b)
1398 return __a & ~__b;
1401 __extension__ extern __inline int32x4_t
1402 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1403 vbicq_s32 (int32x4_t __a, int32x4_t __b)
1405 return __a & ~__b;
1408 __extension__ extern __inline int64x2_t
1409 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1410 vbicq_s64 (int64x2_t __a, int64x2_t __b)
1412 return __a & ~__b;
1415 __extension__ extern __inline uint8x16_t
1416 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1417 vbicq_u8 (uint8x16_t __a, uint8x16_t __b)
1419 return __a & ~__b;
1422 __extension__ extern __inline uint16x8_t
1423 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1424 vbicq_u16 (uint16x8_t __a, uint16x8_t __b)
1426 return __a & ~__b;
1429 __extension__ extern __inline uint32x4_t
1430 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1431 vbicq_u32 (uint32x4_t __a, uint32x4_t __b)
1433 return __a & ~__b;
1436 __extension__ extern __inline uint64x2_t
1437 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1438 vbicq_u64 (uint64x2_t __a, uint64x2_t __b)
1440 return __a & ~__b;
1443 __extension__ extern __inline int8x8_t
1444 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1445 vorn_s8 (int8x8_t __a, int8x8_t __b)
1447 return __a | ~__b;
1450 __extension__ extern __inline int16x4_t
1451 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1452 vorn_s16 (int16x4_t __a, int16x4_t __b)
1454 return __a | ~__b;
1457 __extension__ extern __inline int32x2_t
1458 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1459 vorn_s32 (int32x2_t __a, int32x2_t __b)
1461 return __a | ~__b;
1464 __extension__ extern __inline uint8x8_t
1465 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1466 vorn_u8 (uint8x8_t __a, uint8x8_t __b)
1468 return __a | ~__b;
1471 __extension__ extern __inline uint16x4_t
1472 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1473 vorn_u16 (uint16x4_t __a, uint16x4_t __b)
1475 return __a | ~__b;
1478 __extension__ extern __inline uint32x2_t
1479 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1480 vorn_u32 (uint32x2_t __a, uint32x2_t __b)
1482 return __a | ~__b;
1485 __extension__ extern __inline int64x1_t
1486 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1487 vorn_s64 (int64x1_t __a, int64x1_t __b)
1489 return __a | ~__b;
1492 __extension__ extern __inline uint64x1_t
1493 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1494 vorn_u64 (uint64x1_t __a, uint64x1_t __b)
1496 return __a | ~__b;
1499 __extension__ extern __inline int8x16_t
1500 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1501 vornq_s8 (int8x16_t __a, int8x16_t __b)
1503 return __a | ~__b;
1506 __extension__ extern __inline int16x8_t
1507 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1508 vornq_s16 (int16x8_t __a, int16x8_t __b)
1510 return __a | ~__b;
1513 __extension__ extern __inline int32x4_t
1514 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1515 vornq_s32 (int32x4_t __a, int32x4_t __b)
1517 return __a | ~__b;
1520 __extension__ extern __inline int64x2_t
1521 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1522 vornq_s64 (int64x2_t __a, int64x2_t __b)
1524 return __a | ~__b;
1527 __extension__ extern __inline uint8x16_t
1528 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1529 vornq_u8 (uint8x16_t __a, uint8x16_t __b)
1531 return __a | ~__b;
1534 __extension__ extern __inline uint16x8_t
1535 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1536 vornq_u16 (uint16x8_t __a, uint16x8_t __b)
1538 return __a | ~__b;
1541 __extension__ extern __inline uint32x4_t
1542 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1543 vornq_u32 (uint32x4_t __a, uint32x4_t __b)
1545 return __a | ~__b;
1548 __extension__ extern __inline uint64x2_t
1549 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1550 vornq_u64 (uint64x2_t __a, uint64x2_t __b)
1552 return __a | ~__b;
1555 __extension__ extern __inline int8x8_t
1556 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1557 vsub_s8 (int8x8_t __a, int8x8_t __b)
1559 return __a - __b;
1562 __extension__ extern __inline int16x4_t
1563 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1564 vsub_s16 (int16x4_t __a, int16x4_t __b)
1566 return __a - __b;
1569 __extension__ extern __inline int32x2_t
1570 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1571 vsub_s32 (int32x2_t __a, int32x2_t __b)
1573 return __a - __b;
1576 __extension__ extern __inline float32x2_t
1577 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1578 vsub_f32 (float32x2_t __a, float32x2_t __b)
1580 return __a - __b;
1583 __extension__ extern __inline float64x1_t
1584 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1585 vsub_f64 (float64x1_t __a, float64x1_t __b)
1587 return __a - __b;
1590 __extension__ extern __inline uint8x8_t
1591 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1592 vsub_u8 (uint8x8_t __a, uint8x8_t __b)
1594 return __a - __b;
1597 __extension__ extern __inline uint16x4_t
1598 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1599 vsub_u16 (uint16x4_t __a, uint16x4_t __b)
1601 return __a - __b;
1604 __extension__ extern __inline uint32x2_t
1605 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1606 vsub_u32 (uint32x2_t __a, uint32x2_t __b)
1608 return __a - __b;
1611 __extension__ extern __inline int64x1_t
1612 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1613 vsub_s64 (int64x1_t __a, int64x1_t __b)
1615 return __a - __b;
1618 __extension__ extern __inline uint64x1_t
1619 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1620 vsub_u64 (uint64x1_t __a, uint64x1_t __b)
1622 return __a - __b;
1625 __extension__ extern __inline int8x16_t
1626 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1627 vsubq_s8 (int8x16_t __a, int8x16_t __b)
1629 return __a - __b;
1632 __extension__ extern __inline int16x8_t
1633 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1634 vsubq_s16 (int16x8_t __a, int16x8_t __b)
1636 return __a - __b;
1639 __extension__ extern __inline int32x4_t
1640 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1641 vsubq_s32 (int32x4_t __a, int32x4_t __b)
1643 return __a - __b;
1646 __extension__ extern __inline int64x2_t
1647 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1648 vsubq_s64 (int64x2_t __a, int64x2_t __b)
1650 return __a - __b;
1653 __extension__ extern __inline float32x4_t
1654 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1655 vsubq_f32 (float32x4_t __a, float32x4_t __b)
1657 return __a - __b;
1660 __extension__ extern __inline float64x2_t
1661 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1662 vsubq_f64 (float64x2_t __a, float64x2_t __b)
1664 return __a - __b;
1667 __extension__ extern __inline uint8x16_t
1668 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1669 vsubq_u8 (uint8x16_t __a, uint8x16_t __b)
1671 return __a - __b;
1674 __extension__ extern __inline uint16x8_t
1675 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1676 vsubq_u16 (uint16x8_t __a, uint16x8_t __b)
1678 return __a - __b;
1681 __extension__ extern __inline uint32x4_t
1682 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1683 vsubq_u32 (uint32x4_t __a, uint32x4_t __b)
1685 return __a - __b;
1688 __extension__ extern __inline uint64x2_t
1689 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1690 vsubq_u64 (uint64x2_t __a, uint64x2_t __b)
1692 return __a - __b;
1695 __extension__ extern __inline int16x8_t
1696 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1697 vsubl_s8 (int8x8_t __a, int8x8_t __b)
1699 return __builtin_aarch64_ssublv8qi (__a, __b);
1702 __extension__ extern __inline int32x4_t
1703 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1704 vsubl_s16 (int16x4_t __a, int16x4_t __b)
1706 return __builtin_aarch64_ssublv4hi (__a, __b);
1709 __extension__ extern __inline int64x2_t
1710 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1711 vsubl_s32 (int32x2_t __a, int32x2_t __b)
1713 return __builtin_aarch64_ssublv2si (__a, __b);
1716 __extension__ extern __inline uint16x8_t
1717 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1718 vsubl_u8 (uint8x8_t __a, uint8x8_t __b)
1720 return __builtin_aarch64_usublv8qi_uuu (__a, __b);
1723 __extension__ extern __inline uint32x4_t
1724 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1725 vsubl_u16 (uint16x4_t __a, uint16x4_t __b)
1727 return __builtin_aarch64_usublv4hi_uuu (__a, __b);
1730 __extension__ extern __inline uint64x2_t
1731 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1732 vsubl_u32 (uint32x2_t __a, uint32x2_t __b)
1734 return __builtin_aarch64_usublv2si_uuu (__a, __b);
1737 __extension__ extern __inline int16x8_t
1738 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1739 vsubl_high_s8 (int8x16_t __a, int8x16_t __b)
1741 return __builtin_aarch64_ssubl2v16qi (__a, __b);
1744 __extension__ extern __inline int32x4_t
1745 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1746 vsubl_high_s16 (int16x8_t __a, int16x8_t __b)
1748 return __builtin_aarch64_ssubl2v8hi (__a, __b);
1751 __extension__ extern __inline int64x2_t
1752 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1753 vsubl_high_s32 (int32x4_t __a, int32x4_t __b)
1755 return __builtin_aarch64_ssubl2v4si (__a, __b);
1758 __extension__ extern __inline uint16x8_t
1759 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1760 vsubl_high_u8 (uint8x16_t __a, uint8x16_t __b)
1762 return __builtin_aarch64_usubl2v16qi_uuu (__a, __b);
1765 __extension__ extern __inline uint32x4_t
1766 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1767 vsubl_high_u16 (uint16x8_t __a, uint16x8_t __b)
1769 return __builtin_aarch64_usubl2v8hi_uuu (__a, __b);
1772 __extension__ extern __inline uint64x2_t
1773 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1774 vsubl_high_u32 (uint32x4_t __a, uint32x4_t __b)
1776 return __builtin_aarch64_usubl2v4si_uuu (__a, __b);
1779 __extension__ extern __inline int16x8_t
1780 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1781 vsubw_s8 (int16x8_t __a, int8x8_t __b)
1783 return __builtin_aarch64_ssubwv8qi (__a, __b);
1786 __extension__ extern __inline int32x4_t
1787 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1788 vsubw_s16 (int32x4_t __a, int16x4_t __b)
1790 return __builtin_aarch64_ssubwv4hi (__a, __b);
1793 __extension__ extern __inline int64x2_t
1794 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1795 vsubw_s32 (int64x2_t __a, int32x2_t __b)
1797 return __builtin_aarch64_ssubwv2si (__a, __b);
1800 __extension__ extern __inline uint16x8_t
1801 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1802 vsubw_u8 (uint16x8_t __a, uint8x8_t __b)
1804 return __builtin_aarch64_usubwv8qi_uuu (__a, __b);
1807 __extension__ extern __inline uint32x4_t
1808 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1809 vsubw_u16 (uint32x4_t __a, uint16x4_t __b)
1811 return __builtin_aarch64_usubwv4hi_uuu (__a, __b);
1814 __extension__ extern __inline uint64x2_t
1815 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1816 vsubw_u32 (uint64x2_t __a, uint32x2_t __b)
1818 return __builtin_aarch64_usubwv2si_uuu (__a, __b);
1821 __extension__ extern __inline int16x8_t
1822 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1823 vsubw_high_s8 (int16x8_t __a, int8x16_t __b)
1825 return __builtin_aarch64_ssubw2v16qi (__a, __b);
1828 __extension__ extern __inline int32x4_t
1829 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1830 vsubw_high_s16 (int32x4_t __a, int16x8_t __b)
1832 return __builtin_aarch64_ssubw2v8hi (__a, __b);
1835 __extension__ extern __inline int64x2_t
1836 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1837 vsubw_high_s32 (int64x2_t __a, int32x4_t __b)
1839 return __builtin_aarch64_ssubw2v4si (__a, __b);
1842 __extension__ extern __inline uint16x8_t
1843 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1844 vsubw_high_u8 (uint16x8_t __a, uint8x16_t __b)
1846 return __builtin_aarch64_usubw2v16qi_uuu (__a, __b);
1849 __extension__ extern __inline uint32x4_t
1850 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1851 vsubw_high_u16 (uint32x4_t __a, uint16x8_t __b)
1853 return __builtin_aarch64_usubw2v8hi_uuu (__a, __b);
1856 __extension__ extern __inline uint64x2_t
1857 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1858 vsubw_high_u32 (uint64x2_t __a, uint32x4_t __b)
1860 return __builtin_aarch64_usubw2v4si_uuu (__a, __b);
1863 __extension__ extern __inline int8x8_t
1864 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1865 vqadd_s8 (int8x8_t __a, int8x8_t __b)
1867 return (int8x8_t) __builtin_aarch64_ssaddv8qi (__a, __b);
1870 __extension__ extern __inline int16x4_t
1871 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1872 vqadd_s16 (int16x4_t __a, int16x4_t __b)
1874 return (int16x4_t) __builtin_aarch64_ssaddv4hi (__a, __b);
1877 __extension__ extern __inline int32x2_t
1878 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1879 vqadd_s32 (int32x2_t __a, int32x2_t __b)
1881 return (int32x2_t) __builtin_aarch64_ssaddv2si (__a, __b);
1884 __extension__ extern __inline int64x1_t
1885 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1886 vqadd_s64 (int64x1_t __a, int64x1_t __b)
1888 return (int64x1_t) {__builtin_aarch64_ssadddi (__a[0], __b[0])};
1891 __extension__ extern __inline uint8x8_t
1892 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1893 vqadd_u8 (uint8x8_t __a, uint8x8_t __b)
1895 return __builtin_aarch64_usaddv8qi_uuu (__a, __b);
1898 __extension__ extern __inline int8x8_t
1899 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1900 vhsub_s8 (int8x8_t __a, int8x8_t __b)
1902 return __builtin_aarch64_shsubv8qi (__a, __b);
1905 __extension__ extern __inline int16x4_t
1906 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1907 vhsub_s16 (int16x4_t __a, int16x4_t __b)
1909 return __builtin_aarch64_shsubv4hi (__a, __b);
1912 __extension__ extern __inline int32x2_t
1913 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1914 vhsub_s32 (int32x2_t __a, int32x2_t __b)
1916 return __builtin_aarch64_shsubv2si (__a, __b);
1919 __extension__ extern __inline uint8x8_t
1920 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1921 vhsub_u8 (uint8x8_t __a, uint8x8_t __b)
1923 return __builtin_aarch64_uhsubv8qi_uuu (__a, __b);
1926 __extension__ extern __inline uint16x4_t
1927 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1928 vhsub_u16 (uint16x4_t __a, uint16x4_t __b)
1930 return __builtin_aarch64_uhsubv4hi_uuu (__a, __b);
1933 __extension__ extern __inline uint32x2_t
1934 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1935 vhsub_u32 (uint32x2_t __a, uint32x2_t __b)
1937 return __builtin_aarch64_uhsubv2si_uuu (__a, __b);
1940 __extension__ extern __inline int8x16_t
1941 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1942 vhsubq_s8 (int8x16_t __a, int8x16_t __b)
1944 return __builtin_aarch64_shsubv16qi (__a, __b);
1947 __extension__ extern __inline int16x8_t
1948 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1949 vhsubq_s16 (int16x8_t __a, int16x8_t __b)
1951 return __builtin_aarch64_shsubv8hi (__a, __b);
1954 __extension__ extern __inline int32x4_t
1955 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1956 vhsubq_s32 (int32x4_t __a, int32x4_t __b)
1958 return __builtin_aarch64_shsubv4si (__a, __b);
1961 __extension__ extern __inline uint8x16_t
1962 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1963 vhsubq_u8 (uint8x16_t __a, uint8x16_t __b)
1965 return __builtin_aarch64_uhsubv16qi_uuu (__a, __b);
1968 __extension__ extern __inline uint16x8_t
1969 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1970 vhsubq_u16 (uint16x8_t __a, uint16x8_t __b)
1972 return __builtin_aarch64_uhsubv8hi_uuu (__a, __b);
1975 __extension__ extern __inline uint32x4_t
1976 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1977 vhsubq_u32 (uint32x4_t __a, uint32x4_t __b)
1979 return __builtin_aarch64_uhsubv4si_uuu (__a, __b);
1982 __extension__ extern __inline int8x8_t
1983 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1984 vsubhn_s16 (int16x8_t __a, int16x8_t __b)
1986 return __builtin_aarch64_subhnv8hi (__a, __b);
1989 __extension__ extern __inline int16x4_t
1990 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1991 vsubhn_s32 (int32x4_t __a, int32x4_t __b)
1993 return __builtin_aarch64_subhnv4si (__a, __b);
1996 __extension__ extern __inline int32x2_t
1997 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1998 vsubhn_s64 (int64x2_t __a, int64x2_t __b)
2000 return __builtin_aarch64_subhnv2di (__a, __b);
2003 __extension__ extern __inline uint8x8_t
2004 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2005 vsubhn_u16 (uint16x8_t __a, uint16x8_t __b)
2007 return __builtin_aarch64_subhnv8hi_uuu (__a, __b);
2010 __extension__ extern __inline uint16x4_t
2011 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2012 vsubhn_u32 (uint32x4_t __a, uint32x4_t __b)
2014 return __builtin_aarch64_subhnv4si_uuu (__a, __b);
2017 __extension__ extern __inline uint32x2_t
2018 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2019 vsubhn_u64 (uint64x2_t __a, uint64x2_t __b)
2021 return __builtin_aarch64_subhnv2di_uuu (__a, __b);
2024 __extension__ extern __inline int8x8_t
2025 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2026 vrsubhn_s16 (int16x8_t __a, int16x8_t __b)
2028 return __builtin_aarch64_rsubhnv8hi (__a, __b);
2031 __extension__ extern __inline int16x4_t
2032 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2033 vrsubhn_s32 (int32x4_t __a, int32x4_t __b)
2035 return __builtin_aarch64_rsubhnv4si (__a, __b);
2038 __extension__ extern __inline int32x2_t
2039 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2040 vrsubhn_s64 (int64x2_t __a, int64x2_t __b)
2042 return __builtin_aarch64_rsubhnv2di (__a, __b);
2045 __extension__ extern __inline uint8x8_t
2046 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2047 vrsubhn_u16 (uint16x8_t __a, uint16x8_t __b)
2049 return __builtin_aarch64_rsubhnv8hi_uuu (__a, __b);
2052 __extension__ extern __inline uint16x4_t
2053 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2054 vrsubhn_u32 (uint32x4_t __a, uint32x4_t __b)
2056 return __builtin_aarch64_rsubhnv4si_uuu (__a, __b);
2059 __extension__ extern __inline uint32x2_t
2060 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2061 vrsubhn_u64 (uint64x2_t __a, uint64x2_t __b)
2063 return __builtin_aarch64_rsubhnv2di_uuu (__a, __b);
2066 __extension__ extern __inline int8x16_t
2067 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2068 vrsubhn_high_s16 (int8x8_t __a, int16x8_t __b, int16x8_t __c)
2070 return __builtin_aarch64_rsubhn2v8hi (__a, __b, __c);
2073 __extension__ extern __inline int16x8_t
2074 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2075 vrsubhn_high_s32 (int16x4_t __a, int32x4_t __b, int32x4_t __c)
2077 return __builtin_aarch64_rsubhn2v4si (__a, __b, __c);
2080 __extension__ extern __inline int32x4_t
2081 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2082 vrsubhn_high_s64 (int32x2_t __a, int64x2_t __b, int64x2_t __c)
2084 return __builtin_aarch64_rsubhn2v2di (__a, __b, __c);
2087 __extension__ extern __inline uint8x16_t
2088 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2089 vrsubhn_high_u16 (uint8x8_t __a, uint16x8_t __b, uint16x8_t __c)
2091 return __builtin_aarch64_rsubhn2v8hi_uuuu (__a, __b, __c);
2094 __extension__ extern __inline uint16x8_t
2095 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2096 vrsubhn_high_u32 (uint16x4_t __a, uint32x4_t __b, uint32x4_t __c)
2098 return __builtin_aarch64_rsubhn2v4si_uuuu (__a, __b, __c);
2101 __extension__ extern __inline uint32x4_t
2102 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2103 vrsubhn_high_u64 (uint32x2_t __a, uint64x2_t __b, uint64x2_t __c)
2105 return __builtin_aarch64_rsubhn2v2di_uuuu (__a, __b, __c);
2108 __extension__ extern __inline int8x16_t
2109 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2110 vsubhn_high_s16 (int8x8_t __a, int16x8_t __b, int16x8_t __c)
2112 return __builtin_aarch64_subhn2v8hi (__a, __b, __c);
2115 __extension__ extern __inline int16x8_t
2116 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2117 vsubhn_high_s32 (int16x4_t __a, int32x4_t __b, int32x4_t __c)
2119 return __builtin_aarch64_subhn2v4si (__a, __b, __c);;
2122 __extension__ extern __inline int32x4_t
2123 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2124 vsubhn_high_s64 (int32x2_t __a, int64x2_t __b, int64x2_t __c)
2126 return __builtin_aarch64_subhn2v2di (__a, __b, __c);
2129 __extension__ extern __inline uint8x16_t
2130 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2131 vsubhn_high_u16 (uint8x8_t __a, uint16x8_t __b, uint16x8_t __c)
2133 return __builtin_aarch64_subhn2v8hi_uuuu (__a, __b, __c);
2136 __extension__ extern __inline uint16x8_t
2137 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2138 vsubhn_high_u32 (uint16x4_t __a, uint32x4_t __b, uint32x4_t __c)
2140 return __builtin_aarch64_subhn2v4si_uuuu (__a, __b, __c);
2143 __extension__ extern __inline uint32x4_t
2144 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2145 vsubhn_high_u64 (uint32x2_t __a, uint64x2_t __b, uint64x2_t __c)
2147 return __builtin_aarch64_subhn2v2di_uuuu (__a, __b, __c);
2150 __extension__ extern __inline uint16x4_t
2151 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2152 vqadd_u16 (uint16x4_t __a, uint16x4_t __b)
2154 return __builtin_aarch64_usaddv4hi_uuu (__a, __b);
2157 __extension__ extern __inline uint32x2_t
2158 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2159 vqadd_u32 (uint32x2_t __a, uint32x2_t __b)
2161 return __builtin_aarch64_usaddv2si_uuu (__a, __b);
2164 __extension__ extern __inline uint64x1_t
2165 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2166 vqadd_u64 (uint64x1_t __a, uint64x1_t __b)
2168 return (uint64x1_t) {__builtin_aarch64_usadddi_uuu (__a[0], __b[0])};
2171 __extension__ extern __inline int8x16_t
2172 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2173 vqaddq_s8 (int8x16_t __a, int8x16_t __b)
2175 return (int8x16_t) __builtin_aarch64_ssaddv16qi (__a, __b);
2178 __extension__ extern __inline int16x8_t
2179 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2180 vqaddq_s16 (int16x8_t __a, int16x8_t __b)
2182 return (int16x8_t) __builtin_aarch64_ssaddv8hi (__a, __b);
2185 __extension__ extern __inline int32x4_t
2186 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2187 vqaddq_s32 (int32x4_t __a, int32x4_t __b)
2189 return (int32x4_t) __builtin_aarch64_ssaddv4si (__a, __b);
2192 __extension__ extern __inline int64x2_t
2193 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2194 vqaddq_s64 (int64x2_t __a, int64x2_t __b)
2196 return (int64x2_t) __builtin_aarch64_ssaddv2di (__a, __b);
2199 __extension__ extern __inline uint8x16_t
2200 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2201 vqaddq_u8 (uint8x16_t __a, uint8x16_t __b)
2203 return __builtin_aarch64_usaddv16qi_uuu (__a, __b);
2206 __extension__ extern __inline uint16x8_t
2207 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2208 vqaddq_u16 (uint16x8_t __a, uint16x8_t __b)
2210 return __builtin_aarch64_usaddv8hi_uuu (__a, __b);
2213 __extension__ extern __inline uint32x4_t
2214 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2215 vqaddq_u32 (uint32x4_t __a, uint32x4_t __b)
2217 return __builtin_aarch64_usaddv4si_uuu (__a, __b);
2220 __extension__ extern __inline uint64x2_t
2221 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2222 vqaddq_u64 (uint64x2_t __a, uint64x2_t __b)
2224 return __builtin_aarch64_usaddv2di_uuu (__a, __b);
2227 __extension__ extern __inline int8x8_t
2228 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2229 vqsub_s8 (int8x8_t __a, int8x8_t __b)
2231 return (int8x8_t) __builtin_aarch64_sssubv8qi (__a, __b);
2234 __extension__ extern __inline int16x4_t
2235 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2236 vqsub_s16 (int16x4_t __a, int16x4_t __b)
2238 return (int16x4_t) __builtin_aarch64_sssubv4hi (__a, __b);
2241 __extension__ extern __inline int32x2_t
2242 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2243 vqsub_s32 (int32x2_t __a, int32x2_t __b)
2245 return (int32x2_t) __builtin_aarch64_sssubv2si (__a, __b);
2248 __extension__ extern __inline int64x1_t
2249 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2250 vqsub_s64 (int64x1_t __a, int64x1_t __b)
2252 return (int64x1_t) {__builtin_aarch64_sssubdi (__a[0], __b[0])};
2255 __extension__ extern __inline uint8x8_t
2256 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2257 vqsub_u8 (uint8x8_t __a, uint8x8_t __b)
2259 return __builtin_aarch64_ussubv8qi_uuu (__a, __b);
2262 __extension__ extern __inline uint16x4_t
2263 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2264 vqsub_u16 (uint16x4_t __a, uint16x4_t __b)
2266 return __builtin_aarch64_ussubv4hi_uuu (__a, __b);
2269 __extension__ extern __inline uint32x2_t
2270 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2271 vqsub_u32 (uint32x2_t __a, uint32x2_t __b)
2273 return __builtin_aarch64_ussubv2si_uuu (__a, __b);
2276 __extension__ extern __inline uint64x1_t
2277 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2278 vqsub_u64 (uint64x1_t __a, uint64x1_t __b)
2280 return (uint64x1_t) {__builtin_aarch64_ussubdi_uuu (__a[0], __b[0])};
2283 __extension__ extern __inline int8x16_t
2284 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2285 vqsubq_s8 (int8x16_t __a, int8x16_t __b)
2287 return (int8x16_t) __builtin_aarch64_sssubv16qi (__a, __b);
2290 __extension__ extern __inline int16x8_t
2291 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2292 vqsubq_s16 (int16x8_t __a, int16x8_t __b)
2294 return (int16x8_t) __builtin_aarch64_sssubv8hi (__a, __b);
2297 __extension__ extern __inline int32x4_t
2298 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2299 vqsubq_s32 (int32x4_t __a, int32x4_t __b)
2301 return (int32x4_t) __builtin_aarch64_sssubv4si (__a, __b);
2304 __extension__ extern __inline int64x2_t
2305 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2306 vqsubq_s64 (int64x2_t __a, int64x2_t __b)
2308 return (int64x2_t) __builtin_aarch64_sssubv2di (__a, __b);
2311 __extension__ extern __inline uint8x16_t
2312 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2313 vqsubq_u8 (uint8x16_t __a, uint8x16_t __b)
2315 return __builtin_aarch64_ussubv16qi_uuu (__a, __b);
2318 __extension__ extern __inline uint16x8_t
2319 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2320 vqsubq_u16 (uint16x8_t __a, uint16x8_t __b)
2322 return __builtin_aarch64_ussubv8hi_uuu (__a, __b);
2325 __extension__ extern __inline uint32x4_t
2326 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2327 vqsubq_u32 (uint32x4_t __a, uint32x4_t __b)
2329 return __builtin_aarch64_ussubv4si_uuu (__a, __b);
2332 __extension__ extern __inline uint64x2_t
2333 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2334 vqsubq_u64 (uint64x2_t __a, uint64x2_t __b)
2336 return __builtin_aarch64_ussubv2di_uuu (__a, __b);
2339 __extension__ extern __inline int8x8_t
2340 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2341 vqneg_s8 (int8x8_t __a)
2343 return (int8x8_t) __builtin_aarch64_sqnegv8qi (__a);
2346 __extension__ extern __inline int16x4_t
2347 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2348 vqneg_s16 (int16x4_t __a)
2350 return (int16x4_t) __builtin_aarch64_sqnegv4hi (__a);
2353 __extension__ extern __inline int32x2_t
2354 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2355 vqneg_s32 (int32x2_t __a)
2357 return (int32x2_t) __builtin_aarch64_sqnegv2si (__a);
2360 __extension__ extern __inline int64x1_t
2361 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2362 vqneg_s64 (int64x1_t __a)
2364 return (int64x1_t) {__builtin_aarch64_sqnegdi (__a[0])};
2367 __extension__ extern __inline int8x16_t
2368 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2369 vqnegq_s8 (int8x16_t __a)
2371 return (int8x16_t) __builtin_aarch64_sqnegv16qi (__a);
2374 __extension__ extern __inline int16x8_t
2375 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2376 vqnegq_s16 (int16x8_t __a)
2378 return (int16x8_t) __builtin_aarch64_sqnegv8hi (__a);
2381 __extension__ extern __inline int32x4_t
2382 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2383 vqnegq_s32 (int32x4_t __a)
2385 return (int32x4_t) __builtin_aarch64_sqnegv4si (__a);
2388 __extension__ extern __inline int8x8_t
2389 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2390 vqabs_s8 (int8x8_t __a)
2392 return (int8x8_t) __builtin_aarch64_sqabsv8qi (__a);
2395 __extension__ extern __inline int16x4_t
2396 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2397 vqabs_s16 (int16x4_t __a)
2399 return (int16x4_t) __builtin_aarch64_sqabsv4hi (__a);
2402 __extension__ extern __inline int32x2_t
2403 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2404 vqabs_s32 (int32x2_t __a)
2406 return (int32x2_t) __builtin_aarch64_sqabsv2si (__a);
2409 __extension__ extern __inline int64x1_t
2410 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2411 vqabs_s64 (int64x1_t __a)
2413 return (int64x1_t) {__builtin_aarch64_sqabsdi (__a[0])};
2416 __extension__ extern __inline int8x16_t
2417 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2418 vqabsq_s8 (int8x16_t __a)
2420 return (int8x16_t) __builtin_aarch64_sqabsv16qi (__a);
2423 __extension__ extern __inline int16x8_t
2424 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2425 vqabsq_s16 (int16x8_t __a)
2427 return (int16x8_t) __builtin_aarch64_sqabsv8hi (__a);
2430 __extension__ extern __inline int32x4_t
2431 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2432 vqabsq_s32 (int32x4_t __a)
2434 return (int32x4_t) __builtin_aarch64_sqabsv4si (__a);
2437 __extension__ extern __inline int16x4_t
2438 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2439 vqdmulh_s16 (int16x4_t __a, int16x4_t __b)
2441 return (int16x4_t) __builtin_aarch64_sqdmulhv4hi (__a, __b);
2444 __extension__ extern __inline int32x2_t
2445 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2446 vqdmulh_s32 (int32x2_t __a, int32x2_t __b)
2448 return (int32x2_t) __builtin_aarch64_sqdmulhv2si (__a, __b);
2451 __extension__ extern __inline int16x8_t
2452 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2453 vqdmulhq_s16 (int16x8_t __a, int16x8_t __b)
2455 return (int16x8_t) __builtin_aarch64_sqdmulhv8hi (__a, __b);
2458 __extension__ extern __inline int32x4_t
2459 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2460 vqdmulhq_s32 (int32x4_t __a, int32x4_t __b)
2462 return (int32x4_t) __builtin_aarch64_sqdmulhv4si (__a, __b);
2465 __extension__ extern __inline int16x4_t
2466 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2467 vqrdmulh_s16 (int16x4_t __a, int16x4_t __b)
2469 return (int16x4_t) __builtin_aarch64_sqrdmulhv4hi (__a, __b);
2472 __extension__ extern __inline int32x2_t
2473 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2474 vqrdmulh_s32 (int32x2_t __a, int32x2_t __b)
2476 return (int32x2_t) __builtin_aarch64_sqrdmulhv2si (__a, __b);
2479 __extension__ extern __inline int16x8_t
2480 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2481 vqrdmulhq_s16 (int16x8_t __a, int16x8_t __b)
2483 return (int16x8_t) __builtin_aarch64_sqrdmulhv8hi (__a, __b);
2486 __extension__ extern __inline int32x4_t
2487 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2488 vqrdmulhq_s32 (int32x4_t __a, int32x4_t __b)
2490 return (int32x4_t) __builtin_aarch64_sqrdmulhv4si (__a, __b);
2493 __extension__ extern __inline int8x8_t
2494 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2495 vcreate_s8 (uint64_t __a)
2497 return (int8x8_t) __a;
2500 __extension__ extern __inline int16x4_t
2501 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2502 vcreate_s16 (uint64_t __a)
2504 return (int16x4_t) __a;
2507 __extension__ extern __inline int32x2_t
2508 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2509 vcreate_s32 (uint64_t __a)
2511 return (int32x2_t) __a;
2514 __extension__ extern __inline int64x1_t
2515 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2516 vcreate_s64 (uint64_t __a)
2518 return (int64x1_t) {__a};
2521 __extension__ extern __inline float16x4_t
2522 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2523 vcreate_f16 (uint64_t __a)
2525 return (float16x4_t) __a;
2528 __extension__ extern __inline float32x2_t
2529 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2530 vcreate_f32 (uint64_t __a)
2532 return (float32x2_t) __a;
2535 __extension__ extern __inline uint8x8_t
2536 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2537 vcreate_u8 (uint64_t __a)
2539 return (uint8x8_t) __a;
2542 __extension__ extern __inline uint16x4_t
2543 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2544 vcreate_u16 (uint64_t __a)
2546 return (uint16x4_t) __a;
2549 __extension__ extern __inline uint32x2_t
2550 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2551 vcreate_u32 (uint64_t __a)
2553 return (uint32x2_t) __a;
2556 __extension__ extern __inline uint64x1_t
2557 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2558 vcreate_u64 (uint64_t __a)
2560 return (uint64x1_t) {__a};
2563 __extension__ extern __inline float64x1_t
2564 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2565 vcreate_f64 (uint64_t __a)
2567 return (float64x1_t) __a;
2570 __extension__ extern __inline poly8x8_t
2571 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2572 vcreate_p8 (uint64_t __a)
2574 return (poly8x8_t) __a;
2577 __extension__ extern __inline poly16x4_t
2578 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2579 vcreate_p16 (uint64_t __a)
2581 return (poly16x4_t) __a;
2584 __extension__ extern __inline poly64x1_t
2585 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2586 vcreate_p64 (uint64_t __a)
2588 return (poly64x1_t) __a;
2591 /* vget_lane */
2593 __extension__ extern __inline float16_t
2594 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2595 vget_lane_f16 (float16x4_t __a, const int __b)
2597 return __aarch64_vget_lane_any (__a, __b);
2600 __extension__ extern __inline float32_t
2601 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2602 vget_lane_f32 (float32x2_t __a, const int __b)
2604 return __aarch64_vget_lane_any (__a, __b);
2607 __extension__ extern __inline float64_t
2608 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2609 vget_lane_f64 (float64x1_t __a, const int __b)
2611 return __aarch64_vget_lane_any (__a, __b);
2614 __extension__ extern __inline poly8_t
2615 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2616 vget_lane_p8 (poly8x8_t __a, const int __b)
2618 return __aarch64_vget_lane_any (__a, __b);
2621 __extension__ extern __inline poly16_t
2622 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2623 vget_lane_p16 (poly16x4_t __a, const int __b)
2625 return __aarch64_vget_lane_any (__a, __b);
2628 __extension__ extern __inline poly64_t
2629 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2630 vget_lane_p64 (poly64x1_t __a, const int __b)
2632 return __aarch64_vget_lane_any (__a, __b);
2635 __extension__ extern __inline int8_t
2636 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2637 vget_lane_s8 (int8x8_t __a, const int __b)
2639 return __aarch64_vget_lane_any (__a, __b);
2642 __extension__ extern __inline int16_t
2643 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2644 vget_lane_s16 (int16x4_t __a, const int __b)
2646 return __aarch64_vget_lane_any (__a, __b);
2649 __extension__ extern __inline int32_t
2650 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2651 vget_lane_s32 (int32x2_t __a, const int __b)
2653 return __aarch64_vget_lane_any (__a, __b);
2656 __extension__ extern __inline int64_t
2657 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2658 vget_lane_s64 (int64x1_t __a, const int __b)
2660 return __aarch64_vget_lane_any (__a, __b);
2663 __extension__ extern __inline uint8_t
2664 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2665 vget_lane_u8 (uint8x8_t __a, const int __b)
2667 return __aarch64_vget_lane_any (__a, __b);
2670 __extension__ extern __inline uint16_t
2671 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2672 vget_lane_u16 (uint16x4_t __a, const int __b)
2674 return __aarch64_vget_lane_any (__a, __b);
2677 __extension__ extern __inline uint32_t
2678 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2679 vget_lane_u32 (uint32x2_t __a, const int __b)
2681 return __aarch64_vget_lane_any (__a, __b);
2684 __extension__ extern __inline uint64_t
2685 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2686 vget_lane_u64 (uint64x1_t __a, const int __b)
2688 return __aarch64_vget_lane_any (__a, __b);
2691 /* vgetq_lane */
2693 __extension__ extern __inline float16_t
2694 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2695 vgetq_lane_f16 (float16x8_t __a, const int __b)
2697 return __aarch64_vget_lane_any (__a, __b);
2700 __extension__ extern __inline float32_t
2701 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2702 vgetq_lane_f32 (float32x4_t __a, const int __b)
2704 return __aarch64_vget_lane_any (__a, __b);
2707 __extension__ extern __inline float64_t
2708 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2709 vgetq_lane_f64 (float64x2_t __a, const int __b)
2711 return __aarch64_vget_lane_any (__a, __b);
2714 __extension__ extern __inline poly8_t
2715 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2716 vgetq_lane_p8 (poly8x16_t __a, const int __b)
2718 return __aarch64_vget_lane_any (__a, __b);
2721 __extension__ extern __inline poly16_t
2722 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2723 vgetq_lane_p16 (poly16x8_t __a, const int __b)
2725 return __aarch64_vget_lane_any (__a, __b);
2728 __extension__ extern __inline poly64_t
2729 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2730 vgetq_lane_p64 (poly64x2_t __a, const int __b)
2732 return __aarch64_vget_lane_any (__a, __b);
2735 __extension__ extern __inline int8_t
2736 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2737 vgetq_lane_s8 (int8x16_t __a, const int __b)
2739 return __aarch64_vget_lane_any (__a, __b);
2742 __extension__ extern __inline int16_t
2743 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2744 vgetq_lane_s16 (int16x8_t __a, const int __b)
2746 return __aarch64_vget_lane_any (__a, __b);
2749 __extension__ extern __inline int32_t
2750 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2751 vgetq_lane_s32 (int32x4_t __a, const int __b)
2753 return __aarch64_vget_lane_any (__a, __b);
2756 __extension__ extern __inline int64_t
2757 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2758 vgetq_lane_s64 (int64x2_t __a, const int __b)
2760 return __aarch64_vget_lane_any (__a, __b);
2763 __extension__ extern __inline uint8_t
2764 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2765 vgetq_lane_u8 (uint8x16_t __a, const int __b)
2767 return __aarch64_vget_lane_any (__a, __b);
2770 __extension__ extern __inline uint16_t
2771 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2772 vgetq_lane_u16 (uint16x8_t __a, const int __b)
2774 return __aarch64_vget_lane_any (__a, __b);
2777 __extension__ extern __inline uint32_t
2778 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2779 vgetq_lane_u32 (uint32x4_t __a, const int __b)
2781 return __aarch64_vget_lane_any (__a, __b);
2784 __extension__ extern __inline uint64_t
2785 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2786 vgetq_lane_u64 (uint64x2_t __a, const int __b)
2788 return __aarch64_vget_lane_any (__a, __b);
2791 /* vset_lane */
2793 __extension__ extern __inline float16x4_t
2794 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2795 vset_lane_f16 (float16_t __elem, float16x4_t __vec, const int __index)
2797 return __aarch64_vset_lane_any (__elem, __vec, __index);
2800 __extension__ extern __inline float32x2_t
2801 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2802 vset_lane_f32 (float32_t __elem, float32x2_t __vec, const int __index)
2804 return __aarch64_vset_lane_any (__elem, __vec, __index);
2807 __extension__ extern __inline float64x1_t
2808 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2809 vset_lane_f64 (float64_t __elem, float64x1_t __vec, const int __index)
2811 return __aarch64_vset_lane_any (__elem, __vec, __index);
2814 __extension__ extern __inline poly8x8_t
2815 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2816 vset_lane_p8 (poly8_t __elem, poly8x8_t __vec, const int __index)
2818 return __aarch64_vset_lane_any (__elem, __vec, __index);
2821 __extension__ extern __inline poly16x4_t
2822 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2823 vset_lane_p16 (poly16_t __elem, poly16x4_t __vec, const int __index)
2825 return __aarch64_vset_lane_any (__elem, __vec, __index);
2828 __extension__ extern __inline poly64x1_t
2829 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2830 vset_lane_p64 (poly64_t __elem, poly64x1_t __vec, const int __index)
2832 return __aarch64_vset_lane_any (__elem, __vec, __index);
2835 __extension__ extern __inline int8x8_t
2836 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2837 vset_lane_s8 (int8_t __elem, int8x8_t __vec, const int __index)
2839 return __aarch64_vset_lane_any (__elem, __vec, __index);
2842 __extension__ extern __inline int16x4_t
2843 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2844 vset_lane_s16 (int16_t __elem, int16x4_t __vec, const int __index)
2846 return __aarch64_vset_lane_any (__elem, __vec, __index);
2849 __extension__ extern __inline int32x2_t
2850 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2851 vset_lane_s32 (int32_t __elem, int32x2_t __vec, const int __index)
2853 return __aarch64_vset_lane_any (__elem, __vec, __index);
2856 __extension__ extern __inline int64x1_t
2857 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2858 vset_lane_s64 (int64_t __elem, int64x1_t __vec, const int __index)
2860 return __aarch64_vset_lane_any (__elem, __vec, __index);
2863 __extension__ extern __inline uint8x8_t
2864 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2865 vset_lane_u8 (uint8_t __elem, uint8x8_t __vec, const int __index)
2867 return __aarch64_vset_lane_any (__elem, __vec, __index);
2870 __extension__ extern __inline uint16x4_t
2871 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2872 vset_lane_u16 (uint16_t __elem, uint16x4_t __vec, const int __index)
2874 return __aarch64_vset_lane_any (__elem, __vec, __index);
2877 __extension__ extern __inline uint32x2_t
2878 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2879 vset_lane_u32 (uint32_t __elem, uint32x2_t __vec, const int __index)
2881 return __aarch64_vset_lane_any (__elem, __vec, __index);
2884 __extension__ extern __inline uint64x1_t
2885 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2886 vset_lane_u64 (uint64_t __elem, uint64x1_t __vec, const int __index)
2888 return __aarch64_vset_lane_any (__elem, __vec, __index);
2891 /* vsetq_lane */
2893 __extension__ extern __inline float16x8_t
2894 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2895 vsetq_lane_f16 (float16_t __elem, float16x8_t __vec, const int __index)
2897 return __aarch64_vset_lane_any (__elem, __vec, __index);
2900 __extension__ extern __inline float32x4_t
2901 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2902 vsetq_lane_f32 (float32_t __elem, float32x4_t __vec, const int __index)
2904 return __aarch64_vset_lane_any (__elem, __vec, __index);
2907 __extension__ extern __inline float64x2_t
2908 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2909 vsetq_lane_f64 (float64_t __elem, float64x2_t __vec, const int __index)
2911 return __aarch64_vset_lane_any (__elem, __vec, __index);
2914 __extension__ extern __inline poly8x16_t
2915 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2916 vsetq_lane_p8 (poly8_t __elem, poly8x16_t __vec, const int __index)
2918 return __aarch64_vset_lane_any (__elem, __vec, __index);
2921 __extension__ extern __inline poly16x8_t
2922 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2923 vsetq_lane_p16 (poly16_t __elem, poly16x8_t __vec, const int __index)
2925 return __aarch64_vset_lane_any (__elem, __vec, __index);
2928 __extension__ extern __inline poly64x2_t
2929 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2930 vsetq_lane_p64 (poly64_t __elem, poly64x2_t __vec, const int __index)
2932 return __aarch64_vset_lane_any (__elem, __vec, __index);
2935 __extension__ extern __inline int8x16_t
2936 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2937 vsetq_lane_s8 (int8_t __elem, int8x16_t __vec, const int __index)
2939 return __aarch64_vset_lane_any (__elem, __vec, __index);
2942 __extension__ extern __inline int16x8_t
2943 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2944 vsetq_lane_s16 (int16_t __elem, int16x8_t __vec, const int __index)
2946 return __aarch64_vset_lane_any (__elem, __vec, __index);
2949 __extension__ extern __inline int32x4_t
2950 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2951 vsetq_lane_s32 (int32_t __elem, int32x4_t __vec, const int __index)
2953 return __aarch64_vset_lane_any (__elem, __vec, __index);
2956 __extension__ extern __inline int64x2_t
2957 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2958 vsetq_lane_s64 (int64_t __elem, int64x2_t __vec, const int __index)
2960 return __aarch64_vset_lane_any (__elem, __vec, __index);
2963 __extension__ extern __inline uint8x16_t
2964 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2965 vsetq_lane_u8 (uint8_t __elem, uint8x16_t __vec, const int __index)
2967 return __aarch64_vset_lane_any (__elem, __vec, __index);
2970 __extension__ extern __inline uint16x8_t
2971 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2972 vsetq_lane_u16 (uint16_t __elem, uint16x8_t __vec, const int __index)
2974 return __aarch64_vset_lane_any (__elem, __vec, __index);
2977 __extension__ extern __inline uint32x4_t
2978 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2979 vsetq_lane_u32 (uint32_t __elem, uint32x4_t __vec, const int __index)
2981 return __aarch64_vset_lane_any (__elem, __vec, __index);
2984 __extension__ extern __inline uint64x2_t
2985 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2986 vsetq_lane_u64 (uint64_t __elem, uint64x2_t __vec, const int __index)
2988 return __aarch64_vset_lane_any (__elem, __vec, __index);
2992 __extension__ extern __inline int8x16_t
2993 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2994 vcombine_s8 (int8x8_t __a, int8x8_t __b)
2996 return __builtin_aarch64_combinev8qi (__a, __b);
2999 __extension__ extern __inline int16x8_t
3000 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3001 vcombine_s16 (int16x4_t __a, int16x4_t __b)
3003 return __builtin_aarch64_combinev4hi (__a, __b);
3006 __extension__ extern __inline int32x4_t
3007 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3008 vcombine_s32 (int32x2_t __a, int32x2_t __b)
3010 return __builtin_aarch64_combinev2si (__a, __b);
3013 __extension__ extern __inline int64x2_t
3014 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3015 vcombine_s64 (int64x1_t __a, int64x1_t __b)
3017 return __builtin_aarch64_combinedi (__a[0], __b[0]);
3020 __extension__ extern __inline float16x8_t
3021 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3022 vcombine_f16 (float16x4_t __a, float16x4_t __b)
3024 return __builtin_aarch64_combinev4hf (__a, __b);
3027 __extension__ extern __inline float32x4_t
3028 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3029 vcombine_f32 (float32x2_t __a, float32x2_t __b)
3031 return __builtin_aarch64_combinev2sf (__a, __b);
3034 __extension__ extern __inline uint8x16_t
3035 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3036 vcombine_u8 (uint8x8_t __a, uint8x8_t __b)
3038 return __builtin_aarch64_combinev8qi_uuu (__a, __b);
3041 __extension__ extern __inline uint16x8_t
3042 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3043 vcombine_u16 (uint16x4_t __a, uint16x4_t __b)
3045 return __builtin_aarch64_combinev4hi_uuu (__a, __b);
3048 __extension__ extern __inline uint32x4_t
3049 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3050 vcombine_u32 (uint32x2_t __a, uint32x2_t __b)
3052 return __builtin_aarch64_combinev2si_uuu (__a, __b);
3055 __extension__ extern __inline uint64x2_t
3056 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3057 vcombine_u64 (uint64x1_t __a, uint64x1_t __b)
3059 return __builtin_aarch64_combinedi_uuu (__a[0], __b[0]);
3062 __extension__ extern __inline float64x2_t
3063 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3064 vcombine_f64 (float64x1_t __a, float64x1_t __b)
3066 return __builtin_aarch64_combinedf (__a[0], __b[0]);
3069 __extension__ extern __inline poly8x16_t
3070 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3071 vcombine_p8 (poly8x8_t __a, poly8x8_t __b)
3073 return __builtin_aarch64_combinev8qi_ppp (__a, __b);
3076 __extension__ extern __inline poly16x8_t
3077 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3078 vcombine_p16 (poly16x4_t __a, poly16x4_t __b)
3080 return __builtin_aarch64_combinev4hi_ppp (__a, __b);
3083 __extension__ extern __inline poly64x2_t
3084 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3085 vcombine_p64 (poly64x1_t __a, poly64x1_t __b)
3087 return __builtin_aarch64_combinedi_ppp (__a[0], __b[0]);
3090 /* Start of temporary inline asm implementations. */
3092 __extension__ extern __inline int8x8_t
3093 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3094 vaba_s8 (int8x8_t __a, int8x8_t __b, int8x8_t __c)
3096 return __builtin_aarch64_sabav8qi (__a, __b, __c);
3099 __extension__ extern __inline int16x4_t
3100 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3101 vaba_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c)
3103 return __builtin_aarch64_sabav4hi (__a, __b, __c);
3106 __extension__ extern __inline int32x2_t
3107 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3108 vaba_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c)
3110 return __builtin_aarch64_sabav2si (__a, __b, __c);
3113 __extension__ extern __inline uint8x8_t
3114 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3115 vaba_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c)
3117 return __builtin_aarch64_uabav8qi_uuuu (__a, __b, __c);
3120 __extension__ extern __inline uint16x4_t
3121 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3122 vaba_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c)
3124 return __builtin_aarch64_uabav4hi_uuuu (__a, __b, __c);
3127 __extension__ extern __inline uint32x2_t
3128 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3129 vaba_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c)
3131 return __builtin_aarch64_uabav2si_uuuu (__a, __b, __c);
3134 __extension__ extern __inline int16x8_t
3135 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3136 vabal_high_s8 (int16x8_t __a, int8x16_t __b, int8x16_t __c)
3138 return __builtin_aarch64_sabal2v16qi (__a, __b, __c);
3141 __extension__ extern __inline int32x4_t
3142 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3143 vabal_high_s16 (int32x4_t __a, int16x8_t __b, int16x8_t __c)
3145 return __builtin_aarch64_sabal2v8hi (__a, __b, __c);
3148 __extension__ extern __inline int64x2_t
3149 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3150 vabal_high_s32 (int64x2_t __a, int32x4_t __b, int32x4_t __c)
3152 return __builtin_aarch64_sabal2v4si (__a, __b, __c);
3155 __extension__ extern __inline uint16x8_t
3156 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3157 vabal_high_u8 (uint16x8_t __a, uint8x16_t __b, uint8x16_t __c)
3159 return __builtin_aarch64_uabal2v16qi_uuuu (__a, __b, __c);
3162 __extension__ extern __inline uint32x4_t
3163 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3164 vabal_high_u16 (uint32x4_t __a, uint16x8_t __b, uint16x8_t __c)
3166 return __builtin_aarch64_uabal2v8hi_uuuu (__a, __b, __c);
3169 __extension__ extern __inline uint64x2_t
3170 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3171 vabal_high_u32 (uint64x2_t __a, uint32x4_t __b, uint32x4_t __c)
3173 return __builtin_aarch64_uabal2v4si_uuuu (__a, __b, __c);
3176 __extension__ extern __inline int16x8_t
3177 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3178 vabal_s8 (int16x8_t __a, int8x8_t __b, int8x8_t __c)
3180 return __builtin_aarch64_sabalv8qi (__a, __b, __c);
3183 __extension__ extern __inline int32x4_t
3184 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3185 vabal_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
3187 return __builtin_aarch64_sabalv4hi (__a, __b, __c);
3190 __extension__ extern __inline int64x2_t
3191 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3192 vabal_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
3194 return __builtin_aarch64_sabalv2si (__a, __b, __c);
3197 __extension__ extern __inline uint16x8_t
3198 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3199 vabal_u8 (uint16x8_t __a, uint8x8_t __b, uint8x8_t __c)
3201 return __builtin_aarch64_uabalv8qi_uuuu (__a, __b, __c);
3204 __extension__ extern __inline uint32x4_t
3205 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3206 vabal_u16 (uint32x4_t __a, uint16x4_t __b, uint16x4_t __c)
3208 return __builtin_aarch64_uabalv4hi_uuuu (__a, __b, __c);
3211 __extension__ extern __inline uint64x2_t
3212 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3213 vabal_u32 (uint64x2_t __a, uint32x2_t __b, uint32x2_t __c)
3215 return __builtin_aarch64_uabalv2si_uuuu (__a, __b, __c);
3218 __extension__ extern __inline int8x16_t
3219 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3220 vabaq_s8 (int8x16_t __a, int8x16_t __b, int8x16_t __c)
3222 return __builtin_aarch64_sabav16qi (__a, __b, __c);
3225 __extension__ extern __inline int16x8_t
3226 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3227 vabaq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
3229 return __builtin_aarch64_sabav8hi (__a, __b, __c);
3232 __extension__ extern __inline int32x4_t
3233 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3234 vabaq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
3236 return __builtin_aarch64_sabav4si (__a, __b, __c);
3239 __extension__ extern __inline uint8x16_t
3240 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3241 vabaq_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c)
3243 return __builtin_aarch64_uabav16qi_uuuu (__a, __b, __c);
3246 __extension__ extern __inline uint16x8_t
3247 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3248 vabaq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
3250 return __builtin_aarch64_uabav8hi_uuuu (__a, __b, __c);
3253 __extension__ extern __inline uint32x4_t
3254 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3255 vabaq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
3257 return __builtin_aarch64_uabav4si_uuuu (__a, __b, __c);
3260 __extension__ extern __inline int8x8_t
3261 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3262 vabd_s8 (int8x8_t __a, int8x8_t __b)
3264 return __builtin_aarch64_sabdv8qi (__a, __b);
3267 __extension__ extern __inline int16x4_t
3268 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3269 vabd_s16 (int16x4_t __a, int16x4_t __b)
3271 return __builtin_aarch64_sabdv4hi (__a, __b);
3274 __extension__ extern __inline int32x2_t
3275 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3276 vabd_s32 (int32x2_t __a, int32x2_t __b)
3278 return __builtin_aarch64_sabdv2si (__a, __b);
3281 __extension__ extern __inline uint8x8_t
3282 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3283 vabd_u8 (uint8x8_t __a, uint8x8_t __b)
3285 return __builtin_aarch64_uabdv8qi_uuu (__a, __b);
3288 __extension__ extern __inline uint16x4_t
3289 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3290 vabd_u16 (uint16x4_t __a, uint16x4_t __b)
3292 return __builtin_aarch64_uabdv4hi_uuu (__a, __b);
3295 __extension__ extern __inline uint32x2_t
3296 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3297 vabd_u32 (uint32x2_t __a, uint32x2_t __b)
3299 return __builtin_aarch64_uabdv2si_uuu (__a, __b);
3302 __extension__ extern __inline int16x8_t
3303 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3304 vabdl_high_s8 (int8x16_t __a, int8x16_t __b)
3306 return __builtin_aarch64_sabdl2v16qi (__a, __b);
3309 __extension__ extern __inline int32x4_t
3310 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3311 vabdl_high_s16 (int16x8_t __a, int16x8_t __b)
3313 return __builtin_aarch64_sabdl2v8hi (__a, __b);
3316 __extension__ extern __inline int64x2_t
3317 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3318 vabdl_high_s32 (int32x4_t __a, int32x4_t __b)
3320 return __builtin_aarch64_sabdl2v4si (__a, __b);
3323 __extension__ extern __inline uint16x8_t
3324 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3325 vabdl_high_u8 (uint8x16_t __a, uint8x16_t __b)
3327 return __builtin_aarch64_uabdl2v16qi_uuu (__a, __b);
3330 __extension__ extern __inline uint32x4_t
3331 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3332 vabdl_high_u16 (uint16x8_t __a, uint16x8_t __b)
3334 return __builtin_aarch64_uabdl2v8hi_uuu (__a, __b);
3337 __extension__ extern __inline uint64x2_t
3338 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3339 vabdl_high_u32 (uint32x4_t __a, uint32x4_t __b)
3341 return __builtin_aarch64_uabdl2v4si_uuu (__a, __b);
3344 __extension__ extern __inline int16x8_t
3345 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3346 vabdl_s8 (int8x8_t __a, int8x8_t __b)
3348 return __builtin_aarch64_sabdlv8qi (__a, __b);
3351 __extension__ extern __inline int32x4_t
3352 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3353 vabdl_s16 (int16x4_t __a, int16x4_t __b)
3355 return __builtin_aarch64_sabdlv4hi (__a, __b);
3358 __extension__ extern __inline int64x2_t
3359 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3360 vabdl_s32 (int32x2_t __a, int32x2_t __b)
3362 return __builtin_aarch64_sabdlv2si (__a, __b);
3365 __extension__ extern __inline uint16x8_t
3366 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3367 vabdl_u8 (uint8x8_t __a, uint8x8_t __b)
3369 return __builtin_aarch64_uabdlv8qi_uuu (__a, __b);
3372 __extension__ extern __inline uint32x4_t
3373 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3374 vabdl_u16 (uint16x4_t __a, uint16x4_t __b)
3376 return __builtin_aarch64_uabdlv4hi_uuu (__a, __b);
3379 __extension__ extern __inline uint64x2_t
3380 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3381 vabdl_u32 (uint32x2_t __a, uint32x2_t __b)
3383 return __builtin_aarch64_uabdlv2si_uuu (__a, __b);
3386 __extension__ extern __inline int8x16_t
3387 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3388 vabdq_s8 (int8x16_t __a, int8x16_t __b)
3390 return __builtin_aarch64_sabdv16qi (__a, __b);
3393 __extension__ extern __inline int16x8_t
3394 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3395 vabdq_s16 (int16x8_t __a, int16x8_t __b)
3397 return __builtin_aarch64_sabdv8hi (__a, __b);
3400 __extension__ extern __inline int32x4_t
3401 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3402 vabdq_s32 (int32x4_t __a, int32x4_t __b)
3404 return __builtin_aarch64_sabdv4si (__a, __b);
3407 __extension__ extern __inline uint8x16_t
3408 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3409 vabdq_u8 (uint8x16_t __a, uint8x16_t __b)
3411 return __builtin_aarch64_uabdv16qi_uuu (__a, __b);
3414 __extension__ extern __inline uint16x8_t
3415 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3416 vabdq_u16 (uint16x8_t __a, uint16x8_t __b)
3418 return __builtin_aarch64_uabdv8hi_uuu (__a, __b);
3421 __extension__ extern __inline uint32x4_t
3422 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3423 vabdq_u32 (uint32x4_t __a, uint32x4_t __b)
3425 return __builtin_aarch64_uabdv4si_uuu (__a, __b);
3428 __extension__ extern __inline int16_t
3429 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3430 vaddlv_s8 (int8x8_t __a)
3432 return __builtin_aarch64_saddlvv8qi (__a);
3435 __extension__ extern __inline int32_t
3436 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3437 vaddlv_s16 (int16x4_t __a)
3439 return __builtin_aarch64_saddlvv4hi (__a);
3442 __extension__ extern __inline uint16_t
3443 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3444 vaddlv_u8 (uint8x8_t __a)
3446 return __builtin_aarch64_uaddlvv8qi_uu (__a);
3449 __extension__ extern __inline uint32_t
3450 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3451 vaddlv_u16 (uint16x4_t __a)
3453 return __builtin_aarch64_uaddlvv4hi_uu (__a);
3456 __extension__ extern __inline int16_t
3457 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3458 vaddlvq_s8 (int8x16_t __a)
3460 return __builtin_aarch64_saddlvv16qi (__a);
3463 __extension__ extern __inline int32_t
3464 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3465 vaddlvq_s16 (int16x8_t __a)
3467 return __builtin_aarch64_saddlvv8hi (__a);
3470 __extension__ extern __inline int64_t
3471 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3472 vaddlvq_s32 (int32x4_t __a)
3474 return __builtin_aarch64_saddlvv4si (__a);
3477 __extension__ extern __inline uint16_t
3478 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3479 vaddlvq_u8 (uint8x16_t __a)
3481 return __builtin_aarch64_uaddlvv16qi_uu (__a);
3484 __extension__ extern __inline uint32_t
3485 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3486 vaddlvq_u16 (uint16x8_t __a)
3488 return __builtin_aarch64_uaddlvv8hi_uu (__a);
3491 __extension__ extern __inline uint64_t
3492 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3493 vaddlvq_u32 (uint32x4_t __a)
3495 return __builtin_aarch64_uaddlvv4si_uu (__a);
3498 __extension__ extern __inline float32x2_t
3499 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3500 vcvtx_f32_f64 (float64x2_t __a)
3502 return __builtin_aarch64_float_trunc_rodd_lo_v2sf (__a);
3505 __extension__ extern __inline float32x4_t
3506 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3507 vcvtx_high_f32_f64 (float32x2_t __a, float64x2_t __b)
3509 return __builtin_aarch64_float_trunc_rodd_hi_v4sf (__a, __b);
3512 __extension__ extern __inline float32_t
3513 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3514 vcvtxd_f32_f64 (float64_t __a)
3516 return __builtin_aarch64_float_trunc_rodd_df (__a);
3519 __extension__ extern __inline float32x2_t
3520 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3521 vmla_n_f32 (float32x2_t __a, float32x2_t __b, float32_t __c)
3523 return __builtin_aarch64_float_mla_nv2sf (__a, __b, __c);
3526 __extension__ extern __inline int16x4_t
3527 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3528 vmla_n_s16 (int16x4_t __a, int16x4_t __b, int16_t __c)
3530 return __builtin_aarch64_mla_nv4hi (__a, __b, __c);
3533 __extension__ extern __inline int32x2_t
3534 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3535 vmla_n_s32 (int32x2_t __a, int32x2_t __b, int32_t __c)
3537 return __builtin_aarch64_mla_nv2si (__a, __b, __c);
3540 __extension__ extern __inline uint16x4_t
3541 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3542 vmla_n_u16 (uint16x4_t __a, uint16x4_t __b, uint16_t __c)
3544 return __builtin_aarch64_mla_nv4hi_uuuu (__a, __b, __c);
3547 __extension__ extern __inline uint32x2_t
3548 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3549 vmla_n_u32 (uint32x2_t __a, uint32x2_t __b, uint32_t __c)
3551 return __builtin_aarch64_mla_nv2si_uuuu (__a, __b, __c);
3554 __extension__ extern __inline int8x8_t
3555 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3556 vmla_s8 (int8x8_t __a, int8x8_t __b, int8x8_t __c)
3558 return __builtin_aarch64_mlav8qi (__a, __b, __c);
3561 __extension__ extern __inline int16x4_t
3562 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3563 vmla_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c)
3565 return __builtin_aarch64_mlav4hi (__a, __b, __c);
3568 __extension__ extern __inline int32x2_t
3569 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3570 vmla_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c)
3572 return __builtin_aarch64_mlav2si (__a, __b, __c);
3575 __extension__ extern __inline uint8x8_t
3576 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3577 vmla_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c)
3579 return __builtin_aarch64_mlav8qi_uuuu (__a, __b, __c);
3582 __extension__ extern __inline uint16x4_t
3583 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3584 vmla_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c)
3586 return __builtin_aarch64_mlav4hi_uuuu (__a, __b, __c);
3589 __extension__ extern __inline uint32x2_t
3590 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3591 vmla_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c)
3593 return __builtin_aarch64_mlav2si_uuuu (__a, __b, __c);
3596 __extension__ extern __inline int32x4_t
3597 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3598 vmlal_high_lane_s16(int32x4_t __a, int16x8_t __b, int16x4_t __v,
3599 const int __lane)
3601 return __builtin_aarch64_smlal_hi_lanev8hi (__a, __b, __v, __lane);
3604 __extension__ extern __inline int64x2_t
3605 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3606 vmlal_high_lane_s32(int64x2_t __a, int32x4_t __b, int32x2_t __v,
3607 const int __lane)
3609 return __builtin_aarch64_smlal_hi_lanev4si (__a, __b, __v, __lane);
3612 __extension__ extern __inline uint32x4_t
3613 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3614 vmlal_high_lane_u16(uint32x4_t __a, uint16x8_t __b, uint16x4_t __v,
3615 const int __lane)
3617 return __builtin_aarch64_umlal_hi_lanev8hi_uuuus (__a, __b, __v, __lane);
3620 __extension__ extern __inline uint64x2_t
3621 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3622 vmlal_high_lane_u32(uint64x2_t __a, uint32x4_t __b, uint32x2_t __v,
3623 const int __lane)
3625 return __builtin_aarch64_umlal_hi_lanev4si_uuuus (__a, __b, __v, __lane);
3628 __extension__ extern __inline int32x4_t
3629 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3630 vmlal_high_laneq_s16(int32x4_t __a, int16x8_t __b, int16x8_t __v,
3631 const int __lane)
3633 return __builtin_aarch64_smlal_hi_laneqv8hi (__a, __b, __v, __lane);
3636 __extension__ extern __inline int64x2_t
3637 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3638 vmlal_high_laneq_s32(int64x2_t __a, int32x4_t __b, int32x4_t __v,
3639 const int __lane)
3641 return __builtin_aarch64_smlal_hi_laneqv4si (__a, __b, __v, __lane);
3644 __extension__ extern __inline uint32x4_t
3645 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3646 vmlal_high_laneq_u16(uint32x4_t __a, uint16x8_t __b, uint16x8_t __v,
3647 const int __lane)
3649 return __builtin_aarch64_umlal_hi_laneqv8hi_uuuus (__a, __b, __v, __lane);
3652 __extension__ extern __inline uint64x2_t
3653 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3654 vmlal_high_laneq_u32(uint64x2_t __a, uint32x4_t __b, uint32x4_t __v,
3655 const int __lane)
3657 return __builtin_aarch64_umlal_hi_laneqv4si_uuuus (__a, __b, __v, __lane);
3660 __extension__ extern __inline int32x4_t
3661 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3662 vmlal_high_n_s16 (int32x4_t __a, int16x8_t __b, int16_t __c)
3664 return __builtin_aarch64_smlal_hi_nv8hi (__a, __b, __c);
3667 __extension__ extern __inline int64x2_t
3668 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3669 vmlal_high_n_s32 (int64x2_t __a, int32x4_t __b, int32_t __c)
3671 return __builtin_aarch64_smlal_hi_nv4si (__a, __b, __c);
3674 __extension__ extern __inline uint32x4_t
3675 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3676 vmlal_high_n_u16 (uint32x4_t __a, uint16x8_t __b, uint16_t __c)
3678 return __builtin_aarch64_umlal_hi_nv8hi_uuuu (__a, __b, __c);
3681 __extension__ extern __inline uint64x2_t
3682 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3683 vmlal_high_n_u32 (uint64x2_t __a, uint32x4_t __b, uint32_t __c)
3685 return __builtin_aarch64_umlal_hi_nv4si_uuuu (__a, __b, __c);
3688 __extension__ extern __inline int16x8_t
3689 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3690 vmlal_high_s8 (int16x8_t __a, int8x16_t __b, int8x16_t __c)
3692 return __builtin_aarch64_smlal_hiv16qi (__a, __b, __c);
3695 __extension__ extern __inline int32x4_t
3696 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3697 vmlal_high_s16 (int32x4_t __a, int16x8_t __b, int16x8_t __c)
3699 return __builtin_aarch64_smlal_hiv8hi (__a, __b, __c);
3702 __extension__ extern __inline int64x2_t
3703 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3704 vmlal_high_s32 (int64x2_t __a, int32x4_t __b, int32x4_t __c)
3706 return __builtin_aarch64_smlal_hiv4si (__a, __b, __c);
3709 __extension__ extern __inline uint16x8_t
3710 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3711 vmlal_high_u8 (uint16x8_t __a, uint8x16_t __b, uint8x16_t __c)
3713 return __builtin_aarch64_umlal_hiv16qi_uuuu (__a, __b, __c);
3716 __extension__ extern __inline uint32x4_t
3717 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3718 vmlal_high_u16 (uint32x4_t __a, uint16x8_t __b, uint16x8_t __c)
3720 return __builtin_aarch64_umlal_hiv8hi_uuuu (__a, __b, __c);
3723 __extension__ extern __inline uint64x2_t
3724 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3725 vmlal_high_u32 (uint64x2_t __a, uint32x4_t __b, uint32x4_t __c)
3727 return __builtin_aarch64_umlal_hiv4si_uuuu (__a, __b, __c);
3730 __extension__ extern __inline int32x4_t
3731 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3732 vmlal_lane_s16 (int32x4_t __acc, int16x4_t __a, int16x4_t __b, const int __c)
3734 return __builtin_aarch64_vec_smlal_lane_v4hi (__acc, __a, __b, __c);
3737 __extension__ extern __inline int64x2_t
3738 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3739 vmlal_lane_s32 (int64x2_t __acc, int32x2_t __a, int32x2_t __b, const int __c)
3741 return __builtin_aarch64_vec_smlal_lane_v2si (__acc, __a, __b, __c);
3744 __extension__ extern __inline uint32x4_t
3745 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3746 vmlal_lane_u16 (uint32x4_t __acc, uint16x4_t __a, uint16x4_t __b, const int __c)
3748 return __builtin_aarch64_vec_umlal_lane_v4hi_uuuus (__acc, __a, __b, __c);
3751 __extension__ extern __inline uint64x2_t
3752 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3753 vmlal_lane_u32 (uint64x2_t __acc, uint32x2_t __a, uint32x2_t __b, const int __c)
3755 return __builtin_aarch64_vec_umlal_lane_v2si_uuuus (__acc, __a, __b, __c);
3758 __extension__ extern __inline int32x4_t
3759 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3760 vmlal_laneq_s16 (int32x4_t __acc, int16x4_t __a, int16x8_t __b, const int __c)
3762 return __builtin_aarch64_vec_smlal_laneq_v4hi (__acc, __a, __b, __c);
3765 __extension__ extern __inline int64x2_t
3766 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3767 vmlal_laneq_s32 (int64x2_t __acc, int32x2_t __a, int32x4_t __b, const int __c)
3769 return __builtin_aarch64_vec_smlal_laneq_v2si (__acc, __a, __b, __c);
3772 __extension__ extern __inline uint32x4_t
3773 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3774 vmlal_laneq_u16 (uint32x4_t __acc, uint16x4_t __a, uint16x8_t __b, const int __c)
3776 return __builtin_aarch64_vec_umlal_laneq_v4hi_uuuus (__acc, __a, __b, __c);
3779 __extension__ extern __inline uint64x2_t
3780 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3781 vmlal_laneq_u32 (uint64x2_t __acc, uint32x2_t __a, uint32x4_t __b, const int __c)
3783 return __builtin_aarch64_vec_umlal_laneq_v2si_uuuus (__acc, __a, __b, __c);
3786 __extension__ extern __inline int32x4_t
3787 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3788 vmlal_n_s16 (int32x4_t __a, int16x4_t __b, int16_t __c)
3790 return __builtin_aarch64_smlal_nv4hi (__a, __b, __c);
3793 __extension__ extern __inline int64x2_t
3794 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3795 vmlal_n_s32 (int64x2_t __a, int32x2_t __b, int32_t __c)
3797 return __builtin_aarch64_smlal_nv2si (__a, __b, __c);
3800 __extension__ extern __inline uint32x4_t
3801 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3802 vmlal_n_u16 (uint32x4_t __a, uint16x4_t __b, uint16_t __c)
3804 return __builtin_aarch64_umlal_nv4hi_uuuu (__a, __b, __c);
3807 __extension__ extern __inline uint64x2_t
3808 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3809 vmlal_n_u32 (uint64x2_t __a, uint32x2_t __b, uint32_t __c)
3811 return __builtin_aarch64_umlal_nv2si_uuuu (__a, __b, __c);
3814 __extension__ extern __inline int16x8_t
3815 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3816 vmlal_s8 (int16x8_t __a, int8x8_t __b, int8x8_t __c)
3818 return __builtin_aarch64_smlalv8qi (__a, __b, __c);
3821 __extension__ extern __inline int32x4_t
3822 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3823 vmlal_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
3825 return __builtin_aarch64_smlalv4hi (__a, __b, __c);
3828 __extension__ extern __inline int64x2_t
3829 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3830 vmlal_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
3832 return __builtin_aarch64_smlalv2si (__a, __b, __c);
3835 __extension__ extern __inline uint16x8_t
3836 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3837 vmlal_u8 (uint16x8_t __a, uint8x8_t __b, uint8x8_t __c)
3839 return __builtin_aarch64_umlalv8qi_uuuu (__a, __b, __c);
3842 __extension__ extern __inline uint32x4_t
3843 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3844 vmlal_u16 (uint32x4_t __a, uint16x4_t __b, uint16x4_t __c)
3846 return __builtin_aarch64_umlalv4hi_uuuu (__a, __b, __c);
3849 __extension__ extern __inline uint64x2_t
3850 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3851 vmlal_u32 (uint64x2_t __a, uint32x2_t __b, uint32x2_t __c)
3853 return __builtin_aarch64_umlalv2si_uuuu (__a, __b, __c);
3856 __extension__ extern __inline float32x4_t
3857 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3858 vmlaq_n_f32 (float32x4_t __a, float32x4_t __b, float32_t __c)
3860 return __builtin_aarch64_float_mla_nv4sf (__a, __b, __c);
3863 __extension__ extern __inline int16x8_t
3864 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3865 vmlaq_n_s16 (int16x8_t __a, int16x8_t __b, int16_t __c)
3867 return __builtin_aarch64_mla_nv8hi (__a, __b, __c);
3870 __extension__ extern __inline int32x4_t
3871 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3872 vmlaq_n_s32 (int32x4_t __a, int32x4_t __b, int32_t __c)
3874 return __builtin_aarch64_mla_nv4si (__a, __b, __c);
3877 __extension__ extern __inline uint16x8_t
3878 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3879 vmlaq_n_u16 (uint16x8_t __a, uint16x8_t __b, uint16_t __c)
3881 return __builtin_aarch64_mla_nv8hi_uuuu (__a, __b, __c);
3884 __extension__ extern __inline uint32x4_t
3885 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3886 vmlaq_n_u32 (uint32x4_t __a, uint32x4_t __b, uint32_t __c)
3888 return __builtin_aarch64_mla_nv4si_uuuu (__a, __b, __c);
3891 __extension__ extern __inline int8x16_t
3892 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3893 vmlaq_s8 (int8x16_t __a, int8x16_t __b, int8x16_t __c)
3895 return __builtin_aarch64_mlav16qi (__a, __b, __c);
3898 __extension__ extern __inline int16x8_t
3899 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3900 vmlaq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
3902 return __builtin_aarch64_mlav8hi (__a, __b, __c);
3905 __extension__ extern __inline int32x4_t
3906 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3907 vmlaq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
3909 return __builtin_aarch64_mlav4si (__a, __b, __c);
3912 __extension__ extern __inline uint8x16_t
3913 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3914 vmlaq_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c)
3916 return __builtin_aarch64_mlav16qi_uuuu (__a, __b, __c);
3919 __extension__ extern __inline uint16x8_t
3920 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3921 vmlaq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
3923 return __builtin_aarch64_mlav8hi_uuuu (__a, __b, __c);
3926 __extension__ extern __inline uint32x4_t
3927 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3928 vmlaq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
3930 return __builtin_aarch64_mlav4si_uuuu (__a, __b, __c);
3933 __extension__ extern __inline float32x2_t
3934 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3935 vmls_n_f32 (float32x2_t __a, float32x2_t __b, float32_t __c)
3937 return __builtin_aarch64_float_mls_nv2sf (__a, __b, __c);
3940 __extension__ extern __inline int16x4_t
3941 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3942 vmls_n_s16 (int16x4_t __a, int16x4_t __b, int16_t __c)
3944 return __builtin_aarch64_mls_nv4hi (__a, __b, __c);
3947 __extension__ extern __inline int32x2_t
3948 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3949 vmls_n_s32 (int32x2_t __a, int32x2_t __b, int32_t __c)
3951 return __builtin_aarch64_mls_nv2si (__a, __b, __c);
3954 __extension__ extern __inline uint16x4_t
3955 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3956 vmls_n_u16 (uint16x4_t __a, uint16x4_t __b, uint16_t __c)
3958 return __builtin_aarch64_mls_nv4hi_uuuu (__a, __b, __c);
3961 __extension__ extern __inline uint32x2_t
3962 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3963 vmls_n_u32 (uint32x2_t __a, uint32x2_t __b, uint32_t __c)
3965 return __builtin_aarch64_mls_nv2si_uuuu (__a, __b, __c);
3968 __extension__ extern __inline int8x8_t
3969 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3970 vmls_s8 (int8x8_t __a, int8x8_t __b, int8x8_t __c)
3972 return __builtin_aarch64_mlsv8qi (__a, __b, __c);
3975 __extension__ extern __inline int16x4_t
3976 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3977 vmls_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c)
3979 return __builtin_aarch64_mlsv4hi (__a, __b, __c);
3982 __extension__ extern __inline int32x2_t
3983 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3984 vmls_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c)
3986 return __builtin_aarch64_mlsv2si (__a, __b, __c);
3989 __extension__ extern __inline uint8x8_t
3990 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3991 vmls_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c)
3993 return __builtin_aarch64_mlsv8qi_uuuu (__a, __b, __c);
3996 __extension__ extern __inline uint16x4_t
3997 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3998 vmls_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c)
4000 return __builtin_aarch64_mlsv4hi_uuuu (__a, __b, __c);
4003 __extension__ extern __inline uint32x2_t
4004 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4005 vmls_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c)
4007 return __builtin_aarch64_mlsv2si_uuuu (__a, __b, __c);
4010 __extension__ extern __inline int32x4_t
4011 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4012 vmlsl_high_lane_s16(int32x4_t __a, int16x8_t __b, int16x4_t __v,
4013 const int __lane)
4015 return __builtin_aarch64_smlsl_hi_lanev8hi (__a, __b, __v, __lane);
4018 __extension__ extern __inline int64x2_t
4019 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4020 vmlsl_high_lane_s32(int64x2_t __a, int32x4_t __b, int32x2_t __v,
4021 const int __lane)
4023 return __builtin_aarch64_smlsl_hi_lanev4si (__a, __b, __v, __lane);
4026 __extension__ extern __inline uint32x4_t
4027 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4028 vmlsl_high_lane_u16(uint32x4_t __a, uint16x8_t __b, uint16x4_t __v,
4029 const int __lane)
4031 return __builtin_aarch64_umlsl_hi_lanev8hi_uuuus (__a, __b, __v, __lane);
4034 __extension__ extern __inline uint64x2_t
4035 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4036 vmlsl_high_lane_u32(uint64x2_t __a, uint32x4_t __b, uint32x2_t __v,
4037 const int __lane)
4039 return __builtin_aarch64_umlsl_hi_lanev4si_uuuus (__a, __b, __v, __lane);
4042 __extension__ extern __inline int32x4_t
4043 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4044 vmlsl_high_laneq_s16(int32x4_t __a, int16x8_t __b, int16x8_t __v,
4045 const int __lane)
4047 return __builtin_aarch64_smlsl_hi_laneqv8hi (__a, __b, __v, __lane);
4050 __extension__ extern __inline int64x2_t
4051 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4052 vmlsl_high_laneq_s32(int64x2_t __a, int32x4_t __b, int32x4_t __v,
4053 const int __lane)
4055 return __builtin_aarch64_smlsl_hi_laneqv4si (__a, __b, __v, __lane);
4058 __extension__ extern __inline uint32x4_t
4059 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4060 vmlsl_high_laneq_u16(uint32x4_t __a, uint16x8_t __b, uint16x8_t __v,
4061 const int __lane)
4063 return __builtin_aarch64_umlsl_hi_laneqv8hi_uuuus (__a, __b, __v, __lane);
4066 __extension__ extern __inline uint64x2_t
4067 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4068 vmlsl_high_laneq_u32(uint64x2_t __a, uint32x4_t __b, uint32x4_t __v,
4069 const int __lane)
4071 return __builtin_aarch64_umlsl_hi_laneqv4si_uuuus (__a, __b, __v, __lane);
4074 __extension__ extern __inline int32x4_t
4075 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4076 vmlsl_high_n_s16 (int32x4_t __a, int16x8_t __b, int16_t __c)
4078 return __builtin_aarch64_smlsl_hi_nv8hi (__a, __b, __c);
4081 __extension__ extern __inline int64x2_t
4082 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4083 vmlsl_high_n_s32 (int64x2_t __a, int32x4_t __b, int32_t __c)
4085 return __builtin_aarch64_smlsl_hi_nv4si (__a, __b, __c);
4088 __extension__ extern __inline uint32x4_t
4089 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4090 vmlsl_high_n_u16 (uint32x4_t __a, uint16x8_t __b, uint16_t __c)
4092 return __builtin_aarch64_umlsl_hi_nv8hi_uuuu (__a, __b, __c);
4095 __extension__ extern __inline uint64x2_t
4096 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4097 vmlsl_high_n_u32 (uint64x2_t __a, uint32x4_t __b, uint32_t __c)
4099 return __builtin_aarch64_umlsl_hi_nv4si_uuuu (__a, __b, __c);
4102 __extension__ extern __inline int16x8_t
4103 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4104 vmlsl_high_s8 (int16x8_t __a, int8x16_t __b, int8x16_t __c)
4106 return __builtin_aarch64_smlsl_hiv16qi (__a, __b, __c);
4109 __extension__ extern __inline int32x4_t
4110 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4111 vmlsl_high_s16 (int32x4_t __a, int16x8_t __b, int16x8_t __c)
4113 return __builtin_aarch64_smlsl_hiv8hi (__a, __b, __c);
4116 __extension__ extern __inline int64x2_t
4117 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4118 vmlsl_high_s32 (int64x2_t __a, int32x4_t __b, int32x4_t __c)
4120 return __builtin_aarch64_smlsl_hiv4si (__a, __b, __c);
4123 __extension__ extern __inline uint16x8_t
4124 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4125 vmlsl_high_u8 (uint16x8_t __a, uint8x16_t __b, uint8x16_t __c)
4127 return __builtin_aarch64_umlsl_hiv16qi_uuuu (__a, __b, __c);
4130 __extension__ extern __inline uint32x4_t
4131 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4132 vmlsl_high_u16 (uint32x4_t __a, uint16x8_t __b, uint16x8_t __c)
4134 return __builtin_aarch64_umlsl_hiv8hi_uuuu (__a, __b, __c);
4137 __extension__ extern __inline uint64x2_t
4138 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4139 vmlsl_high_u32 (uint64x2_t __a, uint32x4_t __b, uint32x4_t __c)
4141 return __builtin_aarch64_umlsl_hiv4si_uuuu (__a, __b, __c);
4144 __extension__ extern __inline int32x4_t
4145 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4146 vmlsl_lane_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __v, const int __lane)
4148 return __builtin_aarch64_vec_smlsl_lane_v4hi (__a, __b, __v, __lane);
4151 __extension__ extern __inline int64x2_t
4152 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4153 vmlsl_lane_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __v, const int __lane)
4155 return __builtin_aarch64_vec_smlsl_lane_v2si (__a, __b, __v, __lane);
4158 __extension__ extern __inline uint32x4_t
4159 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4160 vmlsl_lane_u16 (uint32x4_t __a, uint16x4_t __b, uint16x4_t __v,
4161 const int __lane)
4163 return __builtin_aarch64_vec_umlsl_lane_v4hi_uuuus (__a, __b, __v, __lane);
4166 __extension__ extern __inline uint64x2_t
4167 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4168 vmlsl_lane_u32 (uint64x2_t __a, uint32x2_t __b, uint32x2_t __v,
4169 const int __lane)
4171 return __builtin_aarch64_vec_umlsl_lane_v2si_uuuus (__a, __b, __v, __lane);
4174 __extension__ extern __inline int32x4_t
4175 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4176 vmlsl_laneq_s16 (int32x4_t __a, int16x4_t __b, int16x8_t __v, const int __lane)
4178 return __builtin_aarch64_vec_smlsl_laneq_v4hi (__a, __b, __v, __lane);
4181 __extension__ extern __inline int64x2_t
4182 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4183 vmlsl_laneq_s32 (int64x2_t __a, int32x2_t __b, int32x4_t __v, const int __lane)
4185 return __builtin_aarch64_vec_smlsl_laneq_v2si (__a, __b, __v, __lane);
4188 __extension__ extern __inline uint32x4_t
4189 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4190 vmlsl_laneq_u16 (uint32x4_t __a, uint16x4_t __b, uint16x8_t __v,
4191 const int __lane)
4193 return __builtin_aarch64_vec_umlsl_laneq_v4hi_uuuus (__a, __b, __v, __lane);
4196 __extension__ extern __inline uint64x2_t
4197 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4198 vmlsl_laneq_u32 (uint64x2_t __a, uint32x2_t __b, uint32x4_t __v,
4199 const int __lane)
4201 return __builtin_aarch64_vec_umlsl_laneq_v2si_uuuus (__a, __b, __v, __lane);
4204 __extension__ extern __inline int32x4_t
4205 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4206 vmlsl_n_s16 (int32x4_t __a, int16x4_t __b, int16_t __c)
4208 return __builtin_aarch64_smlsl_nv4hi (__a, __b, __c);
4211 __extension__ extern __inline int64x2_t
4212 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4213 vmlsl_n_s32 (int64x2_t __a, int32x2_t __b, int32_t __c)
4215 return __builtin_aarch64_smlsl_nv2si (__a, __b, __c);
4218 __extension__ extern __inline uint32x4_t
4219 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4220 vmlsl_n_u16 (uint32x4_t __a, uint16x4_t __b, uint16_t __c)
4222 return __builtin_aarch64_umlsl_nv4hi_uuuu (__a, __b, __c);
4225 __extension__ extern __inline uint64x2_t
4226 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4227 vmlsl_n_u32 (uint64x2_t __a, uint32x2_t __b, uint32_t __c)
4229 return __builtin_aarch64_umlsl_nv2si_uuuu (__a, __b, __c);
4232 __extension__ extern __inline int16x8_t
4233 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4234 vmlsl_s8 (int16x8_t __a, int8x8_t __b, int8x8_t __c)
4236 return __builtin_aarch64_smlslv8qi (__a, __b, __c);
4239 __extension__ extern __inline int32x4_t
4240 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4241 vmlsl_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
4243 return __builtin_aarch64_smlslv4hi (__a, __b, __c);
4246 __extension__ extern __inline int64x2_t
4247 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4248 vmlsl_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
4250 return __builtin_aarch64_smlslv2si (__a, __b, __c);
4253 __extension__ extern __inline uint16x8_t
4254 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4255 vmlsl_u8 (uint16x8_t __a, uint8x8_t __b, uint8x8_t __c)
4257 return __builtin_aarch64_umlslv8qi_uuuu (__a, __b, __c);
4260 __extension__ extern __inline uint32x4_t
4261 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4262 vmlsl_u16 (uint32x4_t __a, uint16x4_t __b, uint16x4_t __c)
4264 return __builtin_aarch64_umlslv4hi_uuuu (__a, __b, __c);
4267 __extension__ extern __inline uint64x2_t
4268 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4269 vmlsl_u32 (uint64x2_t __a, uint32x2_t __b, uint32x2_t __c)
4271 return __builtin_aarch64_umlslv2si_uuuu (__a, __b, __c);
4274 __extension__ extern __inline float32x4_t
4275 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4276 vmlsq_n_f32 (float32x4_t __a, float32x4_t __b, float32_t __c)
4278 return __builtin_aarch64_float_mls_nv4sf (__a, __b, __c);
4281 __extension__ extern __inline int16x8_t
4282 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4283 vmlsq_n_s16 (int16x8_t __a, int16x8_t __b, int16_t __c)
4285 return __builtin_aarch64_mls_nv8hi (__a, __b, __c);
4288 __extension__ extern __inline int32x4_t
4289 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4290 vmlsq_n_s32 (int32x4_t __a, int32x4_t __b, int32_t __c)
4292 return __builtin_aarch64_mls_nv4si (__a, __b, __c);
4295 __extension__ extern __inline uint16x8_t
4296 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4297 vmlsq_n_u16 (uint16x8_t __a, uint16x8_t __b, uint16_t __c)
4299 return __builtin_aarch64_mls_nv8hi_uuuu (__a, __b, __c);
4302 __extension__ extern __inline uint32x4_t
4303 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4304 vmlsq_n_u32 (uint32x4_t __a, uint32x4_t __b, uint32_t __c)
4306 return __builtin_aarch64_mls_nv4si_uuuu (__a, __b, __c);
4309 __extension__ extern __inline int8x16_t
4310 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4311 vmlsq_s8 (int8x16_t __a, int8x16_t __b, int8x16_t __c)
4313 return __builtin_aarch64_mlsv16qi (__a, __b, __c);
4316 __extension__ extern __inline int16x8_t
4317 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4318 vmlsq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
4320 return __builtin_aarch64_mlsv8hi (__a, __b, __c);
4323 __extension__ extern __inline int32x4_t
4324 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4325 vmlsq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
4327 return __builtin_aarch64_mlsv4si (__a, __b, __c);
4330 __extension__ extern __inline uint8x16_t
4331 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4332 vmlsq_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c)
4334 return __builtin_aarch64_mlsv16qi_uuuu (__a, __b, __c);
4337 __extension__ extern __inline uint16x8_t
4338 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4339 vmlsq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
4341 return __builtin_aarch64_mlsv8hi_uuuu (__a, __b, __c);
4344 __extension__ extern __inline uint32x4_t
4345 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4346 vmlsq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
4348 return __builtin_aarch64_mlsv4si_uuuu (__a, __b, __c);
4351 __extension__ extern __inline int16x8_t
4352 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4353 vmovl_high_s8 (int8x16_t __a)
4355 return __builtin_aarch64_vec_unpacks_hi_v16qi (__a);
4358 __extension__ extern __inline int32x4_t
4359 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4360 vmovl_high_s16 (int16x8_t __a)
4362 return __builtin_aarch64_vec_unpacks_hi_v8hi (__a);
4365 __extension__ extern __inline int64x2_t
4366 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4367 vmovl_high_s32 (int32x4_t __a)
4369 return __builtin_aarch64_vec_unpacks_hi_v4si (__a);
4372 __extension__ extern __inline uint16x8_t
4373 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4374 vmovl_high_u8 (uint8x16_t __a)
4376 return __builtin_aarch64_vec_unpacku_hi_v16qi_uu (__a);
4379 __extension__ extern __inline uint32x4_t
4380 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4381 vmovl_high_u16 (uint16x8_t __a)
4383 return __builtin_aarch64_vec_unpacku_hi_v8hi_uu (__a);
4386 __extension__ extern __inline uint64x2_t
4387 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4388 vmovl_high_u32 (uint32x4_t __a)
4390 return __builtin_aarch64_vec_unpacku_hi_v4si_uu (__a);
4393 __extension__ extern __inline int16x8_t
4394 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4395 vmovl_s8 (int8x8_t __a)
4397 return __builtin_aarch64_sxtlv8hi (__a);
4400 __extension__ extern __inline int32x4_t
4401 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4402 vmovl_s16 (int16x4_t __a)
4404 return __builtin_aarch64_sxtlv4si (__a);
4407 __extension__ extern __inline int64x2_t
4408 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4409 vmovl_s32 (int32x2_t __a)
4411 return __builtin_aarch64_sxtlv2di (__a);
4414 __extension__ extern __inline uint16x8_t
4415 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4416 vmovl_u8 (uint8x8_t __a)
4418 return __builtin_aarch64_uxtlv8hi_uu (__a);
4421 __extension__ extern __inline uint32x4_t
4422 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4423 vmovl_u16 (uint16x4_t __a)
4425 return __builtin_aarch64_uxtlv4si_uu (__a);
4428 __extension__ extern __inline uint64x2_t
4429 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4430 vmovl_u32 (uint32x2_t __a)
4432 return __builtin_aarch64_uxtlv2di_uu (__a);
4435 __extension__ extern __inline int8x16_t
4436 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4437 vmovn_high_s16 (int8x8_t __a, int16x8_t __b)
4439 return __builtin_aarch64_xtn2v8hi (__a, __b);
4442 __extension__ extern __inline int16x8_t
4443 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4444 vmovn_high_s32 (int16x4_t __a, int32x4_t __b)
4446 return __builtin_aarch64_xtn2v4si (__a, __b);
4449 __extension__ extern __inline int32x4_t
4450 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4451 vmovn_high_s64 (int32x2_t __a, int64x2_t __b)
4453 return __builtin_aarch64_xtn2v2di (__a, __b);
4456 __extension__ extern __inline uint8x16_t
4457 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4458 vmovn_high_u16 (uint8x8_t __a, uint16x8_t __b)
4460 return __builtin_aarch64_xtn2v8hi_uuu (__a, __b);
4463 __extension__ extern __inline uint16x8_t
4464 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4465 vmovn_high_u32 (uint16x4_t __a, uint32x4_t __b)
4467 return __builtin_aarch64_xtn2v4si_uuu (__a, __b);
4470 __extension__ extern __inline uint32x4_t
4471 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4472 vmovn_high_u64 (uint32x2_t __a, uint64x2_t __b)
4474 return __builtin_aarch64_xtn2v2di_uuu (__a, __b);
4477 __extension__ extern __inline int8x8_t
4478 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4479 vmovn_s16 (int16x8_t __a)
4481 return __builtin_aarch64_xtnv8hi (__a);
4484 __extension__ extern __inline int16x4_t
4485 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4486 vmovn_s32 (int32x4_t __a)
4488 return __builtin_aarch64_xtnv4si (__a);
4491 __extension__ extern __inline int32x2_t
4492 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4493 vmovn_s64 (int64x2_t __a)
4495 return __builtin_aarch64_xtnv2di (__a);
4498 __extension__ extern __inline uint8x8_t
4499 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4500 vmovn_u16 (uint16x8_t __a)
4502 return __builtin_aarch64_xtnv8hi_uu (__a);
4505 __extension__ extern __inline uint16x4_t
4506 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4507 vmovn_u32 (uint32x4_t __a)
4509 return __builtin_aarch64_xtnv4si_uu (__a);
4512 __extension__ extern __inline uint32x2_t
4513 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4514 vmovn_u64 (uint64x2_t __a)
4516 return __builtin_aarch64_xtnv2di_uu (__a);
4519 __extension__ extern __inline int8x8_t
4520 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4521 vshrn_n_s16 (int16x8_t __a, const int __b)
4523 return __builtin_aarch64_shrn_nv8hi (__a, __b);
4526 __extension__ extern __inline int16x4_t
4527 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4528 vshrn_n_s32 (int32x4_t __a, const int __b)
4530 return __builtin_aarch64_shrn_nv4si (__a, __b);
4533 __extension__ extern __inline int32x2_t
4534 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4535 vshrn_n_s64 (int64x2_t __a, const int __b)
4537 return __builtin_aarch64_shrn_nv2di (__a, __b);
4540 __extension__ extern __inline uint8x8_t
4541 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4542 vshrn_n_u16 (uint16x8_t __a, const int __b)
4544 return __builtin_aarch64_shrn_nv8hi_uus (__a, __b);
4547 __extension__ extern __inline uint16x4_t
4548 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4549 vshrn_n_u32 (uint32x4_t __a, const int __b)
4551 return __builtin_aarch64_shrn_nv4si_uus (__a, __b);
4554 __extension__ extern __inline uint32x2_t
4555 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4556 vshrn_n_u64 (uint64x2_t __a, const int __b)
4558 return __builtin_aarch64_shrn_nv2di_uus (__a, __b);
4561 __extension__ extern __inline int32x4_t
4562 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4563 vmull_high_lane_s16 (int16x8_t __a, int16x4_t __v, const int __lane)
4565 return __builtin_aarch64_smull_hi_lanev8hi (__a, __v, __lane);
4568 __extension__ extern __inline int64x2_t
4569 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4570 vmull_high_lane_s32 (int32x4_t __a, int32x2_t __v, const int __lane)
4572 return __builtin_aarch64_smull_hi_lanev4si (__a, __v, __lane);
4575 __extension__ extern __inline uint32x4_t
4576 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4577 vmull_high_lane_u16 (uint16x8_t __a, uint16x4_t __v, const int __lane)
4579 return __builtin_aarch64_umull_hi_lanev8hi_uuus (__a, __v, __lane);
4582 __extension__ extern __inline uint64x2_t
4583 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4584 vmull_high_lane_u32 (uint32x4_t __a, uint32x2_t __v, const int __lane)
4586 return __builtin_aarch64_umull_hi_lanev4si_uuus (__a, __v, __lane);
4589 __extension__ extern __inline int32x4_t
4590 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4591 vmull_high_laneq_s16 (int16x8_t __a, int16x8_t __v, const int __lane)
4593 return __builtin_aarch64_smull_hi_laneqv8hi (__a, __v, __lane);
4596 __extension__ extern __inline int64x2_t
4597 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4598 vmull_high_laneq_s32 (int32x4_t __a, int32x4_t __v, const int __lane)
4600 return __builtin_aarch64_smull_hi_laneqv4si (__a, __v, __lane);
4603 __extension__ extern __inline uint32x4_t
4604 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4605 vmull_high_laneq_u16 (uint16x8_t __a, uint16x8_t __v, const int __lane)
4607 return __builtin_aarch64_umull_hi_laneqv8hi_uuus (__a, __v, __lane);
4610 __extension__ extern __inline uint64x2_t
4611 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4612 vmull_high_laneq_u32 (uint32x4_t __a, uint32x4_t __v, const int __lane)
4614 return __builtin_aarch64_umull_hi_laneqv4si_uuus (__a, __v, __lane);
4617 __extension__ extern __inline int32x4_t
4618 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4619 vmull_high_n_s16 (int16x8_t __a, int16_t __b)
4621 return __builtin_aarch64_smull_hi_nv8hi (__a, __b);
4624 __extension__ extern __inline int64x2_t
4625 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4626 vmull_high_n_s32 (int32x4_t __a, int32_t __b)
4628 return __builtin_aarch64_smull_hi_nv4si (__a, __b);
4631 __extension__ extern __inline uint32x4_t
4632 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4633 vmull_high_n_u16 (uint16x8_t __a, uint16_t __b)
4635 return __builtin_aarch64_umull_hi_nv8hi_uuu (__a, __b);
4638 __extension__ extern __inline uint64x2_t
4639 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4640 vmull_high_n_u32 (uint32x4_t __a, uint32_t __b)
4642 return __builtin_aarch64_umull_hi_nv4si_uuu (__a, __b);
4645 __extension__ extern __inline poly16x8_t
4646 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4647 vmull_high_p8 (poly8x16_t __a, poly8x16_t __b)
4649 return __builtin_aarch64_pmull_hiv16qi_ppp (__a, __b);
4652 __extension__ extern __inline int16x8_t
4653 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4654 vmull_high_s8 (int8x16_t __a, int8x16_t __b)
4656 return __builtin_aarch64_vec_widen_smult_hi_v16qi (__a, __b);
4659 __extension__ extern __inline int32x4_t
4660 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4661 vmull_high_s16 (int16x8_t __a, int16x8_t __b)
4663 return __builtin_aarch64_vec_widen_smult_hi_v8hi (__a, __b);
4666 __extension__ extern __inline int64x2_t
4667 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4668 vmull_high_s32 (int32x4_t __a, int32x4_t __b)
4670 return __builtin_aarch64_vec_widen_smult_hi_v4si (__a, __b);
4673 __extension__ extern __inline uint16x8_t
4674 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4675 vmull_high_u8 (uint8x16_t __a, uint8x16_t __b)
4677 return __builtin_aarch64_vec_widen_umult_hi_v16qi_uuu (__a, __b);
4680 __extension__ extern __inline uint32x4_t
4681 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4682 vmull_high_u16 (uint16x8_t __a, uint16x8_t __b)
4684 return __builtin_aarch64_vec_widen_umult_hi_v8hi_uuu (__a, __b);
4687 __extension__ extern __inline uint64x2_t
4688 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4689 vmull_high_u32 (uint32x4_t __a, uint32x4_t __b)
4691 return __builtin_aarch64_vec_widen_umult_hi_v4si_uuu (__a, __b);
4694 __extension__ extern __inline int32x4_t
4695 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4696 vmull_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c)
4698 return __builtin_aarch64_vec_smult_lane_v4hi (__a, __b, __c);
4701 __extension__ extern __inline int64x2_t
4702 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4703 vmull_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c)
4705 return __builtin_aarch64_vec_smult_lane_v2si (__a, __b, __c);
4708 __extension__ extern __inline uint32x4_t
4709 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4710 vmull_lane_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
4712 return __builtin_aarch64_vec_umult_lane_v4hi_uuus (__a, __b, __c);
4715 __extension__ extern __inline uint64x2_t
4716 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4717 vmull_lane_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
4719 return __builtin_aarch64_vec_umult_lane_v2si_uuus (__a, __b, __c);
4722 __extension__ extern __inline int32x4_t
4723 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4724 vmull_laneq_s16 (int16x4_t __a, int16x8_t __b, const int __c)
4726 return __builtin_aarch64_vec_smult_laneq_v4hi (__a, __b, __c);
4729 __extension__ extern __inline int64x2_t
4730 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4731 vmull_laneq_s32 (int32x2_t __a, int32x4_t __b, const int __c)
4733 return __builtin_aarch64_vec_smult_laneq_v2si (__a, __b, __c);
4736 __extension__ extern __inline uint32x4_t
4737 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4738 vmull_laneq_u16 (uint16x4_t __a, uint16x8_t __b, const int __c)
4740 return __builtin_aarch64_vec_umult_laneq_v4hi_uuus (__a, __b, __c);
4743 __extension__ extern __inline uint64x2_t
4744 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4745 vmull_laneq_u32 (uint32x2_t __a, uint32x4_t __b, const int __c)
4747 return __builtin_aarch64_vec_umult_laneq_v2si_uuus (__a, __b, __c);
4750 __extension__ extern __inline int32x4_t
4751 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4752 vmull_n_s16 (int16x4_t __a, int16_t __b)
4754 return __builtin_aarch64_smull_nv4hi (__a, __b);
4757 __extension__ extern __inline int64x2_t
4758 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4759 vmull_n_s32 (int32x2_t __a, int32_t __b)
4761 return __builtin_aarch64_smull_nv2si (__a, __b);
4764 __extension__ extern __inline uint32x4_t
4765 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4766 vmull_n_u16 (uint16x4_t __a, uint16_t __b)
4768 return __builtin_aarch64_umull_nv4hi_uuu (__a, __b);
4771 __extension__ extern __inline uint64x2_t
4772 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4773 vmull_n_u32 (uint32x2_t __a, uint32_t __b)
4775 return __builtin_aarch64_umull_nv2si_uuu (__a, __b);
4778 __extension__ extern __inline poly16x8_t
4779 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4780 vmull_p8 (poly8x8_t __a, poly8x8_t __b)
4782 return __builtin_aarch64_pmullv8qi_ppp (__a, __b);
4785 __extension__ extern __inline int16x8_t
4786 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4787 vmull_s8 (int8x8_t __a, int8x8_t __b)
4789 return __builtin_aarch64_intrinsic_vec_smult_lo_v8qi (__a, __b);
4792 __extension__ extern __inline int32x4_t
4793 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4794 vmull_s16 (int16x4_t __a, int16x4_t __b)
4796 return __builtin_aarch64_intrinsic_vec_smult_lo_v4hi (__a, __b);
4799 __extension__ extern __inline int64x2_t
4800 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4801 vmull_s32 (int32x2_t __a, int32x2_t __b)
4803 return __builtin_aarch64_intrinsic_vec_smult_lo_v2si (__a, __b);
4806 __extension__ extern __inline uint16x8_t
4807 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4808 vmull_u8 (uint8x8_t __a, uint8x8_t __b)
4810 return __builtin_aarch64_intrinsic_vec_umult_lo_v8qi_uuu (__a, __b);
4813 __extension__ extern __inline uint32x4_t
4814 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4815 vmull_u16 (uint16x4_t __a, uint16x4_t __b)
4817 return __builtin_aarch64_intrinsic_vec_umult_lo_v4hi_uuu (__a, __b);
4820 __extension__ extern __inline uint64x2_t
4821 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4822 vmull_u32 (uint32x2_t __a, uint32x2_t __b)
4824 return __builtin_aarch64_intrinsic_vec_umult_lo_v2si_uuu (__a, __b);
4827 __extension__ extern __inline int16x4_t
4828 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4829 vpadal_s8 (int16x4_t __a, int8x8_t __b)
4831 return __builtin_aarch64_sadalpv8qi (__a, __b);
4834 __extension__ extern __inline int32x2_t
4835 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4836 vpadal_s16 (int32x2_t __a, int16x4_t __b)
4838 return __builtin_aarch64_sadalpv4hi (__a, __b);
4841 __extension__ extern __inline int64x1_t
4842 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4843 vpadal_s32 (int64x1_t __a, int32x2_t __b)
4845 return (int64x1_t) __builtin_aarch64_sadalpv2si (__a[0], __b);
4848 __extension__ extern __inline uint16x4_t
4849 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4850 vpadal_u8 (uint16x4_t __a, uint8x8_t __b)
4852 return __builtin_aarch64_uadalpv8qi_uuu (__a, __b);
4855 __extension__ extern __inline uint32x2_t
4856 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4857 vpadal_u16 (uint32x2_t __a, uint16x4_t __b)
4859 return __builtin_aarch64_uadalpv4hi_uuu (__a, __b);
4862 __extension__ extern __inline uint64x1_t
4863 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4864 vpadal_u32 (uint64x1_t __a, uint32x2_t __b)
4866 return (uint64x1_t) __builtin_aarch64_uadalpv2si_uuu (__a[0], __b);
4869 __extension__ extern __inline int16x8_t
4870 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4871 vpadalq_s8 (int16x8_t __a, int8x16_t __b)
4873 return __builtin_aarch64_sadalpv16qi (__a, __b);
4876 __extension__ extern __inline int32x4_t
4877 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4878 vpadalq_s16 (int32x4_t __a, int16x8_t __b)
4880 return __builtin_aarch64_sadalpv8hi (__a, __b);
4883 __extension__ extern __inline int64x2_t
4884 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4885 vpadalq_s32 (int64x2_t __a, int32x4_t __b)
4887 return __builtin_aarch64_sadalpv4si (__a, __b);
4890 __extension__ extern __inline uint16x8_t
4891 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4892 vpadalq_u8 (uint16x8_t __a, uint8x16_t __b)
4894 return __builtin_aarch64_uadalpv16qi_uuu (__a, __b);
4897 __extension__ extern __inline uint32x4_t
4898 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4899 vpadalq_u16 (uint32x4_t __a, uint16x8_t __b)
4901 return __builtin_aarch64_uadalpv8hi_uuu (__a, __b);
4904 __extension__ extern __inline uint64x2_t
4905 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4906 vpadalq_u32 (uint64x2_t __a, uint32x4_t __b)
4908 return __builtin_aarch64_uadalpv4si_uuu (__a, __b);
4911 __extension__ extern __inline int16x4_t
4912 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4913 vpaddl_s8 (int8x8_t __a)
4915 return __builtin_aarch64_saddlpv8qi (__a);
4918 __extension__ extern __inline int32x2_t
4919 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4920 vpaddl_s16 (int16x4_t __a)
4922 return __builtin_aarch64_saddlpv4hi (__a);
4925 __extension__ extern __inline int64x1_t
4926 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4927 vpaddl_s32 (int32x2_t __a)
4929 return (int64x1_t) __builtin_aarch64_saddlpv2si (__a);
4932 __extension__ extern __inline uint16x4_t
4933 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4934 vpaddl_u8 (uint8x8_t __a)
4936 return __builtin_aarch64_uaddlpv8qi_uu (__a);
4939 __extension__ extern __inline uint32x2_t
4940 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4941 vpaddl_u16 (uint16x4_t __a)
4943 return __builtin_aarch64_uaddlpv4hi_uu (__a);
4946 __extension__ extern __inline uint64x1_t
4947 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4948 vpaddl_u32 (uint32x2_t __a)
4950 return (uint64x1_t) __builtin_aarch64_uaddlpv2si_uu (__a);
4953 __extension__ extern __inline int16x8_t
4954 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4955 vpaddlq_s8 (int8x16_t __a)
4957 return __builtin_aarch64_saddlpv16qi (__a);
4960 __extension__ extern __inline int32x4_t
4961 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4962 vpaddlq_s16 (int16x8_t __a)
4964 return __builtin_aarch64_saddlpv8hi (__a);
4967 __extension__ extern __inline int64x2_t
4968 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4969 vpaddlq_s32 (int32x4_t __a)
4971 return __builtin_aarch64_saddlpv4si (__a);
4974 __extension__ extern __inline uint16x8_t
4975 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4976 vpaddlq_u8 (uint8x16_t __a)
4978 return __builtin_aarch64_uaddlpv16qi_uu (__a);
4981 __extension__ extern __inline uint32x4_t
4982 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4983 vpaddlq_u16 (uint16x8_t __a)
4985 return __builtin_aarch64_uaddlpv8hi_uu (__a);
4988 __extension__ extern __inline uint64x2_t
4989 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4990 vpaddlq_u32 (uint32x4_t __a)
4992 return __builtin_aarch64_uaddlpv4si_uu (__a);
4995 __extension__ extern __inline int8x16_t
4996 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4997 vpaddq_s8 (int8x16_t __a, int8x16_t __b)
4999 return __builtin_aarch64_addpv16qi (__a, __b);
5002 __extension__ extern __inline int16x8_t
5003 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5004 vpaddq_s16 (int16x8_t __a, int16x8_t __b)
5006 return __builtin_aarch64_addpv8hi (__a, __b);
5009 __extension__ extern __inline int32x4_t
5010 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5011 vpaddq_s32 (int32x4_t __a, int32x4_t __b)
5013 return __builtin_aarch64_addpv4si (__a, __b);
5016 __extension__ extern __inline int64x2_t
5017 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5018 vpaddq_s64 (int64x2_t __a, int64x2_t __b)
5020 return __builtin_aarch64_addpv2di (__a, __b);
5023 __extension__ extern __inline uint8x16_t
5024 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5025 vpaddq_u8 (uint8x16_t __a, uint8x16_t __b)
5027 return __builtin_aarch64_addpv16qi_uuu (__a, __b);
5030 __extension__ extern __inline uint16x8_t
5031 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5032 vpaddq_u16 (uint16x8_t __a, uint16x8_t __b)
5034 return __builtin_aarch64_addpv8hi_uuu (__a, __b);
5037 __extension__ extern __inline uint32x4_t
5038 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5039 vpaddq_u32 (uint32x4_t __a, uint32x4_t __b)
5041 return __builtin_aarch64_addpv4si_uuu (__a, __b);
5044 __extension__ extern __inline uint64x2_t
5045 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5046 vpaddq_u64 (uint64x2_t __a, uint64x2_t __b)
5048 return __builtin_aarch64_addpv2di_uuu (__a, __b);
5051 __extension__ extern __inline int16x4_t
5052 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5053 vqdmulh_n_s16 (int16x4_t __a, int16_t __b)
5055 return __builtin_aarch64_sqdmulh_nv4hi (__a, __b);
5058 __extension__ extern __inline int32x2_t
5059 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5060 vqdmulh_n_s32 (int32x2_t __a, int32_t __b)
5062 return __builtin_aarch64_sqdmulh_nv2si (__a, __b);
5065 __extension__ extern __inline int16x8_t
5066 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5067 vqdmulhq_n_s16 (int16x8_t __a, int16_t __b)
5069 return __builtin_aarch64_sqdmulh_nv8hi (__a, __b);
5072 __extension__ extern __inline int32x4_t
5073 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5074 vqdmulhq_n_s32 (int32x4_t __a, int32_t __b)
5076 return __builtin_aarch64_sqdmulh_nv4si (__a, __b);
5079 __extension__ extern __inline int8x16_t
5080 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5081 vqmovn_high_s16 (int8x8_t __a, int16x8_t __b)
5083 return __builtin_aarch64_sqxtn2v8hi (__a, __b);
5086 __extension__ extern __inline int16x8_t
5087 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5088 vqmovn_high_s32 (int16x4_t __a, int32x4_t __b)
5090 return __builtin_aarch64_sqxtn2v4si (__a, __b);
5093 __extension__ extern __inline int32x4_t
5094 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5095 vqmovn_high_s64 (int32x2_t __a, int64x2_t __b)
5097 return __builtin_aarch64_sqxtn2v2di (__a, __b);
5100 __extension__ extern __inline uint8x16_t
5101 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5102 vqmovn_high_u16 (uint8x8_t __a, uint16x8_t __b)
5104 return __builtin_aarch64_uqxtn2v8hi_uuu (__a, __b);
5107 __extension__ extern __inline uint16x8_t
5108 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5109 vqmovn_high_u32 (uint16x4_t __a, uint32x4_t __b)
5111 return __builtin_aarch64_uqxtn2v4si_uuu (__a, __b);
5114 __extension__ extern __inline uint32x4_t
5115 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5116 vqmovn_high_u64 (uint32x2_t __a, uint64x2_t __b)
5118 return __builtin_aarch64_uqxtn2v2di_uuu (__a, __b);
5121 __extension__ extern __inline uint8x16_t
5122 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5123 vqmovun_high_s16 (uint8x8_t __a, int16x8_t __b)
5125 return __builtin_aarch64_sqxtun2v8hi_uus (__a, __b);
5128 __extension__ extern __inline uint16x8_t
5129 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5130 vqmovun_high_s32 (uint16x4_t __a, int32x4_t __b)
5132 return __builtin_aarch64_sqxtun2v4si_uus (__a, __b);
5135 __extension__ extern __inline uint32x4_t
5136 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5137 vqmovun_high_s64 (uint32x2_t __a, int64x2_t __b)
5139 return __builtin_aarch64_sqxtun2v2di_uus (__a, __b);
5142 __extension__ extern __inline int16x4_t
5143 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5144 vqrdmulh_n_s16 (int16x4_t __a, int16_t __b)
5146 return __builtin_aarch64_sqrdmulh_nv4hi (__a, __b);
5149 __extension__ extern __inline int32x2_t
5150 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5151 vqrdmulh_n_s32 (int32x2_t __a, int32_t __b)
5153 return __builtin_aarch64_sqrdmulh_nv2si (__a, __b);
5156 __extension__ extern __inline int16x8_t
5157 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5158 vqrdmulhq_n_s16 (int16x8_t __a, int16_t __b)
5160 return __builtin_aarch64_sqrdmulh_nv8hi (__a, __b);
5163 __extension__ extern __inline int32x4_t
5164 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5165 vqrdmulhq_n_s32 (int32x4_t __a, int32_t __b)
5167 return __builtin_aarch64_sqrdmulh_nv4si (__a, __b);
5170 __extension__ extern __inline int8x16_t
5171 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5172 vqrshrn_high_n_s16 (int8x8_t __a, int16x8_t __b, const int __c)
5174 return __builtin_aarch64_sqrshrn2_nv8hi (__a, __b, __c);
5177 __extension__ extern __inline int16x8_t
5178 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5179 vqrshrn_high_n_s32 (int16x4_t __a, int32x4_t __b, const int __c)
5181 return __builtin_aarch64_sqrshrn2_nv4si (__a, __b, __c);
5184 __extension__ extern __inline int32x4_t
5185 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5186 vqrshrn_high_n_s64 (int32x2_t __a, int64x2_t __b, const int __c)
5188 return __builtin_aarch64_sqrshrn2_nv2di (__a, __b, __c);
5191 __extension__ extern __inline uint8x16_t
5192 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5193 vqrshrn_high_n_u16 (uint8x8_t __a, uint16x8_t __b, const int __c)
5195 return __builtin_aarch64_uqrshrn2_nv8hi_uuus (__a, __b, __c);
5198 __extension__ extern __inline uint16x8_t
5199 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5200 vqrshrn_high_n_u32 (uint16x4_t __a, uint32x4_t __b, const int __c)
5202 return __builtin_aarch64_uqrshrn2_nv4si_uuus (__a, __b, __c);
5205 __extension__ extern __inline uint32x4_t
5206 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5207 vqrshrn_high_n_u64 (uint32x2_t __a, uint64x2_t __b, const int __c)
5209 return __builtin_aarch64_uqrshrn2_nv2di_uuus (__a, __b, __c);
5212 __extension__ extern __inline uint8x16_t
5213 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5214 vqrshrun_high_n_s16 (uint8x8_t __a, int16x8_t __b, const int __c)
5216 return __builtin_aarch64_sqrshrun2_nv8hi_uuss (__a, __b, __c);
5219 __extension__ extern __inline uint16x8_t
5220 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5221 vqrshrun_high_n_s32 (uint16x4_t __a, int32x4_t __b, const int __c)
5223 return __builtin_aarch64_sqrshrun2_nv4si_uuss (__a, __b, __c);
5226 __extension__ extern __inline uint32x4_t
5227 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5228 vqrshrun_high_n_s64 (uint32x2_t __a, int64x2_t __b, const int __c)
5230 return __builtin_aarch64_sqrshrun2_nv2di_uuss (__a, __b, __c);
5233 __extension__ extern __inline int8x16_t
5234 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5235 vqshrn_high_n_s16 (int8x8_t __a, int16x8_t __b, const int __c)
5237 return __builtin_aarch64_sqsshrn2_nv8hi (__a, __b, __c);
5240 __extension__ extern __inline int16x8_t
5241 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5242 vqshrn_high_n_s32 (int16x4_t __a, int32x4_t __b, const int __c)
5244 return __builtin_aarch64_sqsshrn2_nv4si (__a, __b, __c);
5247 __extension__ extern __inline int32x4_t
5248 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5249 vqshrn_high_n_s64 (int32x2_t __a, int64x2_t __b, const int __c)
5251 return __builtin_aarch64_sqsshrn2_nv2di (__a, __b, __c);
5254 __extension__ extern __inline uint8x16_t
5255 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5256 vqshrn_high_n_u16 (uint8x8_t __a, uint16x8_t __b, const int __c)
5258 return __builtin_aarch64_uqushrn2_nv8hi_uuus (__a, __b, __c);
5261 __extension__ extern __inline uint16x8_t
5262 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5263 vqshrn_high_n_u32 (uint16x4_t __a, uint32x4_t __b, const int __c)
5265 return __builtin_aarch64_uqushrn2_nv4si_uuus (__a, __b, __c);
5268 __extension__ extern __inline uint32x4_t
5269 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5270 vqshrn_high_n_u64 (uint32x2_t __a, uint64x2_t __b, const int __c)
5272 return __builtin_aarch64_uqushrn2_nv2di_uuus (__a, __b, __c);
5275 __extension__ extern __inline uint8x16_t
5276 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5277 vqshrun_high_n_s16 (uint8x8_t __a, int16x8_t __b, const int __c)
5279 return __builtin_aarch64_sqshrun2_nv8hi_uuss (__a, __b, __c);
5282 __extension__ extern __inline uint16x8_t
5283 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5284 vqshrun_high_n_s32 (uint16x4_t __a, int32x4_t __b, const int __c)
5286 return __builtin_aarch64_sqshrun2_nv4si_uuss (__a, __b, __c);
5289 __extension__ extern __inline uint32x4_t
5290 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5291 vqshrun_high_n_s64 (uint32x2_t __a, int64x2_t __b, const int __c)
5293 return __builtin_aarch64_sqshrun2_nv2di_uuss (__a, __b, __c);
5296 __extension__ extern __inline int8x16_t
5297 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5298 vrshrn_high_n_s16 (int8x8_t __a, int16x8_t __b, const int __c)
5300 return __builtin_aarch64_rshrn2_nv8hi (__a, __b, __c);
5303 __extension__ extern __inline int16x8_t
5304 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5305 vrshrn_high_n_s32 (int16x4_t __a, int32x4_t __b, const int __c)
5307 return __builtin_aarch64_rshrn2_nv4si (__a, __b, __c);
5310 __extension__ extern __inline int32x4_t
5311 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5312 vrshrn_high_n_s64 (int32x2_t __a, int64x2_t __b, const int __c)
5314 return __builtin_aarch64_rshrn2_nv2di (__a, __b, __c);
5317 __extension__ extern __inline uint8x16_t
5318 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5319 vrshrn_high_n_u16 (uint8x8_t __a, uint16x8_t __b, const int __c)
5321 return __builtin_aarch64_rshrn2_nv8hi_uuus (__a, __b, __c);
5324 __extension__ extern __inline uint16x8_t
5325 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5326 vrshrn_high_n_u32 (uint16x4_t __a, uint32x4_t __b, const int __c)
5328 return __builtin_aarch64_rshrn2_nv4si_uuus (__a, __b, __c);
5331 __extension__ extern __inline uint32x4_t
5332 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5333 vrshrn_high_n_u64 (uint32x2_t __a, uint64x2_t __b, const int __c)
5335 return __builtin_aarch64_rshrn2_nv2di_uuus (__a, __b, __c);
5338 __extension__ extern __inline int8x8_t
5339 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5340 vrshrn_n_s16 (int16x8_t __a, const int __b)
5342 return __builtin_aarch64_rshrn_nv8hi (__a, __b);
5345 __extension__ extern __inline int16x4_t
5346 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5347 vrshrn_n_s32 (int32x4_t __a, const int __b)
5349 return __builtin_aarch64_rshrn_nv4si (__a, __b);
5352 __extension__ extern __inline int32x2_t
5353 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5354 vrshrn_n_s64 (int64x2_t __a, const int __b)
5356 return __builtin_aarch64_rshrn_nv2di (__a, __b);
5359 __extension__ extern __inline uint8x8_t
5360 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5361 vrshrn_n_u16 (uint16x8_t __a, const int __b)
5363 return __builtin_aarch64_rshrn_nv8hi_uus (__a, __b);
5366 __extension__ extern __inline uint16x4_t
5367 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5368 vrshrn_n_u32 (uint32x4_t __a, const int __b)
5370 return __builtin_aarch64_rshrn_nv4si_uus (__a, __b);
5373 __extension__ extern __inline uint32x2_t
5374 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5375 vrshrn_n_u64 (uint64x2_t __a, const int __b)
5377 return __builtin_aarch64_rshrn_nv2di_uus (__a, __b);
5380 __extension__ extern __inline uint32x2_t
5381 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5382 vrsqrte_u32 (uint32x2_t __a)
5384 return __builtin_aarch64_ursqrtev2si_uu (__a);
5387 __extension__ extern __inline uint32x4_t
5388 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5389 vrsqrteq_u32 (uint32x4_t __a)
5391 return __builtin_aarch64_ursqrtev4si_uu (__a);
5394 __extension__ extern __inline int8x16_t
5395 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5396 vshrn_high_n_s16 (int8x8_t __a, int16x8_t __b, const int __c)
5398 return __builtin_aarch64_ushrn2_nv8hi (__a, __b, __c);
5401 __extension__ extern __inline int16x8_t
5402 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5403 vshrn_high_n_s32 (int16x4_t __a, int32x4_t __b, const int __c)
5405 return __builtin_aarch64_ushrn2_nv4si (__a, __b, __c);
5408 __extension__ extern __inline int32x4_t
5409 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5410 vshrn_high_n_s64 (int32x2_t __a, int64x2_t __b, const int __c)
5412 return __builtin_aarch64_ushrn2_nv2di (__a, __b, __c);
5415 __extension__ extern __inline uint8x16_t
5416 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5417 vshrn_high_n_u16 (uint8x8_t __a, uint16x8_t __b, const int __c)
5419 return __builtin_aarch64_ushrn2_nv8hi_uuus (__a, __b, __c);
5422 __extension__ extern __inline uint16x8_t
5423 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5424 vshrn_high_n_u32 (uint16x4_t __a, uint32x4_t __b, const int __c)
5426 return __builtin_aarch64_ushrn2_nv4si_uuus (__a, __b, __c);
5429 __extension__ extern __inline uint32x4_t
5430 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5431 vshrn_high_n_u64 (uint32x2_t __a, uint64x2_t __b, const int __c)
5433 return __builtin_aarch64_ushrn2_nv2di_uuus (__a, __b, __c);
5436 __extension__ extern __inline poly8x8_t
5437 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5438 vsli_n_p8 (poly8x8_t __a, poly8x8_t __b, const int __c)
5440 return __builtin_aarch64_ssli_nv8qi_ppps (__a, __b, __c);
5443 __extension__ extern __inline poly16x4_t
5444 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5445 vsli_n_p16 (poly16x4_t __a, poly16x4_t __b, const int __c)
5447 return __builtin_aarch64_ssli_nv4hi_ppps (__a, __b, __c);
5450 __extension__ extern __inline poly8x16_t
5451 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5452 vsliq_n_p8 (poly8x16_t __a, poly8x16_t __b, const int __c)
5454 return __builtin_aarch64_ssli_nv16qi_ppps (__a, __b, __c);
5457 __extension__ extern __inline poly16x8_t
5458 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5459 vsliq_n_p16 (poly16x8_t __a, poly16x8_t __b, const int __c)
5461 return __builtin_aarch64_ssli_nv8hi_ppps (__a, __b, __c);
5464 __extension__ extern __inline poly8x8_t
5465 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5466 vsri_n_p8 (poly8x8_t __a, poly8x8_t __b, const int __c)
5468 return __builtin_aarch64_ssri_nv8qi_ppps (__a, __b, __c);
5471 __extension__ extern __inline poly16x4_t
5472 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5473 vsri_n_p16 (poly16x4_t __a, poly16x4_t __b, const int __c)
5475 return __builtin_aarch64_ssri_nv4hi_ppps (__a, __b, __c);
5478 __extension__ extern __inline poly64x1_t
5479 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5480 vsri_n_p64 (poly64x1_t __a, poly64x1_t __b, const int __c)
5482 return (poly64x1_t) __builtin_aarch64_ssri_ndi_ppps (__a[0], __b[0], __c);
5485 __extension__ extern __inline poly8x16_t
5486 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5487 vsriq_n_p8 (poly8x16_t __a, poly8x16_t __b, const int __c)
5489 return __builtin_aarch64_ssri_nv16qi_ppps (__a, __b, __c);
5492 __extension__ extern __inline poly16x8_t
5493 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5494 vsriq_n_p16 (poly16x8_t __a, poly16x8_t __b, const int __c)
5496 return __builtin_aarch64_ssri_nv8hi_ppps (__a, __b, __c);
5499 __extension__ extern __inline poly64x2_t
5500 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5501 vsriq_n_p64 (poly64x2_t __a, poly64x2_t __b, const int __c)
5503 return __builtin_aarch64_ssri_nv2di_ppps (__a, __b, __c);
5506 __extension__ extern __inline uint8x8_t
5507 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5508 vtst_p8 (poly8x8_t __a, poly8x8_t __b)
5510 return (uint8x8_t) ((((uint8x8_t) __a) & ((uint8x8_t) __b))
5511 != 0);
5514 __extension__ extern __inline uint16x4_t
5515 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5516 vtst_p16 (poly16x4_t __a, poly16x4_t __b)
5518 return (uint16x4_t) ((((uint16x4_t) __a) & ((uint16x4_t) __b))
5519 != 0);
5522 __extension__ extern __inline uint64x1_t
5523 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5524 vtst_p64 (poly64x1_t __a, poly64x1_t __b)
5526 return (uint64x1_t) ((__a & __b) != __AARCH64_INT64_C (0));
5529 __extension__ extern __inline uint8x16_t
5530 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5531 vtstq_p8 (poly8x16_t __a, poly8x16_t __b)
5533 return (uint8x16_t) ((((uint8x16_t) __a) & ((uint8x16_t) __b))
5534 != 0);
5537 __extension__ extern __inline uint16x8_t
5538 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5539 vtstq_p16 (poly16x8_t __a, poly16x8_t __b)
5541 return (uint16x8_t) ((((uint16x8_t) __a) & ((uint16x8_t) __b))
5542 != 0);
5545 __extension__ extern __inline uint64x2_t
5546 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5547 vtstq_p64 (poly64x2_t __a, poly64x2_t __b)
5549 return (uint64x2_t) ((((uint64x2_t) __a) & ((uint64x2_t) __b))
5550 != __AARCH64_INT64_C (0));
5553 __extension__ extern __inline void
5554 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5555 vst2_lane_f16 (float16_t *__ptr, float16x4x2_t __val, const int __lane)
5557 __builtin_aarch64_st2_lanev4hf ((__builtin_aarch64_simd_hf *) __ptr, __val,
5558 __lane);
5561 __extension__ extern __inline void
5562 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5563 vst2_lane_f32 (float32_t *__ptr, float32x2x2_t __val, const int __lane)
5565 __builtin_aarch64_st2_lanev2sf ((__builtin_aarch64_simd_sf *) __ptr, __val,
5566 __lane);
5569 __extension__ extern __inline void
5570 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5571 vst2_lane_f64 (float64_t *__ptr, float64x1x2_t __val, const int __lane)
5573 __builtin_aarch64_st2_lanedf ((__builtin_aarch64_simd_df *) __ptr, __val,
5574 __lane);
5577 __extension__ extern __inline void
5578 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5579 vst2_lane_p8 (poly8_t *__ptr, poly8x8x2_t __val, const int __lane)
5581 __builtin_aarch64_st2_lanev8qi_sps ((__builtin_aarch64_simd_qi *) __ptr,
5582 __val, __lane);
5585 __extension__ extern __inline void
5586 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5587 vst2_lane_p16 (poly16_t *__ptr, poly16x4x2_t __val, const int __lane)
5589 __builtin_aarch64_st2_lanev4hi_sps ((__builtin_aarch64_simd_hi *) __ptr,
5590 __val, __lane);
5593 __extension__ extern __inline void
5594 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5595 vst2_lane_p64 (poly64_t *__ptr, poly64x1x2_t __val, const int __lane)
5597 __builtin_aarch64_st2_lanedi_sps ((__builtin_aarch64_simd_di *) __ptr,
5598 __val, __lane);
5601 __extension__ extern __inline void
5602 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5603 vst2_lane_s8 (int8_t *__ptr, int8x8x2_t __val, const int __lane)
5605 __builtin_aarch64_st2_lanev8qi ((__builtin_aarch64_simd_qi *) __ptr, __val,
5606 __lane);
5609 __extension__ extern __inline void
5610 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5611 vst2_lane_s16 (int16_t *__ptr, int16x4x2_t __val, const int __lane)
5613 __builtin_aarch64_st2_lanev4hi ((__builtin_aarch64_simd_hi *) __ptr, __val,
5614 __lane);
5617 __extension__ extern __inline void
5618 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5619 vst2_lane_s32 (int32_t *__ptr, int32x2x2_t __val, const int __lane)
5621 __builtin_aarch64_st2_lanev2si ((__builtin_aarch64_simd_si *) __ptr, __val,
5622 __lane);
5625 __extension__ extern __inline void
5626 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5627 vst2_lane_s64 (int64_t *__ptr, int64x1x2_t __val, const int __lane)
5629 __builtin_aarch64_st2_lanedi ((__builtin_aarch64_simd_di *) __ptr, __val,
5630 __lane);
5633 __extension__ extern __inline void
5634 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5635 vst2_lane_u8 (uint8_t *__ptr, uint8x8x2_t __val, const int __lane)
5637 __builtin_aarch64_st2_lanev8qi_sus ((__builtin_aarch64_simd_qi *) __ptr,
5638 __val, __lane);
5641 __extension__ extern __inline void
5642 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5643 vst2_lane_u16 (uint16_t *__ptr, uint16x4x2_t __val, const int __lane)
5645 __builtin_aarch64_st2_lanev4hi_sus ((__builtin_aarch64_simd_hi *) __ptr,
5646 __val, __lane);
5649 __extension__ extern __inline void
5650 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5651 vst2_lane_u32 (uint32_t *__ptr, uint32x2x2_t __val, const int __lane)
5653 __builtin_aarch64_st2_lanev2si_sus ((__builtin_aarch64_simd_si *) __ptr,
5654 __val, __lane);
5657 __extension__ extern __inline void
5658 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5659 vst2_lane_u64 (uint64_t *__ptr, uint64x1x2_t __val, const int __lane)
5661 __builtin_aarch64_st2_lanedi_sus ((__builtin_aarch64_simd_di *) __ptr, __val,
5662 __lane);
5665 __extension__ extern __inline void
5666 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5667 vst2q_lane_f16 (float16_t *__ptr, float16x8x2_t __val, const int __lane)
5669 __builtin_aarch64_st2_lanev8hf ((__builtin_aarch64_simd_hf *) __ptr, __val,
5670 __lane);
5673 __extension__ extern __inline void
5674 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5675 vst2q_lane_f32 (float32_t *__ptr, float32x4x2_t __val, const int __lane)
5677 __builtin_aarch64_st2_lanev4sf ((__builtin_aarch64_simd_sf *) __ptr, __val,
5678 __lane);
5681 __extension__ extern __inline void
5682 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5683 vst2q_lane_f64 (float64_t *__ptr, float64x2x2_t __val, const int __lane)
5685 __builtin_aarch64_st2_lanev2df ((__builtin_aarch64_simd_df *) __ptr, __val,
5686 __lane);
5689 __extension__ extern __inline void
5690 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5691 vst2q_lane_p8 (poly8_t *__ptr, poly8x16x2_t __val, const int __lane)
5693 __builtin_aarch64_st2_lanev16qi_sps ((__builtin_aarch64_simd_qi *) __ptr,
5694 __val, __lane);
5697 __extension__ extern __inline void
5698 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5699 vst2q_lane_p16 (poly16_t *__ptr, poly16x8x2_t __val, const int __lane)
5701 __builtin_aarch64_st2_lanev8hi_sps ((__builtin_aarch64_simd_hi *) __ptr,
5702 __val, __lane);
5705 __extension__ extern __inline void
5706 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5707 vst2q_lane_p64 (poly64_t *__ptr, poly64x2x2_t __val, const int __lane)
5709 __builtin_aarch64_st2_lanev2di_sps ((__builtin_aarch64_simd_di *) __ptr,
5710 __val, __lane);
5713 __extension__ extern __inline void
5714 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5715 vst2q_lane_s8 (int8_t *__ptr, int8x16x2_t __val, const int __lane)
5717 __builtin_aarch64_st2_lanev16qi ((__builtin_aarch64_simd_qi *) __ptr, __val,
5718 __lane);
5721 __extension__ extern __inline void
5722 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5723 vst2q_lane_s16 (int16_t *__ptr, int16x8x2_t __val, const int __lane)
5725 __builtin_aarch64_st2_lanev8hi ((__builtin_aarch64_simd_hi *) __ptr, __val,
5726 __lane);
5729 __extension__ extern __inline void
5730 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5731 vst2q_lane_s32 (int32_t *__ptr, int32x4x2_t __val, const int __lane)
5733 __builtin_aarch64_st2_lanev4si ((__builtin_aarch64_simd_si *) __ptr, __val,
5734 __lane);
5737 __extension__ extern __inline void
5738 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5739 vst2q_lane_s64 (int64_t *__ptr, int64x2x2_t __val, const int __lane)
5741 __builtin_aarch64_st2_lanev2di ((__builtin_aarch64_simd_di *) __ptr, __val,
5742 __lane);
5745 __extension__ extern __inline void
5746 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5747 vst2q_lane_u8 (uint8_t *__ptr, uint8x16x2_t __val, const int __lane)
5749 __builtin_aarch64_st2_lanev16qi_sus ((__builtin_aarch64_simd_qi *) __ptr,
5750 __val, __lane);
5753 __extension__ extern __inline void
5754 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5755 vst2q_lane_u16 (uint16_t *__ptr, uint16x8x2_t __val, const int __lane)
5757 __builtin_aarch64_st2_lanev8hi_sus ((__builtin_aarch64_simd_hi *) __ptr,
5758 __val, __lane);
5761 __extension__ extern __inline void
5762 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5763 vst2q_lane_u32 (uint32_t *__ptr, uint32x4x2_t __val, const int __lane)
5765 __builtin_aarch64_st2_lanev4si_sus ((__builtin_aarch64_simd_si *) __ptr,
5766 __val, __lane);
5769 __extension__ extern __inline void
5770 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5771 vst2q_lane_u64 (uint64_t *__ptr, uint64x2x2_t __val, const int __lane)
5773 __builtin_aarch64_st2_lanev2di_sus ((__builtin_aarch64_simd_di *) __ptr,
5774 __val, __lane);
5777 __extension__ extern __inline void
5778 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5779 vst3_lane_f16 (float16_t *__ptr, float16x4x3_t __val, const int __lane)
5781 __builtin_aarch64_st3_lanev4hf ((__builtin_aarch64_simd_hf *) __ptr, __val,
5782 __lane);
5785 __extension__ extern __inline void
5786 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5787 vst3_lane_f32 (float32_t *__ptr, float32x2x3_t __val, const int __lane)
5789 __builtin_aarch64_st3_lanev2sf ((__builtin_aarch64_simd_sf *) __ptr, __val,
5790 __lane);
5793 __extension__ extern __inline void
5794 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5795 vst3_lane_f64 (float64_t *__ptr, float64x1x3_t __val, const int __lane)
5797 __builtin_aarch64_st3_lanedf ((__builtin_aarch64_simd_df *) __ptr, __val,
5798 __lane);
5801 __extension__ extern __inline void
5802 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5803 vst3_lane_p8 (poly8_t *__ptr, poly8x8x3_t __val, const int __lane)
5805 __builtin_aarch64_st3_lanev8qi_sps ((__builtin_aarch64_simd_qi *) __ptr,
5806 __val, __lane);
5809 __extension__ extern __inline void
5810 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5811 vst3_lane_p16 (poly16_t *__ptr, poly16x4x3_t __val, const int __lane)
5813 __builtin_aarch64_st3_lanev4hi_sps ((__builtin_aarch64_simd_hi *) __ptr,
5814 __val, __lane);
5817 __extension__ extern __inline void
5818 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5819 vst3_lane_p64 (poly64_t *__ptr, poly64x1x3_t __val, const int __lane)
5821 __builtin_aarch64_st3_lanedi_sps ((__builtin_aarch64_simd_di *) __ptr, __val,
5822 __lane);
5825 __extension__ extern __inline void
5826 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5827 vst3_lane_s8 (int8_t *__ptr, int8x8x3_t __val, const int __lane)
5829 __builtin_aarch64_st3_lanev8qi ((__builtin_aarch64_simd_qi *) __ptr, __val,
5830 __lane);
5833 __extension__ extern __inline void
5834 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5835 vst3_lane_s16 (int16_t *__ptr, int16x4x3_t __val, const int __lane)
5837 __builtin_aarch64_st3_lanev4hi ((__builtin_aarch64_simd_hi *) __ptr, __val,
5838 __lane);
5841 __extension__ extern __inline void
5842 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5843 vst3_lane_s32 (int32_t *__ptr, int32x2x3_t __val, const int __lane)
5845 __builtin_aarch64_st3_lanev2si ((__builtin_aarch64_simd_si *) __ptr, __val,
5846 __lane);
5849 __extension__ extern __inline void
5850 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5851 vst3_lane_s64 (int64_t *__ptr, int64x1x3_t __val, const int __lane)
5853 __builtin_aarch64_st3_lanedi ((__builtin_aarch64_simd_di *) __ptr, __val,
5854 __lane);
5857 __extension__ extern __inline void
5858 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5859 vst3_lane_u8 (uint8_t *__ptr, uint8x8x3_t __val, const int __lane)
5861 __builtin_aarch64_st3_lanev8qi_sus ((__builtin_aarch64_simd_qi *) __ptr,
5862 __val, __lane);
5865 __extension__ extern __inline void
5866 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5867 vst3_lane_u16 (uint16_t *__ptr, uint16x4x3_t __val, const int __lane)
5869 __builtin_aarch64_st3_lanev4hi_sus ((__builtin_aarch64_simd_hi *) __ptr,
5870 __val, __lane);
5873 __extension__ extern __inline void
5874 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5875 vst3_lane_u32 (uint32_t *__ptr, uint32x2x3_t __val, const int __lane)
5877 __builtin_aarch64_st3_lanev2si_sus ((__builtin_aarch64_simd_si *) __ptr,
5878 __val, __lane);
5881 __extension__ extern __inline void
5882 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5883 vst3_lane_u64 (uint64_t *__ptr, uint64x1x3_t __val, const int __lane)
5885 __builtin_aarch64_st3_lanedi_sus ((__builtin_aarch64_simd_di *) __ptr, __val,
5886 __lane);
5889 __extension__ extern __inline void
5890 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5891 vst3q_lane_f16 (float16_t *__ptr, float16x8x3_t __val, const int __lane)
5893 __builtin_aarch64_st3_lanev8hf ((__builtin_aarch64_simd_hf *) __ptr, __val,
5894 __lane);
5897 __extension__ extern __inline void
5898 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5899 vst3q_lane_f32 (float32_t *__ptr, float32x4x3_t __val, const int __lane)
5901 __builtin_aarch64_st3_lanev4sf ((__builtin_aarch64_simd_sf *) __ptr, __val,
5902 __lane);
5905 __extension__ extern __inline void
5906 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5907 vst3q_lane_f64 (float64_t *__ptr, float64x2x3_t __val, const int __lane)
5909 __builtin_aarch64_st3_lanev2df ((__builtin_aarch64_simd_df *) __ptr, __val,
5910 __lane);
5913 __extension__ extern __inline void
5914 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5915 vst3q_lane_p8 (poly8_t *__ptr, poly8x16x3_t __val, const int __lane)
5917 __builtin_aarch64_st3_lanev16qi_sps ((__builtin_aarch64_simd_qi *) __ptr,
5918 __val, __lane);
5921 __extension__ extern __inline void
5922 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5923 vst3q_lane_p16 (poly16_t *__ptr, poly16x8x3_t __val, const int __lane)
5925 __builtin_aarch64_st3_lanev8hi_sps ((__builtin_aarch64_simd_hi *) __ptr,
5926 __val, __lane);
5929 __extension__ extern __inline void
5930 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5931 vst3q_lane_p64 (poly64_t *__ptr, poly64x2x3_t __val, const int __lane)
5933 __builtin_aarch64_st3_lanev2di_sps ((__builtin_aarch64_simd_di *) __ptr,
5934 __val, __lane);
5937 __extension__ extern __inline void
5938 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5939 vst3q_lane_s8 (int8_t *__ptr, int8x16x3_t __val, const int __lane)
5941 __builtin_aarch64_st3_lanev16qi ((__builtin_aarch64_simd_qi *) __ptr, __val,
5942 __lane);
5945 __extension__ extern __inline void
5946 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5947 vst3q_lane_s16 (int16_t *__ptr, int16x8x3_t __val, const int __lane)
5949 __builtin_aarch64_st3_lanev8hi ((__builtin_aarch64_simd_hi *) __ptr, __val,
5950 __lane);
5953 __extension__ extern __inline void
5954 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5955 vst3q_lane_s32 (int32_t *__ptr, int32x4x3_t __val, const int __lane)
5957 __builtin_aarch64_st3_lanev4si ((__builtin_aarch64_simd_si *) __ptr, __val,
5958 __lane);
5961 __extension__ extern __inline void
5962 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5963 vst3q_lane_s64 (int64_t *__ptr, int64x2x3_t __val, const int __lane)
5965 __builtin_aarch64_st3_lanev2di ((__builtin_aarch64_simd_di *) __ptr, __val,
5966 __lane);
5969 __extension__ extern __inline void
5970 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5971 vst3q_lane_u8 (uint8_t *__ptr, uint8x16x3_t __val, const int __lane)
5973 __builtin_aarch64_st3_lanev16qi_sus ((__builtin_aarch64_simd_qi *) __ptr,
5974 __val, __lane);
5977 __extension__ extern __inline void
5978 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5979 vst3q_lane_u16 (uint16_t *__ptr, uint16x8x3_t __val, const int __lane)
5981 __builtin_aarch64_st3_lanev8hi_sus ((__builtin_aarch64_simd_hi *) __ptr,
5982 __val, __lane);
5985 __extension__ extern __inline void
5986 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5987 vst3q_lane_u32 (uint32_t *__ptr, uint32x4x3_t __val, const int __lane)
5989 __builtin_aarch64_st3_lanev4si_sus ((__builtin_aarch64_simd_si *) __ptr,
5990 __val, __lane);
5993 __extension__ extern __inline void
5994 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5995 vst3q_lane_u64 (uint64_t *__ptr, uint64x2x3_t __val, const int __lane)
5997 __builtin_aarch64_st3_lanev2di_sus ((__builtin_aarch64_simd_di *) __ptr,
5998 __val, __lane);
6001 __extension__ extern __inline void
6002 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6003 vst4_lane_f16 (float16_t *__ptr, float16x4x4_t __val, const int __lane)
6005 __builtin_aarch64_st4_lanev4hf ((__builtin_aarch64_simd_hf *) __ptr, __val,
6006 __lane);
6009 __extension__ extern __inline void
6010 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6011 vst4_lane_f32 (float32_t *__ptr, float32x2x4_t __val, const int __lane)
6013 __builtin_aarch64_st4_lanev2sf ((__builtin_aarch64_simd_sf *) __ptr, __val,
6014 __lane);
6017 __extension__ extern __inline void
6018 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6019 vst4_lane_f64 (float64_t *__ptr, float64x1x4_t __val, const int __lane)
6021 __builtin_aarch64_st4_lanedf ((__builtin_aarch64_simd_df *) __ptr, __val,
6022 __lane);
6025 __extension__ extern __inline void
6026 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6027 vst4_lane_p8 (poly8_t *__ptr, poly8x8x4_t __val, const int __lane)
6029 __builtin_aarch64_st4_lanev8qi_sps ((__builtin_aarch64_simd_qi *) __ptr,
6030 __val, __lane);
6033 __extension__ extern __inline void
6034 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6035 vst4_lane_p16 (poly16_t *__ptr, poly16x4x4_t __val, const int __lane)
6037 __builtin_aarch64_st4_lanev4hi_sps ((__builtin_aarch64_simd_hi *) __ptr,
6038 __val, __lane);
6041 __extension__ extern __inline void
6042 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6043 vst4_lane_p64 (poly64_t *__ptr, poly64x1x4_t __val, const int __lane)
6045 __builtin_aarch64_st4_lanedi_sps ((__builtin_aarch64_simd_di *) __ptr, __val,
6046 __lane);
6049 __extension__ extern __inline void
6050 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6051 vst4_lane_s8 (int8_t *__ptr, int8x8x4_t __val, const int __lane)
6053 __builtin_aarch64_st4_lanev8qi ((__builtin_aarch64_simd_qi *) __ptr, __val,
6054 __lane);
6057 __extension__ extern __inline void
6058 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6059 vst4_lane_s16 (int16_t *__ptr, int16x4x4_t __val, const int __lane)
6061 __builtin_aarch64_st4_lanev4hi ((__builtin_aarch64_simd_hi *) __ptr, __val,
6062 __lane);
6065 __extension__ extern __inline void
6066 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6067 vst4_lane_s32 (int32_t *__ptr, int32x2x4_t __val, const int __lane)
6069 __builtin_aarch64_st4_lanev2si ((__builtin_aarch64_simd_si *) __ptr, __val,
6070 __lane);
6073 __extension__ extern __inline void
6074 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6075 vst4_lane_s64 (int64_t *__ptr, int64x1x4_t __val, const int __lane)
6077 __builtin_aarch64_st4_lanedi ((__builtin_aarch64_simd_di *) __ptr, __val,
6078 __lane);
6081 __extension__ extern __inline void
6082 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6083 vst4_lane_u8 (uint8_t *__ptr, uint8x8x4_t __val, const int __lane)
6085 __builtin_aarch64_st4_lanev8qi_sus ((__builtin_aarch64_simd_qi *) __ptr,
6086 __val, __lane);
6089 __extension__ extern __inline void
6090 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6091 vst4_lane_u16 (uint16_t *__ptr, uint16x4x4_t __val, const int __lane)
6093 __builtin_aarch64_st4_lanev4hi_sus ((__builtin_aarch64_simd_hi *) __ptr,
6094 __val, __lane);
6097 __extension__ extern __inline void
6098 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6099 vst4_lane_u32 (uint32_t *__ptr, uint32x2x4_t __val, const int __lane)
6101 __builtin_aarch64_st4_lanev2si_sus ((__builtin_aarch64_simd_si *) __ptr,
6102 __val, __lane);
6105 __extension__ extern __inline void
6106 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6107 vst4_lane_u64 (uint64_t *__ptr, uint64x1x4_t __val, const int __lane)
6109 __builtin_aarch64_st4_lanedi_sus ((__builtin_aarch64_simd_di *) __ptr, __val,
6110 __lane);
6113 __extension__ extern __inline void
6114 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6115 vst4q_lane_f16 (float16_t *__ptr, float16x8x4_t __val, const int __lane)
6117 __builtin_aarch64_st4_lanev8hf ((__builtin_aarch64_simd_hf *) __ptr, __val,
6118 __lane);
6121 __extension__ extern __inline void
6122 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6123 vst4q_lane_f32 (float32_t *__ptr, float32x4x4_t __val, const int __lane)
6125 __builtin_aarch64_st4_lanev4sf ((__builtin_aarch64_simd_sf *) __ptr, __val,
6126 __lane);
6129 __extension__ extern __inline void
6130 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6131 vst4q_lane_f64 (float64_t *__ptr, float64x2x4_t __val, const int __lane)
6133 __builtin_aarch64_st4_lanev2df ((__builtin_aarch64_simd_df *) __ptr, __val,
6134 __lane);
6137 __extension__ extern __inline void
6138 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6139 vst4q_lane_p8 (poly8_t *__ptr, poly8x16x4_t __val, const int __lane)
6141 __builtin_aarch64_st4_lanev16qi_sps ((__builtin_aarch64_simd_qi *) __ptr,
6142 __val, __lane);
6145 __extension__ extern __inline void
6146 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6147 vst4q_lane_p16 (poly16_t *__ptr, poly16x8x4_t __val, const int __lane)
6149 __builtin_aarch64_st4_lanev8hi_sps ((__builtin_aarch64_simd_hi *) __ptr,
6150 __val, __lane);
6153 __extension__ extern __inline void
6154 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6155 vst4q_lane_p64 (poly64_t *__ptr, poly64x2x4_t __val, const int __lane)
6157 __builtin_aarch64_st4_lanev2di_sps ((__builtin_aarch64_simd_di *) __ptr,
6158 __val, __lane);
6161 __extension__ extern __inline void
6162 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6163 vst4q_lane_s8 (int8_t *__ptr, int8x16x4_t __val, const int __lane)
6165 __builtin_aarch64_st4_lanev16qi ((__builtin_aarch64_simd_qi *) __ptr, __val,
6166 __lane);
6169 __extension__ extern __inline void
6170 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6171 vst4q_lane_s16 (int16_t *__ptr, int16x8x4_t __val, const int __lane)
6173 __builtin_aarch64_st4_lanev8hi ((__builtin_aarch64_simd_hi *) __ptr, __val,
6174 __lane);
6177 __extension__ extern __inline void
6178 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6179 vst4q_lane_s32 (int32_t *__ptr, int32x4x4_t __val, const int __lane)
6181 __builtin_aarch64_st4_lanev4si ((__builtin_aarch64_simd_si *) __ptr, __val,
6182 __lane);
6185 __extension__ extern __inline void
6186 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6187 vst4q_lane_s64 (int64_t *__ptr, int64x2x4_t __val, const int __lane)
6189 __builtin_aarch64_st4_lanev2di ((__builtin_aarch64_simd_di *) __ptr, __val,
6190 __lane);
6193 __extension__ extern __inline void
6194 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6195 vst4q_lane_u8 (uint8_t *__ptr, uint8x16x4_t __val, const int __lane)
6197 __builtin_aarch64_st4_lanev16qi_sus ((__builtin_aarch64_simd_qi *) __ptr,
6198 __val, __lane);
6201 __extension__ extern __inline void
6202 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6203 vst4q_lane_u16 (uint16_t *__ptr, uint16x8x4_t __val, const int __lane)
6205 __builtin_aarch64_st4_lanev8hi_sus ((__builtin_aarch64_simd_hi *) __ptr,
6206 __val, __lane);
6209 __extension__ extern __inline void
6210 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6211 vst4q_lane_u32 (uint32_t *__ptr, uint32x4x4_t __val, const int __lane)
6213 __builtin_aarch64_st4_lanev4si_sus ((__builtin_aarch64_simd_si *) __ptr,
6214 __val, __lane);
6217 __extension__ extern __inline void
6218 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6219 vst4q_lane_u64 (uint64_t *__ptr, uint64x2x4_t __val, const int __lane)
6221 __builtin_aarch64_st4_lanev2di_sus ((__builtin_aarch64_simd_di *) __ptr,
6222 __val, __lane);
6225 __extension__ extern __inline int64_t
6226 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6227 vaddlv_s32 (int32x2_t __a)
6229 return __builtin_aarch64_saddlvv2si (__a);
6232 __extension__ extern __inline uint64_t
6233 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6234 vaddlv_u32 (uint32x2_t __a)
6236 return __builtin_aarch64_uaddlvv2si_uu (__a);
6239 __extension__ extern __inline int16x4_t
6240 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6241 vqdmulh_laneq_s16 (int16x4_t __a, int16x8_t __b, const int __c)
6243 return __builtin_aarch64_sqdmulh_laneqv4hi (__a, __b, __c);
6246 __extension__ extern __inline int32x2_t
6247 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6248 vqdmulh_laneq_s32 (int32x2_t __a, int32x4_t __b, const int __c)
6250 return __builtin_aarch64_sqdmulh_laneqv2si (__a, __b, __c);
6253 __extension__ extern __inline int16x8_t
6254 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6255 vqdmulhq_laneq_s16 (int16x8_t __a, int16x8_t __b, const int __c)
6257 return __builtin_aarch64_sqdmulh_laneqv8hi (__a, __b, __c);
6260 __extension__ extern __inline int32x4_t
6261 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6262 vqdmulhq_laneq_s32 (int32x4_t __a, int32x4_t __b, const int __c)
6264 return __builtin_aarch64_sqdmulh_laneqv4si (__a, __b, __c);
6267 __extension__ extern __inline int16x4_t
6268 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6269 vqrdmulh_laneq_s16 (int16x4_t __a, int16x8_t __b, const int __c)
6271 return __builtin_aarch64_sqrdmulh_laneqv4hi (__a, __b, __c);
6274 __extension__ extern __inline int32x2_t
6275 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6276 vqrdmulh_laneq_s32 (int32x2_t __a, int32x4_t __b, const int __c)
6278 return __builtin_aarch64_sqrdmulh_laneqv2si (__a, __b, __c);
6281 __extension__ extern __inline int16x8_t
6282 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6283 vqrdmulhq_laneq_s16 (int16x8_t __a, int16x8_t __b, const int __c)
6285 return __builtin_aarch64_sqrdmulh_laneqv8hi (__a, __b, __c);
6288 __extension__ extern __inline int32x4_t
6289 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6290 vqrdmulhq_laneq_s32 (int32x4_t __a, int32x4_t __b, const int __c)
6292 return __builtin_aarch64_sqrdmulh_laneqv4si (__a, __b, __c);
6295 /* Table intrinsics. */
6297 __extension__ extern __inline poly8x8_t
6298 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6299 vqtbl1_p8 (poly8x16_t __tab, uint8x8_t __idx)
6301 return __builtin_aarch64_qtbl1v8qi_ppu (__tab, __idx);
6304 __extension__ extern __inline int8x8_t
6305 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6306 vqtbl1_s8 (int8x16_t __tab, uint8x8_t __idx)
6308 return __builtin_aarch64_qtbl1v8qi_ssu (__tab, __idx);
6311 __extension__ extern __inline uint8x8_t
6312 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6313 vqtbl1_u8 (uint8x16_t __tab, uint8x8_t __idx)
6315 return __builtin_aarch64_qtbl1v8qi_uuu (__tab, __idx);
6318 __extension__ extern __inline poly8x16_t
6319 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6320 vqtbl1q_p8 (poly8x16_t __tab, uint8x16_t __idx)
6322 return __builtin_aarch64_qtbl1v16qi_ppu (__tab, __idx);
6325 __extension__ extern __inline int8x16_t
6326 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6327 vqtbl1q_s8 (int8x16_t __tab, uint8x16_t __idx)
6329 return __builtin_aarch64_qtbl1v16qi_ssu (__tab, __idx);
6332 __extension__ extern __inline uint8x16_t
6333 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6334 vqtbl1q_u8 (uint8x16_t __tab, uint8x16_t __idx)
6336 return __builtin_aarch64_qtbl1v16qi_uuu (__tab, __idx);
6339 __extension__ extern __inline int8x8_t
6340 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6341 vqtbx1_s8 (int8x8_t __r, int8x16_t __tab, uint8x8_t __idx)
6343 return __builtin_aarch64_qtbx1v8qi_sssu (__r, __tab, __idx);
6346 __extension__ extern __inline uint8x8_t
6347 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6348 vqtbx1_u8 (uint8x8_t __r, uint8x16_t __tab, uint8x8_t __idx)
6350 return __builtin_aarch64_qtbx1v8qi_uuuu (__r, __tab, __idx);
6353 __extension__ extern __inline poly8x8_t
6354 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6355 vqtbx1_p8 (poly8x8_t __r, poly8x16_t __tab, uint8x8_t __idx)
6357 return __builtin_aarch64_qtbx1v8qi_pppu (__r, __tab, __idx);
6360 __extension__ extern __inline int8x16_t
6361 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6362 vqtbx1q_s8 (int8x16_t __r, int8x16_t __tab, uint8x16_t __idx)
6364 return __builtin_aarch64_qtbx1v16qi_sssu (__r, __tab, __idx);
6367 __extension__ extern __inline uint8x16_t
6368 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6369 vqtbx1q_u8 (uint8x16_t __r, uint8x16_t __tab, uint8x16_t __idx)
6371 return __builtin_aarch64_qtbx1v16qi_uuuu (__r, __tab, __idx);
6374 __extension__ extern __inline poly8x16_t
6375 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6376 vqtbx1q_p8 (poly8x16_t __r, poly8x16_t __tab, uint8x16_t __idx)
6378 return __builtin_aarch64_qtbx1v16qi_pppu (__r, __tab, __idx);
6381 /* V7 legacy table intrinsics. */
6383 __extension__ extern __inline int8x8_t
6384 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6385 vtbl1_s8 (int8x8_t __tab, int8x8_t __idx)
6387 int8x16_t __temp = vcombine_s8 (__tab,
6388 vcreate_s8 (__AARCH64_UINT64_C (0x0)));
6389 return __builtin_aarch64_qtbl1v8qi (__temp, __idx);
6392 __extension__ extern __inline uint8x8_t
6393 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6394 vtbl1_u8 (uint8x8_t __tab, uint8x8_t __idx)
6396 uint8x16_t __temp = vcombine_u8 (__tab,
6397 vcreate_u8 (__AARCH64_UINT64_C (0x0)));
6398 return __builtin_aarch64_qtbl1v8qi_uuu (__temp, __idx);
6401 __extension__ extern __inline poly8x8_t
6402 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6403 vtbl1_p8 (poly8x8_t __tab, uint8x8_t __idx)
6405 poly8x16_t __temp = vcombine_p8 (__tab,
6406 vcreate_p8 (__AARCH64_UINT64_C (0x0)));
6407 return __builtin_aarch64_qtbl1v8qi_ppu (__temp, __idx);
6410 __extension__ extern __inline int8x8_t
6411 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6412 vtbl2_s8 (int8x8x2_t __tab, int8x8_t __idx)
6414 int8x16_t __temp = vcombine_s8 (__tab.val[0], __tab.val[1]);
6415 return __builtin_aarch64_qtbl1v8qi (__temp, __idx);
6418 __extension__ extern __inline uint8x8_t
6419 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6420 vtbl2_u8 (uint8x8x2_t __tab, uint8x8_t __idx)
6422 uint8x16_t __temp = vcombine_u8 (__tab.val[0], __tab.val[1]);
6423 return __builtin_aarch64_qtbl1v8qi_uuu (__temp, __idx);
6426 __extension__ extern __inline poly8x8_t
6427 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6428 vtbl2_p8 (poly8x8x2_t __tab, uint8x8_t __idx)
6430 poly8x16_t __temp = vcombine_p8 (__tab.val[0], __tab.val[1]);
6431 return __builtin_aarch64_qtbl1v8qi_ppu (__temp, __idx);
6434 __extension__ extern __inline int8x8_t
6435 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6436 vtbl3_s8 (int8x8x3_t __tab, int8x8_t __idx)
6438 int8x16x2_t __temp;
6439 __temp.val[0] = vcombine_s8 (__tab.val[0], __tab.val[1]);
6440 __temp.val[1] = vcombine_s8 (__tab.val[2],
6441 vcreate_s8 (__AARCH64_UINT64_C (0x0)));
6442 return __builtin_aarch64_qtbl2v8qi (__temp, __idx);
6445 __extension__ extern __inline uint8x8_t
6446 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6447 vtbl3_u8 (uint8x8x3_t __tab, uint8x8_t __idx)
6449 uint8x16x2_t __temp;
6450 __temp.val[0] = vcombine_u8 (__tab.val[0], __tab.val[1]);
6451 __temp.val[1] = vcombine_u8 (__tab.val[2],
6452 vcreate_u8 (__AARCH64_UINT64_C (0x0)));
6453 return __builtin_aarch64_qtbl2v8qi_uuu (__temp, __idx);
6456 __extension__ extern __inline poly8x8_t
6457 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6458 vtbl3_p8 (poly8x8x3_t __tab, uint8x8_t __idx)
6460 poly8x16x2_t __temp;
6461 __temp.val[0] = vcombine_p8 (__tab.val[0], __tab.val[1]);
6462 __temp.val[1] = vcombine_p8 (__tab.val[2],
6463 vcreate_p8 (__AARCH64_UINT64_C (0x0)));
6464 return __builtin_aarch64_qtbl2v8qi_ppu (__temp, __idx);
6467 __extension__ extern __inline int8x8_t
6468 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6469 vtbl4_s8 (int8x8x4_t __tab, int8x8_t __idx)
6471 int8x16x2_t __temp;
6472 __temp.val[0] = vcombine_s8 (__tab.val[0], __tab.val[1]);
6473 __temp.val[1] = vcombine_s8 (__tab.val[2], __tab.val[3]);
6474 return __builtin_aarch64_qtbl2v8qi (__temp, __idx);
6477 __extension__ extern __inline uint8x8_t
6478 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6479 vtbl4_u8 (uint8x8x4_t __tab, uint8x8_t __idx)
6481 uint8x16x2_t __temp;
6482 __temp.val[0] = vcombine_u8 (__tab.val[0], __tab.val[1]);
6483 __temp.val[1] = vcombine_u8 (__tab.val[2], __tab.val[3]);
6484 return __builtin_aarch64_qtbl2v8qi_uuu (__temp, __idx);
6487 __extension__ extern __inline poly8x8_t
6488 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6489 vtbl4_p8 (poly8x8x4_t __tab, uint8x8_t __idx)
6491 poly8x16x2_t __temp;
6492 __temp.val[0] = vcombine_p8 (__tab.val[0], __tab.val[1]);
6493 __temp.val[1] = vcombine_p8 (__tab.val[2], __tab.val[3]);
6494 return __builtin_aarch64_qtbl2v8qi_ppu (__temp, __idx);
6497 __extension__ extern __inline int8x8_t
6498 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6499 vtbx2_s8 (int8x8_t __r, int8x8x2_t __tab, int8x8_t __idx)
6501 int8x16_t __temp = vcombine_s8 (__tab.val[0], __tab.val[1]);
6502 return __builtin_aarch64_qtbx1v8qi (__r, __temp, __idx);
6505 __extension__ extern __inline uint8x8_t
6506 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6507 vtbx2_u8 (uint8x8_t __r, uint8x8x2_t __tab, uint8x8_t __idx)
6509 uint8x16_t __temp = vcombine_u8 (__tab.val[0], __tab.val[1]);
6510 return __builtin_aarch64_qtbx1v8qi_uuuu (__r, __temp, __idx);
6513 __extension__ extern __inline poly8x8_t
6514 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6515 vtbx2_p8 (poly8x8_t __r, poly8x8x2_t __tab, uint8x8_t __idx)
6517 poly8x16_t __temp = vcombine_p8 (__tab.val[0], __tab.val[1]);
6518 return __builtin_aarch64_qtbx1v8qi_pppu (__r, __temp, __idx);
6521 /* End of temporary inline asm. */
6523 /* Start of optimal implementations in approved order. */
6525 /* vabd. */
6527 __extension__ extern __inline float32_t
6528 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6529 vabds_f32 (float32_t __a, float32_t __b)
6531 return __builtin_aarch64_fabdsf (__a, __b);
6534 __extension__ extern __inline float64_t
6535 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6536 vabdd_f64 (float64_t __a, float64_t __b)
6538 return __builtin_aarch64_fabddf (__a, __b);
6541 __extension__ extern __inline float32x2_t
6542 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6543 vabd_f32 (float32x2_t __a, float32x2_t __b)
6545 return __builtin_aarch64_fabdv2sf (__a, __b);
6548 __extension__ extern __inline float64x1_t
6549 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6550 vabd_f64 (float64x1_t __a, float64x1_t __b)
6552 return (float64x1_t) {vabdd_f64 (vget_lane_f64 (__a, 0),
6553 vget_lane_f64 (__b, 0))};
6556 __extension__ extern __inline float32x4_t
6557 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6558 vabdq_f32 (float32x4_t __a, float32x4_t __b)
6560 return __builtin_aarch64_fabdv4sf (__a, __b);
6563 __extension__ extern __inline float64x2_t
6564 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6565 vabdq_f64 (float64x2_t __a, float64x2_t __b)
6567 return __builtin_aarch64_fabdv2df (__a, __b);
6570 /* vabs */
6572 __extension__ extern __inline float32x2_t
6573 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6574 vabs_f32 (float32x2_t __a)
6576 return __builtin_aarch64_absv2sf (__a);
6579 __extension__ extern __inline float64x1_t
6580 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6581 vabs_f64 (float64x1_t __a)
6583 return (float64x1_t) {__builtin_fabs (__a[0])};
6586 __extension__ extern __inline int8x8_t
6587 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6588 vabs_s8 (int8x8_t __a)
6590 return __builtin_aarch64_absv8qi (__a);
6593 __extension__ extern __inline int16x4_t
6594 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6595 vabs_s16 (int16x4_t __a)
6597 return __builtin_aarch64_absv4hi (__a);
6600 __extension__ extern __inline int32x2_t
6601 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6602 vabs_s32 (int32x2_t __a)
6604 return __builtin_aarch64_absv2si (__a);
6607 __extension__ extern __inline int64x1_t
6608 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6609 vabs_s64 (int64x1_t __a)
6611 return (int64x1_t) {__builtin_aarch64_absdi (__a[0])};
6614 __extension__ extern __inline float32x4_t
6615 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6616 vabsq_f32 (float32x4_t __a)
6618 return __builtin_aarch64_absv4sf (__a);
6621 __extension__ extern __inline float64x2_t
6622 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6623 vabsq_f64 (float64x2_t __a)
6625 return __builtin_aarch64_absv2df (__a);
6628 __extension__ extern __inline int8x16_t
6629 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6630 vabsq_s8 (int8x16_t __a)
6632 return __builtin_aarch64_absv16qi (__a);
6635 __extension__ extern __inline int16x8_t
6636 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6637 vabsq_s16 (int16x8_t __a)
6639 return __builtin_aarch64_absv8hi (__a);
6642 __extension__ extern __inline int32x4_t
6643 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6644 vabsq_s32 (int32x4_t __a)
6646 return __builtin_aarch64_absv4si (__a);
6649 __extension__ extern __inline int64x2_t
6650 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6651 vabsq_s64 (int64x2_t __a)
6653 return __builtin_aarch64_absv2di (__a);
6656 /* Try to avoid moving between integer and vector registers.
6657 For why the cast to unsigned is needed check the vnegd_s64 intrinsic.
6658 There is a testcase related to this issue:
6659 gcc.target/aarch64/vabsd_s64.c. */
6661 __extension__ extern __inline int64_t
6662 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6663 vabsd_s64 (int64_t __a)
6665 return __a < 0 ? - (uint64_t) __a : __a;
6668 /* vadd */
6670 __extension__ extern __inline int64_t
6671 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6672 vaddd_s64 (int64_t __a, int64_t __b)
6674 return __a + __b;
6677 __extension__ extern __inline uint64_t
6678 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6679 vaddd_u64 (uint64_t __a, uint64_t __b)
6681 return __a + __b;
6684 /* vaddv */
6686 __extension__ extern __inline int8_t
6687 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6688 vaddv_s8 (int8x8_t __a)
6690 return __builtin_aarch64_reduc_plus_scal_v8qi (__a);
6693 __extension__ extern __inline int16_t
6694 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6695 vaddv_s16 (int16x4_t __a)
6697 return __builtin_aarch64_reduc_plus_scal_v4hi (__a);
6700 __extension__ extern __inline int32_t
6701 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6702 vaddv_s32 (int32x2_t __a)
6704 return __builtin_aarch64_reduc_plus_scal_v2si (__a);
6707 __extension__ extern __inline uint8_t
6708 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6709 vaddv_u8 (uint8x8_t __a)
6711 return __builtin_aarch64_reduc_plus_scal_v8qi_uu (__a);
6714 __extension__ extern __inline uint16_t
6715 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6716 vaddv_u16 (uint16x4_t __a)
6718 return __builtin_aarch64_reduc_plus_scal_v4hi_uu (__a);
6721 __extension__ extern __inline uint32_t
6722 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6723 vaddv_u32 (uint32x2_t __a)
6725 return __builtin_aarch64_reduc_plus_scal_v2si_uu (__a);
6728 __extension__ extern __inline int8_t
6729 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6730 vaddvq_s8 (int8x16_t __a)
6732 return __builtin_aarch64_reduc_plus_scal_v16qi (__a);
6735 __extension__ extern __inline int16_t
6736 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6737 vaddvq_s16 (int16x8_t __a)
6739 return __builtin_aarch64_reduc_plus_scal_v8hi (__a);
6742 __extension__ extern __inline int32_t
6743 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6744 vaddvq_s32 (int32x4_t __a)
6746 return __builtin_aarch64_reduc_plus_scal_v4si (__a);
6749 __extension__ extern __inline int64_t
6750 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6751 vaddvq_s64 (int64x2_t __a)
6753 return __builtin_aarch64_reduc_plus_scal_v2di (__a);
6756 __extension__ extern __inline uint8_t
6757 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6758 vaddvq_u8 (uint8x16_t __a)
6760 return __builtin_aarch64_reduc_plus_scal_v16qi_uu (__a);
6763 __extension__ extern __inline uint16_t
6764 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6765 vaddvq_u16 (uint16x8_t __a)
6767 return __builtin_aarch64_reduc_plus_scal_v8hi_uu (__a);
6770 __extension__ extern __inline uint32_t
6771 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6772 vaddvq_u32 (uint32x4_t __a)
6774 return __builtin_aarch64_reduc_plus_scal_v4si_uu (__a);
6777 __extension__ extern __inline uint64_t
6778 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6779 vaddvq_u64 (uint64x2_t __a)
6781 return __builtin_aarch64_reduc_plus_scal_v2di_uu (__a);
6784 __extension__ extern __inline float32_t
6785 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6786 vaddv_f32 (float32x2_t __a)
6788 return __builtin_aarch64_reduc_plus_scal_v2sf (__a);
6791 __extension__ extern __inline float32_t
6792 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6793 vaddvq_f32 (float32x4_t __a)
6795 return __builtin_aarch64_reduc_plus_scal_v4sf (__a);
6798 __extension__ extern __inline float64_t
6799 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6800 vaddvq_f64 (float64x2_t __a)
6802 return __builtin_aarch64_reduc_plus_scal_v2df (__a);
6805 /* vbsl */
6807 __extension__ extern __inline float16x4_t
6808 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6809 vbsl_f16 (uint16x4_t __a, float16x4_t __b, float16x4_t __c)
6811 return __builtin_aarch64_simd_bslv4hf_suss (__a, __b, __c);
6814 __extension__ extern __inline float32x2_t
6815 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6816 vbsl_f32 (uint32x2_t __a, float32x2_t __b, float32x2_t __c)
6818 return __builtin_aarch64_simd_bslv2sf_suss (__a, __b, __c);
6821 __extension__ extern __inline float64x1_t
6822 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6823 vbsl_f64 (uint64x1_t __a, float64x1_t __b, float64x1_t __c)
6825 return (float64x1_t)
6826 { __builtin_aarch64_simd_bsldf_suss (__a[0], __b[0], __c[0]) };
6829 __extension__ extern __inline poly8x8_t
6830 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6831 vbsl_p8 (uint8x8_t __a, poly8x8_t __b, poly8x8_t __c)
6833 return __builtin_aarch64_simd_bslv8qi_pupp (__a, __b, __c);
6836 __extension__ extern __inline poly16x4_t
6837 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6838 vbsl_p16 (uint16x4_t __a, poly16x4_t __b, poly16x4_t __c)
6840 return __builtin_aarch64_simd_bslv4hi_pupp (__a, __b, __c);
6842 __extension__ extern __inline poly64x1_t
6843 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6844 vbsl_p64 (uint64x1_t __a, poly64x1_t __b, poly64x1_t __c)
6846 return (poly64x1_t)
6847 {__builtin_aarch64_simd_bsldi_pupp (__a[0], __b[0], __c[0])};
6850 __extension__ extern __inline int8x8_t
6851 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6852 vbsl_s8 (uint8x8_t __a, int8x8_t __b, int8x8_t __c)
6854 return __builtin_aarch64_simd_bslv8qi_suss (__a, __b, __c);
6857 __extension__ extern __inline int16x4_t
6858 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6859 vbsl_s16 (uint16x4_t __a, int16x4_t __b, int16x4_t __c)
6861 return __builtin_aarch64_simd_bslv4hi_suss (__a, __b, __c);
6864 __extension__ extern __inline int32x2_t
6865 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6866 vbsl_s32 (uint32x2_t __a, int32x2_t __b, int32x2_t __c)
6868 return __builtin_aarch64_simd_bslv2si_suss (__a, __b, __c);
6871 __extension__ extern __inline int64x1_t
6872 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6873 vbsl_s64 (uint64x1_t __a, int64x1_t __b, int64x1_t __c)
6875 return (int64x1_t)
6876 {__builtin_aarch64_simd_bsldi_suss (__a[0], __b[0], __c[0])};
6879 __extension__ extern __inline uint8x8_t
6880 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6881 vbsl_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c)
6883 return __builtin_aarch64_simd_bslv8qi_uuuu (__a, __b, __c);
6886 __extension__ extern __inline uint16x4_t
6887 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6888 vbsl_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c)
6890 return __builtin_aarch64_simd_bslv4hi_uuuu (__a, __b, __c);
6893 __extension__ extern __inline uint32x2_t
6894 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6895 vbsl_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c)
6897 return __builtin_aarch64_simd_bslv2si_uuuu (__a, __b, __c);
6900 __extension__ extern __inline uint64x1_t
6901 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6902 vbsl_u64 (uint64x1_t __a, uint64x1_t __b, uint64x1_t __c)
6904 return (uint64x1_t)
6905 {__builtin_aarch64_simd_bsldi_uuuu (__a[0], __b[0], __c[0])};
6908 __extension__ extern __inline float16x8_t
6909 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6910 vbslq_f16 (uint16x8_t __a, float16x8_t __b, float16x8_t __c)
6912 return __builtin_aarch64_simd_bslv8hf_suss (__a, __b, __c);
6915 __extension__ extern __inline float32x4_t
6916 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6917 vbslq_f32 (uint32x4_t __a, float32x4_t __b, float32x4_t __c)
6919 return __builtin_aarch64_simd_bslv4sf_suss (__a, __b, __c);
6922 __extension__ extern __inline float64x2_t
6923 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6924 vbslq_f64 (uint64x2_t __a, float64x2_t __b, float64x2_t __c)
6926 return __builtin_aarch64_simd_bslv2df_suss (__a, __b, __c);
6929 __extension__ extern __inline poly8x16_t
6930 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6931 vbslq_p8 (uint8x16_t __a, poly8x16_t __b, poly8x16_t __c)
6933 return __builtin_aarch64_simd_bslv16qi_pupp (__a, __b, __c);
6936 __extension__ extern __inline poly16x8_t
6937 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6938 vbslq_p16 (uint16x8_t __a, poly16x8_t __b, poly16x8_t __c)
6940 return __builtin_aarch64_simd_bslv8hi_pupp (__a, __b, __c);
6943 __extension__ extern __inline int8x16_t
6944 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6945 vbslq_s8 (uint8x16_t __a, int8x16_t __b, int8x16_t __c)
6947 return __builtin_aarch64_simd_bslv16qi_suss (__a, __b, __c);
6950 __extension__ extern __inline int16x8_t
6951 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6952 vbslq_s16 (uint16x8_t __a, int16x8_t __b, int16x8_t __c)
6954 return __builtin_aarch64_simd_bslv8hi_suss (__a, __b, __c);
6957 __extension__ extern __inline poly64x2_t
6958 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6959 vbslq_p64 (uint64x2_t __a, poly64x2_t __b, poly64x2_t __c)
6961 return __builtin_aarch64_simd_bslv2di_pupp (__a, __b, __c);
6964 __extension__ extern __inline int32x4_t
6965 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6966 vbslq_s32 (uint32x4_t __a, int32x4_t __b, int32x4_t __c)
6968 return __builtin_aarch64_simd_bslv4si_suss (__a, __b, __c);
6971 __extension__ extern __inline int64x2_t
6972 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6973 vbslq_s64 (uint64x2_t __a, int64x2_t __b, int64x2_t __c)
6975 return __builtin_aarch64_simd_bslv2di_suss (__a, __b, __c);
6978 __extension__ extern __inline uint8x16_t
6979 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6980 vbslq_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c)
6982 return __builtin_aarch64_simd_bslv16qi_uuuu (__a, __b, __c);
6985 __extension__ extern __inline uint16x8_t
6986 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6987 vbslq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
6989 return __builtin_aarch64_simd_bslv8hi_uuuu (__a, __b, __c);
6992 __extension__ extern __inline uint32x4_t
6993 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6994 vbslq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
6996 return __builtin_aarch64_simd_bslv4si_uuuu (__a, __b, __c);
6999 __extension__ extern __inline uint64x2_t
7000 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7001 vbslq_u64 (uint64x2_t __a, uint64x2_t __b, uint64x2_t __c)
7003 return __builtin_aarch64_simd_bslv2di_uuuu (__a, __b, __c);
7006 /* ARMv8.1-A instrinsics. */
7007 #pragma GCC push_options
7008 #pragma GCC target ("+nothing+rdma")
7010 __extension__ extern __inline int16x4_t
7011 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7012 vqrdmlah_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c)
7014 return __builtin_aarch64_sqrdmlahv4hi (__a, __b, __c);
7017 __extension__ extern __inline int32x2_t
7018 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7019 vqrdmlah_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c)
7021 return __builtin_aarch64_sqrdmlahv2si (__a, __b, __c);
7024 __extension__ extern __inline int16x8_t
7025 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7026 vqrdmlahq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
7028 return __builtin_aarch64_sqrdmlahv8hi (__a, __b, __c);
7031 __extension__ extern __inline int32x4_t
7032 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7033 vqrdmlahq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
7035 return __builtin_aarch64_sqrdmlahv4si (__a, __b, __c);
7038 __extension__ extern __inline int16x4_t
7039 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7040 vqrdmlsh_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c)
7042 return __builtin_aarch64_sqrdmlshv4hi (__a, __b, __c);
7045 __extension__ extern __inline int32x2_t
7046 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7047 vqrdmlsh_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c)
7049 return __builtin_aarch64_sqrdmlshv2si (__a, __b, __c);
7052 __extension__ extern __inline int16x8_t
7053 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7054 vqrdmlshq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
7056 return __builtin_aarch64_sqrdmlshv8hi (__a, __b, __c);
7059 __extension__ extern __inline int32x4_t
7060 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7061 vqrdmlshq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
7063 return __builtin_aarch64_sqrdmlshv4si (__a, __b, __c);
7066 __extension__ extern __inline int16x4_t
7067 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7068 vqrdmlah_laneq_s16 (int16x4_t __a, int16x4_t __b, int16x8_t __c, const int __d)
7070 return __builtin_aarch64_sqrdmlah_laneqv4hi (__a, __b, __c, __d);
7073 __extension__ extern __inline int32x2_t
7074 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7075 vqrdmlah_laneq_s32 (int32x2_t __a, int32x2_t __b, int32x4_t __c, const int __d)
7077 return __builtin_aarch64_sqrdmlah_laneqv2si (__a, __b, __c, __d);
7080 __extension__ extern __inline int16x8_t
7081 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7082 vqrdmlahq_laneq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c, const int __d)
7084 return __builtin_aarch64_sqrdmlah_laneqv8hi (__a, __b, __c, __d);
7087 __extension__ extern __inline int32x4_t
7088 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7089 vqrdmlahq_laneq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c, const int __d)
7091 return __builtin_aarch64_sqrdmlah_laneqv4si (__a, __b, __c, __d);
7094 __extension__ extern __inline int16x4_t
7095 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7096 vqrdmlsh_laneq_s16 (int16x4_t __a, int16x4_t __b, int16x8_t __c, const int __d)
7098 return __builtin_aarch64_sqrdmlsh_laneqv4hi (__a, __b, __c, __d);
7101 __extension__ extern __inline int32x2_t
7102 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7103 vqrdmlsh_laneq_s32 (int32x2_t __a, int32x2_t __b, int32x4_t __c, const int __d)
7105 return __builtin_aarch64_sqrdmlsh_laneqv2si (__a, __b, __c, __d);
7108 __extension__ extern __inline int16x8_t
7109 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7110 vqrdmlshq_laneq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c, const int __d)
7112 return __builtin_aarch64_sqrdmlsh_laneqv8hi (__a, __b, __c, __d);
7115 __extension__ extern __inline int32x4_t
7116 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7117 vqrdmlshq_laneq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c, const int __d)
7119 return __builtin_aarch64_sqrdmlsh_laneqv4si (__a, __b, __c, __d);
7122 __extension__ extern __inline int16x4_t
7123 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7124 vqrdmlah_lane_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
7126 return __builtin_aarch64_sqrdmlah_lanev4hi (__a, __b, __c, __d);
7129 __extension__ extern __inline int32x2_t
7130 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7131 vqrdmlah_lane_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
7133 return __builtin_aarch64_sqrdmlah_lanev2si (__a, __b, __c, __d);
7136 __extension__ extern __inline int16x8_t
7137 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7138 vqrdmlahq_lane_s16 (int16x8_t __a, int16x8_t __b, int16x4_t __c, const int __d)
7140 return __builtin_aarch64_sqrdmlah_lanev8hi (__a, __b, __c, __d);
7143 __extension__ extern __inline int32x4_t
7144 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7145 vqrdmlahq_lane_s32 (int32x4_t __a, int32x4_t __b, int32x2_t __c, const int __d)
7147 return __builtin_aarch64_sqrdmlah_lanev4si (__a, __b, __c, __d);
7150 __extension__ extern __inline int16_t
7151 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7152 vqrdmlahh_s16 (int16_t __a, int16_t __b, int16_t __c)
7154 return (int16_t) __builtin_aarch64_sqrdmlahhi (__a, __b, __c);
7157 __extension__ extern __inline int16_t
7158 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7159 vqrdmlahh_lane_s16 (int16_t __a, int16_t __b, int16x4_t __c, const int __d)
7161 return __builtin_aarch64_sqrdmlah_lanehi (__a, __b, __c, __d);
7164 __extension__ extern __inline int16_t
7165 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7166 vqrdmlahh_laneq_s16 (int16_t __a, int16_t __b, int16x8_t __c, const int __d)
7168 return __builtin_aarch64_sqrdmlah_laneqhi (__a, __b, __c, __d);
7171 __extension__ extern __inline int32_t
7172 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7173 vqrdmlahs_s32 (int32_t __a, int32_t __b, int32_t __c)
7175 return (int32_t) __builtin_aarch64_sqrdmlahsi (__a, __b, __c);
7178 __extension__ extern __inline int32_t
7179 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7180 vqrdmlahs_lane_s32 (int32_t __a, int32_t __b, int32x2_t __c, const int __d)
7182 return __builtin_aarch64_sqrdmlah_lanesi (__a, __b, __c, __d);
7185 __extension__ extern __inline int32_t
7186 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7187 vqrdmlahs_laneq_s32 (int32_t __a, int32_t __b, int32x4_t __c, const int __d)
7189 return __builtin_aarch64_sqrdmlah_laneqsi (__a, __b, __c, __d);
7192 __extension__ extern __inline int16x4_t
7193 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7194 vqrdmlsh_lane_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
7196 return __builtin_aarch64_sqrdmlsh_lanev4hi (__a, __b, __c, __d);
7199 __extension__ extern __inline int32x2_t
7200 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7201 vqrdmlsh_lane_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
7203 return __builtin_aarch64_sqrdmlsh_lanev2si (__a, __b, __c, __d);
7206 __extension__ extern __inline int16x8_t
7207 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7208 vqrdmlshq_lane_s16 (int16x8_t __a, int16x8_t __b, int16x4_t __c, const int __d)
7210 return __builtin_aarch64_sqrdmlsh_lanev8hi (__a, __b, __c, __d);
7213 __extension__ extern __inline int32x4_t
7214 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7215 vqrdmlshq_lane_s32 (int32x4_t __a, int32x4_t __b, int32x2_t __c, const int __d)
7217 return __builtin_aarch64_sqrdmlsh_lanev4si (__a, __b, __c, __d);
7220 __extension__ extern __inline int16_t
7221 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7222 vqrdmlshh_s16 (int16_t __a, int16_t __b, int16_t __c)
7224 return (int16_t) __builtin_aarch64_sqrdmlshhi (__a, __b, __c);
7227 __extension__ extern __inline int16_t
7228 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7229 vqrdmlshh_lane_s16 (int16_t __a, int16_t __b, int16x4_t __c, const int __d)
7231 return __builtin_aarch64_sqrdmlsh_lanehi (__a, __b, __c, __d);
7234 __extension__ extern __inline int16_t
7235 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7236 vqrdmlshh_laneq_s16 (int16_t __a, int16_t __b, int16x8_t __c, const int __d)
7238 return __builtin_aarch64_sqrdmlsh_laneqhi (__a, __b, __c, __d);
7241 __extension__ extern __inline int32_t
7242 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7243 vqrdmlshs_s32 (int32_t __a, int32_t __b, int32_t __c)
7245 return (int32_t) __builtin_aarch64_sqrdmlshsi (__a, __b, __c);
7248 __extension__ extern __inline int32_t
7249 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7250 vqrdmlshs_lane_s32 (int32_t __a, int32_t __b, int32x2_t __c, const int __d)
7252 return __builtin_aarch64_sqrdmlsh_lanesi (__a, __b, __c, __d);
7255 __extension__ extern __inline int32_t
7256 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7257 vqrdmlshs_laneq_s32 (int32_t __a, int32_t __b, int32x4_t __c, const int __d)
7259 return __builtin_aarch64_sqrdmlsh_laneqsi (__a, __b, __c, __d);
7261 #pragma GCC pop_options
7263 #pragma GCC push_options
7264 #pragma GCC target ("+nothing+aes")
7265 /* vaes */
7267 __extension__ extern __inline uint8x16_t
7268 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7269 vaeseq_u8 (uint8x16_t data, uint8x16_t key)
7271 return __builtin_aarch64_crypto_aesev16qi_uuu (data, key);
7274 __extension__ extern __inline uint8x16_t
7275 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7276 vaesdq_u8 (uint8x16_t data, uint8x16_t key)
7278 return __builtin_aarch64_crypto_aesdv16qi_uuu (data, key);
7281 __extension__ extern __inline uint8x16_t
7282 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7283 vaesmcq_u8 (uint8x16_t data)
7285 return __builtin_aarch64_crypto_aesmcv16qi_uu (data);
7288 __extension__ extern __inline uint8x16_t
7289 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7290 vaesimcq_u8 (uint8x16_t data)
7292 return __builtin_aarch64_crypto_aesimcv16qi_uu (data);
7295 __extension__ extern __inline poly128_t
7296 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7297 vmull_p64 (poly64_t __a, poly64_t __b)
7299 return
7300 __builtin_aarch64_crypto_pmulldi_ppp (__a, __b);
7303 __extension__ extern __inline poly128_t
7304 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7305 vmull_high_p64 (poly64x2_t __a, poly64x2_t __b)
7307 return __builtin_aarch64_crypto_pmullv2di_ppp (__a, __b);
7310 #pragma GCC pop_options
7312 /* vcage */
7314 __extension__ extern __inline uint64x1_t
7315 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7316 vcage_f64 (float64x1_t __a, float64x1_t __b)
7318 return vcreate_u64 (__builtin_aarch64_facgedf_uss (__a[0], __b[0]));
7321 __extension__ extern __inline uint32_t
7322 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7323 vcages_f32 (float32_t __a, float32_t __b)
7325 return __builtin_aarch64_facgesf_uss (__a, __b);
7328 __extension__ extern __inline uint32x2_t
7329 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7330 vcage_f32 (float32x2_t __a, float32x2_t __b)
7332 return __builtin_aarch64_facgev2sf_uss (__a, __b);
7335 __extension__ extern __inline uint32x4_t
7336 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7337 vcageq_f32 (float32x4_t __a, float32x4_t __b)
7339 return __builtin_aarch64_facgev4sf_uss (__a, __b);
7342 __extension__ extern __inline uint64_t
7343 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7344 vcaged_f64 (float64_t __a, float64_t __b)
7346 return __builtin_aarch64_facgedf_uss (__a, __b);
7349 __extension__ extern __inline uint64x2_t
7350 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7351 vcageq_f64 (float64x2_t __a, float64x2_t __b)
7353 return __builtin_aarch64_facgev2df_uss (__a, __b);
7356 /* vcagt */
7358 __extension__ extern __inline uint32_t
7359 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7360 vcagts_f32 (float32_t __a, float32_t __b)
7362 return __builtin_aarch64_facgtsf_uss (__a, __b);
7365 __extension__ extern __inline uint32x2_t
7366 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7367 vcagt_f32 (float32x2_t __a, float32x2_t __b)
7369 return __builtin_aarch64_facgtv2sf_uss (__a, __b);
7372 __extension__ extern __inline uint64x1_t
7373 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7374 vcagt_f64 (float64x1_t __a, float64x1_t __b)
7376 return vcreate_u64 (__builtin_aarch64_facgtdf_uss (__a[0], __b[0]));
7379 __extension__ extern __inline uint32x4_t
7380 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7381 vcagtq_f32 (float32x4_t __a, float32x4_t __b)
7383 return __builtin_aarch64_facgtv4sf_uss (__a, __b);
7386 __extension__ extern __inline uint64_t
7387 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7388 vcagtd_f64 (float64_t __a, float64_t __b)
7390 return __builtin_aarch64_facgtdf_uss (__a, __b);
7393 __extension__ extern __inline uint64x2_t
7394 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7395 vcagtq_f64 (float64x2_t __a, float64x2_t __b)
7397 return __builtin_aarch64_facgtv2df_uss (__a, __b);
7400 /* vcale */
7402 __extension__ extern __inline uint32x2_t
7403 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7404 vcale_f32 (float32x2_t __a, float32x2_t __b)
7406 return __builtin_aarch64_faclev2sf_uss (__a, __b);
7409 __extension__ extern __inline uint64x1_t
7410 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7411 vcale_f64 (float64x1_t __a, float64x1_t __b)
7413 return vcreate_u64 (__builtin_aarch64_facledf_uss (__a[0], __b[0]));
7416 __extension__ extern __inline uint64_t
7417 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7418 vcaled_f64 (float64_t __a, float64_t __b)
7420 return __builtin_aarch64_facledf_uss (__a, __b);
7423 __extension__ extern __inline uint32_t
7424 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7425 vcales_f32 (float32_t __a, float32_t __b)
7427 return __builtin_aarch64_faclesf_uss (__a, __b);
7430 __extension__ extern __inline uint32x4_t
7431 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7432 vcaleq_f32 (float32x4_t __a, float32x4_t __b)
7434 return __builtin_aarch64_faclev4sf_uss (__a, __b);
7437 __extension__ extern __inline uint64x2_t
7438 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7439 vcaleq_f64 (float64x2_t __a, float64x2_t __b)
7441 return __builtin_aarch64_faclev2df_uss (__a, __b);
7444 /* vcalt */
7446 __extension__ extern __inline uint32x2_t
7447 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7448 vcalt_f32 (float32x2_t __a, float32x2_t __b)
7450 return __builtin_aarch64_facltv2sf_uss (__a, __b);
7453 __extension__ extern __inline uint64x1_t
7454 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7455 vcalt_f64 (float64x1_t __a, float64x1_t __b)
7457 return vcreate_u64 (__builtin_aarch64_facltdf_uss (__a[0], __b[0]));
7460 __extension__ extern __inline uint64_t
7461 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7462 vcaltd_f64 (float64_t __a, float64_t __b)
7464 return __builtin_aarch64_facltdf_uss (__a, __b);
7467 __extension__ extern __inline uint32x4_t
7468 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7469 vcaltq_f32 (float32x4_t __a, float32x4_t __b)
7471 return __builtin_aarch64_facltv4sf_uss (__a, __b);
7474 __extension__ extern __inline uint64x2_t
7475 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7476 vcaltq_f64 (float64x2_t __a, float64x2_t __b)
7478 return __builtin_aarch64_facltv2df_uss (__a, __b);
7481 __extension__ extern __inline uint32_t
7482 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7483 vcalts_f32 (float32_t __a, float32_t __b)
7485 return __builtin_aarch64_facltsf_uss (__a, __b);
7488 /* vceq - vector. */
7490 __extension__ extern __inline uint32x2_t
7491 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7492 vceq_f32 (float32x2_t __a, float32x2_t __b)
7494 return (uint32x2_t) (__a == __b);
7497 __extension__ extern __inline uint64x1_t
7498 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7499 vceq_f64 (float64x1_t __a, float64x1_t __b)
7501 return (uint64x1_t) (__a == __b);
7504 __extension__ extern __inline uint8x8_t
7505 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7506 vceq_p8 (poly8x8_t __a, poly8x8_t __b)
7508 return (uint8x8_t) (__a == __b);
7511 __extension__ extern __inline uint64x1_t
7512 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7513 vceq_p64 (poly64x1_t __a, poly64x1_t __b)
7515 return (uint64x1_t) (__a == __b);
7518 __extension__ extern __inline uint8x8_t
7519 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7520 vceq_s8 (int8x8_t __a, int8x8_t __b)
7522 return (uint8x8_t) (__a == __b);
7525 __extension__ extern __inline uint16x4_t
7526 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7527 vceq_s16 (int16x4_t __a, int16x4_t __b)
7529 return (uint16x4_t) (__a == __b);
7532 __extension__ extern __inline uint32x2_t
7533 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7534 vceq_s32 (int32x2_t __a, int32x2_t __b)
7536 return (uint32x2_t) (__a == __b);
7539 __extension__ extern __inline uint64x1_t
7540 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7541 vceq_s64 (int64x1_t __a, int64x1_t __b)
7543 return (uint64x1_t) (__a == __b);
7546 __extension__ extern __inline uint8x8_t
7547 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7548 vceq_u8 (uint8x8_t __a, uint8x8_t __b)
7550 return (__a == __b);
7553 __extension__ extern __inline uint16x4_t
7554 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7555 vceq_u16 (uint16x4_t __a, uint16x4_t __b)
7557 return (__a == __b);
7560 __extension__ extern __inline uint32x2_t
7561 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7562 vceq_u32 (uint32x2_t __a, uint32x2_t __b)
7564 return (__a == __b);
7567 __extension__ extern __inline uint64x1_t
7568 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7569 vceq_u64 (uint64x1_t __a, uint64x1_t __b)
7571 return (__a == __b);
7574 __extension__ extern __inline uint32x4_t
7575 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7576 vceqq_f32 (float32x4_t __a, float32x4_t __b)
7578 return (uint32x4_t) (__a == __b);
7581 __extension__ extern __inline uint64x2_t
7582 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7583 vceqq_f64 (float64x2_t __a, float64x2_t __b)
7585 return (uint64x2_t) (__a == __b);
7588 __extension__ extern __inline uint8x16_t
7589 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7590 vceqq_p8 (poly8x16_t __a, poly8x16_t __b)
7592 return (uint8x16_t) (__a == __b);
7595 __extension__ extern __inline uint8x16_t
7596 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7597 vceqq_s8 (int8x16_t __a, int8x16_t __b)
7599 return (uint8x16_t) (__a == __b);
7602 __extension__ extern __inline uint16x8_t
7603 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7604 vceqq_s16 (int16x8_t __a, int16x8_t __b)
7606 return (uint16x8_t) (__a == __b);
7609 __extension__ extern __inline uint32x4_t
7610 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7611 vceqq_s32 (int32x4_t __a, int32x4_t __b)
7613 return (uint32x4_t) (__a == __b);
7616 __extension__ extern __inline uint64x2_t
7617 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7618 vceqq_s64 (int64x2_t __a, int64x2_t __b)
7620 return (uint64x2_t) (__a == __b);
7623 __extension__ extern __inline uint8x16_t
7624 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7625 vceqq_u8 (uint8x16_t __a, uint8x16_t __b)
7627 return (__a == __b);
7630 __extension__ extern __inline uint16x8_t
7631 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7632 vceqq_u16 (uint16x8_t __a, uint16x8_t __b)
7634 return (__a == __b);
7637 __extension__ extern __inline uint32x4_t
7638 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7639 vceqq_u32 (uint32x4_t __a, uint32x4_t __b)
7641 return (__a == __b);
7644 __extension__ extern __inline uint64x2_t
7645 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7646 vceqq_u64 (uint64x2_t __a, uint64x2_t __b)
7648 return (__a == __b);
7651 __extension__ extern __inline uint64x2_t
7652 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7653 vceqq_p64 (poly64x2_t __a, poly64x2_t __b)
7655 return (__a == __b);
7658 /* vceq - scalar. */
7660 __extension__ extern __inline uint32_t
7661 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7662 vceqs_f32 (float32_t __a, float32_t __b)
7664 return __a == __b ? -1 : 0;
7667 __extension__ extern __inline uint64_t
7668 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7669 vceqd_s64 (int64_t __a, int64_t __b)
7671 return __a == __b ? -1ll : 0ll;
7674 __extension__ extern __inline uint64_t
7675 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7676 vceqd_u64 (uint64_t __a, uint64_t __b)
7678 return __a == __b ? -1ll : 0ll;
7681 __extension__ extern __inline uint64_t
7682 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7683 vceqd_f64 (float64_t __a, float64_t __b)
7685 return __a == __b ? -1ll : 0ll;
7688 /* vceqz - vector. */
7690 __extension__ extern __inline uint32x2_t
7691 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7692 vceqz_f32 (float32x2_t __a)
7694 return (uint32x2_t) (__a == 0.0f);
7697 __extension__ extern __inline uint64x1_t
7698 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7699 vceqz_f64 (float64x1_t __a)
7701 return (uint64x1_t) (__a == (float64x1_t) {0.0});
7704 __extension__ extern __inline uint8x8_t
7705 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7706 vceqz_p8 (poly8x8_t __a)
7708 return (uint8x8_t) (__a == 0);
7711 __extension__ extern __inline uint8x8_t
7712 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7713 vceqz_s8 (int8x8_t __a)
7715 return (uint8x8_t) (__a == 0);
7718 __extension__ extern __inline uint16x4_t
7719 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7720 vceqz_s16 (int16x4_t __a)
7722 return (uint16x4_t) (__a == 0);
7725 __extension__ extern __inline uint32x2_t
7726 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7727 vceqz_s32 (int32x2_t __a)
7729 return (uint32x2_t) (__a == 0);
7732 __extension__ extern __inline uint64x1_t
7733 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7734 vceqz_s64 (int64x1_t __a)
7736 return (uint64x1_t) (__a == __AARCH64_INT64_C (0));
7739 __extension__ extern __inline uint8x8_t
7740 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7741 vceqz_u8 (uint8x8_t __a)
7743 return (__a == 0);
7746 __extension__ extern __inline uint16x4_t
7747 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7748 vceqz_u16 (uint16x4_t __a)
7750 return (__a == 0);
7753 __extension__ extern __inline uint32x2_t
7754 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7755 vceqz_u32 (uint32x2_t __a)
7757 return (__a == 0);
7760 __extension__ extern __inline uint64x1_t
7761 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7762 vceqz_u64 (uint64x1_t __a)
7764 return (__a == __AARCH64_UINT64_C (0));
7767 __extension__ extern __inline uint64x1_t
7768 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7769 vceqz_p64 (poly64x1_t __a)
7771 return (__a == __AARCH64_UINT64_C (0));
7774 __extension__ extern __inline uint32x4_t
7775 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7776 vceqzq_f32 (float32x4_t __a)
7778 return (uint32x4_t) (__a == 0.0f);
7781 __extension__ extern __inline uint64x2_t
7782 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7783 vceqzq_f64 (float64x2_t __a)
7785 return (uint64x2_t) (__a == 0.0f);
7788 __extension__ extern __inline uint8x16_t
7789 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7790 vceqzq_p8 (poly8x16_t __a)
7792 return (uint8x16_t) (__a == 0);
7795 __extension__ extern __inline uint8x16_t
7796 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7797 vceqzq_s8 (int8x16_t __a)
7799 return (uint8x16_t) (__a == 0);
7802 __extension__ extern __inline uint16x8_t
7803 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7804 vceqzq_s16 (int16x8_t __a)
7806 return (uint16x8_t) (__a == 0);
7809 __extension__ extern __inline uint32x4_t
7810 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7811 vceqzq_s32 (int32x4_t __a)
7813 return (uint32x4_t) (__a == 0);
7816 __extension__ extern __inline uint64x2_t
7817 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7818 vceqzq_s64 (int64x2_t __a)
7820 return (uint64x2_t) (__a == __AARCH64_INT64_C (0));
7823 __extension__ extern __inline uint8x16_t
7824 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7825 vceqzq_u8 (uint8x16_t __a)
7827 return (__a == 0);
7830 __extension__ extern __inline uint16x8_t
7831 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7832 vceqzq_u16 (uint16x8_t __a)
7834 return (__a == 0);
7837 __extension__ extern __inline uint32x4_t
7838 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7839 vceqzq_u32 (uint32x4_t __a)
7841 return (__a == 0);
7844 __extension__ extern __inline uint64x2_t
7845 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7846 vceqzq_u64 (uint64x2_t __a)
7848 return (__a == __AARCH64_UINT64_C (0));
7851 __extension__ extern __inline uint64x2_t
7852 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7853 vceqzq_p64 (poly64x2_t __a)
7855 return (__a == __AARCH64_UINT64_C (0));
7858 /* vceqz - scalar. */
7860 __extension__ extern __inline uint32_t
7861 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7862 vceqzs_f32 (float32_t __a)
7864 return __a == 0.0f ? -1 : 0;
7867 __extension__ extern __inline uint64_t
7868 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7869 vceqzd_s64 (int64_t __a)
7871 return __a == 0 ? -1ll : 0ll;
7874 __extension__ extern __inline uint64_t
7875 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7876 vceqzd_u64 (uint64_t __a)
7878 return __a == 0 ? -1ll : 0ll;
7881 __extension__ extern __inline uint64_t
7882 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7883 vceqzd_f64 (float64_t __a)
7885 return __a == 0.0 ? -1ll : 0ll;
7888 /* vcge - vector. */
7890 __extension__ extern __inline uint32x2_t
7891 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7892 vcge_f32 (float32x2_t __a, float32x2_t __b)
7894 return (uint32x2_t) (__a >= __b);
7897 __extension__ extern __inline uint64x1_t
7898 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7899 vcge_f64 (float64x1_t __a, float64x1_t __b)
7901 return (uint64x1_t) (__a >= __b);
7904 __extension__ extern __inline uint8x8_t
7905 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7906 vcge_s8 (int8x8_t __a, int8x8_t __b)
7908 return (uint8x8_t) (__a >= __b);
7911 __extension__ extern __inline uint16x4_t
7912 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7913 vcge_s16 (int16x4_t __a, int16x4_t __b)
7915 return (uint16x4_t) (__a >= __b);
7918 __extension__ extern __inline uint32x2_t
7919 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7920 vcge_s32 (int32x2_t __a, int32x2_t __b)
7922 return (uint32x2_t) (__a >= __b);
7925 __extension__ extern __inline uint64x1_t
7926 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7927 vcge_s64 (int64x1_t __a, int64x1_t __b)
7929 return (uint64x1_t) (__a >= __b);
7932 __extension__ extern __inline uint8x8_t
7933 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7934 vcge_u8 (uint8x8_t __a, uint8x8_t __b)
7936 return (__a >= __b);
7939 __extension__ extern __inline uint16x4_t
7940 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7941 vcge_u16 (uint16x4_t __a, uint16x4_t __b)
7943 return (__a >= __b);
7946 __extension__ extern __inline uint32x2_t
7947 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7948 vcge_u32 (uint32x2_t __a, uint32x2_t __b)
7950 return (__a >= __b);
7953 __extension__ extern __inline uint64x1_t
7954 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7955 vcge_u64 (uint64x1_t __a, uint64x1_t __b)
7957 return (__a >= __b);
7960 __extension__ extern __inline uint32x4_t
7961 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7962 vcgeq_f32 (float32x4_t __a, float32x4_t __b)
7964 return (uint32x4_t) (__a >= __b);
7967 __extension__ extern __inline uint64x2_t
7968 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7969 vcgeq_f64 (float64x2_t __a, float64x2_t __b)
7971 return (uint64x2_t) (__a >= __b);
7974 __extension__ extern __inline uint8x16_t
7975 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7976 vcgeq_s8 (int8x16_t __a, int8x16_t __b)
7978 return (uint8x16_t) (__a >= __b);
7981 __extension__ extern __inline uint16x8_t
7982 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7983 vcgeq_s16 (int16x8_t __a, int16x8_t __b)
7985 return (uint16x8_t) (__a >= __b);
7988 __extension__ extern __inline uint32x4_t
7989 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7990 vcgeq_s32 (int32x4_t __a, int32x4_t __b)
7992 return (uint32x4_t) (__a >= __b);
7995 __extension__ extern __inline uint64x2_t
7996 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7997 vcgeq_s64 (int64x2_t __a, int64x2_t __b)
7999 return (uint64x2_t) (__a >= __b);
8002 __extension__ extern __inline uint8x16_t
8003 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8004 vcgeq_u8 (uint8x16_t __a, uint8x16_t __b)
8006 return (__a >= __b);
8009 __extension__ extern __inline uint16x8_t
8010 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8011 vcgeq_u16 (uint16x8_t __a, uint16x8_t __b)
8013 return (__a >= __b);
8016 __extension__ extern __inline uint32x4_t
8017 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8018 vcgeq_u32 (uint32x4_t __a, uint32x4_t __b)
8020 return (__a >= __b);
8023 __extension__ extern __inline uint64x2_t
8024 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8025 vcgeq_u64 (uint64x2_t __a, uint64x2_t __b)
8027 return (__a >= __b);
8030 /* vcge - scalar. */
8032 __extension__ extern __inline uint32_t
8033 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8034 vcges_f32 (float32_t __a, float32_t __b)
8036 return __a >= __b ? -1 : 0;
8039 __extension__ extern __inline uint64_t
8040 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8041 vcged_s64 (int64_t __a, int64_t __b)
8043 return __a >= __b ? -1ll : 0ll;
8046 __extension__ extern __inline uint64_t
8047 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8048 vcged_u64 (uint64_t __a, uint64_t __b)
8050 return __a >= __b ? -1ll : 0ll;
8053 __extension__ extern __inline uint64_t
8054 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8055 vcged_f64 (float64_t __a, float64_t __b)
8057 return __a >= __b ? -1ll : 0ll;
8060 /* vcgez - vector. */
8062 __extension__ extern __inline uint32x2_t
8063 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8064 vcgez_f32 (float32x2_t __a)
8066 return (uint32x2_t) (__a >= 0.0f);
8069 __extension__ extern __inline uint64x1_t
8070 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8071 vcgez_f64 (float64x1_t __a)
8073 return (uint64x1_t) (__a[0] >= (float64x1_t) {0.0});
8076 __extension__ extern __inline uint8x8_t
8077 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8078 vcgez_s8 (int8x8_t __a)
8080 return (uint8x8_t) (__a >= 0);
8083 __extension__ extern __inline uint16x4_t
8084 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8085 vcgez_s16 (int16x4_t __a)
8087 return (uint16x4_t) (__a >= 0);
8090 __extension__ extern __inline uint32x2_t
8091 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8092 vcgez_s32 (int32x2_t __a)
8094 return (uint32x2_t) (__a >= 0);
8097 __extension__ extern __inline uint64x1_t
8098 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8099 vcgez_s64 (int64x1_t __a)
8101 return (uint64x1_t) (__a >= __AARCH64_INT64_C (0));
8104 __extension__ extern __inline uint32x4_t
8105 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8106 vcgezq_f32 (float32x4_t __a)
8108 return (uint32x4_t) (__a >= 0.0f);
8111 __extension__ extern __inline uint64x2_t
8112 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8113 vcgezq_f64 (float64x2_t __a)
8115 return (uint64x2_t) (__a >= 0.0);
8118 __extension__ extern __inline uint8x16_t
8119 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8120 vcgezq_s8 (int8x16_t __a)
8122 return (uint8x16_t) (__a >= 0);
8125 __extension__ extern __inline uint16x8_t
8126 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8127 vcgezq_s16 (int16x8_t __a)
8129 return (uint16x8_t) (__a >= 0);
8132 __extension__ extern __inline uint32x4_t
8133 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8134 vcgezq_s32 (int32x4_t __a)
8136 return (uint32x4_t) (__a >= 0);
8139 __extension__ extern __inline uint64x2_t
8140 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8141 vcgezq_s64 (int64x2_t __a)
8143 return (uint64x2_t) (__a >= __AARCH64_INT64_C (0));
8146 /* vcgez - scalar. */
8148 __extension__ extern __inline uint32_t
8149 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8150 vcgezs_f32 (float32_t __a)
8152 return __a >= 0.0f ? -1 : 0;
8155 __extension__ extern __inline uint64_t
8156 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8157 vcgezd_s64 (int64_t __a)
8159 return __a >= 0 ? -1ll : 0ll;
8162 __extension__ extern __inline uint64_t
8163 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8164 vcgezd_f64 (float64_t __a)
8166 return __a >= 0.0 ? -1ll : 0ll;
8169 /* vcgt - vector. */
8171 __extension__ extern __inline uint32x2_t
8172 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8173 vcgt_f32 (float32x2_t __a, float32x2_t __b)
8175 return (uint32x2_t) (__a > __b);
8178 __extension__ extern __inline uint64x1_t
8179 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8180 vcgt_f64 (float64x1_t __a, float64x1_t __b)
8182 return (uint64x1_t) (__a > __b);
8185 __extension__ extern __inline uint8x8_t
8186 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8187 vcgt_s8 (int8x8_t __a, int8x8_t __b)
8189 return (uint8x8_t) (__a > __b);
8192 __extension__ extern __inline uint16x4_t
8193 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8194 vcgt_s16 (int16x4_t __a, int16x4_t __b)
8196 return (uint16x4_t) (__a > __b);
8199 __extension__ extern __inline uint32x2_t
8200 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8201 vcgt_s32 (int32x2_t __a, int32x2_t __b)
8203 return (uint32x2_t) (__a > __b);
8206 __extension__ extern __inline uint64x1_t
8207 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8208 vcgt_s64 (int64x1_t __a, int64x1_t __b)
8210 return (uint64x1_t) (__a > __b);
8213 __extension__ extern __inline uint8x8_t
8214 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8215 vcgt_u8 (uint8x8_t __a, uint8x8_t __b)
8217 return (__a > __b);
8220 __extension__ extern __inline uint16x4_t
8221 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8222 vcgt_u16 (uint16x4_t __a, uint16x4_t __b)
8224 return (__a > __b);
8227 __extension__ extern __inline uint32x2_t
8228 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8229 vcgt_u32 (uint32x2_t __a, uint32x2_t __b)
8231 return (__a > __b);
8234 __extension__ extern __inline uint64x1_t
8235 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8236 vcgt_u64 (uint64x1_t __a, uint64x1_t __b)
8238 return (__a > __b);
8241 __extension__ extern __inline uint32x4_t
8242 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8243 vcgtq_f32 (float32x4_t __a, float32x4_t __b)
8245 return (uint32x4_t) (__a > __b);
8248 __extension__ extern __inline uint64x2_t
8249 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8250 vcgtq_f64 (float64x2_t __a, float64x2_t __b)
8252 return (uint64x2_t) (__a > __b);
8255 __extension__ extern __inline uint8x16_t
8256 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8257 vcgtq_s8 (int8x16_t __a, int8x16_t __b)
8259 return (uint8x16_t) (__a > __b);
8262 __extension__ extern __inline uint16x8_t
8263 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8264 vcgtq_s16 (int16x8_t __a, int16x8_t __b)
8266 return (uint16x8_t) (__a > __b);
8269 __extension__ extern __inline uint32x4_t
8270 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8271 vcgtq_s32 (int32x4_t __a, int32x4_t __b)
8273 return (uint32x4_t) (__a > __b);
8276 __extension__ extern __inline uint64x2_t
8277 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8278 vcgtq_s64 (int64x2_t __a, int64x2_t __b)
8280 return (uint64x2_t) (__a > __b);
8283 __extension__ extern __inline uint8x16_t
8284 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8285 vcgtq_u8 (uint8x16_t __a, uint8x16_t __b)
8287 return (__a > __b);
8290 __extension__ extern __inline uint16x8_t
8291 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8292 vcgtq_u16 (uint16x8_t __a, uint16x8_t __b)
8294 return (__a > __b);
8297 __extension__ extern __inline uint32x4_t
8298 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8299 vcgtq_u32 (uint32x4_t __a, uint32x4_t __b)
8301 return (__a > __b);
8304 __extension__ extern __inline uint64x2_t
8305 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8306 vcgtq_u64 (uint64x2_t __a, uint64x2_t __b)
8308 return (__a > __b);
8311 /* vcgt - scalar. */
8313 __extension__ extern __inline uint32_t
8314 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8315 vcgts_f32 (float32_t __a, float32_t __b)
8317 return __a > __b ? -1 : 0;
8320 __extension__ extern __inline uint64_t
8321 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8322 vcgtd_s64 (int64_t __a, int64_t __b)
8324 return __a > __b ? -1ll : 0ll;
8327 __extension__ extern __inline uint64_t
8328 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8329 vcgtd_u64 (uint64_t __a, uint64_t __b)
8331 return __a > __b ? -1ll : 0ll;
8334 __extension__ extern __inline uint64_t
8335 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8336 vcgtd_f64 (float64_t __a, float64_t __b)
8338 return __a > __b ? -1ll : 0ll;
8341 /* vcgtz - vector. */
8343 __extension__ extern __inline uint32x2_t
8344 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8345 vcgtz_f32 (float32x2_t __a)
8347 return (uint32x2_t) (__a > 0.0f);
8350 __extension__ extern __inline uint64x1_t
8351 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8352 vcgtz_f64 (float64x1_t __a)
8354 return (uint64x1_t) (__a > (float64x1_t) {0.0});
8357 __extension__ extern __inline uint8x8_t
8358 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8359 vcgtz_s8 (int8x8_t __a)
8361 return (uint8x8_t) (__a > 0);
8364 __extension__ extern __inline uint16x4_t
8365 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8366 vcgtz_s16 (int16x4_t __a)
8368 return (uint16x4_t) (__a > 0);
8371 __extension__ extern __inline uint32x2_t
8372 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8373 vcgtz_s32 (int32x2_t __a)
8375 return (uint32x2_t) (__a > 0);
8378 __extension__ extern __inline uint64x1_t
8379 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8380 vcgtz_s64 (int64x1_t __a)
8382 return (uint64x1_t) (__a > __AARCH64_INT64_C (0));
8385 __extension__ extern __inline uint32x4_t
8386 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8387 vcgtzq_f32 (float32x4_t __a)
8389 return (uint32x4_t) (__a > 0.0f);
8392 __extension__ extern __inline uint64x2_t
8393 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8394 vcgtzq_f64 (float64x2_t __a)
8396 return (uint64x2_t) (__a > 0.0);
8399 __extension__ extern __inline uint8x16_t
8400 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8401 vcgtzq_s8 (int8x16_t __a)
8403 return (uint8x16_t) (__a > 0);
8406 __extension__ extern __inline uint16x8_t
8407 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8408 vcgtzq_s16 (int16x8_t __a)
8410 return (uint16x8_t) (__a > 0);
8413 __extension__ extern __inline uint32x4_t
8414 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8415 vcgtzq_s32 (int32x4_t __a)
8417 return (uint32x4_t) (__a > 0);
8420 __extension__ extern __inline uint64x2_t
8421 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8422 vcgtzq_s64 (int64x2_t __a)
8424 return (uint64x2_t) (__a > __AARCH64_INT64_C (0));
8427 /* vcgtz - scalar. */
8429 __extension__ extern __inline uint32_t
8430 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8431 vcgtzs_f32 (float32_t __a)
8433 return __a > 0.0f ? -1 : 0;
8436 __extension__ extern __inline uint64_t
8437 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8438 vcgtzd_s64 (int64_t __a)
8440 return __a > 0 ? -1ll : 0ll;
8443 __extension__ extern __inline uint64_t
8444 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8445 vcgtzd_f64 (float64_t __a)
8447 return __a > 0.0 ? -1ll : 0ll;
8450 /* vcle - vector. */
8452 __extension__ extern __inline uint32x2_t
8453 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8454 vcle_f32 (float32x2_t __a, float32x2_t __b)
8456 return (uint32x2_t) (__a <= __b);
8459 __extension__ extern __inline uint64x1_t
8460 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8461 vcle_f64 (float64x1_t __a, float64x1_t __b)
8463 return (uint64x1_t) (__a <= __b);
8466 __extension__ extern __inline uint8x8_t
8467 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8468 vcle_s8 (int8x8_t __a, int8x8_t __b)
8470 return (uint8x8_t) (__a <= __b);
8473 __extension__ extern __inline uint16x4_t
8474 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8475 vcle_s16 (int16x4_t __a, int16x4_t __b)
8477 return (uint16x4_t) (__a <= __b);
8480 __extension__ extern __inline uint32x2_t
8481 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8482 vcle_s32 (int32x2_t __a, int32x2_t __b)
8484 return (uint32x2_t) (__a <= __b);
8487 __extension__ extern __inline uint64x1_t
8488 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8489 vcle_s64 (int64x1_t __a, int64x1_t __b)
8491 return (uint64x1_t) (__a <= __b);
8494 __extension__ extern __inline uint8x8_t
8495 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8496 vcle_u8 (uint8x8_t __a, uint8x8_t __b)
8498 return (__a <= __b);
8501 __extension__ extern __inline uint16x4_t
8502 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8503 vcle_u16 (uint16x4_t __a, uint16x4_t __b)
8505 return (__a <= __b);
8508 __extension__ extern __inline uint32x2_t
8509 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8510 vcle_u32 (uint32x2_t __a, uint32x2_t __b)
8512 return (__a <= __b);
8515 __extension__ extern __inline uint64x1_t
8516 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8517 vcle_u64 (uint64x1_t __a, uint64x1_t __b)
8519 return (__a <= __b);
8522 __extension__ extern __inline uint32x4_t
8523 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8524 vcleq_f32 (float32x4_t __a, float32x4_t __b)
8526 return (uint32x4_t) (__a <= __b);
8529 __extension__ extern __inline uint64x2_t
8530 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8531 vcleq_f64 (float64x2_t __a, float64x2_t __b)
8533 return (uint64x2_t) (__a <= __b);
8536 __extension__ extern __inline uint8x16_t
8537 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8538 vcleq_s8 (int8x16_t __a, int8x16_t __b)
8540 return (uint8x16_t) (__a <= __b);
8543 __extension__ extern __inline uint16x8_t
8544 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8545 vcleq_s16 (int16x8_t __a, int16x8_t __b)
8547 return (uint16x8_t) (__a <= __b);
8550 __extension__ extern __inline uint32x4_t
8551 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8552 vcleq_s32 (int32x4_t __a, int32x4_t __b)
8554 return (uint32x4_t) (__a <= __b);
8557 __extension__ extern __inline uint64x2_t
8558 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8559 vcleq_s64 (int64x2_t __a, int64x2_t __b)
8561 return (uint64x2_t) (__a <= __b);
8564 __extension__ extern __inline uint8x16_t
8565 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8566 vcleq_u8 (uint8x16_t __a, uint8x16_t __b)
8568 return (__a <= __b);
8571 __extension__ extern __inline uint16x8_t
8572 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8573 vcleq_u16 (uint16x8_t __a, uint16x8_t __b)
8575 return (__a <= __b);
8578 __extension__ extern __inline uint32x4_t
8579 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8580 vcleq_u32 (uint32x4_t __a, uint32x4_t __b)
8582 return (__a <= __b);
8585 __extension__ extern __inline uint64x2_t
8586 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8587 vcleq_u64 (uint64x2_t __a, uint64x2_t __b)
8589 return (__a <= __b);
8592 /* vcle - scalar. */
8594 __extension__ extern __inline uint32_t
8595 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8596 vcles_f32 (float32_t __a, float32_t __b)
8598 return __a <= __b ? -1 : 0;
8601 __extension__ extern __inline uint64_t
8602 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8603 vcled_s64 (int64_t __a, int64_t __b)
8605 return __a <= __b ? -1ll : 0ll;
8608 __extension__ extern __inline uint64_t
8609 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8610 vcled_u64 (uint64_t __a, uint64_t __b)
8612 return __a <= __b ? -1ll : 0ll;
8615 __extension__ extern __inline uint64_t
8616 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8617 vcled_f64 (float64_t __a, float64_t __b)
8619 return __a <= __b ? -1ll : 0ll;
8622 /* vclez - vector. */
8624 __extension__ extern __inline uint32x2_t
8625 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8626 vclez_f32 (float32x2_t __a)
8628 return (uint32x2_t) (__a <= 0.0f);
8631 __extension__ extern __inline uint64x1_t
8632 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8633 vclez_f64 (float64x1_t __a)
8635 return (uint64x1_t) (__a <= (float64x1_t) {0.0});
8638 __extension__ extern __inline uint8x8_t
8639 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8640 vclez_s8 (int8x8_t __a)
8642 return (uint8x8_t) (__a <= 0);
8645 __extension__ extern __inline uint16x4_t
8646 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8647 vclez_s16 (int16x4_t __a)
8649 return (uint16x4_t) (__a <= 0);
8652 __extension__ extern __inline uint32x2_t
8653 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8654 vclez_s32 (int32x2_t __a)
8656 return (uint32x2_t) (__a <= 0);
8659 __extension__ extern __inline uint64x1_t
8660 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8661 vclez_s64 (int64x1_t __a)
8663 return (uint64x1_t) (__a <= __AARCH64_INT64_C (0));
8666 __extension__ extern __inline uint32x4_t
8667 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8668 vclezq_f32 (float32x4_t __a)
8670 return (uint32x4_t) (__a <= 0.0f);
8673 __extension__ extern __inline uint64x2_t
8674 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8675 vclezq_f64 (float64x2_t __a)
8677 return (uint64x2_t) (__a <= 0.0);
8680 __extension__ extern __inline uint8x16_t
8681 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8682 vclezq_s8 (int8x16_t __a)
8684 return (uint8x16_t) (__a <= 0);
8687 __extension__ extern __inline uint16x8_t
8688 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8689 vclezq_s16 (int16x8_t __a)
8691 return (uint16x8_t) (__a <= 0);
8694 __extension__ extern __inline uint32x4_t
8695 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8696 vclezq_s32 (int32x4_t __a)
8698 return (uint32x4_t) (__a <= 0);
8701 __extension__ extern __inline uint64x2_t
8702 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8703 vclezq_s64 (int64x2_t __a)
8705 return (uint64x2_t) (__a <= __AARCH64_INT64_C (0));
8708 /* vclez - scalar. */
8710 __extension__ extern __inline uint32_t
8711 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8712 vclezs_f32 (float32_t __a)
8714 return __a <= 0.0f ? -1 : 0;
8717 __extension__ extern __inline uint64_t
8718 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8719 vclezd_s64 (int64_t __a)
8721 return __a <= 0 ? -1ll : 0ll;
8724 __extension__ extern __inline uint64_t
8725 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8726 vclezd_f64 (float64_t __a)
8728 return __a <= 0.0 ? -1ll : 0ll;
8731 /* vclt - vector. */
8733 __extension__ extern __inline uint32x2_t
8734 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8735 vclt_f32 (float32x2_t __a, float32x2_t __b)
8737 return (uint32x2_t) (__a < __b);
8740 __extension__ extern __inline uint64x1_t
8741 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8742 vclt_f64 (float64x1_t __a, float64x1_t __b)
8744 return (uint64x1_t) (__a < __b);
8747 __extension__ extern __inline uint8x8_t
8748 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8749 vclt_s8 (int8x8_t __a, int8x8_t __b)
8751 return (uint8x8_t) (__a < __b);
8754 __extension__ extern __inline uint16x4_t
8755 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8756 vclt_s16 (int16x4_t __a, int16x4_t __b)
8758 return (uint16x4_t) (__a < __b);
8761 __extension__ extern __inline uint32x2_t
8762 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8763 vclt_s32 (int32x2_t __a, int32x2_t __b)
8765 return (uint32x2_t) (__a < __b);
8768 __extension__ extern __inline uint64x1_t
8769 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8770 vclt_s64 (int64x1_t __a, int64x1_t __b)
8772 return (uint64x1_t) (__a < __b);
8775 __extension__ extern __inline uint8x8_t
8776 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8777 vclt_u8 (uint8x8_t __a, uint8x8_t __b)
8779 return (__a < __b);
8782 __extension__ extern __inline uint16x4_t
8783 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8784 vclt_u16 (uint16x4_t __a, uint16x4_t __b)
8786 return (__a < __b);
8789 __extension__ extern __inline uint32x2_t
8790 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8791 vclt_u32 (uint32x2_t __a, uint32x2_t __b)
8793 return (__a < __b);
8796 __extension__ extern __inline uint64x1_t
8797 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8798 vclt_u64 (uint64x1_t __a, uint64x1_t __b)
8800 return (__a < __b);
8803 __extension__ extern __inline uint32x4_t
8804 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8805 vcltq_f32 (float32x4_t __a, float32x4_t __b)
8807 return (uint32x4_t) (__a < __b);
8810 __extension__ extern __inline uint64x2_t
8811 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8812 vcltq_f64 (float64x2_t __a, float64x2_t __b)
8814 return (uint64x2_t) (__a < __b);
8817 __extension__ extern __inline uint8x16_t
8818 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8819 vcltq_s8 (int8x16_t __a, int8x16_t __b)
8821 return (uint8x16_t) (__a < __b);
8824 __extension__ extern __inline uint16x8_t
8825 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8826 vcltq_s16 (int16x8_t __a, int16x8_t __b)
8828 return (uint16x8_t) (__a < __b);
8831 __extension__ extern __inline uint32x4_t
8832 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8833 vcltq_s32 (int32x4_t __a, int32x4_t __b)
8835 return (uint32x4_t) (__a < __b);
8838 __extension__ extern __inline uint64x2_t
8839 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8840 vcltq_s64 (int64x2_t __a, int64x2_t __b)
8842 return (uint64x2_t) (__a < __b);
8845 __extension__ extern __inline uint8x16_t
8846 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8847 vcltq_u8 (uint8x16_t __a, uint8x16_t __b)
8849 return (__a < __b);
8852 __extension__ extern __inline uint16x8_t
8853 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8854 vcltq_u16 (uint16x8_t __a, uint16x8_t __b)
8856 return (__a < __b);
8859 __extension__ extern __inline uint32x4_t
8860 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8861 vcltq_u32 (uint32x4_t __a, uint32x4_t __b)
8863 return (__a < __b);
8866 __extension__ extern __inline uint64x2_t
8867 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8868 vcltq_u64 (uint64x2_t __a, uint64x2_t __b)
8870 return (__a < __b);
8873 /* vclt - scalar. */
8875 __extension__ extern __inline uint32_t
8876 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8877 vclts_f32 (float32_t __a, float32_t __b)
8879 return __a < __b ? -1 : 0;
8882 __extension__ extern __inline uint64_t
8883 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8884 vcltd_s64 (int64_t __a, int64_t __b)
8886 return __a < __b ? -1ll : 0ll;
8889 __extension__ extern __inline uint64_t
8890 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8891 vcltd_u64 (uint64_t __a, uint64_t __b)
8893 return __a < __b ? -1ll : 0ll;
8896 __extension__ extern __inline uint64_t
8897 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8898 vcltd_f64 (float64_t __a, float64_t __b)
8900 return __a < __b ? -1ll : 0ll;
8903 /* vcltz - vector. */
8905 __extension__ extern __inline uint32x2_t
8906 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8907 vcltz_f32 (float32x2_t __a)
8909 return (uint32x2_t) (__a < 0.0f);
8912 __extension__ extern __inline uint64x1_t
8913 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8914 vcltz_f64 (float64x1_t __a)
8916 return (uint64x1_t) (__a < (float64x1_t) {0.0});
8919 __extension__ extern __inline uint8x8_t
8920 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8921 vcltz_s8 (int8x8_t __a)
8923 return (uint8x8_t) (__a < 0);
8926 __extension__ extern __inline uint16x4_t
8927 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8928 vcltz_s16 (int16x4_t __a)
8930 return (uint16x4_t) (__a < 0);
8933 __extension__ extern __inline uint32x2_t
8934 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8935 vcltz_s32 (int32x2_t __a)
8937 return (uint32x2_t) (__a < 0);
8940 __extension__ extern __inline uint64x1_t
8941 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8942 vcltz_s64 (int64x1_t __a)
8944 return (uint64x1_t) (__a < __AARCH64_INT64_C (0));
8947 __extension__ extern __inline uint32x4_t
8948 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8949 vcltzq_f32 (float32x4_t __a)
8951 return (uint32x4_t) (__a < 0.0f);
8954 __extension__ extern __inline uint64x2_t
8955 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8956 vcltzq_f64 (float64x2_t __a)
8958 return (uint64x2_t) (__a < 0.0);
8961 __extension__ extern __inline uint8x16_t
8962 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8963 vcltzq_s8 (int8x16_t __a)
8965 return (uint8x16_t) (__a < 0);
8968 __extension__ extern __inline uint16x8_t
8969 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8970 vcltzq_s16 (int16x8_t __a)
8972 return (uint16x8_t) (__a < 0);
8975 __extension__ extern __inline uint32x4_t
8976 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8977 vcltzq_s32 (int32x4_t __a)
8979 return (uint32x4_t) (__a < 0);
8982 __extension__ extern __inline uint64x2_t
8983 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8984 vcltzq_s64 (int64x2_t __a)
8986 return (uint64x2_t) (__a < __AARCH64_INT64_C (0));
8989 /* vcltz - scalar. */
8991 __extension__ extern __inline uint32_t
8992 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8993 vcltzs_f32 (float32_t __a)
8995 return __a < 0.0f ? -1 : 0;
8998 __extension__ extern __inline uint64_t
8999 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9000 vcltzd_s64 (int64_t __a)
9002 return __a < 0 ? -1ll : 0ll;
9005 __extension__ extern __inline uint64_t
9006 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9007 vcltzd_f64 (float64_t __a)
9009 return __a < 0.0 ? -1ll : 0ll;
9012 /* vcls. */
9014 __extension__ extern __inline int8x8_t
9015 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9016 vcls_s8 (int8x8_t __a)
9018 return __builtin_aarch64_clrsbv8qi (__a);
9021 __extension__ extern __inline int16x4_t
9022 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9023 vcls_s16 (int16x4_t __a)
9025 return __builtin_aarch64_clrsbv4hi (__a);
9028 __extension__ extern __inline int32x2_t
9029 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9030 vcls_s32 (int32x2_t __a)
9032 return __builtin_aarch64_clrsbv2si (__a);
9035 __extension__ extern __inline int8x16_t
9036 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9037 vclsq_s8 (int8x16_t __a)
9039 return __builtin_aarch64_clrsbv16qi (__a);
9042 __extension__ extern __inline int16x8_t
9043 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9044 vclsq_s16 (int16x8_t __a)
9046 return __builtin_aarch64_clrsbv8hi (__a);
9049 __extension__ extern __inline int32x4_t
9050 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9051 vclsq_s32 (int32x4_t __a)
9053 return __builtin_aarch64_clrsbv4si (__a);
9056 __extension__ extern __inline int8x8_t
9057 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9058 vcls_u8 (uint8x8_t __a)
9060 return __builtin_aarch64_clrsbv8qi ((int8x8_t) __a);
9063 __extension__ extern __inline int16x4_t
9064 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9065 vcls_u16 (uint16x4_t __a)
9067 return __builtin_aarch64_clrsbv4hi ((int16x4_t) __a);
9070 __extension__ extern __inline int32x2_t
9071 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9072 vcls_u32 (uint32x2_t __a)
9074 return __builtin_aarch64_clrsbv2si ((int32x2_t) __a);
9077 __extension__ extern __inline int8x16_t
9078 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9079 vclsq_u8 (uint8x16_t __a)
9081 return __builtin_aarch64_clrsbv16qi ((int8x16_t) __a);
9084 __extension__ extern __inline int16x8_t
9085 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9086 vclsq_u16 (uint16x8_t __a)
9088 return __builtin_aarch64_clrsbv8hi ((int16x8_t) __a);
9091 __extension__ extern __inline int32x4_t
9092 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9093 vclsq_u32 (uint32x4_t __a)
9095 return __builtin_aarch64_clrsbv4si ((int32x4_t) __a);
9098 /* vclz. */
9100 __extension__ extern __inline int8x8_t
9101 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9102 vclz_s8 (int8x8_t __a)
9104 return __builtin_aarch64_clzv8qi (__a);
9107 __extension__ extern __inline int16x4_t
9108 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9109 vclz_s16 (int16x4_t __a)
9111 return __builtin_aarch64_clzv4hi (__a);
9114 __extension__ extern __inline int32x2_t
9115 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9116 vclz_s32 (int32x2_t __a)
9118 return __builtin_aarch64_clzv2si (__a);
9121 __extension__ extern __inline uint8x8_t
9122 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9123 vclz_u8 (uint8x8_t __a)
9125 return (uint8x8_t)__builtin_aarch64_clzv8qi ((int8x8_t)__a);
9128 __extension__ extern __inline uint16x4_t
9129 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9130 vclz_u16 (uint16x4_t __a)
9132 return (uint16x4_t)__builtin_aarch64_clzv4hi ((int16x4_t)__a);
9135 __extension__ extern __inline uint32x2_t
9136 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9137 vclz_u32 (uint32x2_t __a)
9139 return (uint32x2_t)__builtin_aarch64_clzv2si ((int32x2_t)__a);
9142 __extension__ extern __inline int8x16_t
9143 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9144 vclzq_s8 (int8x16_t __a)
9146 return __builtin_aarch64_clzv16qi (__a);
9149 __extension__ extern __inline int16x8_t
9150 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9151 vclzq_s16 (int16x8_t __a)
9153 return __builtin_aarch64_clzv8hi (__a);
9156 __extension__ extern __inline int32x4_t
9157 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9158 vclzq_s32 (int32x4_t __a)
9160 return __builtin_aarch64_clzv4si (__a);
9163 __extension__ extern __inline uint8x16_t
9164 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9165 vclzq_u8 (uint8x16_t __a)
9167 return (uint8x16_t)__builtin_aarch64_clzv16qi ((int8x16_t)__a);
9170 __extension__ extern __inline uint16x8_t
9171 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9172 vclzq_u16 (uint16x8_t __a)
9174 return (uint16x8_t)__builtin_aarch64_clzv8hi ((int16x8_t)__a);
9177 __extension__ extern __inline uint32x4_t
9178 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9179 vclzq_u32 (uint32x4_t __a)
9181 return (uint32x4_t)__builtin_aarch64_clzv4si ((int32x4_t)__a);
9184 /* vcnt. */
9186 __extension__ extern __inline poly8x8_t
9187 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9188 vcnt_p8 (poly8x8_t __a)
9190 return (poly8x8_t) __builtin_aarch64_popcountv8qi ((int8x8_t) __a);
9193 __extension__ extern __inline int8x8_t
9194 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9195 vcnt_s8 (int8x8_t __a)
9197 return __builtin_aarch64_popcountv8qi (__a);
9200 __extension__ extern __inline uint8x8_t
9201 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9202 vcnt_u8 (uint8x8_t __a)
9204 return (uint8x8_t) __builtin_aarch64_popcountv8qi ((int8x8_t) __a);
9207 __extension__ extern __inline poly8x16_t
9208 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9209 vcntq_p8 (poly8x16_t __a)
9211 return (poly8x16_t) __builtin_aarch64_popcountv16qi ((int8x16_t) __a);
9214 __extension__ extern __inline int8x16_t
9215 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9216 vcntq_s8 (int8x16_t __a)
9218 return __builtin_aarch64_popcountv16qi (__a);
9221 __extension__ extern __inline uint8x16_t
9222 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9223 vcntq_u8 (uint8x16_t __a)
9225 return (uint8x16_t) __builtin_aarch64_popcountv16qi ((int8x16_t) __a);
9228 /* vcopy_lane. */
9230 __extension__ extern __inline float32x2_t
9231 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9232 vcopy_lane_f32 (float32x2_t __a, const int __lane1,
9233 float32x2_t __b, const int __lane2)
9235 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
9236 __a, __lane1);
9239 __extension__ extern __inline float64x1_t
9240 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9241 vcopy_lane_f64 (float64x1_t __a, const int __lane1,
9242 float64x1_t __b, const int __lane2)
9244 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
9245 __a, __lane1);
9248 __extension__ extern __inline poly8x8_t
9249 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9250 vcopy_lane_p8 (poly8x8_t __a, const int __lane1,
9251 poly8x8_t __b, const int __lane2)
9253 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
9254 __a, __lane1);
9257 __extension__ extern __inline poly16x4_t
9258 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9259 vcopy_lane_p16 (poly16x4_t __a, const int __lane1,
9260 poly16x4_t __b, const int __lane2)
9262 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
9263 __a, __lane1);
9266 __extension__ extern __inline poly64x1_t
9267 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9268 vcopy_lane_p64 (poly64x1_t __a, const int __lane1,
9269 poly64x1_t __b, const int __lane2)
9271 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
9272 __a, __lane1);
9275 __extension__ extern __inline int8x8_t
9276 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9277 vcopy_lane_s8 (int8x8_t __a, const int __lane1,
9278 int8x8_t __b, const int __lane2)
9280 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
9281 __a, __lane1);
9284 __extension__ extern __inline int16x4_t
9285 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9286 vcopy_lane_s16 (int16x4_t __a, const int __lane1,
9287 int16x4_t __b, const int __lane2)
9289 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
9290 __a, __lane1);
9293 __extension__ extern __inline int32x2_t
9294 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9295 vcopy_lane_s32 (int32x2_t __a, const int __lane1,
9296 int32x2_t __b, const int __lane2)
9298 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
9299 __a, __lane1);
9302 __extension__ extern __inline int64x1_t
9303 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9304 vcopy_lane_s64 (int64x1_t __a, const int __lane1,
9305 int64x1_t __b, const int __lane2)
9307 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
9308 __a, __lane1);
9311 __extension__ extern __inline uint8x8_t
9312 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9313 vcopy_lane_u8 (uint8x8_t __a, const int __lane1,
9314 uint8x8_t __b, const int __lane2)
9316 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
9317 __a, __lane1);
9320 __extension__ extern __inline uint16x4_t
9321 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9322 vcopy_lane_u16 (uint16x4_t __a, const int __lane1,
9323 uint16x4_t __b, const int __lane2)
9325 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
9326 __a, __lane1);
9329 __extension__ extern __inline uint32x2_t
9330 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9331 vcopy_lane_u32 (uint32x2_t __a, const int __lane1,
9332 uint32x2_t __b, const int __lane2)
9334 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
9335 __a, __lane1);
9338 __extension__ extern __inline uint64x1_t
9339 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9340 vcopy_lane_u64 (uint64x1_t __a, const int __lane1,
9341 uint64x1_t __b, const int __lane2)
9343 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
9344 __a, __lane1);
9347 /* vcopy_laneq. */
9349 __extension__ extern __inline float32x2_t
9350 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9351 vcopy_laneq_f32 (float32x2_t __a, const int __lane1,
9352 float32x4_t __b, const int __lane2)
9354 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
9355 __a, __lane1);
9358 __extension__ extern __inline float64x1_t
9359 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9360 vcopy_laneq_f64 (float64x1_t __a, const int __lane1,
9361 float64x2_t __b, const int __lane2)
9363 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
9364 __a, __lane1);
9367 __extension__ extern __inline poly8x8_t
9368 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9369 vcopy_laneq_p8 (poly8x8_t __a, const int __lane1,
9370 poly8x16_t __b, const int __lane2)
9372 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
9373 __a, __lane1);
9376 __extension__ extern __inline poly16x4_t
9377 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9378 vcopy_laneq_p16 (poly16x4_t __a, const int __lane1,
9379 poly16x8_t __b, const int __lane2)
9381 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
9382 __a, __lane1);
9385 __extension__ extern __inline poly64x1_t
9386 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9387 vcopy_laneq_p64 (poly64x1_t __a, const int __lane1,
9388 poly64x2_t __b, const int __lane2)
9390 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
9391 __a, __lane1);
9394 __extension__ extern __inline int8x8_t
9395 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9396 vcopy_laneq_s8 (int8x8_t __a, const int __lane1,
9397 int8x16_t __b, const int __lane2)
9399 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
9400 __a, __lane1);
9403 __extension__ extern __inline int16x4_t
9404 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9405 vcopy_laneq_s16 (int16x4_t __a, const int __lane1,
9406 int16x8_t __b, const int __lane2)
9408 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
9409 __a, __lane1);
9412 __extension__ extern __inline int32x2_t
9413 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9414 vcopy_laneq_s32 (int32x2_t __a, const int __lane1,
9415 int32x4_t __b, const int __lane2)
9417 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
9418 __a, __lane1);
9421 __extension__ extern __inline int64x1_t
9422 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9423 vcopy_laneq_s64 (int64x1_t __a, const int __lane1,
9424 int64x2_t __b, const int __lane2)
9426 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
9427 __a, __lane1);
9430 __extension__ extern __inline uint8x8_t
9431 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9432 vcopy_laneq_u8 (uint8x8_t __a, const int __lane1,
9433 uint8x16_t __b, const int __lane2)
9435 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
9436 __a, __lane1);
9439 __extension__ extern __inline uint16x4_t
9440 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9441 vcopy_laneq_u16 (uint16x4_t __a, const int __lane1,
9442 uint16x8_t __b, const int __lane2)
9444 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
9445 __a, __lane1);
9448 __extension__ extern __inline uint32x2_t
9449 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9450 vcopy_laneq_u32 (uint32x2_t __a, const int __lane1,
9451 uint32x4_t __b, const int __lane2)
9453 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
9454 __a, __lane1);
9457 __extension__ extern __inline uint64x1_t
9458 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9459 vcopy_laneq_u64 (uint64x1_t __a, const int __lane1,
9460 uint64x2_t __b, const int __lane2)
9462 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
9463 __a, __lane1);
9466 /* vcopyq_lane. */
9468 __extension__ extern __inline float32x4_t
9469 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9470 vcopyq_lane_f32 (float32x4_t __a, const int __lane1,
9471 float32x2_t __b, const int __lane2)
9473 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
9474 __a, __lane1);
9477 __extension__ extern __inline float64x2_t
9478 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9479 vcopyq_lane_f64 (float64x2_t __a, const int __lane1,
9480 float64x1_t __b, const int __lane2)
9482 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
9483 __a, __lane1);
9486 __extension__ extern __inline poly8x16_t
9487 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9488 vcopyq_lane_p8 (poly8x16_t __a, const int __lane1,
9489 poly8x8_t __b, const int __lane2)
9491 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
9492 __a, __lane1);
9495 __extension__ extern __inline poly16x8_t
9496 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9497 vcopyq_lane_p16 (poly16x8_t __a, const int __lane1,
9498 poly16x4_t __b, const int __lane2)
9500 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
9501 __a, __lane1);
9504 __extension__ extern __inline poly64x2_t
9505 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9506 vcopyq_lane_p64 (poly64x2_t __a, const int __lane1,
9507 poly64x1_t __b, const int __lane2)
9509 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
9510 __a, __lane1);
9513 __extension__ extern __inline int8x16_t
9514 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9515 vcopyq_lane_s8 (int8x16_t __a, const int __lane1,
9516 int8x8_t __b, const int __lane2)
9518 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
9519 __a, __lane1);
9522 __extension__ extern __inline int16x8_t
9523 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9524 vcopyq_lane_s16 (int16x8_t __a, const int __lane1,
9525 int16x4_t __b, const int __lane2)
9527 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
9528 __a, __lane1);
9531 __extension__ extern __inline int32x4_t
9532 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9533 vcopyq_lane_s32 (int32x4_t __a, const int __lane1,
9534 int32x2_t __b, const int __lane2)
9536 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
9537 __a, __lane1);
9540 __extension__ extern __inline int64x2_t
9541 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9542 vcopyq_lane_s64 (int64x2_t __a, const int __lane1,
9543 int64x1_t __b, const int __lane2)
9545 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
9546 __a, __lane1);
9549 __extension__ extern __inline uint8x16_t
9550 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9551 vcopyq_lane_u8 (uint8x16_t __a, const int __lane1,
9552 uint8x8_t __b, const int __lane2)
9554 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
9555 __a, __lane1);
9558 __extension__ extern __inline uint16x8_t
9559 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9560 vcopyq_lane_u16 (uint16x8_t __a, const int __lane1,
9561 uint16x4_t __b, const int __lane2)
9563 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
9564 __a, __lane1);
9567 __extension__ extern __inline uint32x4_t
9568 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9569 vcopyq_lane_u32 (uint32x4_t __a, const int __lane1,
9570 uint32x2_t __b, const int __lane2)
9572 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
9573 __a, __lane1);
9576 __extension__ extern __inline uint64x2_t
9577 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9578 vcopyq_lane_u64 (uint64x2_t __a, const int __lane1,
9579 uint64x1_t __b, const int __lane2)
9581 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
9582 __a, __lane1);
9585 /* vcopyq_laneq. */
9587 __extension__ extern __inline float32x4_t
9588 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9589 vcopyq_laneq_f32 (float32x4_t __a, const int __lane1,
9590 float32x4_t __b, const int __lane2)
9592 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
9593 __a, __lane1);
9596 __extension__ extern __inline float64x2_t
9597 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9598 vcopyq_laneq_f64 (float64x2_t __a, const int __lane1,
9599 float64x2_t __b, const int __lane2)
9601 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
9602 __a, __lane1);
9605 __extension__ extern __inline poly8x16_t
9606 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9607 vcopyq_laneq_p8 (poly8x16_t __a, const int __lane1,
9608 poly8x16_t __b, const int __lane2)
9610 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
9611 __a, __lane1);
9614 __extension__ extern __inline poly16x8_t
9615 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9616 vcopyq_laneq_p16 (poly16x8_t __a, const int __lane1,
9617 poly16x8_t __b, const int __lane2)
9619 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
9620 __a, __lane1);
9623 __extension__ extern __inline poly64x2_t
9624 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9625 vcopyq_laneq_p64 (poly64x2_t __a, const int __lane1,
9626 poly64x2_t __b, const int __lane2)
9628 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
9629 __a, __lane1);
9632 __extension__ extern __inline int8x16_t
9633 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9634 vcopyq_laneq_s8 (int8x16_t __a, const int __lane1,
9635 int8x16_t __b, const int __lane2)
9637 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
9638 __a, __lane1);
9641 __extension__ extern __inline int16x8_t
9642 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9643 vcopyq_laneq_s16 (int16x8_t __a, const int __lane1,
9644 int16x8_t __b, const int __lane2)
9646 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
9647 __a, __lane1);
9650 __extension__ extern __inline int32x4_t
9651 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9652 vcopyq_laneq_s32 (int32x4_t __a, const int __lane1,
9653 int32x4_t __b, const int __lane2)
9655 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
9656 __a, __lane1);
9659 __extension__ extern __inline int64x2_t
9660 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9661 vcopyq_laneq_s64 (int64x2_t __a, const int __lane1,
9662 int64x2_t __b, const int __lane2)
9664 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
9665 __a, __lane1);
9668 __extension__ extern __inline uint8x16_t
9669 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9670 vcopyq_laneq_u8 (uint8x16_t __a, const int __lane1,
9671 uint8x16_t __b, const int __lane2)
9673 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
9674 __a, __lane1);
9677 __extension__ extern __inline uint16x8_t
9678 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9679 vcopyq_laneq_u16 (uint16x8_t __a, const int __lane1,
9680 uint16x8_t __b, const int __lane2)
9682 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
9683 __a, __lane1);
9686 __extension__ extern __inline uint32x4_t
9687 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9688 vcopyq_laneq_u32 (uint32x4_t __a, const int __lane1,
9689 uint32x4_t __b, const int __lane2)
9691 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
9692 __a, __lane1);
9695 __extension__ extern __inline uint64x2_t
9696 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9697 vcopyq_laneq_u64 (uint64x2_t __a, const int __lane1,
9698 uint64x2_t __b, const int __lane2)
9700 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
9701 __a, __lane1);
9704 /* vcvt (double -> float). */
9706 __extension__ extern __inline float16x4_t
9707 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9708 vcvt_f16_f32 (float32x4_t __a)
9710 return __builtin_aarch64_float_truncate_lo_v4hf (__a);
9713 __extension__ extern __inline float16x8_t
9714 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9715 vcvt_high_f16_f32 (float16x4_t __a, float32x4_t __b)
9717 return __builtin_aarch64_float_truncate_hi_v8hf (__a, __b);
9720 __extension__ extern __inline float32x2_t
9721 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9722 vcvt_f32_f64 (float64x2_t __a)
9724 return __builtin_aarch64_float_truncate_lo_v2sf (__a);
9727 __extension__ extern __inline float32x4_t
9728 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9729 vcvt_high_f32_f64 (float32x2_t __a, float64x2_t __b)
9731 return __builtin_aarch64_float_truncate_hi_v4sf (__a, __b);
9734 /* vcvt (float -> double). */
9736 __extension__ extern __inline float32x4_t
9737 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9738 vcvt_f32_f16 (float16x4_t __a)
9740 return __builtin_aarch64_float_extend_lo_v4sf (__a);
9743 __extension__ extern __inline float64x2_t
9744 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9745 vcvt_f64_f32 (float32x2_t __a)
9748 return __builtin_aarch64_float_extend_lo_v2df (__a);
9751 __extension__ extern __inline float32x4_t
9752 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9753 vcvt_high_f32_f16 (float16x8_t __a)
9755 return __builtin_aarch64_vec_unpacks_hi_v8hf (__a);
9758 __extension__ extern __inline float64x2_t
9759 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9760 vcvt_high_f64_f32 (float32x4_t __a)
9762 return __builtin_aarch64_vec_unpacks_hi_v4sf (__a);
9765 /* vcvt (<u>fixed-point -> float). */
9767 __extension__ extern __inline float64_t
9768 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9769 vcvtd_n_f64_s64 (int64_t __a, const int __b)
9771 return __builtin_aarch64_scvtfdi (__a, __b);
9774 __extension__ extern __inline float64_t
9775 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9776 vcvtd_n_f64_u64 (uint64_t __a, const int __b)
9778 return __builtin_aarch64_ucvtfdi_sus (__a, __b);
9781 __extension__ extern __inline float32_t
9782 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9783 vcvts_n_f32_s32 (int32_t __a, const int __b)
9785 return __builtin_aarch64_scvtfsi (__a, __b);
9788 __extension__ extern __inline float32_t
9789 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9790 vcvts_n_f32_u32 (uint32_t __a, const int __b)
9792 return __builtin_aarch64_ucvtfsi_sus (__a, __b);
9795 __extension__ extern __inline float32x2_t
9796 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9797 vcvt_n_f32_s32 (int32x2_t __a, const int __b)
9799 return __builtin_aarch64_scvtfv2si (__a, __b);
9802 __extension__ extern __inline float32x2_t
9803 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9804 vcvt_n_f32_u32 (uint32x2_t __a, const int __b)
9806 return __builtin_aarch64_ucvtfv2si_sus (__a, __b);
9809 __extension__ extern __inline float64x1_t
9810 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9811 vcvt_n_f64_s64 (int64x1_t __a, const int __b)
9813 return (float64x1_t)
9814 { __builtin_aarch64_scvtfdi (vget_lane_s64 (__a, 0), __b) };
9817 __extension__ extern __inline float64x1_t
9818 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9819 vcvt_n_f64_u64 (uint64x1_t __a, const int __b)
9821 return (float64x1_t)
9822 { __builtin_aarch64_ucvtfdi_sus (vget_lane_u64 (__a, 0), __b) };
9825 __extension__ extern __inline float32x4_t
9826 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9827 vcvtq_n_f32_s32 (int32x4_t __a, const int __b)
9829 return __builtin_aarch64_scvtfv4si (__a, __b);
9832 __extension__ extern __inline float32x4_t
9833 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9834 vcvtq_n_f32_u32 (uint32x4_t __a, const int __b)
9836 return __builtin_aarch64_ucvtfv4si_sus (__a, __b);
9839 __extension__ extern __inline float64x2_t
9840 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9841 vcvtq_n_f64_s64 (int64x2_t __a, const int __b)
9843 return __builtin_aarch64_scvtfv2di (__a, __b);
9846 __extension__ extern __inline float64x2_t
9847 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9848 vcvtq_n_f64_u64 (uint64x2_t __a, const int __b)
9850 return __builtin_aarch64_ucvtfv2di_sus (__a, __b);
9853 /* vcvt (float -> <u>fixed-point). */
9855 __extension__ extern __inline int64_t
9856 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9857 vcvtd_n_s64_f64 (float64_t __a, const int __b)
9859 return __builtin_aarch64_fcvtzsdf (__a, __b);
9862 __extension__ extern __inline uint64_t
9863 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9864 vcvtd_n_u64_f64 (float64_t __a, const int __b)
9866 return __builtin_aarch64_fcvtzudf_uss (__a, __b);
9869 __extension__ extern __inline int32_t
9870 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9871 vcvts_n_s32_f32 (float32_t __a, const int __b)
9873 return __builtin_aarch64_fcvtzssf (__a, __b);
9876 __extension__ extern __inline uint32_t
9877 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9878 vcvts_n_u32_f32 (float32_t __a, const int __b)
9880 return __builtin_aarch64_fcvtzusf_uss (__a, __b);
9883 __extension__ extern __inline int32x2_t
9884 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9885 vcvt_n_s32_f32 (float32x2_t __a, const int __b)
9887 return __builtin_aarch64_fcvtzsv2sf (__a, __b);
9890 __extension__ extern __inline uint32x2_t
9891 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9892 vcvt_n_u32_f32 (float32x2_t __a, const int __b)
9894 return __builtin_aarch64_fcvtzuv2sf_uss (__a, __b);
9897 __extension__ extern __inline int64x1_t
9898 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9899 vcvt_n_s64_f64 (float64x1_t __a, const int __b)
9901 return (int64x1_t)
9902 { __builtin_aarch64_fcvtzsdf (vget_lane_f64 (__a, 0), __b) };
9905 __extension__ extern __inline uint64x1_t
9906 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9907 vcvt_n_u64_f64 (float64x1_t __a, const int __b)
9909 return (uint64x1_t)
9910 { __builtin_aarch64_fcvtzudf_uss (vget_lane_f64 (__a, 0), __b) };
9913 __extension__ extern __inline int32x4_t
9914 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9915 vcvtq_n_s32_f32 (float32x4_t __a, const int __b)
9917 return __builtin_aarch64_fcvtzsv4sf (__a, __b);
9920 __extension__ extern __inline uint32x4_t
9921 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9922 vcvtq_n_u32_f32 (float32x4_t __a, const int __b)
9924 return __builtin_aarch64_fcvtzuv4sf_uss (__a, __b);
9927 __extension__ extern __inline int64x2_t
9928 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9929 vcvtq_n_s64_f64 (float64x2_t __a, const int __b)
9931 return __builtin_aarch64_fcvtzsv2df (__a, __b);
9934 __extension__ extern __inline uint64x2_t
9935 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9936 vcvtq_n_u64_f64 (float64x2_t __a, const int __b)
9938 return __builtin_aarch64_fcvtzuv2df_uss (__a, __b);
9941 /* vcvt (<u>int -> float) */
9943 __extension__ extern __inline float64_t
9944 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9945 vcvtd_f64_s64 (int64_t __a)
9947 return (float64_t) __a;
9950 __extension__ extern __inline float64_t
9951 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9952 vcvtd_f64_u64 (uint64_t __a)
9954 return (float64_t) __a;
9957 __extension__ extern __inline float32_t
9958 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9959 vcvts_f32_s32 (int32_t __a)
9961 return (float32_t) __a;
9964 __extension__ extern __inline float32_t
9965 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9966 vcvts_f32_u32 (uint32_t __a)
9968 return (float32_t) __a;
9971 __extension__ extern __inline float32x2_t
9972 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9973 vcvt_f32_s32 (int32x2_t __a)
9975 return __builtin_aarch64_floatv2siv2sf (__a);
9978 __extension__ extern __inline float32x2_t
9979 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9980 vcvt_f32_u32 (uint32x2_t __a)
9982 return __builtin_aarch64_floatunsv2siv2sf ((int32x2_t) __a);
9985 __extension__ extern __inline float64x1_t
9986 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9987 vcvt_f64_s64 (int64x1_t __a)
9989 return (float64x1_t) { vget_lane_s64 (__a, 0) };
9992 __extension__ extern __inline float64x1_t
9993 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9994 vcvt_f64_u64 (uint64x1_t __a)
9996 return (float64x1_t) { vget_lane_u64 (__a, 0) };
9999 __extension__ extern __inline float32x4_t
10000 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10001 vcvtq_f32_s32 (int32x4_t __a)
10003 return __builtin_aarch64_floatv4siv4sf (__a);
10006 __extension__ extern __inline float32x4_t
10007 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10008 vcvtq_f32_u32 (uint32x4_t __a)
10010 return __builtin_aarch64_floatunsv4siv4sf ((int32x4_t) __a);
10013 __extension__ extern __inline float64x2_t
10014 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10015 vcvtq_f64_s64 (int64x2_t __a)
10017 return __builtin_aarch64_floatv2div2df (__a);
10020 __extension__ extern __inline float64x2_t
10021 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10022 vcvtq_f64_u64 (uint64x2_t __a)
10024 return __builtin_aarch64_floatunsv2div2df ((int64x2_t) __a);
10027 /* vcvt (float -> <u>int) */
10029 __extension__ extern __inline int64_t
10030 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10031 vcvtd_s64_f64 (float64_t __a)
10033 return (int64_t) __a;
10036 __extension__ extern __inline uint64_t
10037 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10038 vcvtd_u64_f64 (float64_t __a)
10040 return (uint64_t) __a;
10043 __extension__ extern __inline int32_t
10044 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10045 vcvts_s32_f32 (float32_t __a)
10047 return (int32_t) __a;
10050 __extension__ extern __inline uint32_t
10051 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10052 vcvts_u32_f32 (float32_t __a)
10054 return (uint32_t) __a;
10057 __extension__ extern __inline int32x2_t
10058 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10059 vcvt_s32_f32 (float32x2_t __a)
10061 return __builtin_aarch64_lbtruncv2sfv2si (__a);
10064 __extension__ extern __inline uint32x2_t
10065 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10066 vcvt_u32_f32 (float32x2_t __a)
10068 return __builtin_aarch64_lbtruncuv2sfv2si_us (__a);
10071 __extension__ extern __inline int32x4_t
10072 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10073 vcvtq_s32_f32 (float32x4_t __a)
10075 return __builtin_aarch64_lbtruncv4sfv4si (__a);
10078 __extension__ extern __inline uint32x4_t
10079 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10080 vcvtq_u32_f32 (float32x4_t __a)
10082 return __builtin_aarch64_lbtruncuv4sfv4si_us (__a);
10085 __extension__ extern __inline int64x1_t
10086 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10087 vcvt_s64_f64 (float64x1_t __a)
10089 return (int64x1_t) {vcvtd_s64_f64 (__a[0])};
10092 __extension__ extern __inline uint64x1_t
10093 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10094 vcvt_u64_f64 (float64x1_t __a)
10096 return (uint64x1_t) {vcvtd_u64_f64 (__a[0])};
10099 __extension__ extern __inline int64x2_t
10100 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10101 vcvtq_s64_f64 (float64x2_t __a)
10103 return __builtin_aarch64_lbtruncv2dfv2di (__a);
10106 __extension__ extern __inline uint64x2_t
10107 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10108 vcvtq_u64_f64 (float64x2_t __a)
10110 return __builtin_aarch64_lbtruncuv2dfv2di_us (__a);
10113 /* vcvta */
10115 __extension__ extern __inline int64_t
10116 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10117 vcvtad_s64_f64 (float64_t __a)
10119 return __builtin_aarch64_lrounddfdi (__a);
10122 __extension__ extern __inline uint64_t
10123 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10124 vcvtad_u64_f64 (float64_t __a)
10126 return __builtin_aarch64_lroundudfdi_us (__a);
10129 __extension__ extern __inline int32_t
10130 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10131 vcvtas_s32_f32 (float32_t __a)
10133 return __builtin_aarch64_lroundsfsi (__a);
10136 __extension__ extern __inline uint32_t
10137 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10138 vcvtas_u32_f32 (float32_t __a)
10140 return __builtin_aarch64_lroundusfsi_us (__a);
10143 __extension__ extern __inline int32x2_t
10144 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10145 vcvta_s32_f32 (float32x2_t __a)
10147 return __builtin_aarch64_lroundv2sfv2si (__a);
10150 __extension__ extern __inline uint32x2_t
10151 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10152 vcvta_u32_f32 (float32x2_t __a)
10154 return __builtin_aarch64_lrounduv2sfv2si_us (__a);
10157 __extension__ extern __inline int32x4_t
10158 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10159 vcvtaq_s32_f32 (float32x4_t __a)
10161 return __builtin_aarch64_lroundv4sfv4si (__a);
10164 __extension__ extern __inline uint32x4_t
10165 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10166 vcvtaq_u32_f32 (float32x4_t __a)
10168 return __builtin_aarch64_lrounduv4sfv4si_us (__a);
10171 __extension__ extern __inline int64x1_t
10172 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10173 vcvta_s64_f64 (float64x1_t __a)
10175 return (int64x1_t) {vcvtad_s64_f64 (__a[0])};
10178 __extension__ extern __inline uint64x1_t
10179 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10180 vcvta_u64_f64 (float64x1_t __a)
10182 return (uint64x1_t) {vcvtad_u64_f64 (__a[0])};
10185 __extension__ extern __inline int64x2_t
10186 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10187 vcvtaq_s64_f64 (float64x2_t __a)
10189 return __builtin_aarch64_lroundv2dfv2di (__a);
10192 __extension__ extern __inline uint64x2_t
10193 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10194 vcvtaq_u64_f64 (float64x2_t __a)
10196 return __builtin_aarch64_lrounduv2dfv2di_us (__a);
10199 /* vcvtm */
10201 __extension__ extern __inline int64_t
10202 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10203 vcvtmd_s64_f64 (float64_t __a)
10205 return __builtin_llfloor (__a);
10208 __extension__ extern __inline uint64_t
10209 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10210 vcvtmd_u64_f64 (float64_t __a)
10212 return __builtin_aarch64_lfloorudfdi_us (__a);
10215 __extension__ extern __inline int32_t
10216 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10217 vcvtms_s32_f32 (float32_t __a)
10219 return __builtin_ifloorf (__a);
10222 __extension__ extern __inline uint32_t
10223 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10224 vcvtms_u32_f32 (float32_t __a)
10226 return __builtin_aarch64_lfloorusfsi_us (__a);
10229 __extension__ extern __inline int32x2_t
10230 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10231 vcvtm_s32_f32 (float32x2_t __a)
10233 return __builtin_aarch64_lfloorv2sfv2si (__a);
10236 __extension__ extern __inline uint32x2_t
10237 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10238 vcvtm_u32_f32 (float32x2_t __a)
10240 return __builtin_aarch64_lflooruv2sfv2si_us (__a);
10243 __extension__ extern __inline int32x4_t
10244 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10245 vcvtmq_s32_f32 (float32x4_t __a)
10247 return __builtin_aarch64_lfloorv4sfv4si (__a);
10250 __extension__ extern __inline uint32x4_t
10251 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10252 vcvtmq_u32_f32 (float32x4_t __a)
10254 return __builtin_aarch64_lflooruv4sfv4si_us (__a);
10257 __extension__ extern __inline int64x1_t
10258 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10259 vcvtm_s64_f64 (float64x1_t __a)
10261 return (int64x1_t) {vcvtmd_s64_f64 (__a[0])};
10264 __extension__ extern __inline uint64x1_t
10265 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10266 vcvtm_u64_f64 (float64x1_t __a)
10268 return (uint64x1_t) {vcvtmd_u64_f64 (__a[0])};
10271 __extension__ extern __inline int64x2_t
10272 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10273 vcvtmq_s64_f64 (float64x2_t __a)
10275 return __builtin_aarch64_lfloorv2dfv2di (__a);
10278 __extension__ extern __inline uint64x2_t
10279 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10280 vcvtmq_u64_f64 (float64x2_t __a)
10282 return __builtin_aarch64_lflooruv2dfv2di_us (__a);
10285 /* vcvtn */
10287 __extension__ extern __inline int64_t
10288 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10289 vcvtnd_s64_f64 (float64_t __a)
10291 return __builtin_aarch64_lfrintndfdi (__a);
10294 __extension__ extern __inline uint64_t
10295 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10296 vcvtnd_u64_f64 (float64_t __a)
10298 return __builtin_aarch64_lfrintnudfdi_us (__a);
10301 __extension__ extern __inline int32_t
10302 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10303 vcvtns_s32_f32 (float32_t __a)
10305 return __builtin_aarch64_lfrintnsfsi (__a);
10308 __extension__ extern __inline uint32_t
10309 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10310 vcvtns_u32_f32 (float32_t __a)
10312 return __builtin_aarch64_lfrintnusfsi_us (__a);
10315 __extension__ extern __inline int32x2_t
10316 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10317 vcvtn_s32_f32 (float32x2_t __a)
10319 return __builtin_aarch64_lfrintnv2sfv2si (__a);
10322 __extension__ extern __inline uint32x2_t
10323 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10324 vcvtn_u32_f32 (float32x2_t __a)
10326 return __builtin_aarch64_lfrintnuv2sfv2si_us (__a);
10329 __extension__ extern __inline int32x4_t
10330 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10331 vcvtnq_s32_f32 (float32x4_t __a)
10333 return __builtin_aarch64_lfrintnv4sfv4si (__a);
10336 __extension__ extern __inline uint32x4_t
10337 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10338 vcvtnq_u32_f32 (float32x4_t __a)
10340 return __builtin_aarch64_lfrintnuv4sfv4si_us (__a);
10343 __extension__ extern __inline int64x1_t
10344 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10345 vcvtn_s64_f64 (float64x1_t __a)
10347 return (int64x1_t) {vcvtnd_s64_f64 (__a[0])};
10350 __extension__ extern __inline uint64x1_t
10351 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10352 vcvtn_u64_f64 (float64x1_t __a)
10354 return (uint64x1_t) {vcvtnd_u64_f64 (__a[0])};
10357 __extension__ extern __inline int64x2_t
10358 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10359 vcvtnq_s64_f64 (float64x2_t __a)
10361 return __builtin_aarch64_lfrintnv2dfv2di (__a);
10364 __extension__ extern __inline uint64x2_t
10365 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10366 vcvtnq_u64_f64 (float64x2_t __a)
10368 return __builtin_aarch64_lfrintnuv2dfv2di_us (__a);
10371 /* vcvtp */
10373 __extension__ extern __inline int64_t
10374 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10375 vcvtpd_s64_f64 (float64_t __a)
10377 return __builtin_llceil (__a);
10380 __extension__ extern __inline uint64_t
10381 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10382 vcvtpd_u64_f64 (float64_t __a)
10384 return __builtin_aarch64_lceiludfdi_us (__a);
10387 __extension__ extern __inline int32_t
10388 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10389 vcvtps_s32_f32 (float32_t __a)
10391 return __builtin_iceilf (__a);
10394 __extension__ extern __inline uint32_t
10395 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10396 vcvtps_u32_f32 (float32_t __a)
10398 return __builtin_aarch64_lceilusfsi_us (__a);
10401 __extension__ extern __inline int32x2_t
10402 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10403 vcvtp_s32_f32 (float32x2_t __a)
10405 return __builtin_aarch64_lceilv2sfv2si (__a);
10408 __extension__ extern __inline uint32x2_t
10409 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10410 vcvtp_u32_f32 (float32x2_t __a)
10412 return __builtin_aarch64_lceiluv2sfv2si_us (__a);
10415 __extension__ extern __inline int32x4_t
10416 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10417 vcvtpq_s32_f32 (float32x4_t __a)
10419 return __builtin_aarch64_lceilv4sfv4si (__a);
10422 __extension__ extern __inline uint32x4_t
10423 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10424 vcvtpq_u32_f32 (float32x4_t __a)
10426 return __builtin_aarch64_lceiluv4sfv4si_us (__a);
10429 __extension__ extern __inline int64x1_t
10430 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10431 vcvtp_s64_f64 (float64x1_t __a)
10433 return (int64x1_t) {vcvtpd_s64_f64 (__a[0])};
10436 __extension__ extern __inline uint64x1_t
10437 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10438 vcvtp_u64_f64 (float64x1_t __a)
10440 return (uint64x1_t) {vcvtpd_u64_f64 (__a[0])};
10443 __extension__ extern __inline int64x2_t
10444 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10445 vcvtpq_s64_f64 (float64x2_t __a)
10447 return __builtin_aarch64_lceilv2dfv2di (__a);
10450 __extension__ extern __inline uint64x2_t
10451 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10452 vcvtpq_u64_f64 (float64x2_t __a)
10454 return __builtin_aarch64_lceiluv2dfv2di_us (__a);
10457 /* vdup_n */
10459 __extension__ extern __inline float16x4_t
10460 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10461 vdup_n_f16 (float16_t __a)
10463 return (float16x4_t) {__a, __a, __a, __a};
10466 __extension__ extern __inline float32x2_t
10467 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10468 vdup_n_f32 (float32_t __a)
10470 return (float32x2_t) {__a, __a};
10473 __extension__ extern __inline float64x1_t
10474 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10475 vdup_n_f64 (float64_t __a)
10477 return (float64x1_t) {__a};
10480 __extension__ extern __inline poly8x8_t
10481 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10482 vdup_n_p8 (poly8_t __a)
10484 return (poly8x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
10487 __extension__ extern __inline poly16x4_t
10488 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10489 vdup_n_p16 (poly16_t __a)
10491 return (poly16x4_t) {__a, __a, __a, __a};
10494 __extension__ extern __inline poly64x1_t
10495 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10496 vdup_n_p64 (poly64_t __a)
10498 return (poly64x1_t) {__a};
10501 __extension__ extern __inline int8x8_t
10502 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10503 vdup_n_s8 (int8_t __a)
10505 return (int8x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
10508 __extension__ extern __inline int16x4_t
10509 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10510 vdup_n_s16 (int16_t __a)
10512 return (int16x4_t) {__a, __a, __a, __a};
10515 __extension__ extern __inline int32x2_t
10516 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10517 vdup_n_s32 (int32_t __a)
10519 return (int32x2_t) {__a, __a};
10522 __extension__ extern __inline int64x1_t
10523 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10524 vdup_n_s64 (int64_t __a)
10526 return (int64x1_t) {__a};
10529 __extension__ extern __inline uint8x8_t
10530 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10531 vdup_n_u8 (uint8_t __a)
10533 return (uint8x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
10536 __extension__ extern __inline uint16x4_t
10537 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10538 vdup_n_u16 (uint16_t __a)
10540 return (uint16x4_t) {__a, __a, __a, __a};
10543 __extension__ extern __inline uint32x2_t
10544 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10545 vdup_n_u32 (uint32_t __a)
10547 return (uint32x2_t) {__a, __a};
10550 __extension__ extern __inline uint64x1_t
10551 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10552 vdup_n_u64 (uint64_t __a)
10554 return (uint64x1_t) {__a};
10557 /* vdupq_n */
10559 __extension__ extern __inline float16x8_t
10560 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10561 vdupq_n_f16 (float16_t __a)
10563 return (float16x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
10566 __extension__ extern __inline float32x4_t
10567 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10568 vdupq_n_f32 (float32_t __a)
10570 return (float32x4_t) {__a, __a, __a, __a};
10573 __extension__ extern __inline float64x2_t
10574 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10575 vdupq_n_f64 (float64_t __a)
10577 return (float64x2_t) {__a, __a};
10580 __extension__ extern __inline poly8x16_t
10581 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10582 vdupq_n_p8 (poly8_t __a)
10584 return (poly8x16_t) {__a, __a, __a, __a, __a, __a, __a, __a,
10585 __a, __a, __a, __a, __a, __a, __a, __a};
10588 __extension__ extern __inline poly16x8_t
10589 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10590 vdupq_n_p16 (poly16_t __a)
10592 return (poly16x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
10595 __extension__ extern __inline poly64x2_t
10596 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10597 vdupq_n_p64 (poly64_t __a)
10599 return (poly64x2_t) {__a, __a};
10602 __extension__ extern __inline int8x16_t
10603 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10604 vdupq_n_s8 (int8_t __a)
10606 return (int8x16_t) {__a, __a, __a, __a, __a, __a, __a, __a,
10607 __a, __a, __a, __a, __a, __a, __a, __a};
10610 __extension__ extern __inline int16x8_t
10611 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10612 vdupq_n_s16 (int16_t __a)
10614 return (int16x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
10617 __extension__ extern __inline int32x4_t
10618 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10619 vdupq_n_s32 (int32_t __a)
10621 return (int32x4_t) {__a, __a, __a, __a};
10624 __extension__ extern __inline int64x2_t
10625 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10626 vdupq_n_s64 (int64_t __a)
10628 return (int64x2_t) {__a, __a};
10631 __extension__ extern __inline uint8x16_t
10632 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10633 vdupq_n_u8 (uint8_t __a)
10635 return (uint8x16_t) {__a, __a, __a, __a, __a, __a, __a, __a,
10636 __a, __a, __a, __a, __a, __a, __a, __a};
10639 __extension__ extern __inline uint16x8_t
10640 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10641 vdupq_n_u16 (uint16_t __a)
10643 return (uint16x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
10646 __extension__ extern __inline uint32x4_t
10647 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10648 vdupq_n_u32 (uint32_t __a)
10650 return (uint32x4_t) {__a, __a, __a, __a};
10653 __extension__ extern __inline uint64x2_t
10654 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10655 vdupq_n_u64 (uint64_t __a)
10657 return (uint64x2_t) {__a, __a};
10660 /* vdup_lane */
10662 __extension__ extern __inline float16x4_t
10663 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10664 vdup_lane_f16 (float16x4_t __a, const int __b)
10666 return __aarch64_vdup_lane_f16 (__a, __b);
10669 __extension__ extern __inline float32x2_t
10670 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10671 vdup_lane_f32 (float32x2_t __a, const int __b)
10673 return __aarch64_vdup_lane_f32 (__a, __b);
10676 __extension__ extern __inline float64x1_t
10677 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10678 vdup_lane_f64 (float64x1_t __a, const int __b)
10680 return __aarch64_vdup_lane_f64 (__a, __b);
10683 __extension__ extern __inline poly8x8_t
10684 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10685 vdup_lane_p8 (poly8x8_t __a, const int __b)
10687 return __aarch64_vdup_lane_p8 (__a, __b);
10690 __extension__ extern __inline poly16x4_t
10691 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10692 vdup_lane_p16 (poly16x4_t __a, const int __b)
10694 return __aarch64_vdup_lane_p16 (__a, __b);
10697 __extension__ extern __inline poly64x1_t
10698 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10699 vdup_lane_p64 (poly64x1_t __a, const int __b)
10701 return __aarch64_vdup_lane_p64 (__a, __b);
10704 __extension__ extern __inline int8x8_t
10705 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10706 vdup_lane_s8 (int8x8_t __a, const int __b)
10708 return __aarch64_vdup_lane_s8 (__a, __b);
10711 __extension__ extern __inline int16x4_t
10712 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10713 vdup_lane_s16 (int16x4_t __a, const int __b)
10715 return __aarch64_vdup_lane_s16 (__a, __b);
10718 __extension__ extern __inline int32x2_t
10719 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10720 vdup_lane_s32 (int32x2_t __a, const int __b)
10722 return __aarch64_vdup_lane_s32 (__a, __b);
10725 __extension__ extern __inline int64x1_t
10726 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10727 vdup_lane_s64 (int64x1_t __a, const int __b)
10729 return __aarch64_vdup_lane_s64 (__a, __b);
10732 __extension__ extern __inline uint8x8_t
10733 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10734 vdup_lane_u8 (uint8x8_t __a, const int __b)
10736 return __aarch64_vdup_lane_u8 (__a, __b);
10739 __extension__ extern __inline uint16x4_t
10740 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10741 vdup_lane_u16 (uint16x4_t __a, const int __b)
10743 return __aarch64_vdup_lane_u16 (__a, __b);
10746 __extension__ extern __inline uint32x2_t
10747 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10748 vdup_lane_u32 (uint32x2_t __a, const int __b)
10750 return __aarch64_vdup_lane_u32 (__a, __b);
10753 __extension__ extern __inline uint64x1_t
10754 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10755 vdup_lane_u64 (uint64x1_t __a, const int __b)
10757 return __aarch64_vdup_lane_u64 (__a, __b);
10760 /* vdup_laneq */
10762 __extension__ extern __inline float16x4_t
10763 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10764 vdup_laneq_f16 (float16x8_t __a, const int __b)
10766 return __aarch64_vdup_laneq_f16 (__a, __b);
10769 __extension__ extern __inline float32x2_t
10770 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10771 vdup_laneq_f32 (float32x4_t __a, const int __b)
10773 return __aarch64_vdup_laneq_f32 (__a, __b);
10776 __extension__ extern __inline float64x1_t
10777 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10778 vdup_laneq_f64 (float64x2_t __a, const int __b)
10780 return __aarch64_vdup_laneq_f64 (__a, __b);
10783 __extension__ extern __inline poly8x8_t
10784 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10785 vdup_laneq_p8 (poly8x16_t __a, const int __b)
10787 return __aarch64_vdup_laneq_p8 (__a, __b);
10790 __extension__ extern __inline poly16x4_t
10791 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10792 vdup_laneq_p16 (poly16x8_t __a, const int __b)
10794 return __aarch64_vdup_laneq_p16 (__a, __b);
10797 __extension__ extern __inline poly64x1_t
10798 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10799 vdup_laneq_p64 (poly64x2_t __a, const int __b)
10801 return __aarch64_vdup_laneq_p64 (__a, __b);
10804 __extension__ extern __inline int8x8_t
10805 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10806 vdup_laneq_s8 (int8x16_t __a, const int __b)
10808 return __aarch64_vdup_laneq_s8 (__a, __b);
10811 __extension__ extern __inline int16x4_t
10812 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10813 vdup_laneq_s16 (int16x8_t __a, const int __b)
10815 return __aarch64_vdup_laneq_s16 (__a, __b);
10818 __extension__ extern __inline int32x2_t
10819 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10820 vdup_laneq_s32 (int32x4_t __a, const int __b)
10822 return __aarch64_vdup_laneq_s32 (__a, __b);
10825 __extension__ extern __inline int64x1_t
10826 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10827 vdup_laneq_s64 (int64x2_t __a, const int __b)
10829 return __aarch64_vdup_laneq_s64 (__a, __b);
10832 __extension__ extern __inline uint8x8_t
10833 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10834 vdup_laneq_u8 (uint8x16_t __a, const int __b)
10836 return __aarch64_vdup_laneq_u8 (__a, __b);
10839 __extension__ extern __inline uint16x4_t
10840 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10841 vdup_laneq_u16 (uint16x8_t __a, const int __b)
10843 return __aarch64_vdup_laneq_u16 (__a, __b);
10846 __extension__ extern __inline uint32x2_t
10847 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10848 vdup_laneq_u32 (uint32x4_t __a, const int __b)
10850 return __aarch64_vdup_laneq_u32 (__a, __b);
10853 __extension__ extern __inline uint64x1_t
10854 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10855 vdup_laneq_u64 (uint64x2_t __a, const int __b)
10857 return __aarch64_vdup_laneq_u64 (__a, __b);
10860 /* vdupq_lane */
10862 __extension__ extern __inline float16x8_t
10863 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10864 vdupq_lane_f16 (float16x4_t __a, const int __b)
10866 return __aarch64_vdupq_lane_f16 (__a, __b);
10869 __extension__ extern __inline float32x4_t
10870 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10871 vdupq_lane_f32 (float32x2_t __a, const int __b)
10873 return __aarch64_vdupq_lane_f32 (__a, __b);
10876 __extension__ extern __inline float64x2_t
10877 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10878 vdupq_lane_f64 (float64x1_t __a, const int __b)
10880 return __aarch64_vdupq_lane_f64 (__a, __b);
10883 __extension__ extern __inline poly8x16_t
10884 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10885 vdupq_lane_p8 (poly8x8_t __a, const int __b)
10887 return __aarch64_vdupq_lane_p8 (__a, __b);
10890 __extension__ extern __inline poly16x8_t
10891 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10892 vdupq_lane_p16 (poly16x4_t __a, const int __b)
10894 return __aarch64_vdupq_lane_p16 (__a, __b);
10897 __extension__ extern __inline poly64x2_t
10898 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10899 vdupq_lane_p64 (poly64x1_t __a, const int __b)
10901 return __aarch64_vdupq_lane_p64 (__a, __b);
10904 __extension__ extern __inline int8x16_t
10905 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10906 vdupq_lane_s8 (int8x8_t __a, const int __b)
10908 return __aarch64_vdupq_lane_s8 (__a, __b);
10911 __extension__ extern __inline int16x8_t
10912 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10913 vdupq_lane_s16 (int16x4_t __a, const int __b)
10915 return __aarch64_vdupq_lane_s16 (__a, __b);
10918 __extension__ extern __inline int32x4_t
10919 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10920 vdupq_lane_s32 (int32x2_t __a, const int __b)
10922 return __aarch64_vdupq_lane_s32 (__a, __b);
10925 __extension__ extern __inline int64x2_t
10926 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10927 vdupq_lane_s64 (int64x1_t __a, const int __b)
10929 return __aarch64_vdupq_lane_s64 (__a, __b);
10932 __extension__ extern __inline uint8x16_t
10933 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10934 vdupq_lane_u8 (uint8x8_t __a, const int __b)
10936 return __aarch64_vdupq_lane_u8 (__a, __b);
10939 __extension__ extern __inline uint16x8_t
10940 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10941 vdupq_lane_u16 (uint16x4_t __a, const int __b)
10943 return __aarch64_vdupq_lane_u16 (__a, __b);
10946 __extension__ extern __inline uint32x4_t
10947 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10948 vdupq_lane_u32 (uint32x2_t __a, const int __b)
10950 return __aarch64_vdupq_lane_u32 (__a, __b);
10953 __extension__ extern __inline uint64x2_t
10954 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10955 vdupq_lane_u64 (uint64x1_t __a, const int __b)
10957 return __aarch64_vdupq_lane_u64 (__a, __b);
10960 /* vdupq_laneq */
10962 __extension__ extern __inline float16x8_t
10963 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10964 vdupq_laneq_f16 (float16x8_t __a, const int __b)
10966 return __aarch64_vdupq_laneq_f16 (__a, __b);
10969 __extension__ extern __inline float32x4_t
10970 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10971 vdupq_laneq_f32 (float32x4_t __a, const int __b)
10973 return __aarch64_vdupq_laneq_f32 (__a, __b);
10976 __extension__ extern __inline float64x2_t
10977 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10978 vdupq_laneq_f64 (float64x2_t __a, const int __b)
10980 return __aarch64_vdupq_laneq_f64 (__a, __b);
10983 __extension__ extern __inline poly8x16_t
10984 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10985 vdupq_laneq_p8 (poly8x16_t __a, const int __b)
10987 return __aarch64_vdupq_laneq_p8 (__a, __b);
10990 __extension__ extern __inline poly16x8_t
10991 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10992 vdupq_laneq_p16 (poly16x8_t __a, const int __b)
10994 return __aarch64_vdupq_laneq_p16 (__a, __b);
10997 __extension__ extern __inline poly64x2_t
10998 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10999 vdupq_laneq_p64 (poly64x2_t __a, const int __b)
11001 return __aarch64_vdupq_laneq_p64 (__a, __b);
11004 __extension__ extern __inline int8x16_t
11005 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11006 vdupq_laneq_s8 (int8x16_t __a, const int __b)
11008 return __aarch64_vdupq_laneq_s8 (__a, __b);
11011 __extension__ extern __inline int16x8_t
11012 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11013 vdupq_laneq_s16 (int16x8_t __a, const int __b)
11015 return __aarch64_vdupq_laneq_s16 (__a, __b);
11018 __extension__ extern __inline int32x4_t
11019 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11020 vdupq_laneq_s32 (int32x4_t __a, const int __b)
11022 return __aarch64_vdupq_laneq_s32 (__a, __b);
11025 __extension__ extern __inline int64x2_t
11026 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11027 vdupq_laneq_s64 (int64x2_t __a, const int __b)
11029 return __aarch64_vdupq_laneq_s64 (__a, __b);
11032 __extension__ extern __inline uint8x16_t
11033 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11034 vdupq_laneq_u8 (uint8x16_t __a, const int __b)
11036 return __aarch64_vdupq_laneq_u8 (__a, __b);
11039 __extension__ extern __inline uint16x8_t
11040 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11041 vdupq_laneq_u16 (uint16x8_t __a, const int __b)
11043 return __aarch64_vdupq_laneq_u16 (__a, __b);
11046 __extension__ extern __inline uint32x4_t
11047 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11048 vdupq_laneq_u32 (uint32x4_t __a, const int __b)
11050 return __aarch64_vdupq_laneq_u32 (__a, __b);
11053 __extension__ extern __inline uint64x2_t
11054 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11055 vdupq_laneq_u64 (uint64x2_t __a, const int __b)
11057 return __aarch64_vdupq_laneq_u64 (__a, __b);
11060 /* vdupb_lane */
11061 __extension__ extern __inline poly8_t
11062 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11063 vdupb_lane_p8 (poly8x8_t __a, const int __b)
11065 return __aarch64_vget_lane_any (__a, __b);
11068 __extension__ extern __inline int8_t
11069 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11070 vdupb_lane_s8 (int8x8_t __a, const int __b)
11072 return __aarch64_vget_lane_any (__a, __b);
11075 __extension__ extern __inline uint8_t
11076 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11077 vdupb_lane_u8 (uint8x8_t __a, const int __b)
11079 return __aarch64_vget_lane_any (__a, __b);
11082 /* vduph_lane */
11084 __extension__ extern __inline float16_t
11085 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11086 vduph_lane_f16 (float16x4_t __a, const int __b)
11088 return __aarch64_vget_lane_any (__a, __b);
11091 __extension__ extern __inline poly16_t
11092 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11093 vduph_lane_p16 (poly16x4_t __a, const int __b)
11095 return __aarch64_vget_lane_any (__a, __b);
11098 __extension__ extern __inline int16_t
11099 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11100 vduph_lane_s16 (int16x4_t __a, const int __b)
11102 return __aarch64_vget_lane_any (__a, __b);
11105 __extension__ extern __inline uint16_t
11106 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11107 vduph_lane_u16 (uint16x4_t __a, const int __b)
11109 return __aarch64_vget_lane_any (__a, __b);
11112 /* vdups_lane */
11114 __extension__ extern __inline float32_t
11115 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11116 vdups_lane_f32 (float32x2_t __a, const int __b)
11118 return __aarch64_vget_lane_any (__a, __b);
11121 __extension__ extern __inline int32_t
11122 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11123 vdups_lane_s32 (int32x2_t __a, const int __b)
11125 return __aarch64_vget_lane_any (__a, __b);
11128 __extension__ extern __inline uint32_t
11129 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11130 vdups_lane_u32 (uint32x2_t __a, const int __b)
11132 return __aarch64_vget_lane_any (__a, __b);
11135 /* vdupd_lane */
11136 __extension__ extern __inline float64_t
11137 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11138 vdupd_lane_f64 (float64x1_t __a, const int __b)
11140 __AARCH64_LANE_CHECK (__a, __b);
11141 return __a[0];
11144 __extension__ extern __inline int64_t
11145 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11146 vdupd_lane_s64 (int64x1_t __a, const int __b)
11148 __AARCH64_LANE_CHECK (__a, __b);
11149 return __a[0];
11152 __extension__ extern __inline uint64_t
11153 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11154 vdupd_lane_u64 (uint64x1_t __a, const int __b)
11156 __AARCH64_LANE_CHECK (__a, __b);
11157 return __a[0];
11160 /* vdupb_laneq */
11161 __extension__ extern __inline poly8_t
11162 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11163 vdupb_laneq_p8 (poly8x16_t __a, const int __b)
11165 return __aarch64_vget_lane_any (__a, __b);
11168 __extension__ extern __inline int8_t
11169 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11170 vdupb_laneq_s8 (int8x16_t __a, const int __b)
11172 return __aarch64_vget_lane_any (__a, __b);
11175 __extension__ extern __inline uint8_t
11176 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11177 vdupb_laneq_u8 (uint8x16_t __a, const int __b)
11179 return __aarch64_vget_lane_any (__a, __b);
11182 /* vduph_laneq */
11184 __extension__ extern __inline float16_t
11185 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11186 vduph_laneq_f16 (float16x8_t __a, const int __b)
11188 return __aarch64_vget_lane_any (__a, __b);
11191 __extension__ extern __inline poly16_t
11192 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11193 vduph_laneq_p16 (poly16x8_t __a, const int __b)
11195 return __aarch64_vget_lane_any (__a, __b);
11198 __extension__ extern __inline int16_t
11199 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11200 vduph_laneq_s16 (int16x8_t __a, const int __b)
11202 return __aarch64_vget_lane_any (__a, __b);
11205 __extension__ extern __inline uint16_t
11206 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11207 vduph_laneq_u16 (uint16x8_t __a, const int __b)
11209 return __aarch64_vget_lane_any (__a, __b);
11212 /* vdups_laneq */
11214 __extension__ extern __inline float32_t
11215 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11216 vdups_laneq_f32 (float32x4_t __a, const int __b)
11218 return __aarch64_vget_lane_any (__a, __b);
11221 __extension__ extern __inline int32_t
11222 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11223 vdups_laneq_s32 (int32x4_t __a, const int __b)
11225 return __aarch64_vget_lane_any (__a, __b);
11228 __extension__ extern __inline uint32_t
11229 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11230 vdups_laneq_u32 (uint32x4_t __a, const int __b)
11232 return __aarch64_vget_lane_any (__a, __b);
11235 /* vdupd_laneq */
11236 __extension__ extern __inline float64_t
11237 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11238 vdupd_laneq_f64 (float64x2_t __a, const int __b)
11240 return __aarch64_vget_lane_any (__a, __b);
11243 __extension__ extern __inline int64_t
11244 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11245 vdupd_laneq_s64 (int64x2_t __a, const int __b)
11247 return __aarch64_vget_lane_any (__a, __b);
11250 __extension__ extern __inline uint64_t
11251 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11252 vdupd_laneq_u64 (uint64x2_t __a, const int __b)
11254 return __aarch64_vget_lane_any (__a, __b);
11257 /* vext */
11259 __extension__ extern __inline float16x4_t
11260 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11261 vext_f16 (float16x4_t __a, float16x4_t __b, __const int __c)
11263 __AARCH64_LANE_CHECK (__a, __c);
11264 #ifdef __AARCH64EB__
11265 return __builtin_shuffle (__b, __a,
11266 (uint16x4_t) {4 - __c, 5 - __c, 6 - __c, 7 - __c});
11267 #else
11268 return __builtin_shuffle (__a, __b,
11269 (uint16x4_t) {__c, __c + 1, __c + 2, __c + 3});
11270 #endif
11273 __extension__ extern __inline float32x2_t
11274 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11275 vext_f32 (float32x2_t __a, float32x2_t __b, __const int __c)
11277 __AARCH64_LANE_CHECK (__a, __c);
11278 #ifdef __AARCH64EB__
11279 return __builtin_shuffle (__b, __a, (uint32x2_t) {2-__c, 3-__c});
11280 #else
11281 return __builtin_shuffle (__a, __b, (uint32x2_t) {__c, __c+1});
11282 #endif
11285 __extension__ extern __inline float64x1_t
11286 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11287 vext_f64 (float64x1_t __a, float64x1_t __b, __const int __c)
11289 __AARCH64_LANE_CHECK (__a, __c);
11290 /* The only possible index to the assembler instruction returns element 0. */
11291 return __a;
11293 __extension__ extern __inline poly8x8_t
11294 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11295 vext_p8 (poly8x8_t __a, poly8x8_t __b, __const int __c)
11297 __AARCH64_LANE_CHECK (__a, __c);
11298 #ifdef __AARCH64EB__
11299 return __builtin_shuffle (__b, __a, (uint8x8_t)
11300 {8-__c, 9-__c, 10-__c, 11-__c, 12-__c, 13-__c, 14-__c, 15-__c});
11301 #else
11302 return __builtin_shuffle (__a, __b,
11303 (uint8x8_t) {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7});
11304 #endif
11307 __extension__ extern __inline poly16x4_t
11308 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11309 vext_p16 (poly16x4_t __a, poly16x4_t __b, __const int __c)
11311 __AARCH64_LANE_CHECK (__a, __c);
11312 #ifdef __AARCH64EB__
11313 return __builtin_shuffle (__b, __a,
11314 (uint16x4_t) {4-__c, 5-__c, 6-__c, 7-__c});
11315 #else
11316 return __builtin_shuffle (__a, __b, (uint16x4_t) {__c, __c+1, __c+2, __c+3});
11317 #endif
11320 __extension__ extern __inline poly64x1_t
11321 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11322 vext_p64 (poly64x1_t __a, poly64x1_t __b, __const int __c)
11324 __AARCH64_LANE_CHECK (__a, __c);
11325 /* The only possible index to the assembler instruction returns element 0. */
11326 return __a;
11329 __extension__ extern __inline int8x8_t
11330 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11331 vext_s8 (int8x8_t __a, int8x8_t __b, __const int __c)
11333 __AARCH64_LANE_CHECK (__a, __c);
11334 #ifdef __AARCH64EB__
11335 return __builtin_shuffle (__b, __a, (uint8x8_t)
11336 {8-__c, 9-__c, 10-__c, 11-__c, 12-__c, 13-__c, 14-__c, 15-__c});
11337 #else
11338 return __builtin_shuffle (__a, __b,
11339 (uint8x8_t) {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7});
11340 #endif
11343 __extension__ extern __inline int16x4_t
11344 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11345 vext_s16 (int16x4_t __a, int16x4_t __b, __const int __c)
11347 __AARCH64_LANE_CHECK (__a, __c);
11348 #ifdef __AARCH64EB__
11349 return __builtin_shuffle (__b, __a,
11350 (uint16x4_t) {4-__c, 5-__c, 6-__c, 7-__c});
11351 #else
11352 return __builtin_shuffle (__a, __b, (uint16x4_t) {__c, __c+1, __c+2, __c+3});
11353 #endif
11356 __extension__ extern __inline int32x2_t
11357 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11358 vext_s32 (int32x2_t __a, int32x2_t __b, __const int __c)
11360 __AARCH64_LANE_CHECK (__a, __c);
11361 #ifdef __AARCH64EB__
11362 return __builtin_shuffle (__b, __a, (uint32x2_t) {2-__c, 3-__c});
11363 #else
11364 return __builtin_shuffle (__a, __b, (uint32x2_t) {__c, __c+1});
11365 #endif
11368 __extension__ extern __inline int64x1_t
11369 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11370 vext_s64 (int64x1_t __a, int64x1_t __b, __const int __c)
11372 __AARCH64_LANE_CHECK (__a, __c);
11373 /* The only possible index to the assembler instruction returns element 0. */
11374 return __a;
11377 __extension__ extern __inline uint8x8_t
11378 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11379 vext_u8 (uint8x8_t __a, uint8x8_t __b, __const int __c)
11381 __AARCH64_LANE_CHECK (__a, __c);
11382 #ifdef __AARCH64EB__
11383 return __builtin_shuffle (__b, __a, (uint8x8_t)
11384 {8-__c, 9-__c, 10-__c, 11-__c, 12-__c, 13-__c, 14-__c, 15-__c});
11385 #else
11386 return __builtin_shuffle (__a, __b,
11387 (uint8x8_t) {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7});
11388 #endif
11391 __extension__ extern __inline uint16x4_t
11392 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11393 vext_u16 (uint16x4_t __a, uint16x4_t __b, __const int __c)
11395 __AARCH64_LANE_CHECK (__a, __c);
11396 #ifdef __AARCH64EB__
11397 return __builtin_shuffle (__b, __a,
11398 (uint16x4_t) {4-__c, 5-__c, 6-__c, 7-__c});
11399 #else
11400 return __builtin_shuffle (__a, __b, (uint16x4_t) {__c, __c+1, __c+2, __c+3});
11401 #endif
11404 __extension__ extern __inline uint32x2_t
11405 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11406 vext_u32 (uint32x2_t __a, uint32x2_t __b, __const int __c)
11408 __AARCH64_LANE_CHECK (__a, __c);
11409 #ifdef __AARCH64EB__
11410 return __builtin_shuffle (__b, __a, (uint32x2_t) {2-__c, 3-__c});
11411 #else
11412 return __builtin_shuffle (__a, __b, (uint32x2_t) {__c, __c+1});
11413 #endif
11416 __extension__ extern __inline uint64x1_t
11417 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11418 vext_u64 (uint64x1_t __a, uint64x1_t __b, __const int __c)
11420 __AARCH64_LANE_CHECK (__a, __c);
11421 /* The only possible index to the assembler instruction returns element 0. */
11422 return __a;
11425 __extension__ extern __inline float16x8_t
11426 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11427 vextq_f16 (float16x8_t __a, float16x8_t __b, __const int __c)
11429 __AARCH64_LANE_CHECK (__a, __c);
11430 #ifdef __AARCH64EB__
11431 return __builtin_shuffle (__b, __a,
11432 (uint16x8_t) {8 - __c, 9 - __c, 10 - __c, 11 - __c,
11433 12 - __c, 13 - __c, 14 - __c,
11434 15 - __c});
11435 #else
11436 return __builtin_shuffle (__a, __b,
11437 (uint16x8_t) {__c, __c + 1, __c + 2, __c + 3,
11438 __c + 4, __c + 5, __c + 6, __c + 7});
11439 #endif
11442 __extension__ extern __inline float32x4_t
11443 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11444 vextq_f32 (float32x4_t __a, float32x4_t __b, __const int __c)
11446 __AARCH64_LANE_CHECK (__a, __c);
11447 #ifdef __AARCH64EB__
11448 return __builtin_shuffle (__b, __a,
11449 (uint32x4_t) {4-__c, 5-__c, 6-__c, 7-__c});
11450 #else
11451 return __builtin_shuffle (__a, __b, (uint32x4_t) {__c, __c+1, __c+2, __c+3});
11452 #endif
11455 __extension__ extern __inline float64x2_t
11456 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11457 vextq_f64 (float64x2_t __a, float64x2_t __b, __const int __c)
11459 __AARCH64_LANE_CHECK (__a, __c);
11460 #ifdef __AARCH64EB__
11461 return __builtin_shuffle (__b, __a, (uint64x2_t) {2-__c, 3-__c});
11462 #else
11463 return __builtin_shuffle (__a, __b, (uint64x2_t) {__c, __c+1});
11464 #endif
11467 __extension__ extern __inline poly8x16_t
11468 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11469 vextq_p8 (poly8x16_t __a, poly8x16_t __b, __const int __c)
11471 __AARCH64_LANE_CHECK (__a, __c);
11472 #ifdef __AARCH64EB__
11473 return __builtin_shuffle (__b, __a, (uint8x16_t)
11474 {16-__c, 17-__c, 18-__c, 19-__c, 20-__c, 21-__c, 22-__c, 23-__c,
11475 24-__c, 25-__c, 26-__c, 27-__c, 28-__c, 29-__c, 30-__c, 31-__c});
11476 #else
11477 return __builtin_shuffle (__a, __b, (uint8x16_t)
11478 {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7,
11479 __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15});
11480 #endif
11483 __extension__ extern __inline poly16x8_t
11484 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11485 vextq_p16 (poly16x8_t __a, poly16x8_t __b, __const int __c)
11487 __AARCH64_LANE_CHECK (__a, __c);
11488 #ifdef __AARCH64EB__
11489 return __builtin_shuffle (__b, __a, (uint16x8_t)
11490 {8-__c, 9-__c, 10-__c, 11-__c, 12-__c, 13-__c, 14-__c, 15-__c});
11491 #else
11492 return __builtin_shuffle (__a, __b,
11493 (uint16x8_t) {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7});
11494 #endif
11497 __extension__ extern __inline poly64x2_t
11498 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11499 vextq_p64 (poly64x2_t __a, poly64x2_t __b, __const int __c)
11501 __AARCH64_LANE_CHECK (__a, __c);
11502 #ifdef __AARCH64EB__
11503 return __builtin_shuffle (__b, __a, (uint64x2_t) {2-__c, 3-__c});
11504 #else
11505 return __builtin_shuffle (__a, __b, (uint64x2_t) {__c, __c+1});
11506 #endif
11509 __extension__ extern __inline int8x16_t
11510 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11511 vextq_s8 (int8x16_t __a, int8x16_t __b, __const int __c)
11513 __AARCH64_LANE_CHECK (__a, __c);
11514 #ifdef __AARCH64EB__
11515 return __builtin_shuffle (__b, __a, (uint8x16_t)
11516 {16-__c, 17-__c, 18-__c, 19-__c, 20-__c, 21-__c, 22-__c, 23-__c,
11517 24-__c, 25-__c, 26-__c, 27-__c, 28-__c, 29-__c, 30-__c, 31-__c});
11518 #else
11519 return __builtin_shuffle (__a, __b, (uint8x16_t)
11520 {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7,
11521 __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15});
11522 #endif
11525 __extension__ extern __inline int16x8_t
11526 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11527 vextq_s16 (int16x8_t __a, int16x8_t __b, __const int __c)
11529 __AARCH64_LANE_CHECK (__a, __c);
11530 #ifdef __AARCH64EB__
11531 return __builtin_shuffle (__b, __a, (uint16x8_t)
11532 {8-__c, 9-__c, 10-__c, 11-__c, 12-__c, 13-__c, 14-__c, 15-__c});
11533 #else
11534 return __builtin_shuffle (__a, __b,
11535 (uint16x8_t) {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7});
11536 #endif
11539 __extension__ extern __inline int32x4_t
11540 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11541 vextq_s32 (int32x4_t __a, int32x4_t __b, __const int __c)
11543 __AARCH64_LANE_CHECK (__a, __c);
11544 #ifdef __AARCH64EB__
11545 return __builtin_shuffle (__b, __a,
11546 (uint32x4_t) {4-__c, 5-__c, 6-__c, 7-__c});
11547 #else
11548 return __builtin_shuffle (__a, __b, (uint32x4_t) {__c, __c+1, __c+2, __c+3});
11549 #endif
11552 __extension__ extern __inline int64x2_t
11553 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11554 vextq_s64 (int64x2_t __a, int64x2_t __b, __const int __c)
11556 __AARCH64_LANE_CHECK (__a, __c);
11557 #ifdef __AARCH64EB__
11558 return __builtin_shuffle (__b, __a, (uint64x2_t) {2-__c, 3-__c});
11559 #else
11560 return __builtin_shuffle (__a, __b, (uint64x2_t) {__c, __c+1});
11561 #endif
11564 __extension__ extern __inline uint8x16_t
11565 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11566 vextq_u8 (uint8x16_t __a, uint8x16_t __b, __const int __c)
11568 __AARCH64_LANE_CHECK (__a, __c);
11569 #ifdef __AARCH64EB__
11570 return __builtin_shuffle (__b, __a, (uint8x16_t)
11571 {16-__c, 17-__c, 18-__c, 19-__c, 20-__c, 21-__c, 22-__c, 23-__c,
11572 24-__c, 25-__c, 26-__c, 27-__c, 28-__c, 29-__c, 30-__c, 31-__c});
11573 #else
11574 return __builtin_shuffle (__a, __b, (uint8x16_t)
11575 {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7,
11576 __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15});
11577 #endif
11580 __extension__ extern __inline uint16x8_t
11581 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11582 vextq_u16 (uint16x8_t __a, uint16x8_t __b, __const int __c)
11584 __AARCH64_LANE_CHECK (__a, __c);
11585 #ifdef __AARCH64EB__
11586 return __builtin_shuffle (__b, __a, (uint16x8_t)
11587 {8-__c, 9-__c, 10-__c, 11-__c, 12-__c, 13-__c, 14-__c, 15-__c});
11588 #else
11589 return __builtin_shuffle (__a, __b,
11590 (uint16x8_t) {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7});
11591 #endif
11594 __extension__ extern __inline uint32x4_t
11595 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11596 vextq_u32 (uint32x4_t __a, uint32x4_t __b, __const int __c)
11598 __AARCH64_LANE_CHECK (__a, __c);
11599 #ifdef __AARCH64EB__
11600 return __builtin_shuffle (__b, __a,
11601 (uint32x4_t) {4-__c, 5-__c, 6-__c, 7-__c});
11602 #else
11603 return __builtin_shuffle (__a, __b, (uint32x4_t) {__c, __c+1, __c+2, __c+3});
11604 #endif
11607 __extension__ extern __inline uint64x2_t
11608 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11609 vextq_u64 (uint64x2_t __a, uint64x2_t __b, __const int __c)
11611 __AARCH64_LANE_CHECK (__a, __c);
11612 #ifdef __AARCH64EB__
11613 return __builtin_shuffle (__b, __a, (uint64x2_t) {2-__c, 3-__c});
11614 #else
11615 return __builtin_shuffle (__a, __b, (uint64x2_t) {__c, __c+1});
11616 #endif
11619 /* vfma */
11621 __extension__ extern __inline float64x1_t
11622 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11623 vfma_f64 (float64x1_t __a, float64x1_t __b, float64x1_t __c)
11625 return (float64x1_t) {__builtin_fma (__b[0], __c[0], __a[0])};
11628 __extension__ extern __inline float32x2_t
11629 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11630 vfma_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c)
11632 return __builtin_aarch64_fmav2sf (__b, __c, __a);
11635 __extension__ extern __inline float32x4_t
11636 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11637 vfmaq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c)
11639 return __builtin_aarch64_fmav4sf (__b, __c, __a);
11642 __extension__ extern __inline float64x2_t
11643 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11644 vfmaq_f64 (float64x2_t __a, float64x2_t __b, float64x2_t __c)
11646 return __builtin_aarch64_fmav2df (__b, __c, __a);
11649 __extension__ extern __inline float32x2_t
11650 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11651 vfma_n_f32 (float32x2_t __a, float32x2_t __b, float32_t __c)
11653 return __builtin_aarch64_fmav2sf (__b, vdup_n_f32 (__c), __a);
11656 __extension__ extern __inline float64x1_t
11657 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11658 vfma_n_f64 (float64x1_t __a, float64x1_t __b, float64_t __c)
11660 return (float64x1_t) {__b[0] * __c + __a[0]};
11663 __extension__ extern __inline float32x4_t
11664 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11665 vfmaq_n_f32 (float32x4_t __a, float32x4_t __b, float32_t __c)
11667 return __builtin_aarch64_fmav4sf (__b, vdupq_n_f32 (__c), __a);
11670 __extension__ extern __inline float64x2_t
11671 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11672 vfmaq_n_f64 (float64x2_t __a, float64x2_t __b, float64_t __c)
11674 return __builtin_aarch64_fmav2df (__b, vdupq_n_f64 (__c), __a);
11677 /* vfma_lane */
11679 __extension__ extern __inline float32x2_t
11680 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11681 vfma_lane_f32 (float32x2_t __a, float32x2_t __b,
11682 float32x2_t __c, const int __lane)
11684 return __builtin_aarch64_fmav2sf (__b,
11685 __aarch64_vdup_lane_f32 (__c, __lane),
11686 __a);
11689 __extension__ extern __inline float64x1_t
11690 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11691 vfma_lane_f64 (float64x1_t __a, float64x1_t __b,
11692 float64x1_t __c, const int __lane)
11694 return (float64x1_t) {__builtin_fma (__b[0], __c[0], __a[0])};
11697 __extension__ extern __inline float64_t
11698 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11699 vfmad_lane_f64 (float64_t __a, float64_t __b,
11700 float64x1_t __c, const int __lane)
11702 return __builtin_fma (__b, __c[0], __a);
11705 __extension__ extern __inline float32_t
11706 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11707 vfmas_lane_f32 (float32_t __a, float32_t __b,
11708 float32x2_t __c, const int __lane)
11710 return __builtin_fmaf (__b, __aarch64_vget_lane_any (__c, __lane), __a);
11713 /* vfma_laneq */
11715 __extension__ extern __inline float32x2_t
11716 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11717 vfma_laneq_f32 (float32x2_t __a, float32x2_t __b,
11718 float32x4_t __c, const int __lane)
11720 return __builtin_aarch64_fmav2sf (__b,
11721 __aarch64_vdup_laneq_f32 (__c, __lane),
11722 __a);
11725 __extension__ extern __inline float64x1_t
11726 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11727 vfma_laneq_f64 (float64x1_t __a, float64x1_t __b,
11728 float64x2_t __c, const int __lane)
11730 float64_t __c0 = __aarch64_vget_lane_any (__c, __lane);
11731 return (float64x1_t) {__builtin_fma (__b[0], __c0, __a[0])};
11734 __extension__ extern __inline float64_t
11735 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11736 vfmad_laneq_f64 (float64_t __a, float64_t __b,
11737 float64x2_t __c, const int __lane)
11739 return __builtin_fma (__b, __aarch64_vget_lane_any (__c, __lane), __a);
11742 __extension__ extern __inline float32_t
11743 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11744 vfmas_laneq_f32 (float32_t __a, float32_t __b,
11745 float32x4_t __c, const int __lane)
11747 return __builtin_fmaf (__b, __aarch64_vget_lane_any (__c, __lane), __a);
11750 /* vfmaq_lane */
11752 __extension__ extern __inline float32x4_t
11753 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11754 vfmaq_lane_f32 (float32x4_t __a, float32x4_t __b,
11755 float32x2_t __c, const int __lane)
11757 return __builtin_aarch64_fmav4sf (__b,
11758 __aarch64_vdupq_lane_f32 (__c, __lane),
11759 __a);
11762 __extension__ extern __inline float64x2_t
11763 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11764 vfmaq_lane_f64 (float64x2_t __a, float64x2_t __b,
11765 float64x1_t __c, const int __lane)
11767 return __builtin_aarch64_fmav2df (__b, vdupq_n_f64 (__c[0]), __a);
11770 /* vfmaq_laneq */
11772 __extension__ extern __inline float32x4_t
11773 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11774 vfmaq_laneq_f32 (float32x4_t __a, float32x4_t __b,
11775 float32x4_t __c, const int __lane)
11777 return __builtin_aarch64_fmav4sf (__b,
11778 __aarch64_vdupq_laneq_f32 (__c, __lane),
11779 __a);
11782 __extension__ extern __inline float64x2_t
11783 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11784 vfmaq_laneq_f64 (float64x2_t __a, float64x2_t __b,
11785 float64x2_t __c, const int __lane)
11787 return __builtin_aarch64_fmav2df (__b,
11788 __aarch64_vdupq_laneq_f64 (__c, __lane),
11789 __a);
11792 /* vfms */
11794 __extension__ extern __inline float64x1_t
11795 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11796 vfms_f64 (float64x1_t __a, float64x1_t __b, float64x1_t __c)
11798 return (float64x1_t) {__builtin_fma (-__b[0], __c[0], __a[0])};
11801 __extension__ extern __inline float32x2_t
11802 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11803 vfms_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c)
11805 return __builtin_aarch64_fmav2sf (-__b, __c, __a);
11808 __extension__ extern __inline float32x4_t
11809 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11810 vfmsq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c)
11812 return __builtin_aarch64_fmav4sf (-__b, __c, __a);
11815 __extension__ extern __inline float64x2_t
11816 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11817 vfmsq_f64 (float64x2_t __a, float64x2_t __b, float64x2_t __c)
11819 return __builtin_aarch64_fmav2df (-__b, __c, __a);
11822 __extension__ extern __inline float32x2_t
11823 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11824 vfms_n_f32 (float32x2_t __a, float32x2_t __b, float32_t __c)
11826 return __builtin_aarch64_fmav2sf (-__b, vdup_n_f32 (__c), __a);
11829 __extension__ extern __inline float64x1_t
11830 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11831 vfms_n_f64 (float64x1_t __a, float64x1_t __b, float64_t __c)
11833 return (float64x1_t) {-__b[0] * __c + __a[0]};
11836 __extension__ extern __inline float32x4_t
11837 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11838 vfmsq_n_f32 (float32x4_t __a, float32x4_t __b, float32_t __c)
11840 return __builtin_aarch64_fmav4sf (-__b, vdupq_n_f32 (__c), __a);
11843 __extension__ extern __inline float64x2_t
11844 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11845 vfmsq_n_f64 (float64x2_t __a, float64x2_t __b, float64_t __c)
11847 return __builtin_aarch64_fmav2df (-__b, vdupq_n_f64 (__c), __a);
11850 /* vfms_lane */
11852 __extension__ extern __inline float32x2_t
11853 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11854 vfms_lane_f32 (float32x2_t __a, float32x2_t __b,
11855 float32x2_t __c, const int __lane)
11857 return __builtin_aarch64_fmav2sf (-__b,
11858 __aarch64_vdup_lane_f32 (__c, __lane),
11859 __a);
11862 __extension__ extern __inline float64x1_t
11863 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11864 vfms_lane_f64 (float64x1_t __a, float64x1_t __b,
11865 float64x1_t __c, const int __lane)
11867 return (float64x1_t) {__builtin_fma (-__b[0], __c[0], __a[0])};
11870 __extension__ extern __inline float64_t
11871 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11872 vfmsd_lane_f64 (float64_t __a, float64_t __b,
11873 float64x1_t __c, const int __lane)
11875 return __builtin_fma (-__b, __c[0], __a);
11878 __extension__ extern __inline float32_t
11879 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11880 vfmss_lane_f32 (float32_t __a, float32_t __b,
11881 float32x2_t __c, const int __lane)
11883 return __builtin_fmaf (-__b, __aarch64_vget_lane_any (__c, __lane), __a);
11886 /* vfms_laneq */
11888 __extension__ extern __inline float32x2_t
11889 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11890 vfms_laneq_f32 (float32x2_t __a, float32x2_t __b,
11891 float32x4_t __c, const int __lane)
11893 return __builtin_aarch64_fmav2sf (-__b,
11894 __aarch64_vdup_laneq_f32 (__c, __lane),
11895 __a);
11898 __extension__ extern __inline float64x1_t
11899 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11900 vfms_laneq_f64 (float64x1_t __a, float64x1_t __b,
11901 float64x2_t __c, const int __lane)
11903 float64_t __c0 = __aarch64_vget_lane_any (__c, __lane);
11904 return (float64x1_t) {__builtin_fma (-__b[0], __c0, __a[0])};
11907 __extension__ extern __inline float64_t
11908 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11909 vfmsd_laneq_f64 (float64_t __a, float64_t __b,
11910 float64x2_t __c, const int __lane)
11912 return __builtin_fma (-__b, __aarch64_vget_lane_any (__c, __lane), __a);
11915 __extension__ extern __inline float32_t
11916 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11917 vfmss_laneq_f32 (float32_t __a, float32_t __b,
11918 float32x4_t __c, const int __lane)
11920 return __builtin_fmaf (-__b, __aarch64_vget_lane_any (__c, __lane), __a);
11923 /* vfmsq_lane */
11925 __extension__ extern __inline float32x4_t
11926 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11927 vfmsq_lane_f32 (float32x4_t __a, float32x4_t __b,
11928 float32x2_t __c, const int __lane)
11930 return __builtin_aarch64_fmav4sf (-__b,
11931 __aarch64_vdupq_lane_f32 (__c, __lane),
11932 __a);
11935 __extension__ extern __inline float64x2_t
11936 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11937 vfmsq_lane_f64 (float64x2_t __a, float64x2_t __b,
11938 float64x1_t __c, const int __lane)
11940 return __builtin_aarch64_fmav2df (-__b, vdupq_n_f64 (__c[0]), __a);
11943 /* vfmsq_laneq */
11945 __extension__ extern __inline float32x4_t
11946 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11947 vfmsq_laneq_f32 (float32x4_t __a, float32x4_t __b,
11948 float32x4_t __c, const int __lane)
11950 return __builtin_aarch64_fmav4sf (-__b,
11951 __aarch64_vdupq_laneq_f32 (__c, __lane),
11952 __a);
11955 __extension__ extern __inline float64x2_t
11956 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11957 vfmsq_laneq_f64 (float64x2_t __a, float64x2_t __b,
11958 float64x2_t __c, const int __lane)
11960 return __builtin_aarch64_fmav2df (-__b,
11961 __aarch64_vdupq_laneq_f64 (__c, __lane),
11962 __a);
11965 /* vld1 */
11967 __extension__ extern __inline float16x4_t
11968 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11969 vld1_f16 (const float16_t *__a)
11971 return __builtin_aarch64_ld1v4hf (__a);
11974 __extension__ extern __inline float32x2_t
11975 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11976 vld1_f32 (const float32_t *__a)
11978 return __builtin_aarch64_ld1v2sf ((const __builtin_aarch64_simd_sf *) __a);
11981 __extension__ extern __inline float64x1_t
11982 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11983 vld1_f64 (const float64_t *__a)
11985 return (float64x1_t) {*__a};
11988 __extension__ extern __inline poly8x8_t
11989 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11990 vld1_p8 (const poly8_t *__a)
11992 return __builtin_aarch64_ld1v8qi_ps (
11993 (const __builtin_aarch64_simd_qi *) __a);
11996 __extension__ extern __inline poly16x4_t
11997 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11998 vld1_p16 (const poly16_t *__a)
12000 return __builtin_aarch64_ld1v4hi_ps (
12001 (const __builtin_aarch64_simd_hi *) __a);
12004 __extension__ extern __inline poly64x1_t
12005 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12006 vld1_p64 (const poly64_t *__a)
12008 return (poly64x1_t) {*__a};
12011 __extension__ extern __inline int8x8_t
12012 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12013 vld1_s8 (const int8_t *__a)
12015 return __builtin_aarch64_ld1v8qi ((const __builtin_aarch64_simd_qi *) __a);
12018 __extension__ extern __inline int16x4_t
12019 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12020 vld1_s16 (const int16_t *__a)
12022 return __builtin_aarch64_ld1v4hi ((const __builtin_aarch64_simd_hi *) __a);
12025 __extension__ extern __inline int32x2_t
12026 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12027 vld1_s32 (const int32_t *__a)
12029 return __builtin_aarch64_ld1v2si ((const __builtin_aarch64_simd_si *) __a);
12032 __extension__ extern __inline int64x1_t
12033 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12034 vld1_s64 (const int64_t *__a)
12036 return (int64x1_t) {*__a};
12039 __extension__ extern __inline uint8x8_t
12040 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12041 vld1_u8 (const uint8_t *__a)
12043 return __builtin_aarch64_ld1v8qi_us (
12044 (const __builtin_aarch64_simd_qi *) __a);
12047 __extension__ extern __inline uint16x4_t
12048 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12049 vld1_u16 (const uint16_t *__a)
12051 return __builtin_aarch64_ld1v4hi_us (
12052 (const __builtin_aarch64_simd_hi *) __a);
12055 __extension__ extern __inline uint32x2_t
12056 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12057 vld1_u32 (const uint32_t *__a)
12059 return __builtin_aarch64_ld1v2si_us (
12060 (const __builtin_aarch64_simd_si *) __a);
12063 __extension__ extern __inline uint64x1_t
12064 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12065 vld1_u64 (const uint64_t *__a)
12067 return (uint64x1_t) {*__a};
12070 /* vld1x3 */
12072 __extension__ extern __inline uint8x8x3_t
12073 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12074 vld1_u8_x3 (const uint8_t *__a)
12076 return __builtin_aarch64_ld1x3v8qi_us (
12077 (const __builtin_aarch64_simd_qi *) __a);
12080 __extension__ extern __inline int8x8x3_t
12081 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12082 vld1_s8_x3 (const int8_t *__a)
12084 return __builtin_aarch64_ld1x3v8qi ((const __builtin_aarch64_simd_qi *) __a);
12087 __extension__ extern __inline uint16x4x3_t
12088 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12089 vld1_u16_x3 (const uint16_t *__a)
12091 return __builtin_aarch64_ld1x3v4hi_us (
12092 (const __builtin_aarch64_simd_hi *) __a);
12095 __extension__ extern __inline int16x4x3_t
12096 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12097 vld1_s16_x3 (const int16_t *__a)
12099 return __builtin_aarch64_ld1x3v4hi ((const __builtin_aarch64_simd_hi *) __a);
12102 __extension__ extern __inline uint32x2x3_t
12103 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12104 vld1_u32_x3 (const uint32_t *__a)
12106 return __builtin_aarch64_ld1x3v2si_us (
12107 (const __builtin_aarch64_simd_si *) __a);
12110 __extension__ extern __inline int32x2x3_t
12111 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12112 vld1_s32_x3 (const int32_t *__a)
12114 return __builtin_aarch64_ld1x3v2si ((const __builtin_aarch64_simd_si *) __a);
12117 __extension__ extern __inline uint64x1x3_t
12118 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12119 vld1_u64_x3 (const uint64_t *__a)
12121 return __builtin_aarch64_ld1x3di_us (
12122 (const __builtin_aarch64_simd_di *) __a);
12125 __extension__ extern __inline int64x1x3_t
12126 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12127 vld1_s64_x3 (const int64_t *__a)
12129 return __builtin_aarch64_ld1x3di ((const __builtin_aarch64_simd_di *) __a);
12132 __extension__ extern __inline float16x4x3_t
12133 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12134 vld1_f16_x3 (const float16_t *__a)
12136 return __builtin_aarch64_ld1x3v4hf ((const __builtin_aarch64_simd_hf *) __a);
12139 __extension__ extern __inline float32x2x3_t
12140 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12141 vld1_f32_x3 (const float32_t *__a)
12143 return __builtin_aarch64_ld1x3v2sf ((const __builtin_aarch64_simd_sf *) __a);
12146 __extension__ extern __inline float64x1x3_t
12147 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12148 vld1_f64_x3 (const float64_t *__a)
12150 return __builtin_aarch64_ld1x3df ((const __builtin_aarch64_simd_df *) __a);
12153 __extension__ extern __inline poly8x8x3_t
12154 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12155 vld1_p8_x3 (const poly8_t *__a)
12157 return __builtin_aarch64_ld1x3v8qi_ps (
12158 (const __builtin_aarch64_simd_qi *) __a);
12161 __extension__ extern __inline poly16x4x3_t
12162 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12163 vld1_p16_x3 (const poly16_t *__a)
12165 return __builtin_aarch64_ld1x3v4hi_ps (
12166 (const __builtin_aarch64_simd_hi *) __a);
12169 __extension__ extern __inline poly64x1x3_t
12170 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12171 vld1_p64_x3 (const poly64_t *__a)
12173 return __builtin_aarch64_ld1x3di_ps (
12174 (const __builtin_aarch64_simd_di *) __a);
12177 __extension__ extern __inline uint8x16x3_t
12178 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12179 vld1q_u8_x3 (const uint8_t *__a)
12181 return __builtin_aarch64_ld1x3v16qi_us (
12182 (const __builtin_aarch64_simd_qi *) __a);
12185 __extension__ extern __inline int8x16x3_t
12186 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12187 vld1q_s8_x3 (const int8_t *__a)
12189 return __builtin_aarch64_ld1x3v16qi (
12190 (const __builtin_aarch64_simd_qi *) __a);
12193 __extension__ extern __inline uint16x8x3_t
12194 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12195 vld1q_u16_x3 (const uint16_t *__a)
12197 return __builtin_aarch64_ld1x3v8hi_us (
12198 (const __builtin_aarch64_simd_hi *) __a);
12201 __extension__ extern __inline int16x8x3_t
12202 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12203 vld1q_s16_x3 (const int16_t *__a)
12205 return __builtin_aarch64_ld1x3v8hi ((const __builtin_aarch64_simd_hi *) __a);
12208 __extension__ extern __inline uint32x4x3_t
12209 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12210 vld1q_u32_x3 (const uint32_t *__a)
12212 return __builtin_aarch64_ld1x3v4si_us (
12213 (const __builtin_aarch64_simd_si *) __a);
12216 __extension__ extern __inline int32x4x3_t
12217 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12218 vld1q_s32_x3 (const int32_t *__a)
12220 return __builtin_aarch64_ld1x3v4si ((const __builtin_aarch64_simd_si *) __a);
12223 __extension__ extern __inline uint64x2x3_t
12224 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12225 vld1q_u64_x3 (const uint64_t *__a)
12227 return __builtin_aarch64_ld1x3v2di_us (
12228 (const __builtin_aarch64_simd_di *) __a);
12231 __extension__ extern __inline int64x2x3_t
12232 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12233 vld1q_s64_x3 (const int64_t *__a)
12235 return __builtin_aarch64_ld1x3v2di ((const __builtin_aarch64_simd_di *) __a);
12238 __extension__ extern __inline float16x8x3_t
12239 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12240 vld1q_f16_x3 (const float16_t *__a)
12242 return __builtin_aarch64_ld1x3v8hf ((const __builtin_aarch64_simd_hf *) __a);
12245 __extension__ extern __inline float32x4x3_t
12246 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12247 vld1q_f32_x3 (const float32_t *__a)
12249 return __builtin_aarch64_ld1x3v4sf ((const __builtin_aarch64_simd_sf *) __a);
12252 __extension__ extern __inline float64x2x3_t
12253 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12254 vld1q_f64_x3 (const float64_t *__a)
12256 return __builtin_aarch64_ld1x3v2df ((const __builtin_aarch64_simd_df *) __a);
12259 __extension__ extern __inline poly8x16x3_t
12260 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12261 vld1q_p8_x3 (const poly8_t *__a)
12263 return __builtin_aarch64_ld1x3v16qi_ps (
12264 (const __builtin_aarch64_simd_qi *) __a);
12267 __extension__ extern __inline poly16x8x3_t
12268 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12269 vld1q_p16_x3 (const poly16_t *__a)
12271 return __builtin_aarch64_ld1x3v8hi_ps (
12272 (const __builtin_aarch64_simd_hi *) __a);
12275 __extension__ extern __inline poly64x2x3_t
12276 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12277 vld1q_p64_x3 (const poly64_t *__a)
12279 return __builtin_aarch64_ld1x3v2di_ps (
12280 (const __builtin_aarch64_simd_di *) __a);
12283 /* vld1q */
12285 __extension__ extern __inline float16x8_t
12286 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12287 vld1q_f16 (const float16_t *__a)
12289 return __builtin_aarch64_ld1v8hf (__a);
12292 __extension__ extern __inline float32x4_t
12293 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12294 vld1q_f32 (const float32_t *__a)
12296 return __builtin_aarch64_ld1v4sf ((const __builtin_aarch64_simd_sf *) __a);
12299 __extension__ extern __inline float64x2_t
12300 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12301 vld1q_f64 (const float64_t *__a)
12303 return __builtin_aarch64_ld1v2df ((const __builtin_aarch64_simd_df *) __a);
12306 __extension__ extern __inline poly8x16_t
12307 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12308 vld1q_p8 (const poly8_t *__a)
12310 return __builtin_aarch64_ld1v16qi_ps (
12311 (const __builtin_aarch64_simd_qi *) __a);
12314 __extension__ extern __inline poly16x8_t
12315 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12316 vld1q_p16 (const poly16_t *__a)
12318 return __builtin_aarch64_ld1v8hi_ps (
12319 (const __builtin_aarch64_simd_hi *) __a);
12322 __extension__ extern __inline poly64x2_t
12323 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12324 vld1q_p64 (const poly64_t *__a)
12326 return __builtin_aarch64_ld1v2di_ps (
12327 (const __builtin_aarch64_simd_di *) __a);
12330 __extension__ extern __inline int8x16_t
12331 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12332 vld1q_s8 (const int8_t *__a)
12334 return __builtin_aarch64_ld1v16qi ((const __builtin_aarch64_simd_qi *) __a);
12337 __extension__ extern __inline int16x8_t
12338 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12339 vld1q_s16 (const int16_t *__a)
12341 return __builtin_aarch64_ld1v8hi ((const __builtin_aarch64_simd_hi *) __a);
12344 __extension__ extern __inline int32x4_t
12345 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12346 vld1q_s32 (const int32_t *__a)
12348 return __builtin_aarch64_ld1v4si ((const __builtin_aarch64_simd_si *) __a);
12351 __extension__ extern __inline int64x2_t
12352 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12353 vld1q_s64 (const int64_t *__a)
12355 return __builtin_aarch64_ld1v2di ((const __builtin_aarch64_simd_di *) __a);
12358 __extension__ extern __inline uint8x16_t
12359 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12360 vld1q_u8 (const uint8_t *__a)
12362 return __builtin_aarch64_ld1v16qi_us (
12363 (const __builtin_aarch64_simd_qi *) __a);
12366 __extension__ extern __inline uint8x8x2_t
12367 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12368 vld1_u8_x2 (const uint8_t *__a)
12370 return __builtin_aarch64_ld1x2v8qi_us (
12371 (const __builtin_aarch64_simd_qi *) __a);
12374 __extension__ extern __inline int8x8x2_t
12375 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12376 vld1_s8_x2 (const int8_t *__a)
12378 return __builtin_aarch64_ld1x2v8qi ((const __builtin_aarch64_simd_qi *) __a);
12381 __extension__ extern __inline uint16x4x2_t
12382 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12383 vld1_u16_x2 (const uint16_t *__a)
12385 return __builtin_aarch64_ld1x2v4hi_us (
12386 (const __builtin_aarch64_simd_hi *) __a);
12389 __extension__ extern __inline int16x4x2_t
12390 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12391 vld1_s16_x2 (const int16_t *__a)
12393 return __builtin_aarch64_ld1x2v4hi ((const __builtin_aarch64_simd_hi *) __a);
12396 __extension__ extern __inline uint32x2x2_t
12397 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12398 vld1_u32_x2 (const uint32_t *__a)
12400 return __builtin_aarch64_ld1x2v2si_us (
12401 (const __builtin_aarch64_simd_si *) __a);
12404 __extension__ extern __inline int32x2x2_t
12405 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12406 vld1_s32_x2 (const int32_t *__a)
12408 return __builtin_aarch64_ld1x2v2si ((const __builtin_aarch64_simd_si *) __a);
12411 __extension__ extern __inline uint64x1x2_t
12412 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12413 vld1_u64_x2 (const uint64_t *__a)
12415 return __builtin_aarch64_ld1x2di_us (
12416 (const __builtin_aarch64_simd_di *) __a);
12419 __extension__ extern __inline int64x1x2_t
12420 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12421 vld1_s64_x2 (const int64_t *__a)
12423 return __builtin_aarch64_ld1x2di ((const __builtin_aarch64_simd_di *) __a);
12426 __extension__ extern __inline float16x4x2_t
12427 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12428 vld1_f16_x2 (const float16_t *__a)
12430 return __builtin_aarch64_ld1x2v4hf ((const __builtin_aarch64_simd_hf *) __a);
12433 __extension__ extern __inline float32x2x2_t
12434 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12435 vld1_f32_x2 (const float32_t *__a)
12437 return __builtin_aarch64_ld1x2v2sf ((const __builtin_aarch64_simd_sf *) __a);
12440 __extension__ extern __inline float64x1x2_t
12441 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12442 vld1_f64_x2 (const float64_t *__a)
12444 return __builtin_aarch64_ld1x2df ((const __builtin_aarch64_simd_df *) __a);
12447 __extension__ extern __inline poly8x8x2_t
12448 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12449 vld1_p8_x2 (const poly8_t *__a)
12451 return __builtin_aarch64_ld1x2v8qi_ps (
12452 (const __builtin_aarch64_simd_qi *) __a);
12455 __extension__ extern __inline poly16x4x2_t
12456 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12457 vld1_p16_x2 (const poly16_t *__a)
12459 return __builtin_aarch64_ld1x2v4hi_ps (
12460 (const __builtin_aarch64_simd_hi *) __a);
12463 __extension__ extern __inline poly64x1x2_t
12464 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12465 vld1_p64_x2 (const poly64_t *__a)
12467 return __builtin_aarch64_ld1x2di_ps (
12468 (const __builtin_aarch64_simd_di *) __a);
12471 __extension__ extern __inline uint8x16x2_t
12472 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12473 vld1q_u8_x2 (const uint8_t *__a)
12475 return __builtin_aarch64_ld1x2v16qi_us (
12476 (const __builtin_aarch64_simd_qi *) __a);
12479 __extension__ extern __inline int8x16x2_t
12480 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12481 vld1q_s8_x2 (const int8_t *__a)
12483 return __builtin_aarch64_ld1x2v16qi (
12484 (const __builtin_aarch64_simd_qi *) __a);
12487 __extension__ extern __inline uint16x8x2_t
12488 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12489 vld1q_u16_x2 (const uint16_t *__a)
12491 return __builtin_aarch64_ld1x2v8hi_us (
12492 (const __builtin_aarch64_simd_hi *) __a);
12495 __extension__ extern __inline int16x8x2_t
12496 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12497 vld1q_s16_x2 (const int16_t *__a)
12499 return __builtin_aarch64_ld1x2v8hi ((const __builtin_aarch64_simd_hi *) __a);
12502 __extension__ extern __inline uint32x4x2_t
12503 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12504 vld1q_u32_x2 (const uint32_t *__a)
12506 return __builtin_aarch64_ld1x2v4si_us (
12507 (const __builtin_aarch64_simd_si *) __a);
12510 __extension__ extern __inline int32x4x2_t
12511 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12512 vld1q_s32_x2 (const int32_t *__a)
12514 return __builtin_aarch64_ld1x2v4si ((const __builtin_aarch64_simd_si *) __a);
12517 __extension__ extern __inline uint64x2x2_t
12518 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12519 vld1q_u64_x2 (const uint64_t *__a)
12521 return __builtin_aarch64_ld1x2v2di_us (
12522 (const __builtin_aarch64_simd_di *) __a);
12525 __extension__ extern __inline int64x2x2_t
12526 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12527 vld1q_s64_x2 (const int64_t *__a)
12529 return __builtin_aarch64_ld1x2v2di ((const __builtin_aarch64_simd_di *) __a);
12532 __extension__ extern __inline float16x8x2_t
12533 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12534 vld1q_f16_x2 (const float16_t *__a)
12536 return __builtin_aarch64_ld1x2v8hf ((const __builtin_aarch64_simd_hf *) __a);
12539 __extension__ extern __inline float32x4x2_t
12540 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12541 vld1q_f32_x2 (const float32_t *__a)
12543 return __builtin_aarch64_ld1x2v4sf ((const __builtin_aarch64_simd_sf *) __a);
12546 __extension__ extern __inline float64x2x2_t
12547 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12548 vld1q_f64_x2 (const float64_t *__a)
12550 return __builtin_aarch64_ld1x2v2df ((const __builtin_aarch64_simd_df *) __a);
12553 __extension__ extern __inline poly8x16x2_t
12554 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12555 vld1q_p8_x2 (const poly8_t *__a)
12557 return __builtin_aarch64_ld1x2v16qi_ps (
12558 (const __builtin_aarch64_simd_qi *) __a);
12561 __extension__ extern __inline poly16x8x2_t
12562 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12563 vld1q_p16_x2 (const poly16_t *__a)
12565 return __builtin_aarch64_ld1x2v8hi_ps (
12566 (const __builtin_aarch64_simd_hi *) __a);
12569 __extension__ extern __inline poly64x2x2_t
12570 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12571 vld1q_p64_x2 (const poly64_t *__a)
12573 return __builtin_aarch64_ld1x2v2di_ps (
12574 (const __builtin_aarch64_simd_di *) __a);
12577 __extension__ extern __inline uint16x8_t
12578 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12579 vld1q_u16 (const uint16_t *__a)
12581 return __builtin_aarch64_ld1v8hi_us (
12582 (const __builtin_aarch64_simd_hi *) __a);
12585 __extension__ extern __inline uint32x4_t
12586 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12587 vld1q_u32 (const uint32_t *__a)
12589 return __builtin_aarch64_ld1v4si_us (
12590 (const __builtin_aarch64_simd_si *) __a);
12593 __extension__ extern __inline uint64x2_t
12594 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12595 vld1q_u64 (const uint64_t *__a)
12597 return __builtin_aarch64_ld1v2di_us (
12598 (const __builtin_aarch64_simd_di *) __a);
12601 /* vld1(q)_x4. */
12603 __extension__ extern __inline int8x8x4_t
12604 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12605 vld1_s8_x4 (const int8_t *__a)
12607 return __builtin_aarch64_ld1x4v8qi ((const __builtin_aarch64_simd_qi *) __a);
12610 __extension__ extern __inline int8x16x4_t
12611 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12612 vld1q_s8_x4 (const int8_t *__a)
12614 return __builtin_aarch64_ld1x4v16qi (
12615 (const __builtin_aarch64_simd_qi *) __a);
12618 __extension__ extern __inline int16x4x4_t
12619 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12620 vld1_s16_x4 (const int16_t *__a)
12622 return __builtin_aarch64_ld1x4v4hi ((const __builtin_aarch64_simd_hi *) __a);
12625 __extension__ extern __inline int16x8x4_t
12626 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12627 vld1q_s16_x4 (const int16_t *__a)
12629 return __builtin_aarch64_ld1x4v8hi ((const __builtin_aarch64_simd_hi *) __a);
12632 __extension__ extern __inline int32x2x4_t
12633 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12634 vld1_s32_x4 (const int32_t *__a)
12636 return __builtin_aarch64_ld1x4v2si ((const __builtin_aarch64_simd_si *) __a);
12639 __extension__ extern __inline int32x4x4_t
12640 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12641 vld1q_s32_x4 (const int32_t *__a)
12643 return __builtin_aarch64_ld1x4v4si ((const __builtin_aarch64_simd_si *) __a);
12646 __extension__ extern __inline uint8x8x4_t
12647 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12648 vld1_u8_x4 (const uint8_t *__a)
12650 return __builtin_aarch64_ld1x4v8qi_us (
12651 (const __builtin_aarch64_simd_qi *) __a);
12654 __extension__ extern __inline uint8x16x4_t
12655 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12656 vld1q_u8_x4 (const uint8_t *__a)
12658 return __builtin_aarch64_ld1x4v16qi_us (
12659 (const __builtin_aarch64_simd_qi *) __a);
12662 __extension__ extern __inline uint16x4x4_t
12663 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12664 vld1_u16_x4 (const uint16_t *__a)
12666 return __builtin_aarch64_ld1x4v4hi_us (
12667 (const __builtin_aarch64_simd_hi *) __a);
12670 __extension__ extern __inline uint16x8x4_t
12671 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12672 vld1q_u16_x4 (const uint16_t *__a)
12674 return __builtin_aarch64_ld1x4v8hi_us (
12675 (const __builtin_aarch64_simd_hi *) __a);
12678 __extension__ extern __inline uint32x2x4_t
12679 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12680 vld1_u32_x4 (const uint32_t *__a)
12682 return __builtin_aarch64_ld1x4v2si_us (
12683 (const __builtin_aarch64_simd_si *) __a);
12686 __extension__ extern __inline uint32x4x4_t
12687 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12688 vld1q_u32_x4 (const uint32_t *__a)
12690 return __builtin_aarch64_ld1x4v4si_us (
12691 (const __builtin_aarch64_simd_si *) __a);
12694 __extension__ extern __inline float16x4x4_t
12695 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12696 vld1_f16_x4 (const float16_t *__a)
12698 return __builtin_aarch64_ld1x4v4hf ((const __builtin_aarch64_simd_hf *) __a);
12701 __extension__ extern __inline float16x8x4_t
12702 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12703 vld1q_f16_x4 (const float16_t *__a)
12705 return __builtin_aarch64_ld1x4v8hf ((const __builtin_aarch64_simd_hf *) __a);
12708 __extension__ extern __inline float32x2x4_t
12709 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12710 vld1_f32_x4 (const float32_t *__a)
12712 return __builtin_aarch64_ld1x4v2sf ((const __builtin_aarch64_simd_sf *) __a);
12715 __extension__ extern __inline float32x4x4_t
12716 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12717 vld1q_f32_x4 (const float32_t *__a)
12719 return __builtin_aarch64_ld1x4v4sf ((const __builtin_aarch64_simd_sf *) __a);
12722 __extension__ extern __inline poly8x8x4_t
12723 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12724 vld1_p8_x4 (const poly8_t *__a)
12726 return __builtin_aarch64_ld1x4v8qi_ps (
12727 (const __builtin_aarch64_simd_qi *) __a);
12730 __extension__ extern __inline poly8x16x4_t
12731 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12732 vld1q_p8_x4 (const poly8_t *__a)
12734 return __builtin_aarch64_ld1x4v16qi_ps (
12735 (const __builtin_aarch64_simd_qi *) __a);
12738 __extension__ extern __inline poly16x4x4_t
12739 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12740 vld1_p16_x4 (const poly16_t *__a)
12742 return __builtin_aarch64_ld1x4v4hi_ps (
12743 (const __builtin_aarch64_simd_hi *) __a);
12746 __extension__ extern __inline poly16x8x4_t
12747 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12748 vld1q_p16_x4 (const poly16_t *__a)
12750 return __builtin_aarch64_ld1x4v8hi_ps (
12751 (const __builtin_aarch64_simd_hi *) __a);
12754 __extension__ extern __inline int64x1x4_t
12755 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12756 vld1_s64_x4 (const int64_t *__a)
12758 return __builtin_aarch64_ld1x4di ((const __builtin_aarch64_simd_di *) __a);
12761 __extension__ extern __inline uint64x1x4_t
12762 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12763 vld1_u64_x4 (const uint64_t *__a)
12765 return __builtin_aarch64_ld1x4di_us (
12766 (const __builtin_aarch64_simd_di *) __a);
12769 __extension__ extern __inline poly64x1x4_t
12770 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12771 vld1_p64_x4 (const poly64_t *__a)
12773 return __builtin_aarch64_ld1x4di_ps (
12774 (const __builtin_aarch64_simd_di *) __a);
12777 __extension__ extern __inline int64x2x4_t
12778 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12779 vld1q_s64_x4 (const int64_t *__a)
12781 return __builtin_aarch64_ld1x4v2di ((const __builtin_aarch64_simd_di *) __a);
12784 __extension__ extern __inline uint64x2x4_t
12785 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12786 vld1q_u64_x4 (const uint64_t *__a)
12788 return __builtin_aarch64_ld1x4v2di_us (
12789 (const __builtin_aarch64_simd_di *) __a);
12792 __extension__ extern __inline poly64x2x4_t
12793 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12794 vld1q_p64_x4 (const poly64_t *__a)
12796 return __builtin_aarch64_ld1x4v2di_ps (
12797 (const __builtin_aarch64_simd_di *) __a);
12800 __extension__ extern __inline float64x1x4_t
12801 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12802 vld1_f64_x4 (const float64_t *__a)
12804 return __builtin_aarch64_ld1x4df ((const __builtin_aarch64_simd_df *) __a);
12807 __extension__ extern __inline float64x2x4_t
12808 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12809 vld1q_f64_x4 (const float64_t *__a)
12811 return __builtin_aarch64_ld1x4v2df ((const __builtin_aarch64_simd_df *) __a);
12814 /* vld1_dup */
12816 __extension__ extern __inline float16x4_t
12817 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12818 vld1_dup_f16 (const float16_t* __a)
12820 return vdup_n_f16 (*__a);
12823 __extension__ extern __inline float32x2_t
12824 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12825 vld1_dup_f32 (const float32_t* __a)
12827 return vdup_n_f32 (*__a);
12830 __extension__ extern __inline float64x1_t
12831 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12832 vld1_dup_f64 (const float64_t* __a)
12834 return vdup_n_f64 (*__a);
12837 __extension__ extern __inline poly8x8_t
12838 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12839 vld1_dup_p8 (const poly8_t* __a)
12841 return vdup_n_p8 (*__a);
12844 __extension__ extern __inline poly16x4_t
12845 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12846 vld1_dup_p16 (const poly16_t* __a)
12848 return vdup_n_p16 (*__a);
12851 __extension__ extern __inline poly64x1_t
12852 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12853 vld1_dup_p64 (const poly64_t* __a)
12855 return vdup_n_p64 (*__a);
12858 __extension__ extern __inline int8x8_t
12859 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12860 vld1_dup_s8 (const int8_t* __a)
12862 return vdup_n_s8 (*__a);
12865 __extension__ extern __inline int16x4_t
12866 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12867 vld1_dup_s16 (const int16_t* __a)
12869 return vdup_n_s16 (*__a);
12872 __extension__ extern __inline int32x2_t
12873 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12874 vld1_dup_s32 (const int32_t* __a)
12876 return vdup_n_s32 (*__a);
12879 __extension__ extern __inline int64x1_t
12880 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12881 vld1_dup_s64 (const int64_t* __a)
12883 return vdup_n_s64 (*__a);
12886 __extension__ extern __inline uint8x8_t
12887 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12888 vld1_dup_u8 (const uint8_t* __a)
12890 return vdup_n_u8 (*__a);
12893 __extension__ extern __inline uint16x4_t
12894 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12895 vld1_dup_u16 (const uint16_t* __a)
12897 return vdup_n_u16 (*__a);
12900 __extension__ extern __inline uint32x2_t
12901 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12902 vld1_dup_u32 (const uint32_t* __a)
12904 return vdup_n_u32 (*__a);
12907 __extension__ extern __inline uint64x1_t
12908 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12909 vld1_dup_u64 (const uint64_t* __a)
12911 return vdup_n_u64 (*__a);
12914 /* vld1q_dup */
12916 __extension__ extern __inline float16x8_t
12917 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12918 vld1q_dup_f16 (const float16_t* __a)
12920 return vdupq_n_f16 (*__a);
12923 __extension__ extern __inline float32x4_t
12924 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12925 vld1q_dup_f32 (const float32_t* __a)
12927 return vdupq_n_f32 (*__a);
12930 __extension__ extern __inline float64x2_t
12931 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12932 vld1q_dup_f64 (const float64_t* __a)
12934 return vdupq_n_f64 (*__a);
12937 __extension__ extern __inline poly8x16_t
12938 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12939 vld1q_dup_p8 (const poly8_t* __a)
12941 return vdupq_n_p8 (*__a);
12944 __extension__ extern __inline poly16x8_t
12945 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12946 vld1q_dup_p16 (const poly16_t* __a)
12948 return vdupq_n_p16 (*__a);
12951 __extension__ extern __inline poly64x2_t
12952 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12953 vld1q_dup_p64 (const poly64_t* __a)
12955 return vdupq_n_p64 (*__a);
12958 __extension__ extern __inline int8x16_t
12959 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12960 vld1q_dup_s8 (const int8_t* __a)
12962 return vdupq_n_s8 (*__a);
12965 __extension__ extern __inline int16x8_t
12966 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12967 vld1q_dup_s16 (const int16_t* __a)
12969 return vdupq_n_s16 (*__a);
12972 __extension__ extern __inline int32x4_t
12973 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12974 vld1q_dup_s32 (const int32_t* __a)
12976 return vdupq_n_s32 (*__a);
12979 __extension__ extern __inline int64x2_t
12980 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12981 vld1q_dup_s64 (const int64_t* __a)
12983 return vdupq_n_s64 (*__a);
12986 __extension__ extern __inline uint8x16_t
12987 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12988 vld1q_dup_u8 (const uint8_t* __a)
12990 return vdupq_n_u8 (*__a);
12993 __extension__ extern __inline uint16x8_t
12994 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12995 vld1q_dup_u16 (const uint16_t* __a)
12997 return vdupq_n_u16 (*__a);
13000 __extension__ extern __inline uint32x4_t
13001 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13002 vld1q_dup_u32 (const uint32_t* __a)
13004 return vdupq_n_u32 (*__a);
13007 __extension__ extern __inline uint64x2_t
13008 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13009 vld1q_dup_u64 (const uint64_t* __a)
13011 return vdupq_n_u64 (*__a);
13014 /* vld1_lane */
13016 __extension__ extern __inline float16x4_t
13017 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13018 vld1_lane_f16 (const float16_t *__src, float16x4_t __vec, const int __lane)
13020 return __aarch64_vset_lane_any (*__src, __vec, __lane);
13023 __extension__ extern __inline float32x2_t
13024 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13025 vld1_lane_f32 (const float32_t *__src, float32x2_t __vec, const int __lane)
13027 return __aarch64_vset_lane_any (*__src, __vec, __lane);
13030 __extension__ extern __inline float64x1_t
13031 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13032 vld1_lane_f64 (const float64_t *__src, float64x1_t __vec, const int __lane)
13034 return __aarch64_vset_lane_any (*__src, __vec, __lane);
13037 __extension__ extern __inline poly8x8_t
13038 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13039 vld1_lane_p8 (const poly8_t *__src, poly8x8_t __vec, const int __lane)
13041 return __aarch64_vset_lane_any (*__src, __vec, __lane);
13044 __extension__ extern __inline poly16x4_t
13045 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13046 vld1_lane_p16 (const poly16_t *__src, poly16x4_t __vec, const int __lane)
13048 return __aarch64_vset_lane_any (*__src, __vec, __lane);
13051 __extension__ extern __inline poly64x1_t
13052 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13053 vld1_lane_p64 (const poly64_t *__src, poly64x1_t __vec, const int __lane)
13055 return __aarch64_vset_lane_any (*__src, __vec, __lane);
13058 __extension__ extern __inline int8x8_t
13059 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13060 vld1_lane_s8 (const int8_t *__src, int8x8_t __vec, const int __lane)
13062 return __aarch64_vset_lane_any (*__src, __vec, __lane);
13065 __extension__ extern __inline int16x4_t
13066 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13067 vld1_lane_s16 (const int16_t *__src, int16x4_t __vec, const int __lane)
13069 return __aarch64_vset_lane_any (*__src, __vec, __lane);
13072 __extension__ extern __inline int32x2_t
13073 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13074 vld1_lane_s32 (const int32_t *__src, int32x2_t __vec, const int __lane)
13076 return __aarch64_vset_lane_any (*__src, __vec, __lane);
13079 __extension__ extern __inline int64x1_t
13080 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13081 vld1_lane_s64 (const int64_t *__src, int64x1_t __vec, const int __lane)
13083 return __aarch64_vset_lane_any (*__src, __vec, __lane);
13086 __extension__ extern __inline uint8x8_t
13087 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13088 vld1_lane_u8 (const uint8_t *__src, uint8x8_t __vec, const int __lane)
13090 return __aarch64_vset_lane_any (*__src, __vec, __lane);
13093 __extension__ extern __inline uint16x4_t
13094 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13095 vld1_lane_u16 (const uint16_t *__src, uint16x4_t __vec, const int __lane)
13097 return __aarch64_vset_lane_any (*__src, __vec, __lane);
13100 __extension__ extern __inline uint32x2_t
13101 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13102 vld1_lane_u32 (const uint32_t *__src, uint32x2_t __vec, const int __lane)
13104 return __aarch64_vset_lane_any (*__src, __vec, __lane);
13107 __extension__ extern __inline uint64x1_t
13108 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13109 vld1_lane_u64 (const uint64_t *__src, uint64x1_t __vec, const int __lane)
13111 return __aarch64_vset_lane_any (*__src, __vec, __lane);
13114 /* vld1q_lane */
13116 __extension__ extern __inline float16x8_t
13117 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13118 vld1q_lane_f16 (const float16_t *__src, float16x8_t __vec, const int __lane)
13120 return __aarch64_vset_lane_any (*__src, __vec, __lane);
13123 __extension__ extern __inline float32x4_t
13124 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13125 vld1q_lane_f32 (const float32_t *__src, float32x4_t __vec, const int __lane)
13127 return __aarch64_vset_lane_any (*__src, __vec, __lane);
13130 __extension__ extern __inline float64x2_t
13131 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13132 vld1q_lane_f64 (const float64_t *__src, float64x2_t __vec, const int __lane)
13134 return __aarch64_vset_lane_any (*__src, __vec, __lane);
13137 __extension__ extern __inline poly8x16_t
13138 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13139 vld1q_lane_p8 (const poly8_t *__src, poly8x16_t __vec, const int __lane)
13141 return __aarch64_vset_lane_any (*__src, __vec, __lane);
13144 __extension__ extern __inline poly16x8_t
13145 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13146 vld1q_lane_p16 (const poly16_t *__src, poly16x8_t __vec, const int __lane)
13148 return __aarch64_vset_lane_any (*__src, __vec, __lane);
13151 __extension__ extern __inline poly64x2_t
13152 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13153 vld1q_lane_p64 (const poly64_t *__src, poly64x2_t __vec, const int __lane)
13155 return __aarch64_vset_lane_any (*__src, __vec, __lane);
13158 __extension__ extern __inline int8x16_t
13159 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13160 vld1q_lane_s8 (const int8_t *__src, int8x16_t __vec, const int __lane)
13162 return __aarch64_vset_lane_any (*__src, __vec, __lane);
13165 __extension__ extern __inline int16x8_t
13166 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13167 vld1q_lane_s16 (const int16_t *__src, int16x8_t __vec, const int __lane)
13169 return __aarch64_vset_lane_any (*__src, __vec, __lane);
13172 __extension__ extern __inline int32x4_t
13173 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13174 vld1q_lane_s32 (const int32_t *__src, int32x4_t __vec, const int __lane)
13176 return __aarch64_vset_lane_any (*__src, __vec, __lane);
13179 __extension__ extern __inline int64x2_t
13180 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13181 vld1q_lane_s64 (const int64_t *__src, int64x2_t __vec, const int __lane)
13183 return __aarch64_vset_lane_any (*__src, __vec, __lane);
13186 __extension__ extern __inline uint8x16_t
13187 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13188 vld1q_lane_u8 (const uint8_t *__src, uint8x16_t __vec, const int __lane)
13190 return __aarch64_vset_lane_any (*__src, __vec, __lane);
13193 __extension__ extern __inline uint16x8_t
13194 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13195 vld1q_lane_u16 (const uint16_t *__src, uint16x8_t __vec, const int __lane)
13197 return __aarch64_vset_lane_any (*__src, __vec, __lane);
13200 __extension__ extern __inline uint32x4_t
13201 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13202 vld1q_lane_u32 (const uint32_t *__src, uint32x4_t __vec, const int __lane)
13204 return __aarch64_vset_lane_any (*__src, __vec, __lane);
13207 __extension__ extern __inline uint64x2_t
13208 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13209 vld1q_lane_u64 (const uint64_t *__src, uint64x2_t __vec, const int __lane)
13211 return __aarch64_vset_lane_any (*__src, __vec, __lane);
13214 #pragma GCC push_options
13215 #pragma GCC target ("+nothing+rcpc3+simd")
13217 /* vldap1_lane. */
13219 __extension__ extern __inline uint64x1_t
13220 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13221 vldap1_lane_u64 (const uint64_t *__src, uint64x1_t __vec, const int __lane)
13223 return __builtin_aarch64_vec_ldap1_lanev1di_usus (
13224 (const __builtin_aarch64_simd_di *) __src, __vec, __lane);
13227 __extension__ extern __inline uint64x2_t
13228 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13229 vldap1q_lane_u64 (const uint64_t *__src, uint64x2_t __vec, const int __lane)
13231 return __builtin_aarch64_vec_ldap1_lanev2di_usus (
13232 (const __builtin_aarch64_simd_di *) __src, __vec, __lane);
13235 __extension__ extern __inline int64x1_t
13236 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13237 vldap1_lane_s64 (const int64_t *__src, int64x1_t __vec, const int __lane)
13239 return __builtin_aarch64_vec_ldap1_lanev1di (
13240 (const __builtin_aarch64_simd_di *) __src, __vec, __lane);
13243 __extension__ extern __inline int64x2_t
13244 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13245 vldap1q_lane_s64 (const int64_t *__src, int64x2_t __vec, const int __lane)
13247 return __builtin_aarch64_vec_ldap1_lanev2di (
13248 (const __builtin_aarch64_simd_di *) __src, __vec, __lane);
13251 __extension__ extern __inline float64x1_t
13252 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13253 vldap1_lane_f64 (const float64_t *__src, float64x1_t __vec, const int __lane)
13255 return __builtin_aarch64_vec_ldap1_lanev1df (
13256 (const __builtin_aarch64_simd_df *) __src, __vec, __lane);
13259 __extension__ extern __inline float64x2_t
13260 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13261 vldap1q_lane_f64 (const float64_t *__src, float64x2_t __vec, const int __lane)
13263 return __builtin_aarch64_vec_ldap1_lanev2df (
13264 (const __builtin_aarch64_simd_df *) __src, __vec, __lane);
13267 __extension__ extern __inline poly64x1_t
13268 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13269 vldap1_lane_p64 (const poly64_t *__src, poly64x1_t __vec, const int __lane)
13271 return __builtin_aarch64_vec_ldap1_lanev1di_psps (
13272 (const __builtin_aarch64_simd_di *) __src, __vec, __lane);
13275 __extension__ extern __inline poly64x2_t
13276 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13277 vldap1q_lane_p64 (const poly64_t *__src, poly64x2_t __vec, const int __lane)
13279 return __builtin_aarch64_vec_ldap1_lanev2di_psps (
13280 (const __builtin_aarch64_simd_di *) __src, __vec, __lane);
13283 /* vstl1_lane. */
13285 __extension__ extern __inline void
13286 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13287 vstl1_lane_u64 (uint64_t *__src, uint64x1_t __vec, const int __lane)
13289 __builtin_aarch64_vec_stl1_lanev1di_sus ((__builtin_aarch64_simd_di *) __src,
13290 __vec, __lane);
13293 __extension__ extern __inline void
13294 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13295 vstl1q_lane_u64 (uint64_t *__src, uint64x2_t __vec, const int __lane)
13297 __builtin_aarch64_vec_stl1_lanev2di_sus ((__builtin_aarch64_simd_di *) __src,
13298 __vec, __lane);
13301 __extension__ extern __inline void
13302 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13303 vstl1_lane_s64 (int64_t *__src, int64x1_t __vec, const int __lane)
13305 __builtin_aarch64_vec_stl1_lanev1di ((__builtin_aarch64_simd_di *) __src,
13306 __vec, __lane);
13309 __extension__ extern __inline void
13310 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13311 vstl1q_lane_s64 (int64_t *__src, int64x2_t __vec, const int __lane)
13313 __builtin_aarch64_vec_stl1_lanev2di ((__builtin_aarch64_simd_di *) __src,
13314 __vec, __lane);
13317 __extension__ extern __inline void
13318 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13319 vstl1_lane_f64 (float64_t *__src, float64x1_t __vec, const int __lane)
13321 __builtin_aarch64_vec_stl1_lanev1df ((__builtin_aarch64_simd_df *) __src,
13322 __vec, __lane);
13325 __extension__ extern __inline void
13326 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13327 vstl1q_lane_f64 (float64_t *__src, float64x2_t __vec, const int __lane)
13329 __builtin_aarch64_vec_stl1_lanev2df ((__builtin_aarch64_simd_df *) __src,
13330 __vec, __lane);
13333 __extension__ extern __inline void
13334 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13335 vstl1_lane_p64 (poly64_t *__src, poly64x1_t __vec, const int __lane)
13337 __builtin_aarch64_vec_stl1_lanev1di_sps ((__builtin_aarch64_simd_di *) __src,
13338 __vec, __lane);
13341 __extension__ extern __inline void
13342 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13343 vstl1q_lane_p64 (poly64_t *__src, poly64x2_t __vec, const int __lane)
13345 __builtin_aarch64_vec_stl1_lanev2di_sps ((__builtin_aarch64_simd_di *) __src,
13346 __vec, __lane);
13349 #pragma GCC pop_options
13351 /* vldn */
13353 __extension__ extern __inline int64x1x2_t
13354 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13355 vld2_s64 (const int64_t * __a)
13357 return __builtin_aarch64_ld2di ((const __builtin_aarch64_simd_di *) __a);
13360 __extension__ extern __inline uint64x1x2_t
13361 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13362 vld2_u64 (const uint64_t * __a)
13364 return __builtin_aarch64_ld2di_us ((const __builtin_aarch64_simd_di *) __a);
13367 __extension__ extern __inline float64x1x2_t
13368 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13369 vld2_f64 (const float64_t * __a)
13371 return __builtin_aarch64_ld2df ((const __builtin_aarch64_simd_df *) __a);
13374 __extension__ extern __inline int8x8x2_t
13375 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13376 vld2_s8 (const int8_t * __a)
13378 return __builtin_aarch64_ld2v8qi ((const __builtin_aarch64_simd_qi *) __a);
13381 __extension__ extern __inline poly8x8x2_t
13382 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13383 vld2_p8 (const poly8_t * __a)
13385 return __builtin_aarch64_ld2v8qi_ps (
13386 (const __builtin_aarch64_simd_qi *) __a);
13389 __extension__ extern __inline poly64x1x2_t
13390 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13391 vld2_p64 (const poly64_t * __a)
13393 return __builtin_aarch64_ld2di_ps ((const __builtin_aarch64_simd_di *) __a);
13396 __extension__ extern __inline int16x4x2_t
13397 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13398 vld2_s16 (const int16_t * __a)
13400 return __builtin_aarch64_ld2v4hi ((const __builtin_aarch64_simd_hi *) __a);
13403 __extension__ extern __inline poly16x4x2_t
13404 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13405 vld2_p16 (const poly16_t * __a)
13407 return __builtin_aarch64_ld2v4hi_ps (
13408 (const __builtin_aarch64_simd_hi *) __a);
13411 __extension__ extern __inline int32x2x2_t
13412 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13413 vld2_s32 (const int32_t * __a)
13415 return __builtin_aarch64_ld2v2si ((const __builtin_aarch64_simd_si *) __a);
13418 __extension__ extern __inline uint8x8x2_t
13419 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13420 vld2_u8 (const uint8_t * __a)
13422 return __builtin_aarch64_ld2v8qi_us (
13423 (const __builtin_aarch64_simd_qi *) __a);
13426 __extension__ extern __inline uint16x4x2_t
13427 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13428 vld2_u16 (const uint16_t * __a)
13430 return __builtin_aarch64_ld2v4hi_us (
13431 (const __builtin_aarch64_simd_hi *) __a);
13434 __extension__ extern __inline uint32x2x2_t
13435 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13436 vld2_u32 (const uint32_t * __a)
13438 return __builtin_aarch64_ld2v2si_us (
13439 (const __builtin_aarch64_simd_si *) __a);
13442 __extension__ extern __inline float16x4x2_t
13443 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13444 vld2_f16 (const float16_t * __a)
13446 return __builtin_aarch64_ld2v4hf (__a);
13449 __extension__ extern __inline float32x2x2_t
13450 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13451 vld2_f32 (const float32_t * __a)
13453 return __builtin_aarch64_ld2v2sf ((const __builtin_aarch64_simd_sf *) __a);
13456 __extension__ extern __inline int8x16x2_t
13457 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13458 vld2q_s8 (const int8_t * __a)
13460 return __builtin_aarch64_ld2v16qi ((const __builtin_aarch64_simd_qi *) __a);
13463 __extension__ extern __inline poly8x16x2_t
13464 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13465 vld2q_p8 (const poly8_t * __a)
13467 return __builtin_aarch64_ld2v16qi_ps (
13468 (const __builtin_aarch64_simd_qi *) __a);
13471 __extension__ extern __inline int16x8x2_t
13472 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13473 vld2q_s16 (const int16_t * __a)
13475 return __builtin_aarch64_ld2v8hi ((const __builtin_aarch64_simd_hi *) __a);
13478 __extension__ extern __inline poly16x8x2_t
13479 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13480 vld2q_p16 (const poly16_t * __a)
13482 return __builtin_aarch64_ld2v8hi_ps (
13483 (const __builtin_aarch64_simd_hi *) __a);
13486 __extension__ extern __inline poly64x2x2_t
13487 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13488 vld2q_p64 (const poly64_t * __a)
13490 return __builtin_aarch64_ld2v2di_ps (
13491 (const __builtin_aarch64_simd_di *) __a);
13494 __extension__ extern __inline int32x4x2_t
13495 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13496 vld2q_s32 (const int32_t * __a)
13498 return __builtin_aarch64_ld2v4si ((const __builtin_aarch64_simd_si *) __a);
13501 __extension__ extern __inline int64x2x2_t
13502 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13503 vld2q_s64 (const int64_t * __a)
13505 return __builtin_aarch64_ld2v2di ((const __builtin_aarch64_simd_di *) __a);
13508 __extension__ extern __inline uint8x16x2_t
13509 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13510 vld2q_u8 (const uint8_t * __a)
13512 return __builtin_aarch64_ld2v16qi_us (
13513 (const __builtin_aarch64_simd_qi *) __a);
13516 __extension__ extern __inline uint16x8x2_t
13517 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13518 vld2q_u16 (const uint16_t * __a)
13520 return __builtin_aarch64_ld2v8hi_us (
13521 (const __builtin_aarch64_simd_hi *) __a);
13524 __extension__ extern __inline uint32x4x2_t
13525 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13526 vld2q_u32 (const uint32_t * __a)
13528 return __builtin_aarch64_ld2v4si_us (
13529 (const __builtin_aarch64_simd_si *) __a);
13532 __extension__ extern __inline uint64x2x2_t
13533 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13534 vld2q_u64 (const uint64_t * __a)
13536 return __builtin_aarch64_ld2v2di_us (
13537 (const __builtin_aarch64_simd_di *) __a);
13540 __extension__ extern __inline float16x8x2_t
13541 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13542 vld2q_f16 (const float16_t * __a)
13544 return __builtin_aarch64_ld2v8hf (__a);
13547 __extension__ extern __inline float32x4x2_t
13548 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13549 vld2q_f32 (const float32_t * __a)
13551 return __builtin_aarch64_ld2v4sf ((const __builtin_aarch64_simd_sf *) __a);
13554 __extension__ extern __inline float64x2x2_t
13555 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13556 vld2q_f64 (const float64_t * __a)
13558 return __builtin_aarch64_ld2v2df ((const __builtin_aarch64_simd_df *) __a);
13561 __extension__ extern __inline int64x1x3_t
13562 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13563 vld3_s64 (const int64_t * __a)
13565 return __builtin_aarch64_ld3di ((const __builtin_aarch64_simd_di *) __a);
13568 __extension__ extern __inline uint64x1x3_t
13569 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13570 vld3_u64 (const uint64_t * __a)
13572 return __builtin_aarch64_ld3di_us ((const __builtin_aarch64_simd_di *) __a);
13575 __extension__ extern __inline float64x1x3_t
13576 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13577 vld3_f64 (const float64_t * __a)
13579 return __builtin_aarch64_ld3df ((const __builtin_aarch64_simd_df *) __a);
13582 __extension__ extern __inline int8x8x3_t
13583 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13584 vld3_s8 (const int8_t * __a)
13586 return __builtin_aarch64_ld3v8qi ((const __builtin_aarch64_simd_qi *) __a);
13589 __extension__ extern __inline poly8x8x3_t
13590 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13591 vld3_p8 (const poly8_t * __a)
13593 return __builtin_aarch64_ld3v8qi_ps (
13594 (const __builtin_aarch64_simd_qi *) __a);
13597 __extension__ extern __inline int16x4x3_t
13598 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13599 vld3_s16 (const int16_t * __a)
13601 return __builtin_aarch64_ld3v4hi ((const __builtin_aarch64_simd_hi *) __a);
13604 __extension__ extern __inline poly16x4x3_t
13605 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13606 vld3_p16 (const poly16_t * __a)
13608 return __builtin_aarch64_ld3v4hi_ps (
13609 (const __builtin_aarch64_simd_hi *) __a);
13612 __extension__ extern __inline int32x2x3_t
13613 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13614 vld3_s32 (const int32_t * __a)
13616 return __builtin_aarch64_ld3v2si ((const __builtin_aarch64_simd_si *) __a);
13619 __extension__ extern __inline uint8x8x3_t
13620 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13621 vld3_u8 (const uint8_t * __a)
13623 return __builtin_aarch64_ld3v8qi_us (
13624 (const __builtin_aarch64_simd_qi *) __a);
13627 __extension__ extern __inline uint16x4x3_t
13628 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13629 vld3_u16 (const uint16_t * __a)
13631 return __builtin_aarch64_ld3v4hi_us (
13632 (const __builtin_aarch64_simd_hi *) __a);
13635 __extension__ extern __inline uint32x2x3_t
13636 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13637 vld3_u32 (const uint32_t * __a)
13639 return __builtin_aarch64_ld3v2si_us (
13640 (const __builtin_aarch64_simd_si *) __a);
13643 __extension__ extern __inline float16x4x3_t
13644 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13645 vld3_f16 (const float16_t * __a)
13647 return __builtin_aarch64_ld3v4hf (__a);
13650 __extension__ extern __inline float32x2x3_t
13651 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13652 vld3_f32 (const float32_t * __a)
13654 return __builtin_aarch64_ld3v2sf ((const __builtin_aarch64_simd_sf *) __a);
13657 __extension__ extern __inline poly64x1x3_t
13658 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13659 vld3_p64 (const poly64_t * __a)
13661 return __builtin_aarch64_ld3di_ps ((const __builtin_aarch64_simd_di *) __a);
13664 __extension__ extern __inline int8x16x3_t
13665 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13666 vld3q_s8 (const int8_t * __a)
13668 return __builtin_aarch64_ld3v16qi ((const __builtin_aarch64_simd_qi *) __a);
13671 __extension__ extern __inline poly8x16x3_t
13672 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13673 vld3q_p8 (const poly8_t * __a)
13675 return __builtin_aarch64_ld3v16qi_ps ((const __builtin_aarch64_simd_qi *) __a);
13678 __extension__ extern __inline int16x8x3_t
13679 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13680 vld3q_s16 (const int16_t * __a)
13682 return __builtin_aarch64_ld3v8hi ((const __builtin_aarch64_simd_hi *) __a);
13685 __extension__ extern __inline poly16x8x3_t
13686 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13687 vld3q_p16 (const poly16_t * __a)
13689 return __builtin_aarch64_ld3v8hi_ps ((const __builtin_aarch64_simd_hi *) __a);
13692 __extension__ extern __inline int32x4x3_t
13693 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13694 vld3q_s32 (const int32_t * __a)
13696 return __builtin_aarch64_ld3v4si ((const __builtin_aarch64_simd_si *) __a);
13699 __extension__ extern __inline int64x2x3_t
13700 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13701 vld3q_s64 (const int64_t * __a)
13703 return __builtin_aarch64_ld3v2di ((const __builtin_aarch64_simd_di *) __a);
13706 __extension__ extern __inline uint8x16x3_t
13707 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13708 vld3q_u8 (const uint8_t * __a)
13710 return __builtin_aarch64_ld3v16qi_us (
13711 (const __builtin_aarch64_simd_qi *) __a);
13714 __extension__ extern __inline uint16x8x3_t
13715 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13716 vld3q_u16 (const uint16_t * __a)
13718 return __builtin_aarch64_ld3v8hi_us (
13719 (const __builtin_aarch64_simd_hi *) __a);
13722 __extension__ extern __inline uint32x4x3_t
13723 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13724 vld3q_u32 (const uint32_t * __a)
13726 return __builtin_aarch64_ld3v4si_us (
13727 (const __builtin_aarch64_simd_si *) __a);
13730 __extension__ extern __inline uint64x2x3_t
13731 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13732 vld3q_u64 (const uint64_t * __a)
13734 return __builtin_aarch64_ld3v2di_us (
13735 (const __builtin_aarch64_simd_di *) __a);
13738 __extension__ extern __inline float16x8x3_t
13739 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13740 vld3q_f16 (const float16_t * __a)
13742 return __builtin_aarch64_ld3v8hf (__a);
13745 __extension__ extern __inline float32x4x3_t
13746 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13747 vld3q_f32 (const float32_t * __a)
13749 return __builtin_aarch64_ld3v4sf ((const __builtin_aarch64_simd_sf *) __a);
13752 __extension__ extern __inline float64x2x3_t
13753 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13754 vld3q_f64 (const float64_t * __a)
13756 return __builtin_aarch64_ld3v2df ((const __builtin_aarch64_simd_df *) __a);
13759 __extension__ extern __inline poly64x2x3_t
13760 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13761 vld3q_p64 (const poly64_t * __a)
13763 return __builtin_aarch64_ld3v2di_ps (
13764 (const __builtin_aarch64_simd_di *) __a);
13767 __extension__ extern __inline int64x1x4_t
13768 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13769 vld4_s64 (const int64_t * __a)
13771 return __builtin_aarch64_ld4di ((const __builtin_aarch64_simd_di *) __a);
13774 __extension__ extern __inline uint64x1x4_t
13775 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13776 vld4_u64 (const uint64_t * __a)
13778 return __builtin_aarch64_ld4di_us ((const __builtin_aarch64_simd_di *) __a);
13781 __extension__ extern __inline float64x1x4_t
13782 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13783 vld4_f64 (const float64_t * __a)
13785 return __builtin_aarch64_ld4df ((const __builtin_aarch64_simd_df *) __a);
13788 __extension__ extern __inline int8x8x4_t
13789 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13790 vld4_s8 (const int8_t * __a)
13792 return __builtin_aarch64_ld4v8qi ((const __builtin_aarch64_simd_qi *) __a);
13795 __extension__ extern __inline poly8x8x4_t
13796 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13797 vld4_p8 (const poly8_t * __a)
13799 return __builtin_aarch64_ld4v8qi_ps (
13800 (const __builtin_aarch64_simd_qi *) __a);
13803 __extension__ extern __inline int16x4x4_t
13804 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13805 vld4_s16 (const int16_t * __a)
13807 return __builtin_aarch64_ld4v4hi ((const __builtin_aarch64_simd_hi *) __a);
13810 __extension__ extern __inline poly16x4x4_t
13811 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13812 vld4_p16 (const poly16_t * __a)
13814 return __builtin_aarch64_ld4v4hi_ps (
13815 (const __builtin_aarch64_simd_hi *) __a);
13818 __extension__ extern __inline int32x2x4_t
13819 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13820 vld4_s32 (const int32_t * __a)
13822 return __builtin_aarch64_ld4v2si ((const __builtin_aarch64_simd_si *) __a);
13825 __extension__ extern __inline uint8x8x4_t
13826 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13827 vld4_u8 (const uint8_t * __a)
13829 return __builtin_aarch64_ld4v8qi_us (
13830 (const __builtin_aarch64_simd_qi *) __a);
13833 __extension__ extern __inline uint16x4x4_t
13834 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13835 vld4_u16 (const uint16_t * __a)
13837 return __builtin_aarch64_ld4v4hi_us (
13838 (const __builtin_aarch64_simd_hi *) __a);
13841 __extension__ extern __inline uint32x2x4_t
13842 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13843 vld4_u32 (const uint32_t * __a)
13845 return __builtin_aarch64_ld4v2si_us (
13846 (const __builtin_aarch64_simd_si *) __a);
13849 __extension__ extern __inline float16x4x4_t
13850 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13851 vld4_f16 (const float16_t * __a)
13853 return __builtin_aarch64_ld4v4hf (__a);
13856 __extension__ extern __inline float32x2x4_t
13857 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13858 vld4_f32 (const float32_t * __a)
13860 return __builtin_aarch64_ld4v2sf ((const __builtin_aarch64_simd_sf *) __a);
13863 __extension__ extern __inline poly64x1x4_t
13864 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13865 vld4_p64 (const poly64_t * __a)
13867 return __builtin_aarch64_ld4di_ps ((const __builtin_aarch64_simd_di *) __a);
13870 __extension__ extern __inline int8x16x4_t
13871 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13872 vld4q_s8 (const int8_t * __a)
13874 return __builtin_aarch64_ld4v16qi ((const __builtin_aarch64_simd_qi *) __a);
13877 __extension__ extern __inline poly8x16x4_t
13878 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13879 vld4q_p8 (const poly8_t * __a)
13881 return __builtin_aarch64_ld4v16qi_ps (
13882 (const __builtin_aarch64_simd_qi *) __a);
13885 __extension__ extern __inline int16x8x4_t
13886 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13887 vld4q_s16 (const int16_t * __a)
13889 return __builtin_aarch64_ld4v8hi ((const __builtin_aarch64_simd_hi *) __a);
13892 __extension__ extern __inline poly16x8x4_t
13893 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13894 vld4q_p16 (const poly16_t * __a)
13896 return __builtin_aarch64_ld4v8hi_ps (
13897 (const __builtin_aarch64_simd_hi *) __a);
13900 __extension__ extern __inline int32x4x4_t
13901 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13902 vld4q_s32 (const int32_t * __a)
13904 return __builtin_aarch64_ld4v4si ((const __builtin_aarch64_simd_si *) __a);
13907 __extension__ extern __inline int64x2x4_t
13908 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13909 vld4q_s64 (const int64_t * __a)
13911 return __builtin_aarch64_ld4v2di ((const __builtin_aarch64_simd_di *) __a);
13914 __extension__ extern __inline uint8x16x4_t
13915 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13916 vld4q_u8 (const uint8_t * __a)
13918 return __builtin_aarch64_ld4v16qi_us (
13919 (const __builtin_aarch64_simd_qi *) __a);
13922 __extension__ extern __inline uint16x8x4_t
13923 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13924 vld4q_u16 (const uint16_t * __a)
13926 return __builtin_aarch64_ld4v8hi_us (
13927 (const __builtin_aarch64_simd_hi *) __a);
13930 __extension__ extern __inline uint32x4x4_t
13931 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13932 vld4q_u32 (const uint32_t * __a)
13934 return __builtin_aarch64_ld4v4si_us (
13935 (const __builtin_aarch64_simd_si *) __a);
13938 __extension__ extern __inline uint64x2x4_t
13939 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13940 vld4q_u64 (const uint64_t * __a)
13942 return __builtin_aarch64_ld4v2di_us (
13943 (const __builtin_aarch64_simd_di *) __a);
13946 __extension__ extern __inline float16x8x4_t
13947 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13948 vld4q_f16 (const float16_t * __a)
13950 return __builtin_aarch64_ld4v8hf (__a);
13953 __extension__ extern __inline float32x4x4_t
13954 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13955 vld4q_f32 (const float32_t * __a)
13957 return __builtin_aarch64_ld4v4sf ((const __builtin_aarch64_simd_sf *) __a);
13960 __extension__ extern __inline float64x2x4_t
13961 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13962 vld4q_f64 (const float64_t * __a)
13964 return __builtin_aarch64_ld4v2df ((const __builtin_aarch64_simd_df *) __a);
13967 __extension__ extern __inline poly64x2x4_t
13968 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13969 vld4q_p64 (const poly64_t * __a)
13971 return __builtin_aarch64_ld4v2di_ps (
13972 (const __builtin_aarch64_simd_di *) __a);
13975 __extension__ extern __inline poly128_t
13976 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13977 vldrq_p128 (const poly128_t * __ptr)
13979 return *__ptr;
13982 /* vldn_dup */
13984 __extension__ extern __inline int8x8x2_t
13985 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13986 vld2_dup_s8 (const int8_t * __a)
13988 return __builtin_aarch64_ld2rv8qi ((const __builtin_aarch64_simd_qi *) __a);
13991 __extension__ extern __inline int16x4x2_t
13992 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13993 vld2_dup_s16 (const int16_t * __a)
13995 return __builtin_aarch64_ld2rv4hi ((const __builtin_aarch64_simd_hi *) __a);
13998 __extension__ extern __inline int32x2x2_t
13999 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14000 vld2_dup_s32 (const int32_t * __a)
14002 return __builtin_aarch64_ld2rv2si ((const __builtin_aarch64_simd_si *) __a);
14005 __extension__ extern __inline float16x4x2_t
14006 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14007 vld2_dup_f16 (const float16_t * __a)
14009 return __builtin_aarch64_ld2rv4hf ((const __builtin_aarch64_simd_hf *) __a);
14012 __extension__ extern __inline float32x2x2_t
14013 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14014 vld2_dup_f32 (const float32_t * __a)
14016 return __builtin_aarch64_ld2rv2sf ((const __builtin_aarch64_simd_sf *) __a);
14019 __extension__ extern __inline float64x1x2_t
14020 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14021 vld2_dup_f64 (const float64_t * __a)
14023 return __builtin_aarch64_ld2rdf ((const __builtin_aarch64_simd_df *) __a);
14026 __extension__ extern __inline uint8x8x2_t
14027 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14028 vld2_dup_u8 (const uint8_t * __a)
14030 return __builtin_aarch64_ld2rv8qi_us (
14031 (const __builtin_aarch64_simd_qi *) __a);
14034 __extension__ extern __inline uint16x4x2_t
14035 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14036 vld2_dup_u16 (const uint16_t * __a)
14038 return __builtin_aarch64_ld2rv4hi_us (
14039 (const __builtin_aarch64_simd_hi *) __a);
14042 __extension__ extern __inline uint32x2x2_t
14043 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14044 vld2_dup_u32 (const uint32_t * __a)
14046 return __builtin_aarch64_ld2rv2si_us (
14047 (const __builtin_aarch64_simd_si *) __a);
14050 __extension__ extern __inline poly8x8x2_t
14051 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14052 vld2_dup_p8 (const poly8_t * __a)
14054 return __builtin_aarch64_ld2rv8qi_ps (
14055 (const __builtin_aarch64_simd_qi *) __a);
14058 __extension__ extern __inline poly16x4x2_t
14059 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14060 vld2_dup_p16 (const poly16_t * __a)
14062 return __builtin_aarch64_ld2rv4hi_ps (
14063 (const __builtin_aarch64_simd_hi *) __a);
14066 __extension__ extern __inline poly64x1x2_t
14067 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14068 vld2_dup_p64 (const poly64_t * __a)
14070 return __builtin_aarch64_ld2rdi_ps ((const __builtin_aarch64_simd_di *) __a);
14073 __extension__ extern __inline int64x1x2_t
14074 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14075 vld2_dup_s64 (const int64_t * __a)
14077 return __builtin_aarch64_ld2rdi ((const __builtin_aarch64_simd_di *) __a);
14080 __extension__ extern __inline uint64x1x2_t
14081 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14082 vld2_dup_u64 (const uint64_t * __a)
14084 return __builtin_aarch64_ld2rdi_us ((const __builtin_aarch64_simd_di *) __a);
14087 __extension__ extern __inline int8x16x2_t
14088 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14089 vld2q_dup_s8 (const int8_t * __a)
14091 return __builtin_aarch64_ld2rv16qi ((const __builtin_aarch64_simd_qi *) __a);
14094 __extension__ extern __inline poly8x16x2_t
14095 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14096 vld2q_dup_p8 (const poly8_t * __a)
14098 return __builtin_aarch64_ld2rv16qi_ps (
14099 (const __builtin_aarch64_simd_qi *) __a);
14102 __extension__ extern __inline int16x8x2_t
14103 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14104 vld2q_dup_s16 (const int16_t * __a)
14106 return __builtin_aarch64_ld2rv8hi ((const __builtin_aarch64_simd_hi *) __a);
14109 __extension__ extern __inline poly16x8x2_t
14110 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14111 vld2q_dup_p16 (const poly16_t * __a)
14113 return __builtin_aarch64_ld2rv8hi_ps (
14114 (const __builtin_aarch64_simd_hi *) __a);
14117 __extension__ extern __inline int32x4x2_t
14118 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14119 vld2q_dup_s32 (const int32_t * __a)
14121 return __builtin_aarch64_ld2rv4si ((const __builtin_aarch64_simd_si *) __a);
14124 __extension__ extern __inline int64x2x2_t
14125 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14126 vld2q_dup_s64 (const int64_t * __a)
14128 return __builtin_aarch64_ld2rv2di ((const __builtin_aarch64_simd_di *) __a);
14131 __extension__ extern __inline uint8x16x2_t
14132 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14133 vld2q_dup_u8 (const uint8_t * __a)
14135 return __builtin_aarch64_ld2rv16qi_us (
14136 (const __builtin_aarch64_simd_qi *) __a);
14139 __extension__ extern __inline uint16x8x2_t
14140 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14141 vld2q_dup_u16 (const uint16_t * __a)
14143 return __builtin_aarch64_ld2rv8hi_us (
14144 (const __builtin_aarch64_simd_hi *) __a);
14147 __extension__ extern __inline uint32x4x2_t
14148 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14149 vld2q_dup_u32 (const uint32_t * __a)
14151 return __builtin_aarch64_ld2rv4si_us (
14152 (const __builtin_aarch64_simd_si *) __a);
14155 __extension__ extern __inline uint64x2x2_t
14156 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14157 vld2q_dup_u64 (const uint64_t * __a)
14159 return __builtin_aarch64_ld2rv2di_us (
14160 (const __builtin_aarch64_simd_di *) __a);
14163 __extension__ extern __inline float16x8x2_t
14164 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14165 vld2q_dup_f16 (const float16_t * __a)
14167 return __builtin_aarch64_ld2rv8hf ((const __builtin_aarch64_simd_hf *) __a);
14170 __extension__ extern __inline float32x4x2_t
14171 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14172 vld2q_dup_f32 (const float32_t * __a)
14174 return __builtin_aarch64_ld2rv4sf ((const __builtin_aarch64_simd_sf *) __a);
14177 __extension__ extern __inline float64x2x2_t
14178 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14179 vld2q_dup_f64 (const float64_t * __a)
14181 return __builtin_aarch64_ld2rv2df ((const __builtin_aarch64_simd_df *) __a);
14184 __extension__ extern __inline poly64x2x2_t
14185 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14186 vld2q_dup_p64 (const poly64_t * __a)
14188 return __builtin_aarch64_ld2rv2di_ps (
14189 (const __builtin_aarch64_simd_di *) __a);
14192 __extension__ extern __inline int64x1x3_t
14193 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14194 vld3_dup_s64 (const int64_t * __a)
14196 return __builtin_aarch64_ld3rdi ((const __builtin_aarch64_simd_di *) __a);
14199 __extension__ extern __inline uint64x1x3_t
14200 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14201 vld3_dup_u64 (const uint64_t * __a)
14203 return __builtin_aarch64_ld3rdi_us ((const __builtin_aarch64_simd_di *) __a);
14206 __extension__ extern __inline float64x1x3_t
14207 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14208 vld3_dup_f64 (const float64_t * __a)
14210 return __builtin_aarch64_ld3rdf ((const __builtin_aarch64_simd_df *) __a);
14213 __extension__ extern __inline int8x8x3_t
14214 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14215 vld3_dup_s8 (const int8_t * __a)
14217 return __builtin_aarch64_ld3rv8qi ((const __builtin_aarch64_simd_qi *) __a);
14220 __extension__ extern __inline poly8x8x3_t
14221 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14222 vld3_dup_p8 (const poly8_t * __a)
14224 return __builtin_aarch64_ld3rv8qi_ps (
14225 (const __builtin_aarch64_simd_qi *) __a);
14228 __extension__ extern __inline int16x4x3_t
14229 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14230 vld3_dup_s16 (const int16_t * __a)
14232 return __builtin_aarch64_ld3rv4hi ((const __builtin_aarch64_simd_hi *) __a);
14235 __extension__ extern __inline poly16x4x3_t
14236 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14237 vld3_dup_p16 (const poly16_t * __a)
14239 return __builtin_aarch64_ld3rv4hi_ps (
14240 (const __builtin_aarch64_simd_hi *) __a);
14243 __extension__ extern __inline int32x2x3_t
14244 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14245 vld3_dup_s32 (const int32_t * __a)
14247 return __builtin_aarch64_ld3rv2si ((const __builtin_aarch64_simd_si *) __a);
14250 __extension__ extern __inline uint8x8x3_t
14251 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14252 vld3_dup_u8 (const uint8_t * __a)
14254 return __builtin_aarch64_ld3rv8qi_us (
14255 (const __builtin_aarch64_simd_qi *) __a);
14258 __extension__ extern __inline uint16x4x3_t
14259 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14260 vld3_dup_u16 (const uint16_t * __a)
14262 return __builtin_aarch64_ld3rv4hi_us (
14263 (const __builtin_aarch64_simd_hi *) __a);
14266 __extension__ extern __inline uint32x2x3_t
14267 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14268 vld3_dup_u32 (const uint32_t * __a)
14270 return __builtin_aarch64_ld3rv2si_us (
14271 (const __builtin_aarch64_simd_si *) __a);
14274 __extension__ extern __inline float16x4x3_t
14275 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14276 vld3_dup_f16 (const float16_t * __a)
14278 return __builtin_aarch64_ld3rv4hf ((const __builtin_aarch64_simd_hf *) __a);
14281 __extension__ extern __inline float32x2x3_t
14282 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14283 vld3_dup_f32 (const float32_t * __a)
14285 return __builtin_aarch64_ld3rv2sf ((const __builtin_aarch64_simd_sf *) __a);
14288 __extension__ extern __inline poly64x1x3_t
14289 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14290 vld3_dup_p64 (const poly64_t * __a)
14292 return __builtin_aarch64_ld3rdi_ps ((const __builtin_aarch64_simd_di *) __a);
14295 __extension__ extern __inline int8x16x3_t
14296 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14297 vld3q_dup_s8 (const int8_t * __a)
14299 return __builtin_aarch64_ld3rv16qi ((const __builtin_aarch64_simd_qi *) __a);
14302 __extension__ extern __inline poly8x16x3_t
14303 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14304 vld3q_dup_p8 (const poly8_t * __a)
14306 return __builtin_aarch64_ld3rv16qi_ps (
14307 (const __builtin_aarch64_simd_qi *) __a);
14310 __extension__ extern __inline int16x8x3_t
14311 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14312 vld3q_dup_s16 (const int16_t * __a)
14314 return __builtin_aarch64_ld3rv8hi ((const __builtin_aarch64_simd_hi *) __a);
14317 __extension__ extern __inline poly16x8x3_t
14318 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14319 vld3q_dup_p16 (const poly16_t * __a)
14321 return __builtin_aarch64_ld3rv8hi_ps (
14322 (const __builtin_aarch64_simd_hi *) __a);
14325 __extension__ extern __inline int32x4x3_t
14326 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14327 vld3q_dup_s32 (const int32_t * __a)
14329 return __builtin_aarch64_ld3rv4si ((const __builtin_aarch64_simd_si *) __a);
14332 __extension__ extern __inline int64x2x3_t
14333 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14334 vld3q_dup_s64 (const int64_t * __a)
14336 return __builtin_aarch64_ld3rv2di ((const __builtin_aarch64_simd_di *) __a);
14339 __extension__ extern __inline uint8x16x3_t
14340 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14341 vld3q_dup_u8 (const uint8_t * __a)
14343 return __builtin_aarch64_ld3rv16qi_us (
14344 (const __builtin_aarch64_simd_qi *) __a);
14347 __extension__ extern __inline uint16x8x3_t
14348 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14349 vld3q_dup_u16 (const uint16_t * __a)
14351 return __builtin_aarch64_ld3rv8hi_us (
14352 (const __builtin_aarch64_simd_hi *) __a);
14355 __extension__ extern __inline uint32x4x3_t
14356 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14357 vld3q_dup_u32 (const uint32_t * __a)
14359 return __builtin_aarch64_ld3rv4si_us (
14360 (const __builtin_aarch64_simd_si *) __a);
14363 __extension__ extern __inline uint64x2x3_t
14364 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14365 vld3q_dup_u64 (const uint64_t * __a)
14367 return __builtin_aarch64_ld3rv2di_us (
14368 (const __builtin_aarch64_simd_di *) __a);
14371 __extension__ extern __inline float16x8x3_t
14372 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14373 vld3q_dup_f16 (const float16_t * __a)
14375 return __builtin_aarch64_ld3rv8hf ((const __builtin_aarch64_simd_hf *) __a);
14378 __extension__ extern __inline float32x4x3_t
14379 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14380 vld3q_dup_f32 (const float32_t * __a)
14382 return __builtin_aarch64_ld3rv4sf ((const __builtin_aarch64_simd_sf *) __a);
14385 __extension__ extern __inline float64x2x3_t
14386 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14387 vld3q_dup_f64 (const float64_t * __a)
14389 return __builtin_aarch64_ld3rv2df ((const __builtin_aarch64_simd_df *) __a);
14392 __extension__ extern __inline poly64x2x3_t
14393 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14394 vld3q_dup_p64 (const poly64_t * __a)
14396 return __builtin_aarch64_ld3rv2di_ps (
14397 (const __builtin_aarch64_simd_di *) __a);
14400 __extension__ extern __inline int64x1x4_t
14401 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14402 vld4_dup_s64 (const int64_t * __a)
14404 return __builtin_aarch64_ld4rdi ((const __builtin_aarch64_simd_di *) __a);
14407 __extension__ extern __inline uint64x1x4_t
14408 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14409 vld4_dup_u64 (const uint64_t * __a)
14411 return __builtin_aarch64_ld4rdi_us ((const __builtin_aarch64_simd_di *) __a);
14414 __extension__ extern __inline float64x1x4_t
14415 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14416 vld4_dup_f64 (const float64_t * __a)
14418 return __builtin_aarch64_ld4rdf ((const __builtin_aarch64_simd_df *) __a);
14421 __extension__ extern __inline int8x8x4_t
14422 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14423 vld4_dup_s8 (const int8_t * __a)
14425 return __builtin_aarch64_ld4rv8qi ((const __builtin_aarch64_simd_qi *) __a);
14428 __extension__ extern __inline poly8x8x4_t
14429 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14430 vld4_dup_p8 (const poly8_t * __a)
14432 return __builtin_aarch64_ld4rv8qi_ps (
14433 (const __builtin_aarch64_simd_qi *) __a);
14436 __extension__ extern __inline int16x4x4_t
14437 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14438 vld4_dup_s16 (const int16_t * __a)
14440 return __builtin_aarch64_ld4rv4hi ((const __builtin_aarch64_simd_hi *) __a);
14443 __extension__ extern __inline poly16x4x4_t
14444 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14445 vld4_dup_p16 (const poly16_t * __a)
14447 return __builtin_aarch64_ld4rv4hi_ps (
14448 (const __builtin_aarch64_simd_hi *) __a);
14451 __extension__ extern __inline int32x2x4_t
14452 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14453 vld4_dup_s32 (const int32_t * __a)
14455 return __builtin_aarch64_ld4rv2si ((const __builtin_aarch64_simd_si *) __a);
14458 __extension__ extern __inline uint8x8x4_t
14459 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14460 vld4_dup_u8 (const uint8_t * __a)
14462 return __builtin_aarch64_ld4rv8qi_us (
14463 (const __builtin_aarch64_simd_qi *) __a);
14466 __extension__ extern __inline uint16x4x4_t
14467 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14468 vld4_dup_u16 (const uint16_t * __a)
14470 return __builtin_aarch64_ld4rv4hi_us (
14471 (const __builtin_aarch64_simd_hi *) __a);
14474 __extension__ extern __inline uint32x2x4_t
14475 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14476 vld4_dup_u32 (const uint32_t * __a)
14478 return __builtin_aarch64_ld4rv2si_us (
14479 (const __builtin_aarch64_simd_si *) __a);
14482 __extension__ extern __inline float16x4x4_t
14483 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14484 vld4_dup_f16 (const float16_t * __a)
14486 return __builtin_aarch64_ld4rv4hf ((const __builtin_aarch64_simd_hf *) __a);
14489 __extension__ extern __inline float32x2x4_t
14490 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14491 vld4_dup_f32 (const float32_t * __a)
14493 return __builtin_aarch64_ld4rv2sf ((const __builtin_aarch64_simd_sf *) __a);
14496 __extension__ extern __inline poly64x1x4_t
14497 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14498 vld4_dup_p64 (const poly64_t * __a)
14500 return __builtin_aarch64_ld4rdi_ps ((const __builtin_aarch64_simd_di *) __a);
14503 __extension__ extern __inline int8x16x4_t
14504 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14505 vld4q_dup_s8 (const int8_t * __a)
14507 return __builtin_aarch64_ld4rv16qi ((const __builtin_aarch64_simd_qi *) __a);
14510 __extension__ extern __inline poly8x16x4_t
14511 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14512 vld4q_dup_p8 (const poly8_t * __a)
14514 return __builtin_aarch64_ld4rv16qi_ps (
14515 (const __builtin_aarch64_simd_qi *) __a);
14518 __extension__ extern __inline int16x8x4_t
14519 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14520 vld4q_dup_s16 (const int16_t * __a)
14522 return __builtin_aarch64_ld4rv8hi ((const __builtin_aarch64_simd_hi *) __a);
14525 __extension__ extern __inline poly16x8x4_t
14526 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14527 vld4q_dup_p16 (const poly16_t * __a)
14529 return __builtin_aarch64_ld4rv8hi_ps (
14530 (const __builtin_aarch64_simd_hi *) __a);
14533 __extension__ extern __inline int32x4x4_t
14534 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14535 vld4q_dup_s32 (const int32_t * __a)
14537 return __builtin_aarch64_ld4rv4si ((const __builtin_aarch64_simd_si *) __a);
14540 __extension__ extern __inline int64x2x4_t
14541 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14542 vld4q_dup_s64 (const int64_t * __a)
14544 return __builtin_aarch64_ld4rv2di ((const __builtin_aarch64_simd_di *) __a);
14547 __extension__ extern __inline uint8x16x4_t
14548 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14549 vld4q_dup_u8 (const uint8_t * __a)
14551 return __builtin_aarch64_ld4rv16qi_us (
14552 (const __builtin_aarch64_simd_qi *) __a);
14555 __extension__ extern __inline uint16x8x4_t
14556 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14557 vld4q_dup_u16 (const uint16_t * __a)
14559 return __builtin_aarch64_ld4rv8hi_us (
14560 (const __builtin_aarch64_simd_hi *) __a);
14563 __extension__ extern __inline uint32x4x4_t
14564 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14565 vld4q_dup_u32 (const uint32_t * __a)
14567 return __builtin_aarch64_ld4rv4si_us (
14568 (const __builtin_aarch64_simd_si *) __a);
14571 __extension__ extern __inline uint64x2x4_t
14572 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14573 vld4q_dup_u64 (const uint64_t * __a)
14575 return __builtin_aarch64_ld4rv2di_us (
14576 (const __builtin_aarch64_simd_di *) __a);
14579 __extension__ extern __inline float16x8x4_t
14580 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14581 vld4q_dup_f16 (const float16_t * __a)
14583 return __builtin_aarch64_ld4rv8hf ((const __builtin_aarch64_simd_hf *) __a);
14586 __extension__ extern __inline float32x4x4_t
14587 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14588 vld4q_dup_f32 (const float32_t * __a)
14590 return __builtin_aarch64_ld4rv4sf ((const __builtin_aarch64_simd_sf *) __a);
14593 __extension__ extern __inline float64x2x4_t
14594 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14595 vld4q_dup_f64 (const float64_t * __a)
14597 return __builtin_aarch64_ld4rv2df ((const __builtin_aarch64_simd_df *) __a);
14600 __extension__ extern __inline poly64x2x4_t
14601 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14602 vld4q_dup_p64 (const poly64_t * __a)
14604 return __builtin_aarch64_ld4rv2di_ps (
14605 (const __builtin_aarch64_simd_di *) __a);
14608 /* vld2_lane */
14610 __extension__ extern __inline uint8x8x2_t
14611 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
14612 vld2_lane_u8 (const uint8_t * __ptr, uint8x8x2_t __b, const int __c)
14614 return __builtin_aarch64_ld2_lanev8qi_usus (
14615 (__builtin_aarch64_simd_qi *) __ptr, __b, __c);
14618 __extension__ extern __inline uint16x4x2_t
14619 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
14620 vld2_lane_u16 (const uint16_t * __ptr, uint16x4x2_t __b, const int __c)
14622 return __builtin_aarch64_ld2_lanev4hi_usus (
14623 (__builtin_aarch64_simd_hi *) __ptr, __b, __c);
14626 __extension__ extern __inline uint32x2x2_t
14627 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
14628 vld2_lane_u32 (const uint32_t * __ptr, uint32x2x2_t __b, const int __c)
14630 return __builtin_aarch64_ld2_lanev2si_usus (
14631 (__builtin_aarch64_simd_si *) __ptr, __b, __c);
14634 __extension__ extern __inline uint64x1x2_t
14635 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
14636 vld2_lane_u64 (const uint64_t * __ptr, uint64x1x2_t __b, const int __c)
14638 return __builtin_aarch64_ld2_lanedi_usus (
14639 (__builtin_aarch64_simd_di *) __ptr, __b, __c);
14642 __extension__ extern __inline int8x8x2_t
14643 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
14644 vld2_lane_s8 (const int8_t * __ptr, int8x8x2_t __b, const int __c)
14646 return __builtin_aarch64_ld2_lanev8qi (
14647 (__builtin_aarch64_simd_qi *) __ptr, __b, __c);
14650 __extension__ extern __inline int16x4x2_t
14651 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
14652 vld2_lane_s16 (const int16_t * __ptr, int16x4x2_t __b, const int __c)
14654 return __builtin_aarch64_ld2_lanev4hi (
14655 (__builtin_aarch64_simd_hi *) __ptr, __b, __c);
14658 __extension__ extern __inline int32x2x2_t
14659 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
14660 vld2_lane_s32 (const int32_t * __ptr, int32x2x2_t __b, const int __c)
14662 return __builtin_aarch64_ld2_lanev2si (
14663 (__builtin_aarch64_simd_si *) __ptr, __b, __c);
14666 __extension__ extern __inline int64x1x2_t
14667 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
14668 vld2_lane_s64 (const int64_t * __ptr, int64x1x2_t __b, const int __c)
14670 return __builtin_aarch64_ld2_lanedi (
14671 (__builtin_aarch64_simd_di *) __ptr, __b, __c);
14674 __extension__ extern __inline float16x4x2_t
14675 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
14676 vld2_lane_f16 (const float16_t * __ptr, float16x4x2_t __b, const int __c)
14678 return __builtin_aarch64_ld2_lanev4hf (
14679 (__builtin_aarch64_simd_hf *) __ptr, __b, __c);
14682 __extension__ extern __inline float32x2x2_t
14683 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
14684 vld2_lane_f32 (const float32_t * __ptr, float32x2x2_t __b, const int __c)
14686 return __builtin_aarch64_ld2_lanev2sf (
14687 (__builtin_aarch64_simd_sf *) __ptr, __b, __c);
14690 __extension__ extern __inline float64x1x2_t
14691 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
14692 vld2_lane_f64 (const float64_t * __ptr, float64x1x2_t __b, const int __c)
14694 return __builtin_aarch64_ld2_lanedf (
14695 (__builtin_aarch64_simd_df *) __ptr, __b, __c);
14698 __extension__ extern __inline poly8x8x2_t
14699 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
14700 vld2_lane_p8 (const poly8_t * __ptr, poly8x8x2_t __b, const int __c)
14702 return __builtin_aarch64_ld2_lanev8qi_psps (
14703 (__builtin_aarch64_simd_qi *) __ptr, __b, __c);
14706 __extension__ extern __inline poly16x4x2_t
14707 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
14708 vld2_lane_p16 (const poly16_t * __ptr, poly16x4x2_t __b, const int __c)
14710 return __builtin_aarch64_ld2_lanev4hi_psps (
14711 (__builtin_aarch64_simd_hi *) __ptr, __b, __c);
14714 __extension__ extern __inline poly64x1x2_t
14715 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
14716 vld2_lane_p64 (const poly64_t * __ptr, poly64x1x2_t __b, const int __c)
14718 return __builtin_aarch64_ld2_lanedi_psps (
14719 (__builtin_aarch64_simd_di *) __ptr, __b, __c);
14722 /* vld2q_lane */
14724 __extension__ extern __inline uint8x16x2_t
14725 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
14726 vld2q_lane_u8 (const uint8_t * __ptr, uint8x16x2_t __b, const int __c)
14728 return __builtin_aarch64_ld2_lanev16qi_usus (
14729 (__builtin_aarch64_simd_qi *) __ptr, __b, __c);
14732 __extension__ extern __inline uint16x8x2_t
14733 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
14734 vld2q_lane_u16 (const uint16_t * __ptr, uint16x8x2_t __b, const int __c)
14736 return __builtin_aarch64_ld2_lanev8hi_usus (
14737 (__builtin_aarch64_simd_hi *) __ptr, __b, __c);
14740 __extension__ extern __inline uint32x4x2_t
14741 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
14742 vld2q_lane_u32 (const uint32_t * __ptr, uint32x4x2_t __b, const int __c)
14744 return __builtin_aarch64_ld2_lanev4si_usus (
14745 (__builtin_aarch64_simd_si *) __ptr, __b, __c);
14748 __extension__ extern __inline uint64x2x2_t
14749 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
14750 vld2q_lane_u64 (const uint64_t * __ptr, uint64x2x2_t __b, const int __c)
14752 return __builtin_aarch64_ld2_lanev2di_usus (
14753 (__builtin_aarch64_simd_di *) __ptr, __b, __c);
14756 __extension__ extern __inline int8x16x2_t
14757 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
14758 vld2q_lane_s8 (const int8_t * __ptr, int8x16x2_t __b, const int __c)
14760 return __builtin_aarch64_ld2_lanev16qi (
14761 (__builtin_aarch64_simd_qi *) __ptr, __b, __c);
14764 __extension__ extern __inline int16x8x2_t
14765 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
14766 vld2q_lane_s16 (const int16_t * __ptr, int16x8x2_t __b, const int __c)
14768 return __builtin_aarch64_ld2_lanev8hi (
14769 (__builtin_aarch64_simd_hi *) __ptr, __b, __c);
14772 __extension__ extern __inline int32x4x2_t
14773 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
14774 vld2q_lane_s32 (const int32_t * __ptr, int32x4x2_t __b, const int __c)
14776 return __builtin_aarch64_ld2_lanev4si (
14777 (__builtin_aarch64_simd_si *) __ptr, __b, __c);
14780 __extension__ extern __inline int64x2x2_t
14781 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
14782 vld2q_lane_s64 (const int64_t * __ptr, int64x2x2_t __b, const int __c)
14784 return __builtin_aarch64_ld2_lanev2di (
14785 (__builtin_aarch64_simd_di *) __ptr, __b, __c);
14788 __extension__ extern __inline float16x8x2_t
14789 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
14790 vld2q_lane_f16 (const float16_t * __ptr, float16x8x2_t __b, const int __c)
14792 return __builtin_aarch64_ld2_lanev8hf (
14793 (__builtin_aarch64_simd_hf *) __ptr, __b, __c);
14796 __extension__ extern __inline float32x4x2_t
14797 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
14798 vld2q_lane_f32 (const float32_t * __ptr, float32x4x2_t __b, const int __c)
14800 return __builtin_aarch64_ld2_lanev4sf (
14801 (__builtin_aarch64_simd_sf *) __ptr, __b, __c);
14804 __extension__ extern __inline float64x2x2_t
14805 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
14806 vld2q_lane_f64 (const float64_t * __ptr, float64x2x2_t __b, const int __c)
14808 return __builtin_aarch64_ld2_lanev2df (
14809 (__builtin_aarch64_simd_df *) __ptr, __b, __c);
14812 __extension__ extern __inline poly8x16x2_t
14813 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
14814 vld2q_lane_p8 (const poly8_t * __ptr, poly8x16x2_t __b, const int __c)
14816 return __builtin_aarch64_ld2_lanev16qi_psps (
14817 (__builtin_aarch64_simd_qi *) __ptr, __b, __c);
14820 __extension__ extern __inline poly16x8x2_t
14821 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
14822 vld2q_lane_p16 (const poly16_t * __ptr, poly16x8x2_t __b, const int __c)
14824 return __builtin_aarch64_ld2_lanev8hi_psps (
14825 (__builtin_aarch64_simd_hi *) __ptr, __b, __c);
14828 __extension__ extern __inline poly64x2x2_t
14829 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
14830 vld2q_lane_p64 (const poly64_t * __ptr, poly64x2x2_t __b, const int __c)
14832 return __builtin_aarch64_ld2_lanev2di_psps (
14833 (__builtin_aarch64_simd_di *) __ptr, __b, __c);
14836 /* vld3_lane */
14838 __extension__ extern __inline uint8x8x3_t
14839 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
14840 vld3_lane_u8 (const uint8_t * __ptr, uint8x8x3_t __b, const int __c)
14842 return __builtin_aarch64_ld3_lanev8qi_usus (
14843 (__builtin_aarch64_simd_qi *) __ptr, __b, __c);
14846 __extension__ extern __inline uint16x4x3_t
14847 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
14848 vld3_lane_u16 (const uint16_t * __ptr, uint16x4x3_t __b, const int __c)
14850 return __builtin_aarch64_ld3_lanev4hi_usus (
14851 (__builtin_aarch64_simd_hi *) __ptr, __b, __c);
14854 __extension__ extern __inline uint32x2x3_t
14855 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
14856 vld3_lane_u32 (const uint32_t * __ptr, uint32x2x3_t __b, const int __c)
14858 return __builtin_aarch64_ld3_lanev2si_usus (
14859 (__builtin_aarch64_simd_si *) __ptr, __b, __c);
14862 __extension__ extern __inline uint64x1x3_t
14863 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
14864 vld3_lane_u64 (const uint64_t * __ptr, uint64x1x3_t __b, const int __c)
14866 return __builtin_aarch64_ld3_lanedi_usus (
14867 (__builtin_aarch64_simd_di *) __ptr, __b, __c);
14870 __extension__ extern __inline int8x8x3_t
14871 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
14872 vld3_lane_s8 (const int8_t * __ptr, int8x8x3_t __b, const int __c)
14874 return __builtin_aarch64_ld3_lanev8qi (
14875 (__builtin_aarch64_simd_qi *) __ptr, __b, __c);
14878 __extension__ extern __inline int16x4x3_t
14879 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
14880 vld3_lane_s16 (const int16_t * __ptr, int16x4x3_t __b, const int __c)
14882 return __builtin_aarch64_ld3_lanev4hi (
14883 (__builtin_aarch64_simd_hi *) __ptr, __b, __c);
14886 __extension__ extern __inline int32x2x3_t
14887 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
14888 vld3_lane_s32 (const int32_t * __ptr, int32x2x3_t __b, const int __c)
14890 return __builtin_aarch64_ld3_lanev2si (
14891 (__builtin_aarch64_simd_si *) __ptr, __b, __c);
14894 __extension__ extern __inline int64x1x3_t
14895 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
14896 vld3_lane_s64 (const int64_t * __ptr, int64x1x3_t __b, const int __c)
14898 return __builtin_aarch64_ld3_lanedi (
14899 (__builtin_aarch64_simd_di *) __ptr, __b, __c);
14902 __extension__ extern __inline float16x4x3_t
14903 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
14904 vld3_lane_f16 (const float16_t * __ptr, float16x4x3_t __b, const int __c)
14906 return __builtin_aarch64_ld3_lanev4hf (
14907 (__builtin_aarch64_simd_hf *) __ptr, __b, __c);
14910 __extension__ extern __inline float32x2x3_t
14911 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
14912 vld3_lane_f32 (const float32_t * __ptr, float32x2x3_t __b, const int __c)
14914 return __builtin_aarch64_ld3_lanev2sf (
14915 (__builtin_aarch64_simd_sf *) __ptr, __b, __c);
14918 __extension__ extern __inline float64x1x3_t
14919 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
14920 vld3_lane_f64 (const float64_t * __ptr, float64x1x3_t __b, const int __c)
14922 return __builtin_aarch64_ld3_lanedf (
14923 (__builtin_aarch64_simd_df *) __ptr, __b, __c);
14926 __extension__ extern __inline poly8x8x3_t
14927 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
14928 vld3_lane_p8 (const poly8_t * __ptr, poly8x8x3_t __b, const int __c)
14930 return __builtin_aarch64_ld3_lanev8qi_psps (
14931 (__builtin_aarch64_simd_qi *) __ptr, __b, __c);
14934 __extension__ extern __inline poly16x4x3_t
14935 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
14936 vld3_lane_p16 (const poly16_t * __ptr, poly16x4x3_t __b, const int __c)
14938 return __builtin_aarch64_ld3_lanev4hi_psps (
14939 (__builtin_aarch64_simd_hi *) __ptr, __b, __c);
14942 __extension__ extern __inline poly64x1x3_t
14943 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
14944 vld3_lane_p64 (const poly64_t * __ptr, poly64x1x3_t __b, const int __c)
14946 return __builtin_aarch64_ld3_lanedi_psps (
14947 (__builtin_aarch64_simd_di *) __ptr, __b, __c);
14950 /* vld3q_lane */
14952 __extension__ extern __inline uint8x16x3_t
14953 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
14954 vld3q_lane_u8 (const uint8_t * __ptr, uint8x16x3_t __b, const int __c)
14956 return __builtin_aarch64_ld3_lanev16qi_usus (
14957 (__builtin_aarch64_simd_qi *) __ptr, __b, __c);
14960 __extension__ extern __inline uint16x8x3_t
14961 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
14962 vld3q_lane_u16 (const uint16_t * __ptr, uint16x8x3_t __b, const int __c)
14964 return __builtin_aarch64_ld3_lanev8hi_usus (
14965 (__builtin_aarch64_simd_hi *) __ptr, __b, __c);
14968 __extension__ extern __inline uint32x4x3_t
14969 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
14970 vld3q_lane_u32 (const uint32_t * __ptr, uint32x4x3_t __b, const int __c)
14972 return __builtin_aarch64_ld3_lanev4si_usus (
14973 (__builtin_aarch64_simd_si *) __ptr, __b, __c);
14976 __extension__ extern __inline uint64x2x3_t
14977 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
14978 vld3q_lane_u64 (const uint64_t * __ptr, uint64x2x3_t __b, const int __c)
14980 return __builtin_aarch64_ld3_lanev2di_usus (
14981 (__builtin_aarch64_simd_di *) __ptr, __b, __c);
14984 __extension__ extern __inline int8x16x3_t
14985 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
14986 vld3q_lane_s8 (const int8_t * __ptr, int8x16x3_t __b, const int __c)
14988 return __builtin_aarch64_ld3_lanev16qi (
14989 (__builtin_aarch64_simd_qi *) __ptr, __b, __c);
14992 __extension__ extern __inline int16x8x3_t
14993 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
14994 vld3q_lane_s16 (const int16_t * __ptr, int16x8x3_t __b, const int __c)
14996 return __builtin_aarch64_ld3_lanev8hi (
14997 (__builtin_aarch64_simd_hi *) __ptr, __b, __c);
15000 __extension__ extern __inline int32x4x3_t
15001 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
15002 vld3q_lane_s32 (const int32_t * __ptr, int32x4x3_t __b, const int __c)
15004 return __builtin_aarch64_ld3_lanev4si (
15005 (__builtin_aarch64_simd_si *) __ptr, __b, __c);
15008 __extension__ extern __inline int64x2x3_t
15009 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
15010 vld3q_lane_s64 (const int64_t * __ptr, int64x2x3_t __b, const int __c)
15012 return __builtin_aarch64_ld3_lanev2di (
15013 (__builtin_aarch64_simd_di *) __ptr, __b, __c);
15016 __extension__ extern __inline float16x8x3_t
15017 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
15018 vld3q_lane_f16 (const float16_t * __ptr, float16x8x3_t __b, const int __c)
15020 return __builtin_aarch64_ld3_lanev8hf (
15021 (__builtin_aarch64_simd_hf *) __ptr, __b, __c);
15024 __extension__ extern __inline float32x4x3_t
15025 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
15026 vld3q_lane_f32 (const float32_t * __ptr, float32x4x3_t __b, const int __c)
15028 return __builtin_aarch64_ld3_lanev4sf (
15029 (__builtin_aarch64_simd_sf *) __ptr, __b, __c);
15032 __extension__ extern __inline float64x2x3_t
15033 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
15034 vld3q_lane_f64 (const float64_t * __ptr, float64x2x3_t __b, const int __c)
15036 return __builtin_aarch64_ld3_lanev2df (
15037 (__builtin_aarch64_simd_df *) __ptr, __b, __c);
15040 __extension__ extern __inline poly8x16x3_t
15041 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
15042 vld3q_lane_p8 (const poly8_t * __ptr, poly8x16x3_t __b, const int __c)
15044 return __builtin_aarch64_ld3_lanev16qi_psps (
15045 (__builtin_aarch64_simd_qi *) __ptr, __b, __c);
15048 __extension__ extern __inline poly16x8x3_t
15049 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
15050 vld3q_lane_p16 (const poly16_t * __ptr, poly16x8x3_t __b, const int __c)
15052 return __builtin_aarch64_ld3_lanev8hi_psps (
15053 (__builtin_aarch64_simd_hi *) __ptr, __b, __c);
15056 __extension__ extern __inline poly64x2x3_t
15057 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
15058 vld3q_lane_p64 (const poly64_t * __ptr, poly64x2x3_t __b, const int __c)
15060 return __builtin_aarch64_ld3_lanev2di_psps (
15061 (__builtin_aarch64_simd_di *) __ptr, __b, __c);
15064 /* vld4_lane */
15066 __extension__ extern __inline uint8x8x4_t
15067 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
15068 vld4_lane_u8 (const uint8_t * __ptr, uint8x8x4_t __b, const int __c)
15070 return __builtin_aarch64_ld4_lanev8qi_usus (
15071 (__builtin_aarch64_simd_qi *) __ptr, __b, __c);
15074 __extension__ extern __inline uint16x4x4_t
15075 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
15076 vld4_lane_u16 (const uint16_t * __ptr, uint16x4x4_t __b, const int __c)
15078 return __builtin_aarch64_ld4_lanev4hi_usus (
15079 (__builtin_aarch64_simd_hi *) __ptr, __b, __c);
15082 __extension__ extern __inline uint32x2x4_t
15083 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
15084 vld4_lane_u32 (const uint32_t * __ptr, uint32x2x4_t __b, const int __c)
15086 return __builtin_aarch64_ld4_lanev2si_usus (
15087 (__builtin_aarch64_simd_si *) __ptr, __b, __c);
15090 __extension__ extern __inline uint64x1x4_t
15091 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
15092 vld4_lane_u64 (const uint64_t * __ptr, uint64x1x4_t __b, const int __c)
15094 return __builtin_aarch64_ld4_lanedi_usus (
15095 (__builtin_aarch64_simd_di *) __ptr, __b, __c);
15098 __extension__ extern __inline int8x8x4_t
15099 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
15100 vld4_lane_s8 (const int8_t * __ptr, int8x8x4_t __b, const int __c)
15102 return __builtin_aarch64_ld4_lanev8qi (
15103 (__builtin_aarch64_simd_qi *) __ptr, __b, __c);
15106 __extension__ extern __inline int16x4x4_t
15107 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
15108 vld4_lane_s16 (const int16_t * __ptr, int16x4x4_t __b, const int __c)
15110 return __builtin_aarch64_ld4_lanev4hi (
15111 (__builtin_aarch64_simd_hi *) __ptr, __b, __c);
15114 __extension__ extern __inline int32x2x4_t
15115 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
15116 vld4_lane_s32 (const int32_t * __ptr, int32x2x4_t __b, const int __c)
15118 return __builtin_aarch64_ld4_lanev2si (
15119 (__builtin_aarch64_simd_si *) __ptr, __b, __c);
15122 __extension__ extern __inline int64x1x4_t
15123 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
15124 vld4_lane_s64 (const int64_t * __ptr, int64x1x4_t __b, const int __c)
15126 return __builtin_aarch64_ld4_lanedi (
15127 (__builtin_aarch64_simd_di *) __ptr, __b, __c);
15130 __extension__ extern __inline float16x4x4_t
15131 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
15132 vld4_lane_f16 (const float16_t * __ptr, float16x4x4_t __b, const int __c)
15134 return __builtin_aarch64_ld4_lanev4hf (
15135 (__builtin_aarch64_simd_hf *) __ptr, __b, __c);
15138 __extension__ extern __inline float32x2x4_t
15139 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
15140 vld4_lane_f32 (const float32_t * __ptr, float32x2x4_t __b, const int __c)
15142 return __builtin_aarch64_ld4_lanev2sf (
15143 (__builtin_aarch64_simd_sf *) __ptr, __b, __c);
15146 __extension__ extern __inline float64x1x4_t
15147 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
15148 vld4_lane_f64 (const float64_t * __ptr, float64x1x4_t __b, const int __c)
15150 return __builtin_aarch64_ld4_lanedf (
15151 (__builtin_aarch64_simd_df *) __ptr, __b, __c);
15154 __extension__ extern __inline poly8x8x4_t
15155 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
15156 vld4_lane_p8 (const poly8_t * __ptr, poly8x8x4_t __b, const int __c)
15158 return __builtin_aarch64_ld4_lanev8qi_psps (
15159 (__builtin_aarch64_simd_qi *) __ptr, __b, __c);
15162 __extension__ extern __inline poly16x4x4_t
15163 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
15164 vld4_lane_p16 (const poly16_t * __ptr, poly16x4x4_t __b, const int __c)
15166 return __builtin_aarch64_ld4_lanev4hi_psps (
15167 (__builtin_aarch64_simd_hi *) __ptr, __b, __c);
15170 __extension__ extern __inline poly64x1x4_t
15171 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
15172 vld4_lane_p64 (const poly64_t * __ptr, poly64x1x4_t __b, const int __c)
15174 return __builtin_aarch64_ld4_lanedi_psps (
15175 (__builtin_aarch64_simd_di *) __ptr, __b, __c);
15178 /* vld4q_lane */
15180 __extension__ extern __inline uint8x16x4_t
15181 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
15182 vld4q_lane_u8 (const uint8_t * __ptr, uint8x16x4_t __b, const int __c)
15184 return __builtin_aarch64_ld4_lanev16qi_usus (
15185 (__builtin_aarch64_simd_qi *) __ptr, __b, __c);
15188 __extension__ extern __inline uint16x8x4_t
15189 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
15190 vld4q_lane_u16 (const uint16_t * __ptr, uint16x8x4_t __b, const int __c)
15192 return __builtin_aarch64_ld4_lanev8hi_usus (
15193 (__builtin_aarch64_simd_hi *) __ptr, __b, __c);
15196 __extension__ extern __inline uint32x4x4_t
15197 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
15198 vld4q_lane_u32 (const uint32_t * __ptr, uint32x4x4_t __b, const int __c)
15200 return __builtin_aarch64_ld4_lanev4si_usus (
15201 (__builtin_aarch64_simd_si *) __ptr, __b, __c);
15204 __extension__ extern __inline uint64x2x4_t
15205 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
15206 vld4q_lane_u64 (const uint64_t * __ptr, uint64x2x4_t __b, const int __c)
15208 return __builtin_aarch64_ld4_lanev2di_usus (
15209 (__builtin_aarch64_simd_di *) __ptr, __b, __c);
15212 __extension__ extern __inline int8x16x4_t
15213 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
15214 vld4q_lane_s8 (const int8_t * __ptr, int8x16x4_t __b, const int __c)
15216 return __builtin_aarch64_ld4_lanev16qi (
15217 (__builtin_aarch64_simd_qi *) __ptr, __b, __c);
15220 __extension__ extern __inline int16x8x4_t
15221 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
15222 vld4q_lane_s16 (const int16_t * __ptr, int16x8x4_t __b, const int __c)
15224 return __builtin_aarch64_ld4_lanev8hi (
15225 (__builtin_aarch64_simd_hi *) __ptr, __b, __c);
15228 __extension__ extern __inline int32x4x4_t
15229 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
15230 vld4q_lane_s32 (const int32_t * __ptr, int32x4x4_t __b, const int __c)
15232 return __builtin_aarch64_ld4_lanev4si (
15233 (__builtin_aarch64_simd_si *) __ptr, __b, __c);
15236 __extension__ extern __inline int64x2x4_t
15237 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
15238 vld4q_lane_s64 (const int64_t * __ptr, int64x2x4_t __b, const int __c)
15240 return __builtin_aarch64_ld4_lanev2di (
15241 (__builtin_aarch64_simd_di *) __ptr, __b, __c);
15244 __extension__ extern __inline float16x8x4_t
15245 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
15246 vld4q_lane_f16 (const float16_t * __ptr, float16x8x4_t __b, const int __c)
15248 return __builtin_aarch64_ld4_lanev8hf (
15249 (__builtin_aarch64_simd_hf *) __ptr, __b, __c);
15252 __extension__ extern __inline float32x4x4_t
15253 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
15254 vld4q_lane_f32 (const float32_t * __ptr, float32x4x4_t __b, const int __c)
15256 return __builtin_aarch64_ld4_lanev4sf (
15257 (__builtin_aarch64_simd_sf *) __ptr, __b, __c);
15260 __extension__ extern __inline float64x2x4_t
15261 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
15262 vld4q_lane_f64 (const float64_t * __ptr, float64x2x4_t __b, const int __c)
15264 return __builtin_aarch64_ld4_lanev2df (
15265 (__builtin_aarch64_simd_df *) __ptr, __b, __c);
15268 __extension__ extern __inline poly8x16x4_t
15269 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
15270 vld4q_lane_p8 (const poly8_t * __ptr, poly8x16x4_t __b, const int __c)
15272 return __builtin_aarch64_ld4_lanev16qi_psps (
15273 (__builtin_aarch64_simd_qi *) __ptr, __b, __c);
15276 __extension__ extern __inline poly16x8x4_t
15277 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
15278 vld4q_lane_p16 (const poly16_t * __ptr, poly16x8x4_t __b, const int __c)
15280 return __builtin_aarch64_ld4_lanev8hi_psps (
15281 (__builtin_aarch64_simd_hi *) __ptr, __b, __c);
15284 __extension__ extern __inline poly64x2x4_t
15285 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
15286 vld4q_lane_p64 (const poly64_t * __ptr, poly64x2x4_t __b, const int __c)
15288 return __builtin_aarch64_ld4_lanev2di_psps (
15289 (__builtin_aarch64_simd_di *) __ptr, __b, __c);
15292 /* vmax */
15294 __extension__ extern __inline float32x2_t
15295 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15296 vmax_f32 (float32x2_t __a, float32x2_t __b)
15298 return __builtin_aarch64_fmax_nanv2sf (__a, __b);
15301 __extension__ extern __inline float64x1_t
15302 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15303 vmax_f64 (float64x1_t __a, float64x1_t __b)
15305 return (float64x1_t)
15306 { __builtin_aarch64_fmax_nandf (vget_lane_f64 (__a, 0),
15307 vget_lane_f64 (__b, 0)) };
15310 __extension__ extern __inline int8x8_t
15311 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15312 vmax_s8 (int8x8_t __a, int8x8_t __b)
15314 return __builtin_aarch64_smaxv8qi (__a, __b);
15317 __extension__ extern __inline int16x4_t
15318 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15319 vmax_s16 (int16x4_t __a, int16x4_t __b)
15321 return __builtin_aarch64_smaxv4hi (__a, __b);
15324 __extension__ extern __inline int32x2_t
15325 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15326 vmax_s32 (int32x2_t __a, int32x2_t __b)
15328 return __builtin_aarch64_smaxv2si (__a, __b);
15331 __extension__ extern __inline uint8x8_t
15332 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15333 vmax_u8 (uint8x8_t __a, uint8x8_t __b)
15335 return (uint8x8_t) __builtin_aarch64_umaxv8qi ((int8x8_t) __a,
15336 (int8x8_t) __b);
15339 __extension__ extern __inline uint16x4_t
15340 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15341 vmax_u16 (uint16x4_t __a, uint16x4_t __b)
15343 return (uint16x4_t) __builtin_aarch64_umaxv4hi ((int16x4_t) __a,
15344 (int16x4_t) __b);
15347 __extension__ extern __inline uint32x2_t
15348 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15349 vmax_u32 (uint32x2_t __a, uint32x2_t __b)
15351 return (uint32x2_t) __builtin_aarch64_umaxv2si ((int32x2_t) __a,
15352 (int32x2_t) __b);
15355 __extension__ extern __inline float32x4_t
15356 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15357 vmaxq_f32 (float32x4_t __a, float32x4_t __b)
15359 return __builtin_aarch64_fmax_nanv4sf (__a, __b);
15362 __extension__ extern __inline float64x2_t
15363 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15364 vmaxq_f64 (float64x2_t __a, float64x2_t __b)
15366 return __builtin_aarch64_fmax_nanv2df (__a, __b);
15369 __extension__ extern __inline int8x16_t
15370 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15371 vmaxq_s8 (int8x16_t __a, int8x16_t __b)
15373 return __builtin_aarch64_smaxv16qi (__a, __b);
15376 __extension__ extern __inline int16x8_t
15377 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15378 vmaxq_s16 (int16x8_t __a, int16x8_t __b)
15380 return __builtin_aarch64_smaxv8hi (__a, __b);
15383 __extension__ extern __inline int32x4_t
15384 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15385 vmaxq_s32 (int32x4_t __a, int32x4_t __b)
15387 return __builtin_aarch64_smaxv4si (__a, __b);
15390 __extension__ extern __inline uint8x16_t
15391 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15392 vmaxq_u8 (uint8x16_t __a, uint8x16_t __b)
15394 return (uint8x16_t) __builtin_aarch64_umaxv16qi ((int8x16_t) __a,
15395 (int8x16_t) __b);
15398 __extension__ extern __inline uint16x8_t
15399 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15400 vmaxq_u16 (uint16x8_t __a, uint16x8_t __b)
15402 return (uint16x8_t) __builtin_aarch64_umaxv8hi ((int16x8_t) __a,
15403 (int16x8_t) __b);
15406 __extension__ extern __inline uint32x4_t
15407 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15408 vmaxq_u32 (uint32x4_t __a, uint32x4_t __b)
15410 return (uint32x4_t) __builtin_aarch64_umaxv4si ((int32x4_t) __a,
15411 (int32x4_t) __b);
15413 /* vmulx */
15415 __extension__ extern __inline float32x2_t
15416 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15417 vmulx_f32 (float32x2_t __a, float32x2_t __b)
15419 return __builtin_aarch64_fmulxv2sf (__a, __b);
15422 __extension__ extern __inline float32x4_t
15423 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15424 vmulxq_f32 (float32x4_t __a, float32x4_t __b)
15426 return __builtin_aarch64_fmulxv4sf (__a, __b);
15429 __extension__ extern __inline float64x1_t
15430 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15431 vmulx_f64 (float64x1_t __a, float64x1_t __b)
15433 return (float64x1_t) {__builtin_aarch64_fmulxdf (__a[0], __b[0])};
15436 __extension__ extern __inline float64x2_t
15437 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15438 vmulxq_f64 (float64x2_t __a, float64x2_t __b)
15440 return __builtin_aarch64_fmulxv2df (__a, __b);
15443 __extension__ extern __inline float32_t
15444 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15445 vmulxs_f32 (float32_t __a, float32_t __b)
15447 return __builtin_aarch64_fmulxsf (__a, __b);
15450 __extension__ extern __inline float64_t
15451 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15452 vmulxd_f64 (float64_t __a, float64_t __b)
15454 return __builtin_aarch64_fmulxdf (__a, __b);
15457 __extension__ extern __inline float32x2_t
15458 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15459 vmulx_lane_f32 (float32x2_t __a, float32x2_t __v, const int __lane)
15461 return vmulx_f32 (__a, __aarch64_vdup_lane_f32 (__v, __lane));
15464 __extension__ extern __inline float64x1_t
15465 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15466 vmulx_lane_f64 (float64x1_t __a, float64x1_t __v, const int __lane)
15468 return vmulx_f64 (__a, __aarch64_vdup_lane_f64 (__v, __lane));
15471 __extension__ extern __inline float32x4_t
15472 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15473 vmulxq_lane_f32 (float32x4_t __a, float32x2_t __v, const int __lane)
15475 return vmulxq_f32 (__a, __aarch64_vdupq_lane_f32 (__v, __lane));
15478 __extension__ extern __inline float64x2_t
15479 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15480 vmulxq_lane_f64 (float64x2_t __a, float64x1_t __v, const int __lane)
15482 return vmulxq_f64 (__a, __aarch64_vdupq_lane_f64 (__v, __lane));
15485 __extension__ extern __inline float32x2_t
15486 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15487 vmulx_laneq_f32 (float32x2_t __a, float32x4_t __v, const int __lane)
15489 return vmulx_f32 (__a, __aarch64_vdup_laneq_f32 (__v, __lane));
15492 __extension__ extern __inline float64x1_t
15493 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15494 vmulx_laneq_f64 (float64x1_t __a, float64x2_t __v, const int __lane)
15496 return vmulx_f64 (__a, __aarch64_vdup_laneq_f64 (__v, __lane));
15499 __extension__ extern __inline float32x4_t
15500 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15501 vmulxq_laneq_f32 (float32x4_t __a, float32x4_t __v, const int __lane)
15503 return vmulxq_f32 (__a, __aarch64_vdupq_laneq_f32 (__v, __lane));
15506 __extension__ extern __inline float64x2_t
15507 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15508 vmulxq_laneq_f64 (float64x2_t __a, float64x2_t __v, const int __lane)
15510 return vmulxq_f64 (__a, __aarch64_vdupq_laneq_f64 (__v, __lane));
15513 __extension__ extern __inline float32_t
15514 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15515 vmulxs_lane_f32 (float32_t __a, float32x2_t __v, const int __lane)
15517 return vmulxs_f32 (__a, __aarch64_vget_lane_any (__v, __lane));
15520 __extension__ extern __inline float32_t
15521 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15522 vmulxs_laneq_f32 (float32_t __a, float32x4_t __v, const int __lane)
15524 return vmulxs_f32 (__a, __aarch64_vget_lane_any (__v, __lane));
15527 __extension__ extern __inline float64_t
15528 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15529 vmulxd_lane_f64 (float64_t __a, float64x1_t __v, const int __lane)
15531 return vmulxd_f64 (__a, __aarch64_vget_lane_any (__v, __lane));
15534 __extension__ extern __inline float64_t
15535 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15536 vmulxd_laneq_f64 (float64_t __a, float64x2_t __v, const int __lane)
15538 return vmulxd_f64 (__a, __aarch64_vget_lane_any (__v, __lane));
15541 /* vpmax */
15543 __extension__ extern __inline int8x8_t
15544 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15545 vpmax_s8 (int8x8_t __a, int8x8_t __b)
15547 return __builtin_aarch64_smaxpv8qi (__a, __b);
15550 __extension__ extern __inline int16x4_t
15551 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15552 vpmax_s16 (int16x4_t __a, int16x4_t __b)
15554 return __builtin_aarch64_smaxpv4hi (__a, __b);
15557 __extension__ extern __inline int32x2_t
15558 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15559 vpmax_s32 (int32x2_t __a, int32x2_t __b)
15561 return __builtin_aarch64_smaxpv2si (__a, __b);
15564 __extension__ extern __inline uint8x8_t
15565 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15566 vpmax_u8 (uint8x8_t __a, uint8x8_t __b)
15568 return (uint8x8_t) __builtin_aarch64_umaxpv8qi ((int8x8_t) __a,
15569 (int8x8_t) __b);
15572 __extension__ extern __inline uint16x4_t
15573 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15574 vpmax_u16 (uint16x4_t __a, uint16x4_t __b)
15576 return (uint16x4_t) __builtin_aarch64_umaxpv4hi ((int16x4_t) __a,
15577 (int16x4_t) __b);
15580 __extension__ extern __inline uint32x2_t
15581 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15582 vpmax_u32 (uint32x2_t __a, uint32x2_t __b)
15584 return (uint32x2_t) __builtin_aarch64_umaxpv2si ((int32x2_t) __a,
15585 (int32x2_t) __b);
15588 __extension__ extern __inline int8x16_t
15589 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15590 vpmaxq_s8 (int8x16_t __a, int8x16_t __b)
15592 return __builtin_aarch64_smaxpv16qi (__a, __b);
15595 __extension__ extern __inline int16x8_t
15596 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15597 vpmaxq_s16 (int16x8_t __a, int16x8_t __b)
15599 return __builtin_aarch64_smaxpv8hi (__a, __b);
15602 __extension__ extern __inline int32x4_t
15603 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15604 vpmaxq_s32 (int32x4_t __a, int32x4_t __b)
15606 return __builtin_aarch64_smaxpv4si (__a, __b);
15609 __extension__ extern __inline uint8x16_t
15610 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15611 vpmaxq_u8 (uint8x16_t __a, uint8x16_t __b)
15613 return (uint8x16_t) __builtin_aarch64_umaxpv16qi ((int8x16_t) __a,
15614 (int8x16_t) __b);
15617 __extension__ extern __inline uint16x8_t
15618 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15619 vpmaxq_u16 (uint16x8_t __a, uint16x8_t __b)
15621 return (uint16x8_t) __builtin_aarch64_umaxpv8hi ((int16x8_t) __a,
15622 (int16x8_t) __b);
15625 __extension__ extern __inline uint32x4_t
15626 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15627 vpmaxq_u32 (uint32x4_t __a, uint32x4_t __b)
15629 return (uint32x4_t) __builtin_aarch64_umaxpv4si ((int32x4_t) __a,
15630 (int32x4_t) __b);
15633 __extension__ extern __inline float32x2_t
15634 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15635 vpmax_f32 (float32x2_t __a, float32x2_t __b)
15637 return __builtin_aarch64_smax_nanpv2sf (__a, __b);
15640 __extension__ extern __inline float32x4_t
15641 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15642 vpmaxq_f32 (float32x4_t __a, float32x4_t __b)
15644 return __builtin_aarch64_smax_nanpv4sf (__a, __b);
15647 __extension__ extern __inline float64x2_t
15648 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15649 vpmaxq_f64 (float64x2_t __a, float64x2_t __b)
15651 return __builtin_aarch64_smax_nanpv2df (__a, __b);
15654 __extension__ extern __inline float64_t
15655 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15656 vpmaxqd_f64 (float64x2_t __a)
15658 return __builtin_aarch64_reduc_smax_nan_scal_v2df (__a);
15661 __extension__ extern __inline float32_t
15662 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15663 vpmaxs_f32 (float32x2_t __a)
15665 return __builtin_aarch64_reduc_smax_nan_scal_v2sf (__a);
15668 /* vpmaxnm */
15670 __extension__ extern __inline float32x2_t
15671 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15672 vpmaxnm_f32 (float32x2_t __a, float32x2_t __b)
15674 return __builtin_aarch64_smaxpv2sf (__a, __b);
15677 __extension__ extern __inline float32x4_t
15678 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15679 vpmaxnmq_f32 (float32x4_t __a, float32x4_t __b)
15681 return __builtin_aarch64_smaxpv4sf (__a, __b);
15684 __extension__ extern __inline float64x2_t
15685 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15686 vpmaxnmq_f64 (float64x2_t __a, float64x2_t __b)
15688 return __builtin_aarch64_smaxpv2df (__a, __b);
15691 __extension__ extern __inline float64_t
15692 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15693 vpmaxnmqd_f64 (float64x2_t __a)
15695 return __builtin_aarch64_reduc_smax_scal_v2df (__a);
15698 __extension__ extern __inline float32_t
15699 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15700 vpmaxnms_f32 (float32x2_t __a)
15702 return __builtin_aarch64_reduc_smax_scal_v2sf (__a);
15705 /* vpmin */
15707 __extension__ extern __inline int8x8_t
15708 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15709 vpmin_s8 (int8x8_t __a, int8x8_t __b)
15711 return __builtin_aarch64_sminpv8qi (__a, __b);
15714 __extension__ extern __inline int16x4_t
15715 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15716 vpmin_s16 (int16x4_t __a, int16x4_t __b)
15718 return __builtin_aarch64_sminpv4hi (__a, __b);
15721 __extension__ extern __inline int32x2_t
15722 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15723 vpmin_s32 (int32x2_t __a, int32x2_t __b)
15725 return __builtin_aarch64_sminpv2si (__a, __b);
15728 __extension__ extern __inline uint8x8_t
15729 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15730 vpmin_u8 (uint8x8_t __a, uint8x8_t __b)
15732 return (uint8x8_t) __builtin_aarch64_uminpv8qi ((int8x8_t) __a,
15733 (int8x8_t) __b);
15736 __extension__ extern __inline uint16x4_t
15737 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15738 vpmin_u16 (uint16x4_t __a, uint16x4_t __b)
15740 return (uint16x4_t) __builtin_aarch64_uminpv4hi ((int16x4_t) __a,
15741 (int16x4_t) __b);
15744 __extension__ extern __inline uint32x2_t
15745 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15746 vpmin_u32 (uint32x2_t __a, uint32x2_t __b)
15748 return (uint32x2_t) __builtin_aarch64_uminpv2si ((int32x2_t) __a,
15749 (int32x2_t) __b);
15752 __extension__ extern __inline int8x16_t
15753 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15754 vpminq_s8 (int8x16_t __a, int8x16_t __b)
15756 return __builtin_aarch64_sminpv16qi (__a, __b);
15759 __extension__ extern __inline int16x8_t
15760 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15761 vpminq_s16 (int16x8_t __a, int16x8_t __b)
15763 return __builtin_aarch64_sminpv8hi (__a, __b);
15766 __extension__ extern __inline int32x4_t
15767 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15768 vpminq_s32 (int32x4_t __a, int32x4_t __b)
15770 return __builtin_aarch64_sminpv4si (__a, __b);
15773 __extension__ extern __inline uint8x16_t
15774 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15775 vpminq_u8 (uint8x16_t __a, uint8x16_t __b)
15777 return (uint8x16_t) __builtin_aarch64_uminpv16qi ((int8x16_t) __a,
15778 (int8x16_t) __b);
15781 __extension__ extern __inline uint16x8_t
15782 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15783 vpminq_u16 (uint16x8_t __a, uint16x8_t __b)
15785 return (uint16x8_t) __builtin_aarch64_uminpv8hi ((int16x8_t) __a,
15786 (int16x8_t) __b);
15789 __extension__ extern __inline uint32x4_t
15790 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15791 vpminq_u32 (uint32x4_t __a, uint32x4_t __b)
15793 return (uint32x4_t) __builtin_aarch64_uminpv4si ((int32x4_t) __a,
15794 (int32x4_t) __b);
15797 __extension__ extern __inline float32x2_t
15798 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15799 vpmin_f32 (float32x2_t __a, float32x2_t __b)
15801 return __builtin_aarch64_smin_nanpv2sf (__a, __b);
15804 __extension__ extern __inline float32x4_t
15805 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15806 vpminq_f32 (float32x4_t __a, float32x4_t __b)
15808 return __builtin_aarch64_smin_nanpv4sf (__a, __b);
15811 __extension__ extern __inline float64x2_t
15812 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15813 vpminq_f64 (float64x2_t __a, float64x2_t __b)
15815 return __builtin_aarch64_smin_nanpv2df (__a, __b);
15818 __extension__ extern __inline float64_t
15819 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15820 vpminqd_f64 (float64x2_t __a)
15822 return __builtin_aarch64_reduc_smin_nan_scal_v2df (__a);
15825 __extension__ extern __inline float32_t
15826 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15827 vpmins_f32 (float32x2_t __a)
15829 return __builtin_aarch64_reduc_smin_nan_scal_v2sf (__a);
15832 /* vpminnm */
15834 __extension__ extern __inline float32x2_t
15835 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15836 vpminnm_f32 (float32x2_t __a, float32x2_t __b)
15838 return __builtin_aarch64_sminpv2sf (__a, __b);
15841 __extension__ extern __inline float32x4_t
15842 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15843 vpminnmq_f32 (float32x4_t __a, float32x4_t __b)
15845 return __builtin_aarch64_sminpv4sf (__a, __b);
15848 __extension__ extern __inline float64x2_t
15849 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15850 vpminnmq_f64 (float64x2_t __a, float64x2_t __b)
15852 return __builtin_aarch64_sminpv2df (__a, __b);
15855 __extension__ extern __inline float64_t
15856 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15857 vpminnmqd_f64 (float64x2_t __a)
15859 return __builtin_aarch64_reduc_smin_scal_v2df (__a);
15862 __extension__ extern __inline float32_t
15863 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15864 vpminnms_f32 (float32x2_t __a)
15866 return __builtin_aarch64_reduc_smin_scal_v2sf (__a);
15869 /* vmaxnm */
15871 __extension__ extern __inline float32x2_t
15872 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15873 vmaxnm_f32 (float32x2_t __a, float32x2_t __b)
15875 return __builtin_aarch64_fmaxv2sf (__a, __b);
15878 __extension__ extern __inline float64x1_t
15879 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15880 vmaxnm_f64 (float64x1_t __a, float64x1_t __b)
15882 return (float64x1_t)
15883 { __builtin_aarch64_fmaxdf (vget_lane_f64 (__a, 0),
15884 vget_lane_f64 (__b, 0)) };
15887 __extension__ extern __inline float32x4_t
15888 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15889 vmaxnmq_f32 (float32x4_t __a, float32x4_t __b)
15891 return __builtin_aarch64_fmaxv4sf (__a, __b);
15894 __extension__ extern __inline float64x2_t
15895 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15896 vmaxnmq_f64 (float64x2_t __a, float64x2_t __b)
15898 return __builtin_aarch64_fmaxv2df (__a, __b);
15901 /* vmaxv */
15903 __extension__ extern __inline float32_t
15904 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15905 vmaxv_f32 (float32x2_t __a)
15907 return __builtin_aarch64_reduc_smax_nan_scal_v2sf (__a);
15910 __extension__ extern __inline int8_t
15911 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15912 vmaxv_s8 (int8x8_t __a)
15914 return __builtin_aarch64_reduc_smax_scal_v8qi (__a);
15917 __extension__ extern __inline int16_t
15918 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15919 vmaxv_s16 (int16x4_t __a)
15921 return __builtin_aarch64_reduc_smax_scal_v4hi (__a);
15924 __extension__ extern __inline int32_t
15925 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15926 vmaxv_s32 (int32x2_t __a)
15928 return __builtin_aarch64_reduc_smax_scal_v2si (__a);
15931 __extension__ extern __inline uint8_t
15932 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15933 vmaxv_u8 (uint8x8_t __a)
15935 return __builtin_aarch64_reduc_umax_scal_v8qi_uu (__a);
15938 __extension__ extern __inline uint16_t
15939 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15940 vmaxv_u16 (uint16x4_t __a)
15942 return __builtin_aarch64_reduc_umax_scal_v4hi_uu (__a);
15945 __extension__ extern __inline uint32_t
15946 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15947 vmaxv_u32 (uint32x2_t __a)
15949 return __builtin_aarch64_reduc_umax_scal_v2si_uu (__a);
15952 __extension__ extern __inline float32_t
15953 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15954 vmaxvq_f32 (float32x4_t __a)
15956 return __builtin_aarch64_reduc_smax_nan_scal_v4sf (__a);
15959 __extension__ extern __inline float64_t
15960 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15961 vmaxvq_f64 (float64x2_t __a)
15963 return __builtin_aarch64_reduc_smax_nan_scal_v2df (__a);
15966 __extension__ extern __inline int8_t
15967 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15968 vmaxvq_s8 (int8x16_t __a)
15970 return __builtin_aarch64_reduc_smax_scal_v16qi (__a);
15973 __extension__ extern __inline int16_t
15974 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15975 vmaxvq_s16 (int16x8_t __a)
15977 return __builtin_aarch64_reduc_smax_scal_v8hi (__a);
15980 __extension__ extern __inline int32_t
15981 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15982 vmaxvq_s32 (int32x4_t __a)
15984 return __builtin_aarch64_reduc_smax_scal_v4si (__a);
15987 __extension__ extern __inline uint8_t
15988 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15989 vmaxvq_u8 (uint8x16_t __a)
15991 return __builtin_aarch64_reduc_umax_scal_v16qi_uu (__a);
15994 __extension__ extern __inline uint16_t
15995 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15996 vmaxvq_u16 (uint16x8_t __a)
15998 return __builtin_aarch64_reduc_umax_scal_v8hi_uu (__a);
16001 __extension__ extern __inline uint32_t
16002 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16003 vmaxvq_u32 (uint32x4_t __a)
16005 return __builtin_aarch64_reduc_umax_scal_v4si_uu (__a);
16008 /* vmaxnmv */
16010 __extension__ extern __inline float32_t
16011 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16012 vmaxnmv_f32 (float32x2_t __a)
16014 return __builtin_aarch64_reduc_smax_scal_v2sf (__a);
16017 __extension__ extern __inline float32_t
16018 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16019 vmaxnmvq_f32 (float32x4_t __a)
16021 return __builtin_aarch64_reduc_smax_scal_v4sf (__a);
16024 __extension__ extern __inline float64_t
16025 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16026 vmaxnmvq_f64 (float64x2_t __a)
16028 return __builtin_aarch64_reduc_smax_scal_v2df (__a);
16031 /* vmin */
16033 __extension__ extern __inline float32x2_t
16034 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16035 vmin_f32 (float32x2_t __a, float32x2_t __b)
16037 return __builtin_aarch64_fmin_nanv2sf (__a, __b);
16040 __extension__ extern __inline float64x1_t
16041 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16042 vmin_f64 (float64x1_t __a, float64x1_t __b)
16044 return (float64x1_t)
16045 { __builtin_aarch64_fmin_nandf (vget_lane_f64 (__a, 0),
16046 vget_lane_f64 (__b, 0)) };
16049 __extension__ extern __inline int8x8_t
16050 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16051 vmin_s8 (int8x8_t __a, int8x8_t __b)
16053 return __builtin_aarch64_sminv8qi (__a, __b);
16056 __extension__ extern __inline int16x4_t
16057 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16058 vmin_s16 (int16x4_t __a, int16x4_t __b)
16060 return __builtin_aarch64_sminv4hi (__a, __b);
16063 __extension__ extern __inline int32x2_t
16064 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16065 vmin_s32 (int32x2_t __a, int32x2_t __b)
16067 return __builtin_aarch64_sminv2si (__a, __b);
16070 __extension__ extern __inline uint8x8_t
16071 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16072 vmin_u8 (uint8x8_t __a, uint8x8_t __b)
16074 return (uint8x8_t) __builtin_aarch64_uminv8qi ((int8x8_t) __a,
16075 (int8x8_t) __b);
16078 __extension__ extern __inline uint16x4_t
16079 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16080 vmin_u16 (uint16x4_t __a, uint16x4_t __b)
16082 return (uint16x4_t) __builtin_aarch64_uminv4hi ((int16x4_t) __a,
16083 (int16x4_t) __b);
16086 __extension__ extern __inline uint32x2_t
16087 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16088 vmin_u32 (uint32x2_t __a, uint32x2_t __b)
16090 return (uint32x2_t) __builtin_aarch64_uminv2si ((int32x2_t) __a,
16091 (int32x2_t) __b);
16094 __extension__ extern __inline float32x4_t
16095 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16096 vminq_f32 (float32x4_t __a, float32x4_t __b)
16098 return __builtin_aarch64_fmin_nanv4sf (__a, __b);
16101 __extension__ extern __inline float64x2_t
16102 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16103 vminq_f64 (float64x2_t __a, float64x2_t __b)
16105 return __builtin_aarch64_fmin_nanv2df (__a, __b);
16108 __extension__ extern __inline int8x16_t
16109 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16110 vminq_s8 (int8x16_t __a, int8x16_t __b)
16112 return __builtin_aarch64_sminv16qi (__a, __b);
16115 __extension__ extern __inline int16x8_t
16116 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16117 vminq_s16 (int16x8_t __a, int16x8_t __b)
16119 return __builtin_aarch64_sminv8hi (__a, __b);
16122 __extension__ extern __inline int32x4_t
16123 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16124 vminq_s32 (int32x4_t __a, int32x4_t __b)
16126 return __builtin_aarch64_sminv4si (__a, __b);
16129 __extension__ extern __inline uint8x16_t
16130 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16131 vminq_u8 (uint8x16_t __a, uint8x16_t __b)
16133 return (uint8x16_t) __builtin_aarch64_uminv16qi ((int8x16_t) __a,
16134 (int8x16_t) __b);
16137 __extension__ extern __inline uint16x8_t
16138 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16139 vminq_u16 (uint16x8_t __a, uint16x8_t __b)
16141 return (uint16x8_t) __builtin_aarch64_uminv8hi ((int16x8_t) __a,
16142 (int16x8_t) __b);
16145 __extension__ extern __inline uint32x4_t
16146 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16147 vminq_u32 (uint32x4_t __a, uint32x4_t __b)
16149 return (uint32x4_t) __builtin_aarch64_uminv4si ((int32x4_t) __a,
16150 (int32x4_t) __b);
16153 /* vminnm */
16155 __extension__ extern __inline float32x2_t
16156 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16157 vminnm_f32 (float32x2_t __a, float32x2_t __b)
16159 return __builtin_aarch64_fminv2sf (__a, __b);
16162 __extension__ extern __inline float64x1_t
16163 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16164 vminnm_f64 (float64x1_t __a, float64x1_t __b)
16166 return (float64x1_t)
16167 { __builtin_aarch64_fmindf (vget_lane_f64 (__a, 0),
16168 vget_lane_f64 (__b, 0)) };
16171 __extension__ extern __inline float32x4_t
16172 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16173 vminnmq_f32 (float32x4_t __a, float32x4_t __b)
16175 return __builtin_aarch64_fminv4sf (__a, __b);
16178 __extension__ extern __inline float64x2_t
16179 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16180 vminnmq_f64 (float64x2_t __a, float64x2_t __b)
16182 return __builtin_aarch64_fminv2df (__a, __b);
16185 /* vminv */
16187 __extension__ extern __inline float32_t
16188 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16189 vminv_f32 (float32x2_t __a)
16191 return __builtin_aarch64_reduc_smin_nan_scal_v2sf (__a);
16194 __extension__ extern __inline int8_t
16195 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16196 vminv_s8 (int8x8_t __a)
16198 return __builtin_aarch64_reduc_smin_scal_v8qi (__a);
16201 __extension__ extern __inline int16_t
16202 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16203 vminv_s16 (int16x4_t __a)
16205 return __builtin_aarch64_reduc_smin_scal_v4hi (__a);
16208 __extension__ extern __inline int32_t
16209 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16210 vminv_s32 (int32x2_t __a)
16212 return __builtin_aarch64_reduc_smin_scal_v2si (__a);
16215 __extension__ extern __inline uint8_t
16216 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16217 vminv_u8 (uint8x8_t __a)
16219 return __builtin_aarch64_reduc_umin_scal_v8qi_uu (__a);
16222 __extension__ extern __inline uint16_t
16223 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16224 vminv_u16 (uint16x4_t __a)
16226 return __builtin_aarch64_reduc_umin_scal_v4hi_uu (__a);
16229 __extension__ extern __inline uint32_t
16230 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16231 vminv_u32 (uint32x2_t __a)
16233 return __builtin_aarch64_reduc_umin_scal_v2si_uu (__a);
16236 __extension__ extern __inline float32_t
16237 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16238 vminvq_f32 (float32x4_t __a)
16240 return __builtin_aarch64_reduc_smin_nan_scal_v4sf (__a);
16243 __extension__ extern __inline float64_t
16244 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16245 vminvq_f64 (float64x2_t __a)
16247 return __builtin_aarch64_reduc_smin_nan_scal_v2df (__a);
16250 __extension__ extern __inline int8_t
16251 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16252 vminvq_s8 (int8x16_t __a)
16254 return __builtin_aarch64_reduc_smin_scal_v16qi (__a);
16257 __extension__ extern __inline int16_t
16258 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16259 vminvq_s16 (int16x8_t __a)
16261 return __builtin_aarch64_reduc_smin_scal_v8hi (__a);
16264 __extension__ extern __inline int32_t
16265 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16266 vminvq_s32 (int32x4_t __a)
16268 return __builtin_aarch64_reduc_smin_scal_v4si (__a);
16271 __extension__ extern __inline uint8_t
16272 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16273 vminvq_u8 (uint8x16_t __a)
16275 return __builtin_aarch64_reduc_umin_scal_v16qi_uu (__a);
16278 __extension__ extern __inline uint16_t
16279 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16280 vminvq_u16 (uint16x8_t __a)
16282 return __builtin_aarch64_reduc_umin_scal_v8hi_uu (__a);
16285 __extension__ extern __inline uint32_t
16286 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16287 vminvq_u32 (uint32x4_t __a)
16289 return __builtin_aarch64_reduc_umin_scal_v4si_uu (__a);
16292 /* vminnmv */
16294 __extension__ extern __inline float32_t
16295 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16296 vminnmv_f32 (float32x2_t __a)
16298 return __builtin_aarch64_reduc_smin_scal_v2sf (__a);
16301 __extension__ extern __inline float32_t
16302 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16303 vminnmvq_f32 (float32x4_t __a)
16305 return __builtin_aarch64_reduc_smin_scal_v4sf (__a);
16308 __extension__ extern __inline float64_t
16309 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16310 vminnmvq_f64 (float64x2_t __a)
16312 return __builtin_aarch64_reduc_smin_scal_v2df (__a);
16315 /* vmla */
16317 __extension__ extern __inline float32x2_t
16318 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16319 vmla_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c)
16321 return __builtin_aarch64_float_mlav2sf (__a, __b, __c);
16324 __extension__ extern __inline float64x1_t
16325 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16326 vmla_f64 (float64x1_t __a, float64x1_t __b, float64x1_t __c)
16328 return (float64x1_t) {__builtin_aarch64_float_mladf (__a[0], __b[0], __c[0])};
16331 __extension__ extern __inline float32x4_t
16332 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16333 vmlaq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c)
16335 return __builtin_aarch64_float_mlav4sf (__a, __b, __c);
16338 __extension__ extern __inline float64x2_t
16339 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16340 vmlaq_f64 (float64x2_t __a, float64x2_t __b, float64x2_t __c)
16342 return __builtin_aarch64_float_mlav2df (__a, __b, __c);
16345 /* vmla_lane */
16347 __extension__ extern __inline float32x2_t
16348 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16349 vmla_lane_f32 (float32x2_t __a, float32x2_t __b,
16350 float32x2_t __c, const int __lane)
16352 return __builtin_aarch64_float_mla_lanev2sf (__a, __b, __c, __lane);
16355 __extension__ extern __inline int16x4_t
16356 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16357 vmla_lane_s16 (int16x4_t __a, int16x4_t __b,
16358 int16x4_t __c, const int __lane)
16360 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
16363 __extension__ extern __inline int32x2_t
16364 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16365 vmla_lane_s32 (int32x2_t __a, int32x2_t __b,
16366 int32x2_t __c, const int __lane)
16368 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
16371 __extension__ extern __inline uint16x4_t
16372 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16373 vmla_lane_u16 (uint16x4_t __a, uint16x4_t __b,
16374 uint16x4_t __c, const int __lane)
16376 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
16379 __extension__ extern __inline uint32x2_t
16380 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16381 vmla_lane_u32 (uint32x2_t __a, uint32x2_t __b,
16382 uint32x2_t __c, const int __lane)
16384 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
16387 /* vmla_laneq */
16389 __extension__ extern __inline float32x2_t
16390 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16391 vmla_laneq_f32 (float32x2_t __a, float32x2_t __b,
16392 float32x4_t __c, const int __lane)
16394 return __builtin_aarch64_float_mla_laneqv2sf (__a, __b, __c, __lane);
16397 __extension__ extern __inline int16x4_t
16398 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16399 vmla_laneq_s16 (int16x4_t __a, int16x4_t __b,
16400 int16x8_t __c, const int __lane)
16402 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
16405 __extension__ extern __inline int32x2_t
16406 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16407 vmla_laneq_s32 (int32x2_t __a, int32x2_t __b,
16408 int32x4_t __c, const int __lane)
16410 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
16413 __extension__ extern __inline uint16x4_t
16414 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16415 vmla_laneq_u16 (uint16x4_t __a, uint16x4_t __b,
16416 uint16x8_t __c, const int __lane)
16418 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
16421 __extension__ extern __inline uint32x2_t
16422 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16423 vmla_laneq_u32 (uint32x2_t __a, uint32x2_t __b,
16424 uint32x4_t __c, const int __lane)
16426 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
16429 /* vmlaq_lane */
16431 __extension__ extern __inline float32x4_t
16432 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16433 vmlaq_lane_f32 (float32x4_t __a, float32x4_t __b,
16434 float32x2_t __c, const int __lane)
16436 return __builtin_aarch64_float_mla_lanev4sf (__a, __b, __c, __lane);
16439 __extension__ extern __inline int16x8_t
16440 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16441 vmlaq_lane_s16 (int16x8_t __a, int16x8_t __b,
16442 int16x4_t __c, const int __lane)
16444 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
16447 __extension__ extern __inline int32x4_t
16448 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16449 vmlaq_lane_s32 (int32x4_t __a, int32x4_t __b,
16450 int32x2_t __c, const int __lane)
16452 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
16455 __extension__ extern __inline uint16x8_t
16456 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16457 vmlaq_lane_u16 (uint16x8_t __a, uint16x8_t __b,
16458 uint16x4_t __c, const int __lane)
16460 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
16463 __extension__ extern __inline uint32x4_t
16464 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16465 vmlaq_lane_u32 (uint32x4_t __a, uint32x4_t __b,
16466 uint32x2_t __c, const int __lane)
16468 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
16471 /* vmlaq_laneq */
16473 __extension__ extern __inline float32x4_t
16474 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16475 vmlaq_laneq_f32 (float32x4_t __a, float32x4_t __b,
16476 float32x4_t __c, const int __lane)
16478 return __builtin_aarch64_float_mla_laneqv4sf (__a, __b, __c, __lane);
16481 __extension__ extern __inline int16x8_t
16482 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16483 vmlaq_laneq_s16 (int16x8_t __a, int16x8_t __b,
16484 int16x8_t __c, const int __lane)
16486 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
16489 __extension__ extern __inline int32x4_t
16490 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16491 vmlaq_laneq_s32 (int32x4_t __a, int32x4_t __b,
16492 int32x4_t __c, const int __lane)
16494 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
16497 __extension__ extern __inline uint16x8_t
16498 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16499 vmlaq_laneq_u16 (uint16x8_t __a, uint16x8_t __b,
16500 uint16x8_t __c, const int __lane)
16502 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
16505 __extension__ extern __inline uint32x4_t
16506 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16507 vmlaq_laneq_u32 (uint32x4_t __a, uint32x4_t __b,
16508 uint32x4_t __c, const int __lane)
16510 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
16513 /* vmls */
16515 __extension__ extern __inline float32x2_t
16516 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16517 vmls_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c)
16519 return __builtin_aarch64_float_mlsv2sf (__a, __b, __c);
16522 __extension__ extern __inline float64x1_t
16523 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16524 vmls_f64 (float64x1_t __a, float64x1_t __b, float64x1_t __c)
16526 return (float64x1_t) {__builtin_aarch64_float_mlsdf (__a[0], __b[0], __c[0])};
16529 __extension__ extern __inline float32x4_t
16530 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16531 vmlsq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c)
16533 return __builtin_aarch64_float_mlsv4sf (__a, __b, __c);
16536 __extension__ extern __inline float64x2_t
16537 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16538 vmlsq_f64 (float64x2_t __a, float64x2_t __b, float64x2_t __c)
16540 return __builtin_aarch64_float_mlsv2df (__a, __b, __c);
16543 /* vmls_lane */
16545 __extension__ extern __inline float32x2_t
16546 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16547 vmls_lane_f32 (float32x2_t __a, float32x2_t __b,
16548 float32x2_t __c, const int __lane)
16550 return __builtin_aarch64_float_mls_lanev2sf (__a, __b, __c, __lane);
16553 __extension__ extern __inline int16x4_t
16554 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16555 vmls_lane_s16 (int16x4_t __a, int16x4_t __b,
16556 int16x4_t __c, const int __lane)
16558 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
16561 __extension__ extern __inline int32x2_t
16562 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16563 vmls_lane_s32 (int32x2_t __a, int32x2_t __b,
16564 int32x2_t __c, const int __lane)
16566 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
16569 __extension__ extern __inline uint16x4_t
16570 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16571 vmls_lane_u16 (uint16x4_t __a, uint16x4_t __b,
16572 uint16x4_t __c, const int __lane)
16574 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
16577 __extension__ extern __inline uint32x2_t
16578 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16579 vmls_lane_u32 (uint32x2_t __a, uint32x2_t __b,
16580 uint32x2_t __c, const int __lane)
16582 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
16585 /* vmls_laneq */
16587 __extension__ extern __inline float32x2_t
16588 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16589 vmls_laneq_f32 (float32x2_t __a, float32x2_t __b,
16590 float32x4_t __c, const int __lane)
16592 return __builtin_aarch64_float_mls_laneqv2sf (__a, __b, __c, __lane);
16595 __extension__ extern __inline int16x4_t
16596 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16597 vmls_laneq_s16 (int16x4_t __a, int16x4_t __b,
16598 int16x8_t __c, const int __lane)
16600 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
16603 __extension__ extern __inline int32x2_t
16604 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16605 vmls_laneq_s32 (int32x2_t __a, int32x2_t __b,
16606 int32x4_t __c, const int __lane)
16608 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
16611 __extension__ extern __inline uint16x4_t
16612 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16613 vmls_laneq_u16 (uint16x4_t __a, uint16x4_t __b,
16614 uint16x8_t __c, const int __lane)
16616 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
16619 __extension__ extern __inline uint32x2_t
16620 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16621 vmls_laneq_u32 (uint32x2_t __a, uint32x2_t __b,
16622 uint32x4_t __c, const int __lane)
16624 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
16627 /* vmlsq_lane */
16629 __extension__ extern __inline float32x4_t
16630 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16631 vmlsq_lane_f32 (float32x4_t __a, float32x4_t __b,
16632 float32x2_t __c, const int __lane)
16634 return __builtin_aarch64_float_mls_lanev4sf (__a, __b, __c, __lane);
16637 __extension__ extern __inline int16x8_t
16638 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16639 vmlsq_lane_s16 (int16x8_t __a, int16x8_t __b,
16640 int16x4_t __c, const int __lane)
16642 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
16645 __extension__ extern __inline int32x4_t
16646 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16647 vmlsq_lane_s32 (int32x4_t __a, int32x4_t __b,
16648 int32x2_t __c, const int __lane)
16650 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
16653 __extension__ extern __inline uint16x8_t
16654 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16655 vmlsq_lane_u16 (uint16x8_t __a, uint16x8_t __b,
16656 uint16x4_t __c, const int __lane)
16658 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
16661 __extension__ extern __inline uint32x4_t
16662 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16663 vmlsq_lane_u32 (uint32x4_t __a, uint32x4_t __b,
16664 uint32x2_t __c, const int __lane)
16666 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
16669 /* vmlsq_laneq */
16671 __extension__ extern __inline float32x4_t
16672 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16673 vmlsq_laneq_f32 (float32x4_t __a, float32x4_t __b,
16674 float32x4_t __c, const int __lane)
16676 return __builtin_aarch64_float_mls_laneqv4sf (__a, __b, __c, __lane);
16679 __extension__ extern __inline int16x8_t
16680 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16681 vmlsq_laneq_s16 (int16x8_t __a, int16x8_t __b,
16682 int16x8_t __c, const int __lane)
16684 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
16687 __extension__ extern __inline int32x4_t
16688 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16689 vmlsq_laneq_s32 (int32x4_t __a, int32x4_t __b,
16690 int32x4_t __c, const int __lane)
16692 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
16694 __extension__ extern __inline uint16x8_t
16695 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16696 vmlsq_laneq_u16 (uint16x8_t __a, uint16x8_t __b,
16697 uint16x8_t __c, const int __lane)
16699 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
16702 __extension__ extern __inline uint32x4_t
16703 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16704 vmlsq_laneq_u32 (uint32x4_t __a, uint32x4_t __b,
16705 uint32x4_t __c, const int __lane)
16707 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
16710 /* vmov_n_ */
16712 __extension__ extern __inline float16x4_t
16713 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16714 vmov_n_f16 (float16_t __a)
16716 return vdup_n_f16 (__a);
16719 __extension__ extern __inline float32x2_t
16720 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16721 vmov_n_f32 (float32_t __a)
16723 return vdup_n_f32 (__a);
16726 __extension__ extern __inline float64x1_t
16727 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16728 vmov_n_f64 (float64_t __a)
16730 return (float64x1_t) {__a};
16733 __extension__ extern __inline poly8x8_t
16734 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16735 vmov_n_p8 (poly8_t __a)
16737 return vdup_n_p8 (__a);
16740 __extension__ extern __inline poly16x4_t
16741 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16742 vmov_n_p16 (poly16_t __a)
16744 return vdup_n_p16 (__a);
16747 __extension__ extern __inline poly64x1_t
16748 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16749 vmov_n_p64 (poly64_t __a)
16751 return vdup_n_p64 (__a);
16754 __extension__ extern __inline int8x8_t
16755 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16756 vmov_n_s8 (int8_t __a)
16758 return vdup_n_s8 (__a);
16761 __extension__ extern __inline int16x4_t
16762 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16763 vmov_n_s16 (int16_t __a)
16765 return vdup_n_s16 (__a);
16768 __extension__ extern __inline int32x2_t
16769 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16770 vmov_n_s32 (int32_t __a)
16772 return vdup_n_s32 (__a);
16775 __extension__ extern __inline int64x1_t
16776 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16777 vmov_n_s64 (int64_t __a)
16779 return (int64x1_t) {__a};
16782 __extension__ extern __inline uint8x8_t
16783 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16784 vmov_n_u8 (uint8_t __a)
16786 return vdup_n_u8 (__a);
16789 __extension__ extern __inline uint16x4_t
16790 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16791 vmov_n_u16 (uint16_t __a)
16793 return vdup_n_u16 (__a);
16796 __extension__ extern __inline uint32x2_t
16797 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16798 vmov_n_u32 (uint32_t __a)
16800 return vdup_n_u32 (__a);
16803 __extension__ extern __inline uint64x1_t
16804 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16805 vmov_n_u64 (uint64_t __a)
16807 return (uint64x1_t) {__a};
16810 __extension__ extern __inline float16x8_t
16811 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16812 vmovq_n_f16 (float16_t __a)
16814 return vdupq_n_f16 (__a);
16817 __extension__ extern __inline float32x4_t
16818 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16819 vmovq_n_f32 (float32_t __a)
16821 return vdupq_n_f32 (__a);
16824 __extension__ extern __inline float64x2_t
16825 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16826 vmovq_n_f64 (float64_t __a)
16828 return vdupq_n_f64 (__a);
16831 __extension__ extern __inline poly8x16_t
16832 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16833 vmovq_n_p8 (poly8_t __a)
16835 return vdupq_n_p8 (__a);
16838 __extension__ extern __inline poly16x8_t
16839 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16840 vmovq_n_p16 (poly16_t __a)
16842 return vdupq_n_p16 (__a);
16845 __extension__ extern __inline poly64x2_t
16846 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16847 vmovq_n_p64 (poly64_t __a)
16849 return vdupq_n_p64 (__a);
16852 __extension__ extern __inline int8x16_t
16853 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16854 vmovq_n_s8 (int8_t __a)
16856 return vdupq_n_s8 (__a);
16859 __extension__ extern __inline int16x8_t
16860 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16861 vmovq_n_s16 (int16_t __a)
16863 return vdupq_n_s16 (__a);
16866 __extension__ extern __inline int32x4_t
16867 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16868 vmovq_n_s32 (int32_t __a)
16870 return vdupq_n_s32 (__a);
16873 __extension__ extern __inline int64x2_t
16874 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16875 vmovq_n_s64 (int64_t __a)
16877 return vdupq_n_s64 (__a);
16880 __extension__ extern __inline uint8x16_t
16881 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16882 vmovq_n_u8 (uint8_t __a)
16884 return vdupq_n_u8 (__a);
16887 __extension__ extern __inline uint16x8_t
16888 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16889 vmovq_n_u16 (uint16_t __a)
16891 return vdupq_n_u16 (__a);
16894 __extension__ extern __inline uint32x4_t
16895 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16896 vmovq_n_u32 (uint32_t __a)
16898 return vdupq_n_u32 (__a);
16901 __extension__ extern __inline uint64x2_t
16902 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16903 vmovq_n_u64 (uint64_t __a)
16905 return vdupq_n_u64 (__a);
16908 /* vmul_lane */
16910 __extension__ extern __inline float32x2_t
16911 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16912 vmul_lane_f32 (float32x2_t __a, float32x2_t __b, const int __lane)
16914 return __a * __aarch64_vget_lane_any (__b, __lane);
16917 __extension__ extern __inline float64x1_t
16918 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16919 vmul_lane_f64 (float64x1_t __a, float64x1_t __b, const int __lane)
16921 return __a * __b;
16924 __extension__ extern __inline int16x4_t
16925 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16926 vmul_lane_s16 (int16x4_t __a, int16x4_t __b, const int __lane)
16928 return __a * __aarch64_vget_lane_any (__b, __lane);
16931 __extension__ extern __inline int32x2_t
16932 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16933 vmul_lane_s32 (int32x2_t __a, int32x2_t __b, const int __lane)
16935 return __a * __aarch64_vget_lane_any (__b, __lane);
16938 __extension__ extern __inline uint16x4_t
16939 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16940 vmul_lane_u16 (uint16x4_t __a, uint16x4_t __b, const int __lane)
16942 return __a * __aarch64_vget_lane_any (__b, __lane);
16945 __extension__ extern __inline uint32x2_t
16946 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16947 vmul_lane_u32 (uint32x2_t __a, uint32x2_t __b, const int __lane)
16949 return __a * __aarch64_vget_lane_any (__b, __lane);
16952 /* vmuld_lane */
16954 __extension__ extern __inline float64_t
16955 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16956 vmuld_lane_f64 (float64_t __a, float64x1_t __b, const int __lane)
16958 return __a * __aarch64_vget_lane_any (__b, __lane);
16961 __extension__ extern __inline float64_t
16962 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16963 vmuld_laneq_f64 (float64_t __a, float64x2_t __b, const int __lane)
16965 return __a * __aarch64_vget_lane_any (__b, __lane);
16968 /* vmuls_lane */
16970 __extension__ extern __inline float32_t
16971 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16972 vmuls_lane_f32 (float32_t __a, float32x2_t __b, const int __lane)
16974 return __a * __aarch64_vget_lane_any (__b, __lane);
16977 __extension__ extern __inline float32_t
16978 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16979 vmuls_laneq_f32 (float32_t __a, float32x4_t __b, const int __lane)
16981 return __a * __aarch64_vget_lane_any (__b, __lane);
16984 /* vmul_laneq */
16986 __extension__ extern __inline float32x2_t
16987 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16988 vmul_laneq_f32 (float32x2_t __a, float32x4_t __b, const int __lane)
16990 return __a * __aarch64_vget_lane_any (__b, __lane);
16993 __extension__ extern __inline float64x1_t
16994 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16995 vmul_laneq_f64 (float64x1_t __a, float64x2_t __b, const int __lane)
16997 return __a * __aarch64_vget_lane_any (__b, __lane);
17000 __extension__ extern __inline int16x4_t
17001 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17002 vmul_laneq_s16 (int16x4_t __a, int16x8_t __b, const int __lane)
17004 return __a * __aarch64_vget_lane_any (__b, __lane);
17007 __extension__ extern __inline int32x2_t
17008 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17009 vmul_laneq_s32 (int32x2_t __a, int32x4_t __b, const int __lane)
17011 return __a * __aarch64_vget_lane_any (__b, __lane);
17014 __extension__ extern __inline uint16x4_t
17015 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17016 vmul_laneq_u16 (uint16x4_t __a, uint16x8_t __b, const int __lane)
17018 return __a * __aarch64_vget_lane_any (__b, __lane);
17021 __extension__ extern __inline uint32x2_t
17022 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17023 vmul_laneq_u32 (uint32x2_t __a, uint32x4_t __b, const int __lane)
17025 return __a * __aarch64_vget_lane_any (__b, __lane);
17028 /* vmul_n */
17030 __extension__ extern __inline float64x1_t
17031 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17032 vmul_n_f64 (float64x1_t __a, float64_t __b)
17034 return (float64x1_t) { vget_lane_f64 (__a, 0) * __b };
17037 /* vmulq_lane */
17039 __extension__ extern __inline float32x4_t
17040 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17041 vmulq_lane_f32 (float32x4_t __a, float32x2_t __b, const int __lane)
17043 return __a * __aarch64_vget_lane_any (__b, __lane);
17046 __extension__ extern __inline float64x2_t
17047 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17048 vmulq_lane_f64 (float64x2_t __a, float64x1_t __b, const int __lane)
17050 __AARCH64_LANE_CHECK (__a, __lane);
17051 return __a * __b[0];
17054 __extension__ extern __inline int16x8_t
17055 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17056 vmulq_lane_s16 (int16x8_t __a, int16x4_t __b, const int __lane)
17058 return __a * __aarch64_vget_lane_any (__b, __lane);
17061 __extension__ extern __inline int32x4_t
17062 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17063 vmulq_lane_s32 (int32x4_t __a, int32x2_t __b, const int __lane)
17065 return __a * __aarch64_vget_lane_any (__b, __lane);
17068 __extension__ extern __inline uint16x8_t
17069 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17070 vmulq_lane_u16 (uint16x8_t __a, uint16x4_t __b, const int __lane)
17072 return __a * __aarch64_vget_lane_any (__b, __lane);
17075 __extension__ extern __inline uint32x4_t
17076 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17077 vmulq_lane_u32 (uint32x4_t __a, uint32x2_t __b, const int __lane)
17079 return __a * __aarch64_vget_lane_any (__b, __lane);
17082 /* vmulq_laneq */
17084 __extension__ extern __inline float32x4_t
17085 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17086 vmulq_laneq_f32 (float32x4_t __a, float32x4_t __b, const int __lane)
17088 return __a * __aarch64_vget_lane_any (__b, __lane);
17091 __extension__ extern __inline float64x2_t
17092 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17093 vmulq_laneq_f64 (float64x2_t __a, float64x2_t __b, const int __lane)
17095 return __a * __aarch64_vget_lane_any (__b, __lane);
17098 __extension__ extern __inline int16x8_t
17099 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17100 vmulq_laneq_s16 (int16x8_t __a, int16x8_t __b, const int __lane)
17102 return __a * __aarch64_vget_lane_any (__b, __lane);
17105 __extension__ extern __inline int32x4_t
17106 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17107 vmulq_laneq_s32 (int32x4_t __a, int32x4_t __b, const int __lane)
17109 return __a * __aarch64_vget_lane_any (__b, __lane);
17112 __extension__ extern __inline uint16x8_t
17113 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17114 vmulq_laneq_u16 (uint16x8_t __a, uint16x8_t __b, const int __lane)
17116 return __a * __aarch64_vget_lane_any (__b, __lane);
17119 __extension__ extern __inline uint32x4_t
17120 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17121 vmulq_laneq_u32 (uint32x4_t __a, uint32x4_t __b, const int __lane)
17123 return __a * __aarch64_vget_lane_any (__b, __lane);
17126 /* vmul_n. */
17128 __extension__ extern __inline float32x2_t
17129 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17130 vmul_n_f32 (float32x2_t __a, float32_t __b)
17132 return __a * __b;
17135 __extension__ extern __inline float32x4_t
17136 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17137 vmulq_n_f32 (float32x4_t __a, float32_t __b)
17139 return __a * __b;
17142 __extension__ extern __inline float64x2_t
17143 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17144 vmulq_n_f64 (float64x2_t __a, float64_t __b)
17146 return __a * __b;
17149 __extension__ extern __inline int16x4_t
17150 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17151 vmul_n_s16 (int16x4_t __a, int16_t __b)
17153 return __a * __b;
17156 __extension__ extern __inline int16x8_t
17157 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17158 vmulq_n_s16 (int16x8_t __a, int16_t __b)
17160 return __a * __b;
17163 __extension__ extern __inline int32x2_t
17164 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17165 vmul_n_s32 (int32x2_t __a, int32_t __b)
17167 return __a * __b;
17170 __extension__ extern __inline int32x4_t
17171 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17172 vmulq_n_s32 (int32x4_t __a, int32_t __b)
17174 return __a * __b;
17177 __extension__ extern __inline uint16x4_t
17178 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17179 vmul_n_u16 (uint16x4_t __a, uint16_t __b)
17181 return __a * __b;
17184 __extension__ extern __inline uint16x8_t
17185 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17186 vmulq_n_u16 (uint16x8_t __a, uint16_t __b)
17188 return __a * __b;
17191 __extension__ extern __inline uint32x2_t
17192 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17193 vmul_n_u32 (uint32x2_t __a, uint32_t __b)
17195 return __a * __b;
17198 __extension__ extern __inline uint32x4_t
17199 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17200 vmulq_n_u32 (uint32x4_t __a, uint32_t __b)
17202 return __a * __b;
17205 /* vmvn */
17207 __extension__ extern __inline poly8x8_t
17208 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17209 vmvn_p8 (poly8x8_t __a)
17211 return (poly8x8_t) ~((int8x8_t) __a);
17214 __extension__ extern __inline int8x8_t
17215 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17216 vmvn_s8 (int8x8_t __a)
17218 return ~__a;
17221 __extension__ extern __inline int16x4_t
17222 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17223 vmvn_s16 (int16x4_t __a)
17225 return ~__a;
17228 __extension__ extern __inline int32x2_t
17229 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17230 vmvn_s32 (int32x2_t __a)
17232 return ~__a;
17235 __extension__ extern __inline uint8x8_t
17236 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17237 vmvn_u8 (uint8x8_t __a)
17239 return ~__a;
17242 __extension__ extern __inline uint16x4_t
17243 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17244 vmvn_u16 (uint16x4_t __a)
17246 return ~__a;
17249 __extension__ extern __inline uint32x2_t
17250 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17251 vmvn_u32 (uint32x2_t __a)
17253 return ~__a;
17256 __extension__ extern __inline poly8x16_t
17257 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17258 vmvnq_p8 (poly8x16_t __a)
17260 return (poly8x16_t) ~((int8x16_t) __a);
17263 __extension__ extern __inline int8x16_t
17264 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17265 vmvnq_s8 (int8x16_t __a)
17267 return ~__a;
17270 __extension__ extern __inline int16x8_t
17271 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17272 vmvnq_s16 (int16x8_t __a)
17274 return ~__a;
17277 __extension__ extern __inline int32x4_t
17278 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17279 vmvnq_s32 (int32x4_t __a)
17281 return ~__a;
17284 __extension__ extern __inline uint8x16_t
17285 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17286 vmvnq_u8 (uint8x16_t __a)
17288 return ~__a;
17291 __extension__ extern __inline uint16x8_t
17292 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17293 vmvnq_u16 (uint16x8_t __a)
17295 return ~__a;
17298 __extension__ extern __inline uint32x4_t
17299 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17300 vmvnq_u32 (uint32x4_t __a)
17302 return ~__a;
17305 /* vneg */
17307 __extension__ extern __inline float32x2_t
17308 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17309 vneg_f32 (float32x2_t __a)
17311 return -__a;
17314 __extension__ extern __inline float64x1_t
17315 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17316 vneg_f64 (float64x1_t __a)
17318 return -__a;
17321 __extension__ extern __inline int8x8_t
17322 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17323 vneg_s8 (int8x8_t __a)
17325 return -__a;
17328 __extension__ extern __inline int16x4_t
17329 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17330 vneg_s16 (int16x4_t __a)
17332 return -__a;
17335 __extension__ extern __inline int32x2_t
17336 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17337 vneg_s32 (int32x2_t __a)
17339 return -__a;
17342 __extension__ extern __inline int64x1_t
17343 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17344 vneg_s64 (int64x1_t __a)
17346 return -__a;
17349 /* According to the ACLE, the negative of the minimum (signed)
17350 value is itself. This leads to a semantics mismatch, as this is
17351 undefined behaviour in C. The value range predictor is not
17352 aware that the negation of a negative number can still be negative
17353 and it may try to fold the expression. See the test in
17354 gcc.target/aarch64/vnegd_s64.c for an example.
17356 The cast below tricks the value range predictor to include
17357 INT64_MIN in the range it computes. So for x in the range
17358 [INT64_MIN, y] the range prediction after vnegd_s64 (x) will
17359 be ~[INT64_MIN + 1, y]. */
17361 __extension__ extern __inline int64_t
17362 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17363 vnegd_s64 (int64_t __a)
17365 return - (uint64_t) __a;
17368 __extension__ extern __inline float32x4_t
17369 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17370 vnegq_f32 (float32x4_t __a)
17372 return -__a;
17375 __extension__ extern __inline float64x2_t
17376 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17377 vnegq_f64 (float64x2_t __a)
17379 return -__a;
17382 __extension__ extern __inline int8x16_t
17383 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17384 vnegq_s8 (int8x16_t __a)
17386 return -__a;
17389 __extension__ extern __inline int16x8_t
17390 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17391 vnegq_s16 (int16x8_t __a)
17393 return -__a;
17396 __extension__ extern __inline int32x4_t
17397 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17398 vnegq_s32 (int32x4_t __a)
17400 return -__a;
17403 __extension__ extern __inline int64x2_t
17404 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17405 vnegq_s64 (int64x2_t __a)
17407 return -__a;
17410 /* vpadd */
17412 __extension__ extern __inline float32x2_t
17413 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17414 vpadd_f32 (float32x2_t __a, float32x2_t __b)
17416 return __builtin_aarch64_faddpv2sf (__a, __b);
17419 __extension__ extern __inline float32x4_t
17420 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17421 vpaddq_f32 (float32x4_t __a, float32x4_t __b)
17423 return __builtin_aarch64_faddpv4sf (__a, __b);
17426 __extension__ extern __inline float64x2_t
17427 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17428 vpaddq_f64 (float64x2_t __a, float64x2_t __b)
17430 return __builtin_aarch64_faddpv2df (__a, __b);
17433 __extension__ extern __inline int8x8_t
17434 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17435 vpadd_s8 (int8x8_t __a, int8x8_t __b)
17437 return __builtin_aarch64_addpv8qi (__a, __b);
17440 __extension__ extern __inline int16x4_t
17441 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17442 vpadd_s16 (int16x4_t __a, int16x4_t __b)
17444 return __builtin_aarch64_addpv4hi (__a, __b);
17447 __extension__ extern __inline int32x2_t
17448 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17449 vpadd_s32 (int32x2_t __a, int32x2_t __b)
17451 return __builtin_aarch64_addpv2si (__a, __b);
17454 __extension__ extern __inline uint8x8_t
17455 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17456 vpadd_u8 (uint8x8_t __a, uint8x8_t __b)
17458 return __builtin_aarch64_addpv8qi_uuu (__a, __b);
17461 __extension__ extern __inline uint16x4_t
17462 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17463 vpadd_u16 (uint16x4_t __a, uint16x4_t __b)
17465 return __builtin_aarch64_addpv4hi_uuu (__a, __b);
17468 __extension__ extern __inline uint32x2_t
17469 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17470 vpadd_u32 (uint32x2_t __a, uint32x2_t __b)
17472 return __builtin_aarch64_addpv2si_uuu (__a, __b);
17475 __extension__ extern __inline float32_t
17476 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17477 vpadds_f32 (float32x2_t __a)
17479 return __builtin_aarch64_reduc_plus_scal_v2sf (__a);
17482 __extension__ extern __inline float64_t
17483 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17484 vpaddd_f64 (float64x2_t __a)
17486 return __builtin_aarch64_reduc_plus_scal_v2df (__a);
17489 __extension__ extern __inline int64_t
17490 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17491 vpaddd_s64 (int64x2_t __a)
17493 return __builtin_aarch64_reduc_plus_scal_v2di (__a);
17496 __extension__ extern __inline uint64_t
17497 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17498 vpaddd_u64 (uint64x2_t __a)
17500 return __builtin_aarch64_reduc_plus_scal_v2di_uu (__a);
17503 /* vqabs */
17505 __extension__ extern __inline int64x2_t
17506 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17507 vqabsq_s64 (int64x2_t __a)
17509 return (int64x2_t) __builtin_aarch64_sqabsv2di (__a);
17512 __extension__ extern __inline int8_t
17513 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17514 vqabsb_s8 (int8_t __a)
17516 return (int8_t) __builtin_aarch64_sqabsqi (__a);
17519 __extension__ extern __inline int16_t
17520 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17521 vqabsh_s16 (int16_t __a)
17523 return (int16_t) __builtin_aarch64_sqabshi (__a);
17526 __extension__ extern __inline int32_t
17527 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17528 vqabss_s32 (int32_t __a)
17530 return (int32_t) __builtin_aarch64_sqabssi (__a);
17533 __extension__ extern __inline int64_t
17534 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17535 vqabsd_s64 (int64_t __a)
17537 return __builtin_aarch64_sqabsdi (__a);
17540 /* vqadd */
17542 __extension__ extern __inline int8_t
17543 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17544 vqaddb_s8 (int8_t __a, int8_t __b)
17546 return (int8_t) __builtin_aarch64_ssaddqi (__a, __b);
17549 __extension__ extern __inline int16_t
17550 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17551 vqaddh_s16 (int16_t __a, int16_t __b)
17553 return (int16_t) __builtin_aarch64_ssaddhi (__a, __b);
17556 __extension__ extern __inline int32_t
17557 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17558 vqadds_s32 (int32_t __a, int32_t __b)
17560 return (int32_t) __builtin_aarch64_ssaddsi (__a, __b);
17563 __extension__ extern __inline int64_t
17564 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17565 vqaddd_s64 (int64_t __a, int64_t __b)
17567 return __builtin_aarch64_ssadddi (__a, __b);
17570 __extension__ extern __inline uint8_t
17571 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17572 vqaddb_u8 (uint8_t __a, uint8_t __b)
17574 return (uint8_t) __builtin_aarch64_usaddqi_uuu (__a, __b);
17577 __extension__ extern __inline uint16_t
17578 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17579 vqaddh_u16 (uint16_t __a, uint16_t __b)
17581 return (uint16_t) __builtin_aarch64_usaddhi_uuu (__a, __b);
17584 __extension__ extern __inline uint32_t
17585 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17586 vqadds_u32 (uint32_t __a, uint32_t __b)
17588 return (uint32_t) __builtin_aarch64_usaddsi_uuu (__a, __b);
17591 __extension__ extern __inline uint64_t
17592 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17593 vqaddd_u64 (uint64_t __a, uint64_t __b)
17595 return __builtin_aarch64_usadddi_uuu (__a, __b);
17598 /* vqdmlal */
17600 __extension__ extern __inline int32x4_t
17601 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17602 vqdmlal_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
17604 return __builtin_aarch64_sqdmlalv4hi (__a, __b, __c);
17607 __extension__ extern __inline int32x4_t
17608 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17609 vqdmlal_high_s16 (int32x4_t __a, int16x8_t __b, int16x8_t __c)
17611 return __builtin_aarch64_sqdmlal2v8hi (__a, __b, __c);
17614 __extension__ extern __inline int32x4_t
17615 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17616 vqdmlal_high_lane_s16 (int32x4_t __a, int16x8_t __b, int16x4_t __c,
17617 int const __d)
17619 return __builtin_aarch64_sqdmlal2_lanev8hi (__a, __b, __c, __d);
17622 __extension__ extern __inline int32x4_t
17623 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17624 vqdmlal_high_laneq_s16 (int32x4_t __a, int16x8_t __b, int16x8_t __c,
17625 int const __d)
17627 return __builtin_aarch64_sqdmlal2_laneqv8hi (__a, __b, __c, __d);
17630 __extension__ extern __inline int32x4_t
17631 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17632 vqdmlal_high_n_s16 (int32x4_t __a, int16x8_t __b, int16_t __c)
17634 return __builtin_aarch64_sqdmlal2_nv8hi (__a, __b, __c);
17637 __extension__ extern __inline int32x4_t
17638 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17639 vqdmlal_lane_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c, int const __d)
17641 return __builtin_aarch64_sqdmlal_lanev4hi (__a, __b, __c, __d);
17644 __extension__ extern __inline int32x4_t
17645 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17646 vqdmlal_laneq_s16 (int32x4_t __a, int16x4_t __b, int16x8_t __c, int const __d)
17648 return __builtin_aarch64_sqdmlal_laneqv4hi (__a, __b, __c, __d);
17651 __extension__ extern __inline int32x4_t
17652 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17653 vqdmlal_n_s16 (int32x4_t __a, int16x4_t __b, int16_t __c)
17655 return __builtin_aarch64_sqdmlal_nv4hi (__a, __b, __c);
17658 __extension__ extern __inline int64x2_t
17659 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17660 vqdmlal_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
17662 return __builtin_aarch64_sqdmlalv2si (__a, __b, __c);
17665 __extension__ extern __inline int64x2_t
17666 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17667 vqdmlal_high_s32 (int64x2_t __a, int32x4_t __b, int32x4_t __c)
17669 return __builtin_aarch64_sqdmlal2v4si (__a, __b, __c);
17672 __extension__ extern __inline int64x2_t
17673 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17674 vqdmlal_high_lane_s32 (int64x2_t __a, int32x4_t __b, int32x2_t __c,
17675 int const __d)
17677 return __builtin_aarch64_sqdmlal2_lanev4si (__a, __b, __c, __d);
17680 __extension__ extern __inline int64x2_t
17681 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17682 vqdmlal_high_laneq_s32 (int64x2_t __a, int32x4_t __b, int32x4_t __c,
17683 int const __d)
17685 return __builtin_aarch64_sqdmlal2_laneqv4si (__a, __b, __c, __d);
17688 __extension__ extern __inline int64x2_t
17689 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17690 vqdmlal_high_n_s32 (int64x2_t __a, int32x4_t __b, int32_t __c)
17692 return __builtin_aarch64_sqdmlal2_nv4si (__a, __b, __c);
17695 __extension__ extern __inline int64x2_t
17696 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17697 vqdmlal_lane_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c, int const __d)
17699 return __builtin_aarch64_sqdmlal_lanev2si (__a, __b, __c, __d);
17702 __extension__ extern __inline int64x2_t
17703 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17704 vqdmlal_laneq_s32 (int64x2_t __a, int32x2_t __b, int32x4_t __c, int const __d)
17706 return __builtin_aarch64_sqdmlal_laneqv2si (__a, __b, __c, __d);
17709 __extension__ extern __inline int64x2_t
17710 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17711 vqdmlal_n_s32 (int64x2_t __a, int32x2_t __b, int32_t __c)
17713 return __builtin_aarch64_sqdmlal_nv2si (__a, __b, __c);
17716 __extension__ extern __inline int32_t
17717 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17718 vqdmlalh_s16 (int32_t __a, int16_t __b, int16_t __c)
17720 return __builtin_aarch64_sqdmlalhi (__a, __b, __c);
17723 __extension__ extern __inline int32_t
17724 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17725 vqdmlalh_lane_s16 (int32_t __a, int16_t __b, int16x4_t __c, const int __d)
17727 return __builtin_aarch64_sqdmlal_lanehi (__a, __b, __c, __d);
17730 __extension__ extern __inline int32_t
17731 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17732 vqdmlalh_laneq_s16 (int32_t __a, int16_t __b, int16x8_t __c, const int __d)
17734 return __builtin_aarch64_sqdmlal_laneqhi (__a, __b, __c, __d);
17737 __extension__ extern __inline int64_t
17738 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17739 vqdmlals_s32 (int64_t __a, int32_t __b, int32_t __c)
17741 return __builtin_aarch64_sqdmlalsi (__a, __b, __c);
17744 __extension__ extern __inline int64_t
17745 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17746 vqdmlals_lane_s32 (int64_t __a, int32_t __b, int32x2_t __c, const int __d)
17748 return __builtin_aarch64_sqdmlal_lanesi (__a, __b, __c, __d);
17751 __extension__ extern __inline int64_t
17752 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17753 vqdmlals_laneq_s32 (int64_t __a, int32_t __b, int32x4_t __c, const int __d)
17755 return __builtin_aarch64_sqdmlal_laneqsi (__a, __b, __c, __d);
17758 /* vqdmlsl */
17760 __extension__ extern __inline int32x4_t
17761 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17762 vqdmlsl_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
17764 return __builtin_aarch64_sqdmlslv4hi (__a, __b, __c);
17767 __extension__ extern __inline int32x4_t
17768 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17769 vqdmlsl_high_s16 (int32x4_t __a, int16x8_t __b, int16x8_t __c)
17771 return __builtin_aarch64_sqdmlsl2v8hi (__a, __b, __c);
17774 __extension__ extern __inline int32x4_t
17775 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17776 vqdmlsl_high_lane_s16 (int32x4_t __a, int16x8_t __b, int16x4_t __c,
17777 int const __d)
17779 return __builtin_aarch64_sqdmlsl2_lanev8hi (__a, __b, __c, __d);
17782 __extension__ extern __inline int32x4_t
17783 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17784 vqdmlsl_high_laneq_s16 (int32x4_t __a, int16x8_t __b, int16x8_t __c,
17785 int const __d)
17787 return __builtin_aarch64_sqdmlsl2_laneqv8hi (__a, __b, __c, __d);
17790 __extension__ extern __inline int32x4_t
17791 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17792 vqdmlsl_high_n_s16 (int32x4_t __a, int16x8_t __b, int16_t __c)
17794 return __builtin_aarch64_sqdmlsl2_nv8hi (__a, __b, __c);
17797 __extension__ extern __inline int32x4_t
17798 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17799 vqdmlsl_lane_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c, int const __d)
17801 return __builtin_aarch64_sqdmlsl_lanev4hi (__a, __b, __c, __d);
17804 __extension__ extern __inline int32x4_t
17805 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17806 vqdmlsl_laneq_s16 (int32x4_t __a, int16x4_t __b, int16x8_t __c, int const __d)
17808 return __builtin_aarch64_sqdmlsl_laneqv4hi (__a, __b, __c, __d);
17811 __extension__ extern __inline int32x4_t
17812 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17813 vqdmlsl_n_s16 (int32x4_t __a, int16x4_t __b, int16_t __c)
17815 return __builtin_aarch64_sqdmlsl_nv4hi (__a, __b, __c);
17818 __extension__ extern __inline int64x2_t
17819 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17820 vqdmlsl_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
17822 return __builtin_aarch64_sqdmlslv2si (__a, __b, __c);
17825 __extension__ extern __inline int64x2_t
17826 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17827 vqdmlsl_high_s32 (int64x2_t __a, int32x4_t __b, int32x4_t __c)
17829 return __builtin_aarch64_sqdmlsl2v4si (__a, __b, __c);
17832 __extension__ extern __inline int64x2_t
17833 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17834 vqdmlsl_high_lane_s32 (int64x2_t __a, int32x4_t __b, int32x2_t __c,
17835 int const __d)
17837 return __builtin_aarch64_sqdmlsl2_lanev4si (__a, __b, __c, __d);
17840 __extension__ extern __inline int64x2_t
17841 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17842 vqdmlsl_high_laneq_s32 (int64x2_t __a, int32x4_t __b, int32x4_t __c,
17843 int const __d)
17845 return __builtin_aarch64_sqdmlsl2_laneqv4si (__a, __b, __c, __d);
17848 __extension__ extern __inline int64x2_t
17849 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17850 vqdmlsl_high_n_s32 (int64x2_t __a, int32x4_t __b, int32_t __c)
17852 return __builtin_aarch64_sqdmlsl2_nv4si (__a, __b, __c);
17855 __extension__ extern __inline int64x2_t
17856 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17857 vqdmlsl_lane_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c, int const __d)
17859 return __builtin_aarch64_sqdmlsl_lanev2si (__a, __b, __c, __d);
17862 __extension__ extern __inline int64x2_t
17863 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17864 vqdmlsl_laneq_s32 (int64x2_t __a, int32x2_t __b, int32x4_t __c, int const __d)
17866 return __builtin_aarch64_sqdmlsl_laneqv2si (__a, __b, __c, __d);
17869 __extension__ extern __inline int64x2_t
17870 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17871 vqdmlsl_n_s32 (int64x2_t __a, int32x2_t __b, int32_t __c)
17873 return __builtin_aarch64_sqdmlsl_nv2si (__a, __b, __c);
17876 __extension__ extern __inline int32_t
17877 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17878 vqdmlslh_s16 (int32_t __a, int16_t __b, int16_t __c)
17880 return __builtin_aarch64_sqdmlslhi (__a, __b, __c);
17883 __extension__ extern __inline int32_t
17884 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17885 vqdmlslh_lane_s16 (int32_t __a, int16_t __b, int16x4_t __c, const int __d)
17887 return __builtin_aarch64_sqdmlsl_lanehi (__a, __b, __c, __d);
17890 __extension__ extern __inline int32_t
17891 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17892 vqdmlslh_laneq_s16 (int32_t __a, int16_t __b, int16x8_t __c, const int __d)
17894 return __builtin_aarch64_sqdmlsl_laneqhi (__a, __b, __c, __d);
17897 __extension__ extern __inline int64_t
17898 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17899 vqdmlsls_s32 (int64_t __a, int32_t __b, int32_t __c)
17901 return __builtin_aarch64_sqdmlslsi (__a, __b, __c);
17904 __extension__ extern __inline int64_t
17905 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17906 vqdmlsls_lane_s32 (int64_t __a, int32_t __b, int32x2_t __c, const int __d)
17908 return __builtin_aarch64_sqdmlsl_lanesi (__a, __b, __c, __d);
17911 __extension__ extern __inline int64_t
17912 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17913 vqdmlsls_laneq_s32 (int64_t __a, int32_t __b, int32x4_t __c, const int __d)
17915 return __builtin_aarch64_sqdmlsl_laneqsi (__a, __b, __c, __d);
17918 /* vqdmulh */
17920 __extension__ extern __inline int16x4_t
17921 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17922 vqdmulh_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c)
17924 return __builtin_aarch64_sqdmulh_lanev4hi (__a, __b, __c);
17927 __extension__ extern __inline int32x2_t
17928 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17929 vqdmulh_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c)
17931 return __builtin_aarch64_sqdmulh_lanev2si (__a, __b, __c);
17934 __extension__ extern __inline int16x8_t
17935 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17936 vqdmulhq_lane_s16 (int16x8_t __a, int16x4_t __b, const int __c)
17938 return __builtin_aarch64_sqdmulh_lanev8hi (__a, __b, __c);
17941 __extension__ extern __inline int32x4_t
17942 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17943 vqdmulhq_lane_s32 (int32x4_t __a, int32x2_t __b, const int __c)
17945 return __builtin_aarch64_sqdmulh_lanev4si (__a, __b, __c);
17948 __extension__ extern __inline int16_t
17949 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17950 vqdmulhh_s16 (int16_t __a, int16_t __b)
17952 return (int16_t) __builtin_aarch64_sqdmulhhi (__a, __b);
17955 __extension__ extern __inline int16_t
17956 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17957 vqdmulhh_lane_s16 (int16_t __a, int16x4_t __b, const int __c)
17959 return __builtin_aarch64_sqdmulh_lanehi (__a, __b, __c);
17962 __extension__ extern __inline int16_t
17963 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17964 vqdmulhh_laneq_s16 (int16_t __a, int16x8_t __b, const int __c)
17966 return __builtin_aarch64_sqdmulh_laneqhi (__a, __b, __c);
17969 __extension__ extern __inline int32_t
17970 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17971 vqdmulhs_s32 (int32_t __a, int32_t __b)
17973 return (int32_t) __builtin_aarch64_sqdmulhsi (__a, __b);
17976 __extension__ extern __inline int32_t
17977 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17978 vqdmulhs_lane_s32 (int32_t __a, int32x2_t __b, const int __c)
17980 return __builtin_aarch64_sqdmulh_lanesi (__a, __b, __c);
17983 __extension__ extern __inline int32_t
17984 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17985 vqdmulhs_laneq_s32 (int32_t __a, int32x4_t __b, const int __c)
17987 return __builtin_aarch64_sqdmulh_laneqsi (__a, __b, __c);
17990 /* vqdmull */
17992 __extension__ extern __inline int32x4_t
17993 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17994 vqdmull_s16 (int16x4_t __a, int16x4_t __b)
17996 return __builtin_aarch64_sqdmullv4hi (__a, __b);
17999 __extension__ extern __inline int32x4_t
18000 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18001 vqdmull_high_s16 (int16x8_t __a, int16x8_t __b)
18003 return __builtin_aarch64_sqdmull2v8hi (__a, __b);
18006 __extension__ extern __inline int32x4_t
18007 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18008 vqdmull_high_lane_s16 (int16x8_t __a, int16x4_t __b, int const __c)
18010 return __builtin_aarch64_sqdmull2_lanev8hi (__a, __b,__c);
18013 __extension__ extern __inline int32x4_t
18014 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18015 vqdmull_high_laneq_s16 (int16x8_t __a, int16x8_t __b, int const __c)
18017 return __builtin_aarch64_sqdmull2_laneqv8hi (__a, __b,__c);
18020 __extension__ extern __inline int32x4_t
18021 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18022 vqdmull_high_n_s16 (int16x8_t __a, int16_t __b)
18024 return __builtin_aarch64_sqdmull2_nv8hi (__a, __b);
18027 __extension__ extern __inline int32x4_t
18028 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18029 vqdmull_lane_s16 (int16x4_t __a, int16x4_t __b, int const __c)
18031 return __builtin_aarch64_sqdmull_lanev4hi (__a, __b, __c);
18034 __extension__ extern __inline int32x4_t
18035 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18036 vqdmull_laneq_s16 (int16x4_t __a, int16x8_t __b, int const __c)
18038 return __builtin_aarch64_sqdmull_laneqv4hi (__a, __b, __c);
18041 __extension__ extern __inline int32x4_t
18042 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18043 vqdmull_n_s16 (int16x4_t __a, int16_t __b)
18045 return __builtin_aarch64_sqdmull_nv4hi (__a, __b);
18048 __extension__ extern __inline int64x2_t
18049 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18050 vqdmull_s32 (int32x2_t __a, int32x2_t __b)
18052 return __builtin_aarch64_sqdmullv2si (__a, __b);
18055 __extension__ extern __inline int64x2_t
18056 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18057 vqdmull_high_s32 (int32x4_t __a, int32x4_t __b)
18059 return __builtin_aarch64_sqdmull2v4si (__a, __b);
18062 __extension__ extern __inline int64x2_t
18063 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18064 vqdmull_high_lane_s32 (int32x4_t __a, int32x2_t __b, int const __c)
18066 return __builtin_aarch64_sqdmull2_lanev4si (__a, __b, __c);
18069 __extension__ extern __inline int64x2_t
18070 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18071 vqdmull_high_laneq_s32 (int32x4_t __a, int32x4_t __b, int const __c)
18073 return __builtin_aarch64_sqdmull2_laneqv4si (__a, __b, __c);
18076 __extension__ extern __inline int64x2_t
18077 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18078 vqdmull_high_n_s32 (int32x4_t __a, int32_t __b)
18080 return __builtin_aarch64_sqdmull2_nv4si (__a, __b);
18083 __extension__ extern __inline int64x2_t
18084 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18085 vqdmull_lane_s32 (int32x2_t __a, int32x2_t __b, int const __c)
18087 return __builtin_aarch64_sqdmull_lanev2si (__a, __b, __c);
18090 __extension__ extern __inline int64x2_t
18091 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18092 vqdmull_laneq_s32 (int32x2_t __a, int32x4_t __b, int const __c)
18094 return __builtin_aarch64_sqdmull_laneqv2si (__a, __b, __c);
18097 __extension__ extern __inline int64x2_t
18098 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18099 vqdmull_n_s32 (int32x2_t __a, int32_t __b)
18101 return __builtin_aarch64_sqdmull_nv2si (__a, __b);
18104 __extension__ extern __inline int32_t
18105 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18106 vqdmullh_s16 (int16_t __a, int16_t __b)
18108 return (int32_t) __builtin_aarch64_sqdmullhi (__a, __b);
18111 __extension__ extern __inline int32_t
18112 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18113 vqdmullh_lane_s16 (int16_t __a, int16x4_t __b, const int __c)
18115 return __builtin_aarch64_sqdmull_lanehi (__a, __b, __c);
18118 __extension__ extern __inline int32_t
18119 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18120 vqdmullh_laneq_s16 (int16_t __a, int16x8_t __b, const int __c)
18122 return __builtin_aarch64_sqdmull_laneqhi (__a, __b, __c);
18125 __extension__ extern __inline int64_t
18126 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18127 vqdmulls_s32 (int32_t __a, int32_t __b)
18129 return __builtin_aarch64_sqdmullsi (__a, __b);
18132 __extension__ extern __inline int64_t
18133 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18134 vqdmulls_lane_s32 (int32_t __a, int32x2_t __b, const int __c)
18136 return __builtin_aarch64_sqdmull_lanesi (__a, __b, __c);
18139 __extension__ extern __inline int64_t
18140 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18141 vqdmulls_laneq_s32 (int32_t __a, int32x4_t __b, const int __c)
18143 return __builtin_aarch64_sqdmull_laneqsi (__a, __b, __c);
18146 /* vqmovn */
18148 __extension__ extern __inline int8x8_t
18149 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18150 vqmovn_s16 (int16x8_t __a)
18152 return (int8x8_t) __builtin_aarch64_sqmovnv8hi (__a);
18155 __extension__ extern __inline int16x4_t
18156 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18157 vqmovn_s32 (int32x4_t __a)
18159 return (int16x4_t) __builtin_aarch64_sqmovnv4si (__a);
18162 __extension__ extern __inline int32x2_t
18163 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18164 vqmovn_s64 (int64x2_t __a)
18166 return (int32x2_t) __builtin_aarch64_sqmovnv2di (__a);
18169 __extension__ extern __inline uint8x8_t
18170 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18171 vqmovn_u16 (uint16x8_t __a)
18173 return (uint8x8_t) __builtin_aarch64_uqmovnv8hi ((int16x8_t) __a);
18176 __extension__ extern __inline uint16x4_t
18177 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18178 vqmovn_u32 (uint32x4_t __a)
18180 return (uint16x4_t) __builtin_aarch64_uqmovnv4si ((int32x4_t) __a);
18183 __extension__ extern __inline uint32x2_t
18184 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18185 vqmovn_u64 (uint64x2_t __a)
18187 return (uint32x2_t) __builtin_aarch64_uqmovnv2di ((int64x2_t) __a);
18190 __extension__ extern __inline int8_t
18191 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18192 vqmovnh_s16 (int16_t __a)
18194 return (int8_t) __builtin_aarch64_sqmovnhi (__a);
18197 __extension__ extern __inline int16_t
18198 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18199 vqmovns_s32 (int32_t __a)
18201 return (int16_t) __builtin_aarch64_sqmovnsi (__a);
18204 __extension__ extern __inline int32_t
18205 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18206 vqmovnd_s64 (int64_t __a)
18208 return (int32_t) __builtin_aarch64_sqmovndi (__a);
18211 __extension__ extern __inline uint8_t
18212 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18213 vqmovnh_u16 (uint16_t __a)
18215 return (uint8_t) __builtin_aarch64_uqmovnhi (__a);
18218 __extension__ extern __inline uint16_t
18219 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18220 vqmovns_u32 (uint32_t __a)
18222 return (uint16_t) __builtin_aarch64_uqmovnsi (__a);
18225 __extension__ extern __inline uint32_t
18226 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18227 vqmovnd_u64 (uint64_t __a)
18229 return (uint32_t) __builtin_aarch64_uqmovndi (__a);
18232 /* vqmovun */
18234 __extension__ extern __inline uint8x8_t
18235 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18236 vqmovun_s16 (int16x8_t __a)
18238 return __builtin_aarch64_sqmovunv8hi_us (__a);
18241 __extension__ extern __inline uint16x4_t
18242 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18243 vqmovun_s32 (int32x4_t __a)
18245 return __builtin_aarch64_sqmovunv4si_us (__a);
18248 __extension__ extern __inline uint32x2_t
18249 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18250 vqmovun_s64 (int64x2_t __a)
18252 return __builtin_aarch64_sqmovunv2di_us (__a);
18255 __extension__ extern __inline uint8_t
18256 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18257 vqmovunh_s16 (int16_t __a)
18259 return __builtin_aarch64_sqmovunhi_us (__a);
18262 __extension__ extern __inline uint16_t
18263 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18264 vqmovuns_s32 (int32_t __a)
18266 return __builtin_aarch64_sqmovunsi_us (__a);
18269 __extension__ extern __inline uint32_t
18270 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18271 vqmovund_s64 (int64_t __a)
18273 return __builtin_aarch64_sqmovundi_us (__a);
18276 /* vqneg */
18278 __extension__ extern __inline int64x2_t
18279 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18280 vqnegq_s64 (int64x2_t __a)
18282 return (int64x2_t) __builtin_aarch64_sqnegv2di (__a);
18285 __extension__ extern __inline int8_t
18286 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18287 vqnegb_s8 (int8_t __a)
18289 return (int8_t) __builtin_aarch64_sqnegqi (__a);
18292 __extension__ extern __inline int16_t
18293 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18294 vqnegh_s16 (int16_t __a)
18296 return (int16_t) __builtin_aarch64_sqneghi (__a);
18299 __extension__ extern __inline int32_t
18300 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18301 vqnegs_s32 (int32_t __a)
18303 return (int32_t) __builtin_aarch64_sqnegsi (__a);
18306 __extension__ extern __inline int64_t
18307 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18308 vqnegd_s64 (int64_t __a)
18310 return __builtin_aarch64_sqnegdi (__a);
18313 /* vqrdmulh */
18315 __extension__ extern __inline int16x4_t
18316 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18317 vqrdmulh_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c)
18319 return __builtin_aarch64_sqrdmulh_lanev4hi (__a, __b, __c);
18322 __extension__ extern __inline int32x2_t
18323 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18324 vqrdmulh_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c)
18326 return __builtin_aarch64_sqrdmulh_lanev2si (__a, __b, __c);
18329 __extension__ extern __inline int16x8_t
18330 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18331 vqrdmulhq_lane_s16 (int16x8_t __a, int16x4_t __b, const int __c)
18333 return __builtin_aarch64_sqrdmulh_lanev8hi (__a, __b, __c);
18336 __extension__ extern __inline int32x4_t
18337 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18338 vqrdmulhq_lane_s32 (int32x4_t __a, int32x2_t __b, const int __c)
18340 return __builtin_aarch64_sqrdmulh_lanev4si (__a, __b, __c);
18343 __extension__ extern __inline int16_t
18344 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18345 vqrdmulhh_s16 (int16_t __a, int16_t __b)
18347 return (int16_t) __builtin_aarch64_sqrdmulhhi (__a, __b);
18350 __extension__ extern __inline int16_t
18351 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18352 vqrdmulhh_lane_s16 (int16_t __a, int16x4_t __b, const int __c)
18354 return __builtin_aarch64_sqrdmulh_lanehi (__a, __b, __c);
18357 __extension__ extern __inline int16_t
18358 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18359 vqrdmulhh_laneq_s16 (int16_t __a, int16x8_t __b, const int __c)
18361 return __builtin_aarch64_sqrdmulh_laneqhi (__a, __b, __c);
18364 __extension__ extern __inline int32_t
18365 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18366 vqrdmulhs_s32 (int32_t __a, int32_t __b)
18368 return (int32_t) __builtin_aarch64_sqrdmulhsi (__a, __b);
18371 __extension__ extern __inline int32_t
18372 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18373 vqrdmulhs_lane_s32 (int32_t __a, int32x2_t __b, const int __c)
18375 return __builtin_aarch64_sqrdmulh_lanesi (__a, __b, __c);
18378 __extension__ extern __inline int32_t
18379 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18380 vqrdmulhs_laneq_s32 (int32_t __a, int32x4_t __b, const int __c)
18382 return __builtin_aarch64_sqrdmulh_laneqsi (__a, __b, __c);
18385 /* vqrshl */
18387 __extension__ extern __inline int8x8_t
18388 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18389 vqrshl_s8 (int8x8_t __a, int8x8_t __b)
18391 return __builtin_aarch64_sqrshlv8qi (__a, __b);
18394 __extension__ extern __inline int16x4_t
18395 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18396 vqrshl_s16 (int16x4_t __a, int16x4_t __b)
18398 return __builtin_aarch64_sqrshlv4hi (__a, __b);
18401 __extension__ extern __inline int32x2_t
18402 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18403 vqrshl_s32 (int32x2_t __a, int32x2_t __b)
18405 return __builtin_aarch64_sqrshlv2si (__a, __b);
18408 __extension__ extern __inline int64x1_t
18409 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18410 vqrshl_s64 (int64x1_t __a, int64x1_t __b)
18412 return (int64x1_t) {__builtin_aarch64_sqrshldi (__a[0], __b[0])};
18415 __extension__ extern __inline uint8x8_t
18416 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18417 vqrshl_u8 (uint8x8_t __a, int8x8_t __b)
18419 return __builtin_aarch64_uqrshlv8qi_uus ( __a, __b);
18422 __extension__ extern __inline uint16x4_t
18423 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18424 vqrshl_u16 (uint16x4_t __a, int16x4_t __b)
18426 return __builtin_aarch64_uqrshlv4hi_uus ( __a, __b);
18429 __extension__ extern __inline uint32x2_t
18430 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18431 vqrshl_u32 (uint32x2_t __a, int32x2_t __b)
18433 return __builtin_aarch64_uqrshlv2si_uus ( __a, __b);
18436 __extension__ extern __inline uint64x1_t
18437 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18438 vqrshl_u64 (uint64x1_t __a, int64x1_t __b)
18440 return (uint64x1_t) {__builtin_aarch64_uqrshldi_uus (__a[0], __b[0])};
18443 __extension__ extern __inline int8x16_t
18444 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18445 vqrshlq_s8 (int8x16_t __a, int8x16_t __b)
18447 return __builtin_aarch64_sqrshlv16qi (__a, __b);
18450 __extension__ extern __inline int16x8_t
18451 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18452 vqrshlq_s16 (int16x8_t __a, int16x8_t __b)
18454 return __builtin_aarch64_sqrshlv8hi (__a, __b);
18457 __extension__ extern __inline int32x4_t
18458 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18459 vqrshlq_s32 (int32x4_t __a, int32x4_t __b)
18461 return __builtin_aarch64_sqrshlv4si (__a, __b);
18464 __extension__ extern __inline int64x2_t
18465 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18466 vqrshlq_s64 (int64x2_t __a, int64x2_t __b)
18468 return __builtin_aarch64_sqrshlv2di (__a, __b);
18471 __extension__ extern __inline uint8x16_t
18472 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18473 vqrshlq_u8 (uint8x16_t __a, int8x16_t __b)
18475 return __builtin_aarch64_uqrshlv16qi_uus ( __a, __b);
18478 __extension__ extern __inline uint16x8_t
18479 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18480 vqrshlq_u16 (uint16x8_t __a, int16x8_t __b)
18482 return __builtin_aarch64_uqrshlv8hi_uus ( __a, __b);
18485 __extension__ extern __inline uint32x4_t
18486 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18487 vqrshlq_u32 (uint32x4_t __a, int32x4_t __b)
18489 return __builtin_aarch64_uqrshlv4si_uus ( __a, __b);
18492 __extension__ extern __inline uint64x2_t
18493 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18494 vqrshlq_u64 (uint64x2_t __a, int64x2_t __b)
18496 return __builtin_aarch64_uqrshlv2di_uus ( __a, __b);
18499 __extension__ extern __inline int8_t
18500 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18501 vqrshlb_s8 (int8_t __a, int8_t __b)
18503 return __builtin_aarch64_sqrshlqi (__a, __b);
18506 __extension__ extern __inline int16_t
18507 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18508 vqrshlh_s16 (int16_t __a, int16_t __b)
18510 return __builtin_aarch64_sqrshlhi (__a, __b);
18513 __extension__ extern __inline int32_t
18514 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18515 vqrshls_s32 (int32_t __a, int32_t __b)
18517 return __builtin_aarch64_sqrshlsi (__a, __b);
18520 __extension__ extern __inline int64_t
18521 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18522 vqrshld_s64 (int64_t __a, int64_t __b)
18524 return __builtin_aarch64_sqrshldi (__a, __b);
18527 __extension__ extern __inline uint8_t
18528 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18529 vqrshlb_u8 (uint8_t __a, int8_t __b)
18531 return __builtin_aarch64_uqrshlqi_uus (__a, __b);
18534 __extension__ extern __inline uint16_t
18535 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18536 vqrshlh_u16 (uint16_t __a, int16_t __b)
18538 return __builtin_aarch64_uqrshlhi_uus (__a, __b);
18541 __extension__ extern __inline uint32_t
18542 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18543 vqrshls_u32 (uint32_t __a, int32_t __b)
18545 return __builtin_aarch64_uqrshlsi_uus (__a, __b);
18548 __extension__ extern __inline uint64_t
18549 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18550 vqrshld_u64 (uint64_t __a, int64_t __b)
18552 return __builtin_aarch64_uqrshldi_uus (__a, __b);
18555 /* vqrshrn */
18557 __extension__ extern __inline int8x8_t
18558 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18559 vqrshrn_n_s16 (int16x8_t __a, const int __b)
18561 return (int8x8_t) __builtin_aarch64_sqrshrn_nv8hi (__a, __b);
18564 __extension__ extern __inline int16x4_t
18565 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18566 vqrshrn_n_s32 (int32x4_t __a, const int __b)
18568 return (int16x4_t) __builtin_aarch64_sqrshrn_nv4si (__a, __b);
18571 __extension__ extern __inline int32x2_t
18572 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18573 vqrshrn_n_s64 (int64x2_t __a, const int __b)
18575 return (int32x2_t) __builtin_aarch64_sqrshrn_nv2di (__a, __b);
18578 __extension__ extern __inline uint8x8_t
18579 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18580 vqrshrn_n_u16 (uint16x8_t __a, const int __b)
18582 return __builtin_aarch64_uqrshrn_nv8hi_uus ( __a, __b);
18585 __extension__ extern __inline uint16x4_t
18586 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18587 vqrshrn_n_u32 (uint32x4_t __a, const int __b)
18589 return __builtin_aarch64_uqrshrn_nv4si_uus ( __a, __b);
18592 __extension__ extern __inline uint32x2_t
18593 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18594 vqrshrn_n_u64 (uint64x2_t __a, const int __b)
18596 return __builtin_aarch64_uqrshrn_nv2di_uus ( __a, __b);
18599 __extension__ extern __inline int8_t
18600 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18601 vqrshrnh_n_s16 (int16_t __a, const int __b)
18603 return (int8_t) __builtin_aarch64_sqrshrn_nhi (__a, __b);
18606 __extension__ extern __inline int16_t
18607 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18608 vqrshrns_n_s32 (int32_t __a, const int __b)
18610 return (int16_t) __builtin_aarch64_sqrshrn_nsi (__a, __b);
18613 __extension__ extern __inline int32_t
18614 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18615 vqrshrnd_n_s64 (int64_t __a, const int __b)
18617 return (int32_t) __builtin_aarch64_sqrshrn_ndi (__a, __b);
18620 __extension__ extern __inline uint8_t
18621 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18622 vqrshrnh_n_u16 (uint16_t __a, const int __b)
18624 return __builtin_aarch64_uqrshrn_nhi_uus (__a, __b);
18627 __extension__ extern __inline uint16_t
18628 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18629 vqrshrns_n_u32 (uint32_t __a, const int __b)
18631 return __builtin_aarch64_uqrshrn_nsi_uus (__a, __b);
18634 __extension__ extern __inline uint32_t
18635 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18636 vqrshrnd_n_u64 (uint64_t __a, const int __b)
18638 return __builtin_aarch64_uqrshrn_ndi_uus (__a, __b);
18641 /* vqrshrun */
18643 __extension__ extern __inline uint8x8_t
18644 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18645 vqrshrun_n_s16 (int16x8_t __a, const int __b)
18647 return (uint8x8_t) __builtin_aarch64_sqrshrun_nv8hi (__a, __b);
18650 __extension__ extern __inline uint16x4_t
18651 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18652 vqrshrun_n_s32 (int32x4_t __a, const int __b)
18654 return (uint16x4_t) __builtin_aarch64_sqrshrun_nv4si (__a, __b);
18657 __extension__ extern __inline uint32x2_t
18658 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18659 vqrshrun_n_s64 (int64x2_t __a, const int __b)
18661 return (uint32x2_t) __builtin_aarch64_sqrshrun_nv2di (__a, __b);
18664 __extension__ extern __inline int8_t
18665 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18666 vqrshrunh_n_s16 (int16_t __a, const int __b)
18668 return (int8_t) __builtin_aarch64_sqrshrun_nhi (__a, __b);
18671 __extension__ extern __inline int16_t
18672 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18673 vqrshruns_n_s32 (int32_t __a, const int __b)
18675 return (int16_t) __builtin_aarch64_sqrshrun_nsi (__a, __b);
18678 __extension__ extern __inline int32_t
18679 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18680 vqrshrund_n_s64 (int64_t __a, const int __b)
18682 return (int32_t) __builtin_aarch64_sqrshrun_ndi (__a, __b);
18685 /* vqshl */
18687 __extension__ extern __inline int8x8_t
18688 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18689 vqshl_s8 (int8x8_t __a, int8x8_t __b)
18691 return __builtin_aarch64_sqshlv8qi (__a, __b);
18694 __extension__ extern __inline int16x4_t
18695 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18696 vqshl_s16 (int16x4_t __a, int16x4_t __b)
18698 return __builtin_aarch64_sqshlv4hi (__a, __b);
18701 __extension__ extern __inline int32x2_t
18702 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18703 vqshl_s32 (int32x2_t __a, int32x2_t __b)
18705 return __builtin_aarch64_sqshlv2si (__a, __b);
18708 __extension__ extern __inline int64x1_t
18709 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18710 vqshl_s64 (int64x1_t __a, int64x1_t __b)
18712 return (int64x1_t) {__builtin_aarch64_sqshldi (__a[0], __b[0])};
18715 __extension__ extern __inline uint8x8_t
18716 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18717 vqshl_u8 (uint8x8_t __a, int8x8_t __b)
18719 return __builtin_aarch64_uqshlv8qi_uus ( __a, __b);
18722 __extension__ extern __inline uint16x4_t
18723 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18724 vqshl_u16 (uint16x4_t __a, int16x4_t __b)
18726 return __builtin_aarch64_uqshlv4hi_uus ( __a, __b);
18729 __extension__ extern __inline uint32x2_t
18730 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18731 vqshl_u32 (uint32x2_t __a, int32x2_t __b)
18733 return __builtin_aarch64_uqshlv2si_uus ( __a, __b);
18736 __extension__ extern __inline uint64x1_t
18737 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18738 vqshl_u64 (uint64x1_t __a, int64x1_t __b)
18740 return (uint64x1_t) {__builtin_aarch64_uqshldi_uus (__a[0], __b[0])};
18743 __extension__ extern __inline int8x16_t
18744 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18745 vqshlq_s8 (int8x16_t __a, int8x16_t __b)
18747 return __builtin_aarch64_sqshlv16qi (__a, __b);
18750 __extension__ extern __inline int16x8_t
18751 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18752 vqshlq_s16 (int16x8_t __a, int16x8_t __b)
18754 return __builtin_aarch64_sqshlv8hi (__a, __b);
18757 __extension__ extern __inline int32x4_t
18758 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18759 vqshlq_s32 (int32x4_t __a, int32x4_t __b)
18761 return __builtin_aarch64_sqshlv4si (__a, __b);
18764 __extension__ extern __inline int64x2_t
18765 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18766 vqshlq_s64 (int64x2_t __a, int64x2_t __b)
18768 return __builtin_aarch64_sqshlv2di (__a, __b);
18771 __extension__ extern __inline uint8x16_t
18772 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18773 vqshlq_u8 (uint8x16_t __a, int8x16_t __b)
18775 return __builtin_aarch64_uqshlv16qi_uus ( __a, __b);
18778 __extension__ extern __inline uint16x8_t
18779 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18780 vqshlq_u16 (uint16x8_t __a, int16x8_t __b)
18782 return __builtin_aarch64_uqshlv8hi_uus ( __a, __b);
18785 __extension__ extern __inline uint32x4_t
18786 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18787 vqshlq_u32 (uint32x4_t __a, int32x4_t __b)
18789 return __builtin_aarch64_uqshlv4si_uus ( __a, __b);
18792 __extension__ extern __inline uint64x2_t
18793 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18794 vqshlq_u64 (uint64x2_t __a, int64x2_t __b)
18796 return __builtin_aarch64_uqshlv2di_uus ( __a, __b);
18799 __extension__ extern __inline int8_t
18800 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18801 vqshlb_s8 (int8_t __a, int8_t __b)
18803 return __builtin_aarch64_sqshlqi (__a, __b);
18806 __extension__ extern __inline int16_t
18807 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18808 vqshlh_s16 (int16_t __a, int16_t __b)
18810 return __builtin_aarch64_sqshlhi (__a, __b);
18813 __extension__ extern __inline int32_t
18814 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18815 vqshls_s32 (int32_t __a, int32_t __b)
18817 return __builtin_aarch64_sqshlsi (__a, __b);
18820 __extension__ extern __inline int64_t
18821 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18822 vqshld_s64 (int64_t __a, int64_t __b)
18824 return __builtin_aarch64_sqshldi (__a, __b);
18827 __extension__ extern __inline uint8_t
18828 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18829 vqshlb_u8 (uint8_t __a, int8_t __b)
18831 return __builtin_aarch64_uqshlqi_uus (__a, __b);
18834 __extension__ extern __inline uint16_t
18835 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18836 vqshlh_u16 (uint16_t __a, int16_t __b)
18838 return __builtin_aarch64_uqshlhi_uus (__a, __b);
18841 __extension__ extern __inline uint32_t
18842 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18843 vqshls_u32 (uint32_t __a, int32_t __b)
18845 return __builtin_aarch64_uqshlsi_uus (__a, __b);
18848 __extension__ extern __inline uint64_t
18849 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18850 vqshld_u64 (uint64_t __a, int64_t __b)
18852 return __builtin_aarch64_uqshldi_uus (__a, __b);
18855 __extension__ extern __inline int8x8_t
18856 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18857 vqshl_n_s8 (int8x8_t __a, const int __b)
18859 return (int8x8_t) __builtin_aarch64_sqshl_nv8qi (__a, __b);
18862 __extension__ extern __inline int16x4_t
18863 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18864 vqshl_n_s16 (int16x4_t __a, const int __b)
18866 return (int16x4_t) __builtin_aarch64_sqshl_nv4hi (__a, __b);
18869 __extension__ extern __inline int32x2_t
18870 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18871 vqshl_n_s32 (int32x2_t __a, const int __b)
18873 return (int32x2_t) __builtin_aarch64_sqshl_nv2si (__a, __b);
18876 __extension__ extern __inline int64x1_t
18877 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18878 vqshl_n_s64 (int64x1_t __a, const int __b)
18880 return (int64x1_t) {__builtin_aarch64_sqshl_ndi (__a[0], __b)};
18883 __extension__ extern __inline uint8x8_t
18884 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18885 vqshl_n_u8 (uint8x8_t __a, const int __b)
18887 return __builtin_aarch64_uqshl_nv8qi_uus (__a, __b);
18890 __extension__ extern __inline uint16x4_t
18891 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18892 vqshl_n_u16 (uint16x4_t __a, const int __b)
18894 return __builtin_aarch64_uqshl_nv4hi_uus (__a, __b);
18897 __extension__ extern __inline uint32x2_t
18898 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18899 vqshl_n_u32 (uint32x2_t __a, const int __b)
18901 return __builtin_aarch64_uqshl_nv2si_uus (__a, __b);
18904 __extension__ extern __inline uint64x1_t
18905 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18906 vqshl_n_u64 (uint64x1_t __a, const int __b)
18908 return (uint64x1_t) {__builtin_aarch64_uqshl_ndi_uus (__a[0], __b)};
18911 __extension__ extern __inline int8x16_t
18912 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18913 vqshlq_n_s8 (int8x16_t __a, const int __b)
18915 return (int8x16_t) __builtin_aarch64_sqshl_nv16qi (__a, __b);
18918 __extension__ extern __inline int16x8_t
18919 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18920 vqshlq_n_s16 (int16x8_t __a, const int __b)
18922 return (int16x8_t) __builtin_aarch64_sqshl_nv8hi (__a, __b);
18925 __extension__ extern __inline int32x4_t
18926 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18927 vqshlq_n_s32 (int32x4_t __a, const int __b)
18929 return (int32x4_t) __builtin_aarch64_sqshl_nv4si (__a, __b);
18932 __extension__ extern __inline int64x2_t
18933 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18934 vqshlq_n_s64 (int64x2_t __a, const int __b)
18936 return (int64x2_t) __builtin_aarch64_sqshl_nv2di (__a, __b);
18939 __extension__ extern __inline uint8x16_t
18940 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18941 vqshlq_n_u8 (uint8x16_t __a, const int __b)
18943 return __builtin_aarch64_uqshl_nv16qi_uus (__a, __b);
18946 __extension__ extern __inline uint16x8_t
18947 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18948 vqshlq_n_u16 (uint16x8_t __a, const int __b)
18950 return __builtin_aarch64_uqshl_nv8hi_uus (__a, __b);
18953 __extension__ extern __inline uint32x4_t
18954 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18955 vqshlq_n_u32 (uint32x4_t __a, const int __b)
18957 return __builtin_aarch64_uqshl_nv4si_uus (__a, __b);
18960 __extension__ extern __inline uint64x2_t
18961 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18962 vqshlq_n_u64 (uint64x2_t __a, const int __b)
18964 return __builtin_aarch64_uqshl_nv2di_uus (__a, __b);
18967 __extension__ extern __inline int8_t
18968 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18969 vqshlb_n_s8 (int8_t __a, const int __b)
18971 return (int8_t) __builtin_aarch64_sqshl_nqi (__a, __b);
18974 __extension__ extern __inline int16_t
18975 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18976 vqshlh_n_s16 (int16_t __a, const int __b)
18978 return (int16_t) __builtin_aarch64_sqshl_nhi (__a, __b);
18981 __extension__ extern __inline int32_t
18982 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18983 vqshls_n_s32 (int32_t __a, const int __b)
18985 return (int32_t) __builtin_aarch64_sqshl_nsi (__a, __b);
18988 __extension__ extern __inline int64_t
18989 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18990 vqshld_n_s64 (int64_t __a, const int __b)
18992 return __builtin_aarch64_sqshl_ndi (__a, __b);
18995 __extension__ extern __inline uint8_t
18996 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18997 vqshlb_n_u8 (uint8_t __a, const int __b)
18999 return __builtin_aarch64_uqshl_nqi_uus (__a, __b);
19002 __extension__ extern __inline uint16_t
19003 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19004 vqshlh_n_u16 (uint16_t __a, const int __b)
19006 return __builtin_aarch64_uqshl_nhi_uus (__a, __b);
19009 __extension__ extern __inline uint32_t
19010 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19011 vqshls_n_u32 (uint32_t __a, const int __b)
19013 return __builtin_aarch64_uqshl_nsi_uus (__a, __b);
19016 __extension__ extern __inline uint64_t
19017 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19018 vqshld_n_u64 (uint64_t __a, const int __b)
19020 return __builtin_aarch64_uqshl_ndi_uus (__a, __b);
19023 /* vqshlu */
19025 __extension__ extern __inline uint8x8_t
19026 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19027 vqshlu_n_s8 (int8x8_t __a, const int __b)
19029 return __builtin_aarch64_sqshlu_nv8qi_uss (__a, __b);
19032 __extension__ extern __inline uint16x4_t
19033 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19034 vqshlu_n_s16 (int16x4_t __a, const int __b)
19036 return __builtin_aarch64_sqshlu_nv4hi_uss (__a, __b);
19039 __extension__ extern __inline uint32x2_t
19040 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19041 vqshlu_n_s32 (int32x2_t __a, const int __b)
19043 return __builtin_aarch64_sqshlu_nv2si_uss (__a, __b);
19046 __extension__ extern __inline uint64x1_t
19047 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19048 vqshlu_n_s64 (int64x1_t __a, const int __b)
19050 return (uint64x1_t) {__builtin_aarch64_sqshlu_ndi_uss (__a[0], __b)};
19053 __extension__ extern __inline uint8x16_t
19054 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19055 vqshluq_n_s8 (int8x16_t __a, const int __b)
19057 return __builtin_aarch64_sqshlu_nv16qi_uss (__a, __b);
19060 __extension__ extern __inline uint16x8_t
19061 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19062 vqshluq_n_s16 (int16x8_t __a, const int __b)
19064 return __builtin_aarch64_sqshlu_nv8hi_uss (__a, __b);
19067 __extension__ extern __inline uint32x4_t
19068 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19069 vqshluq_n_s32 (int32x4_t __a, const int __b)
19071 return __builtin_aarch64_sqshlu_nv4si_uss (__a, __b);
19074 __extension__ extern __inline uint64x2_t
19075 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19076 vqshluq_n_s64 (int64x2_t __a, const int __b)
19078 return __builtin_aarch64_sqshlu_nv2di_uss (__a, __b);
19081 __extension__ extern __inline int8_t
19082 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19083 vqshlub_n_s8 (int8_t __a, const int __b)
19085 return (int8_t) __builtin_aarch64_sqshlu_nqi_uss (__a, __b);
19088 __extension__ extern __inline int16_t
19089 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19090 vqshluh_n_s16 (int16_t __a, const int __b)
19092 return (int16_t) __builtin_aarch64_sqshlu_nhi_uss (__a, __b);
19095 __extension__ extern __inline int32_t
19096 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19097 vqshlus_n_s32 (int32_t __a, const int __b)
19099 return (int32_t) __builtin_aarch64_sqshlu_nsi_uss (__a, __b);
19102 __extension__ extern __inline uint64_t
19103 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19104 vqshlud_n_s64 (int64_t __a, const int __b)
19106 return __builtin_aarch64_sqshlu_ndi_uss (__a, __b);
19109 /* vqshrn */
19111 __extension__ extern __inline int8x8_t
19112 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19113 vqshrn_n_s16 (int16x8_t __a, const int __b)
19115 return (int8x8_t) __builtin_aarch64_sqshrn_nv8hi (__a, __b);
19118 __extension__ extern __inline int16x4_t
19119 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19120 vqshrn_n_s32 (int32x4_t __a, const int __b)
19122 return (int16x4_t) __builtin_aarch64_sqshrn_nv4si (__a, __b);
19125 __extension__ extern __inline int32x2_t
19126 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19127 vqshrn_n_s64 (int64x2_t __a, const int __b)
19129 return (int32x2_t) __builtin_aarch64_sqshrn_nv2di (__a, __b);
19132 __extension__ extern __inline uint8x8_t
19133 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19134 vqshrn_n_u16 (uint16x8_t __a, const int __b)
19136 return __builtin_aarch64_uqshrn_nv8hi_uus ( __a, __b);
19139 __extension__ extern __inline uint16x4_t
19140 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19141 vqshrn_n_u32 (uint32x4_t __a, const int __b)
19143 return __builtin_aarch64_uqshrn_nv4si_uus ( __a, __b);
19146 __extension__ extern __inline uint32x2_t
19147 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19148 vqshrn_n_u64 (uint64x2_t __a, const int __b)
19150 return __builtin_aarch64_uqshrn_nv2di_uus ( __a, __b);
19153 __extension__ extern __inline int8_t
19154 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19155 vqshrnh_n_s16 (int16_t __a, const int __b)
19157 return (int8_t) __builtin_aarch64_sqshrn_nhi (__a, __b);
19160 __extension__ extern __inline int16_t
19161 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19162 vqshrns_n_s32 (int32_t __a, const int __b)
19164 return (int16_t) __builtin_aarch64_sqshrn_nsi (__a, __b);
19167 __extension__ extern __inline int32_t
19168 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19169 vqshrnd_n_s64 (int64_t __a, const int __b)
19171 return (int32_t) __builtin_aarch64_sqshrn_ndi (__a, __b);
19174 __extension__ extern __inline uint8_t
19175 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19176 vqshrnh_n_u16 (uint16_t __a, const int __b)
19178 return __builtin_aarch64_uqshrn_nhi_uus (__a, __b);
19181 __extension__ extern __inline uint16_t
19182 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19183 vqshrns_n_u32 (uint32_t __a, const int __b)
19185 return __builtin_aarch64_uqshrn_nsi_uus (__a, __b);
19188 __extension__ extern __inline uint32_t
19189 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19190 vqshrnd_n_u64 (uint64_t __a, const int __b)
19192 return __builtin_aarch64_uqshrn_ndi_uus (__a, __b);
19195 /* vqshrun */
19197 __extension__ extern __inline uint8x8_t
19198 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19199 vqshrun_n_s16 (int16x8_t __a, const int __b)
19201 return (uint8x8_t) __builtin_aarch64_sqshrun_nv8hi (__a, __b);
19204 __extension__ extern __inline uint16x4_t
19205 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19206 vqshrun_n_s32 (int32x4_t __a, const int __b)
19208 return (uint16x4_t) __builtin_aarch64_sqshrun_nv4si (__a, __b);
19211 __extension__ extern __inline uint32x2_t
19212 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19213 vqshrun_n_s64 (int64x2_t __a, const int __b)
19215 return (uint32x2_t) __builtin_aarch64_sqshrun_nv2di (__a, __b);
19218 __extension__ extern __inline int8_t
19219 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19220 vqshrunh_n_s16 (int16_t __a, const int __b)
19222 return (int8_t) __builtin_aarch64_sqshrun_nhi (__a, __b);
19225 __extension__ extern __inline int16_t
19226 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19227 vqshruns_n_s32 (int32_t __a, const int __b)
19229 return (int16_t) __builtin_aarch64_sqshrun_nsi (__a, __b);
19232 __extension__ extern __inline int32_t
19233 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19234 vqshrund_n_s64 (int64_t __a, const int __b)
19236 return (int32_t) __builtin_aarch64_sqshrun_ndi (__a, __b);
19239 /* vqsub */
19241 __extension__ extern __inline int8_t
19242 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19243 vqsubb_s8 (int8_t __a, int8_t __b)
19245 return (int8_t) __builtin_aarch64_sssubqi (__a, __b);
19248 __extension__ extern __inline int16_t
19249 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19250 vqsubh_s16 (int16_t __a, int16_t __b)
19252 return (int16_t) __builtin_aarch64_sssubhi (__a, __b);
19255 __extension__ extern __inline int32_t
19256 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19257 vqsubs_s32 (int32_t __a, int32_t __b)
19259 return (int32_t) __builtin_aarch64_sssubsi (__a, __b);
19262 __extension__ extern __inline int64_t
19263 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19264 vqsubd_s64 (int64_t __a, int64_t __b)
19266 return __builtin_aarch64_sssubdi (__a, __b);
19269 __extension__ extern __inline uint8_t
19270 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19271 vqsubb_u8 (uint8_t __a, uint8_t __b)
19273 return (uint8_t) __builtin_aarch64_ussubqi_uuu (__a, __b);
19276 __extension__ extern __inline uint16_t
19277 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19278 vqsubh_u16 (uint16_t __a, uint16_t __b)
19280 return (uint16_t) __builtin_aarch64_ussubhi_uuu (__a, __b);
19283 __extension__ extern __inline uint32_t
19284 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19285 vqsubs_u32 (uint32_t __a, uint32_t __b)
19287 return (uint32_t) __builtin_aarch64_ussubsi_uuu (__a, __b);
19290 __extension__ extern __inline uint64_t
19291 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19292 vqsubd_u64 (uint64_t __a, uint64_t __b)
19294 return __builtin_aarch64_ussubdi_uuu (__a, __b);
19297 /* vqtbl2 */
19299 __extension__ extern __inline int8x8_t
19300 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19301 vqtbl2_s8 (int8x16x2_t __tab, uint8x8_t __idx)
19303 return __builtin_aarch64_qtbl2v8qi_ssu (__tab, __idx);
19306 __extension__ extern __inline uint8x8_t
19307 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19308 vqtbl2_u8 (uint8x16x2_t __tab, uint8x8_t __idx)
19310 return __builtin_aarch64_qtbl2v8qi_uuu (__tab, __idx);
19313 __extension__ extern __inline poly8x8_t
19314 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19315 vqtbl2_p8 (poly8x16x2_t __tab, uint8x8_t __idx)
19317 return __builtin_aarch64_qtbl2v8qi_ppu (__tab, __idx);
19320 __extension__ extern __inline int8x16_t
19321 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19322 vqtbl2q_s8 (int8x16x2_t __tab, uint8x16_t __idx)
19324 return __builtin_aarch64_qtbl2v16qi_ssu (__tab, __idx);
19327 __extension__ extern __inline uint8x16_t
19328 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19329 vqtbl2q_u8 (uint8x16x2_t __tab, uint8x16_t __idx)
19331 return __builtin_aarch64_qtbl2v16qi_uuu (__tab, __idx);
19334 __extension__ extern __inline poly8x16_t
19335 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19336 vqtbl2q_p8 (poly8x16x2_t __tab, uint8x16_t __idx)
19338 return __builtin_aarch64_qtbl2v16qi_ppu (__tab, __idx);
19341 /* vqtbl3 */
19343 __extension__ extern __inline int8x8_t
19344 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19345 vqtbl3_s8 (int8x16x3_t __tab, uint8x8_t __idx)
19347 return __builtin_aarch64_qtbl3v8qi_ssu (__tab, __idx);
19350 __extension__ extern __inline uint8x8_t
19351 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19352 vqtbl3_u8 (uint8x16x3_t __tab, uint8x8_t __idx)
19354 return __builtin_aarch64_qtbl3v8qi_uuu (__tab, __idx);
19357 __extension__ extern __inline poly8x8_t
19358 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19359 vqtbl3_p8 (poly8x16x3_t __tab, uint8x8_t __idx)
19361 return __builtin_aarch64_qtbl3v8qi_ppu (__tab, __idx);
19364 __extension__ extern __inline int8x16_t
19365 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19366 vqtbl3q_s8 (int8x16x3_t __tab, uint8x16_t __idx)
19368 return __builtin_aarch64_qtbl3v16qi_ssu (__tab, __idx);
19371 __extension__ extern __inline uint8x16_t
19372 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19373 vqtbl3q_u8 (uint8x16x3_t __tab, uint8x16_t __idx)
19375 return __builtin_aarch64_qtbl3v16qi_uuu (__tab, __idx);
19378 __extension__ extern __inline poly8x16_t
19379 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19380 vqtbl3q_p8 (poly8x16x3_t __tab, uint8x16_t __idx)
19382 return __builtin_aarch64_qtbl3v16qi_ppu (__tab, __idx);
19385 /* vqtbl4 */
19387 __extension__ extern __inline int8x8_t
19388 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19389 vqtbl4_s8 (int8x16x4_t __tab, uint8x8_t __idx)
19391 return __builtin_aarch64_qtbl4v8qi_ssu (__tab, __idx);
19394 __extension__ extern __inline uint8x8_t
19395 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19396 vqtbl4_u8 (uint8x16x4_t __tab, uint8x8_t __idx)
19398 return __builtin_aarch64_qtbl4v8qi_uuu (__tab, __idx);
19401 __extension__ extern __inline poly8x8_t
19402 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19403 vqtbl4_p8 (poly8x16x4_t __tab, uint8x8_t __idx)
19405 return __builtin_aarch64_qtbl4v8qi_ppu (__tab, __idx);
19408 __extension__ extern __inline int8x16_t
19409 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19410 vqtbl4q_s8 (int8x16x4_t __tab, uint8x16_t __idx)
19412 return __builtin_aarch64_qtbl4v16qi_ssu (__tab, __idx);
19415 __extension__ extern __inline uint8x16_t
19416 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19417 vqtbl4q_u8 (uint8x16x4_t __tab, uint8x16_t __idx)
19419 return __builtin_aarch64_qtbl4v16qi_uuu (__tab, __idx);
19422 __extension__ extern __inline poly8x16_t
19423 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19424 vqtbl4q_p8 (poly8x16x4_t __tab, uint8x16_t __idx)
19426 return __builtin_aarch64_qtbl4v16qi_ppu (__tab, __idx);
19429 /* vqtbx2 */
19431 __extension__ extern __inline int8x8_t
19432 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19433 vqtbx2_s8 (int8x8_t __r, int8x16x2_t __tab, uint8x8_t __idx)
19435 return __builtin_aarch64_qtbx2v8qi_sssu (__r, __tab, __idx);
19438 __extension__ extern __inline uint8x8_t
19439 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19440 vqtbx2_u8 (uint8x8_t __r, uint8x16x2_t __tab, uint8x8_t __idx)
19442 return __builtin_aarch64_qtbx2v8qi_uuuu (__r, __tab, __idx);
19445 __extension__ extern __inline poly8x8_t
19446 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19447 vqtbx2_p8 (poly8x8_t __r, poly8x16x2_t __tab, uint8x8_t __idx)
19449 return __builtin_aarch64_qtbx2v8qi_pppu (__r, __tab, __idx);
19452 __extension__ extern __inline int8x16_t
19453 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19454 vqtbx2q_s8 (int8x16_t __r, int8x16x2_t __tab, uint8x16_t __idx)
19456 return __builtin_aarch64_qtbx2v16qi_sssu (__r, __tab, __idx);
19459 __extension__ extern __inline uint8x16_t
19460 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19461 vqtbx2q_u8 (uint8x16_t __r, uint8x16x2_t __tab, uint8x16_t __idx)
19463 return __builtin_aarch64_qtbx2v16qi_uuuu (__r, __tab, __idx);
19466 __extension__ extern __inline poly8x16_t
19467 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19468 vqtbx2q_p8 (poly8x16_t __r, poly8x16x2_t __tab, uint8x16_t __idx)
19470 return __builtin_aarch64_qtbx2v16qi_pppu (__r, __tab, __idx);
19473 /* vqtbx3 */
19475 __extension__ extern __inline int8x8_t
19476 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19477 vqtbx3_s8 (int8x8_t __r, int8x16x3_t __tab, uint8x8_t __idx)
19479 return __builtin_aarch64_qtbx3v8qi_sssu (__r, __tab, __idx);
19482 __extension__ extern __inline uint8x8_t
19483 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19484 vqtbx3_u8 (uint8x8_t __r, uint8x16x3_t __tab, uint8x8_t __idx)
19486 return __builtin_aarch64_qtbx3v8qi_uuuu (__r, __tab, __idx);
19489 __extension__ extern __inline poly8x8_t
19490 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19491 vqtbx3_p8 (poly8x8_t __r, poly8x16x3_t __tab, uint8x8_t __idx)
19493 return __builtin_aarch64_qtbx3v8qi_pppu (__r, __tab, __idx);
19496 __extension__ extern __inline int8x16_t
19497 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19498 vqtbx3q_s8 (int8x16_t __r, int8x16x3_t __tab, uint8x16_t __idx)
19500 return __builtin_aarch64_qtbx3v16qi_sssu (__r, __tab, __idx);
19503 __extension__ extern __inline uint8x16_t
19504 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19505 vqtbx3q_u8 (uint8x16_t __r, uint8x16x3_t __tab, uint8x16_t __idx)
19507 return __builtin_aarch64_qtbx3v16qi_uuuu (__r, __tab, __idx);
19510 __extension__ extern __inline poly8x16_t
19511 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19512 vqtbx3q_p8 (poly8x16_t __r, poly8x16x3_t __tab, uint8x16_t __idx)
19514 return __builtin_aarch64_qtbx3v16qi_pppu (__r, __tab, __idx);
19517 /* vqtbx4 */
19519 __extension__ extern __inline int8x8_t
19520 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19521 vqtbx4_s8 (int8x8_t __r, int8x16x4_t __tab, uint8x8_t __idx)
19523 return __builtin_aarch64_qtbx4v8qi_sssu (__r, __tab, __idx);
19526 __extension__ extern __inline uint8x8_t
19527 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19528 vqtbx4_u8 (uint8x8_t __r, uint8x16x4_t __tab, uint8x8_t __idx)
19530 return __builtin_aarch64_qtbx4v8qi_uuuu (__r, __tab, __idx);
19533 __extension__ extern __inline poly8x8_t
19534 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19535 vqtbx4_p8 (poly8x8_t __r, poly8x16x4_t __tab, uint8x8_t __idx)
19537 return __builtin_aarch64_qtbx4v8qi_pppu (__r, __tab, __idx);
19540 __extension__ extern __inline int8x16_t
19541 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19542 vqtbx4q_s8 (int8x16_t __r, int8x16x4_t __tab, uint8x16_t __idx)
19544 return __builtin_aarch64_qtbx4v16qi_sssu (__r, __tab, __idx);
19547 __extension__ extern __inline uint8x16_t
19548 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19549 vqtbx4q_u8 (uint8x16_t __r, uint8x16x4_t __tab, uint8x16_t __idx)
19551 return __builtin_aarch64_qtbx4v16qi_uuuu (__r, __tab, __idx);
19554 __extension__ extern __inline poly8x16_t
19555 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19556 vqtbx4q_p8 (poly8x16_t __r, poly8x16x4_t __tab, uint8x16_t __idx)
19558 return __builtin_aarch64_qtbx4v16qi_pppu (__r, __tab, __idx);
19561 /* vrbit */
19563 __extension__ extern __inline poly8x8_t
19564 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19565 vrbit_p8 (poly8x8_t __a)
19567 return (poly8x8_t) __builtin_aarch64_rbitv8qi ((int8x8_t) __a);
19570 __extension__ extern __inline int8x8_t
19571 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19572 vrbit_s8 (int8x8_t __a)
19574 return __builtin_aarch64_rbitv8qi (__a);
19577 __extension__ extern __inline uint8x8_t
19578 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19579 vrbit_u8 (uint8x8_t __a)
19581 return (uint8x8_t) __builtin_aarch64_rbitv8qi ((int8x8_t) __a);
19584 __extension__ extern __inline poly8x16_t
19585 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19586 vrbitq_p8 (poly8x16_t __a)
19588 return (poly8x16_t) __builtin_aarch64_rbitv16qi ((int8x16_t)__a);
19591 __extension__ extern __inline int8x16_t
19592 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19593 vrbitq_s8 (int8x16_t __a)
19595 return __builtin_aarch64_rbitv16qi (__a);
19598 __extension__ extern __inline uint8x16_t
19599 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19600 vrbitq_u8 (uint8x16_t __a)
19602 return (uint8x16_t) __builtin_aarch64_rbitv16qi ((int8x16_t) __a);
19605 /* vrecpe */
19607 __extension__ extern __inline uint32x2_t
19608 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19609 vrecpe_u32 (uint32x2_t __a)
19611 return (uint32x2_t) __builtin_aarch64_urecpev2si ((int32x2_t) __a);
19614 __extension__ extern __inline uint32x4_t
19615 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19616 vrecpeq_u32 (uint32x4_t __a)
19618 return (uint32x4_t) __builtin_aarch64_urecpev4si ((int32x4_t) __a);
19621 __extension__ extern __inline float32_t
19622 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19623 vrecpes_f32 (float32_t __a)
19625 return __builtin_aarch64_frecpesf (__a);
19628 __extension__ extern __inline float64_t
19629 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19630 vrecped_f64 (float64_t __a)
19632 return __builtin_aarch64_frecpedf (__a);
19635 __extension__ extern __inline float32x2_t
19636 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19637 vrecpe_f32 (float32x2_t __a)
19639 return __builtin_aarch64_frecpev2sf (__a);
19642 __extension__ extern __inline float64x1_t
19643 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19644 vrecpe_f64 (float64x1_t __a)
19646 return (float64x1_t) { vrecped_f64 (vget_lane_f64 (__a, 0)) };
19649 __extension__ extern __inline float32x4_t
19650 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19651 vrecpeq_f32 (float32x4_t __a)
19653 return __builtin_aarch64_frecpev4sf (__a);
19656 __extension__ extern __inline float64x2_t
19657 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19658 vrecpeq_f64 (float64x2_t __a)
19660 return __builtin_aarch64_frecpev2df (__a);
19663 /* vrecps */
19665 __extension__ extern __inline float32_t
19666 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19667 vrecpss_f32 (float32_t __a, float32_t __b)
19669 return __builtin_aarch64_frecpssf (__a, __b);
19672 __extension__ extern __inline float64_t
19673 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19674 vrecpsd_f64 (float64_t __a, float64_t __b)
19676 return __builtin_aarch64_frecpsdf (__a, __b);
19679 __extension__ extern __inline float32x2_t
19680 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19681 vrecps_f32 (float32x2_t __a, float32x2_t __b)
19683 return __builtin_aarch64_frecpsv2sf (__a, __b);
19686 __extension__ extern __inline float64x1_t
19687 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19688 vrecps_f64 (float64x1_t __a, float64x1_t __b)
19690 return (float64x1_t) { vrecpsd_f64 (vget_lane_f64 (__a, 0),
19691 vget_lane_f64 (__b, 0)) };
19694 __extension__ extern __inline float32x4_t
19695 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19696 vrecpsq_f32 (float32x4_t __a, float32x4_t __b)
19698 return __builtin_aarch64_frecpsv4sf (__a, __b);
19701 __extension__ extern __inline float64x2_t
19702 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19703 vrecpsq_f64 (float64x2_t __a, float64x2_t __b)
19705 return __builtin_aarch64_frecpsv2df (__a, __b);
19708 /* vrecpx */
19710 __extension__ extern __inline float32_t
19711 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19712 vrecpxs_f32 (float32_t __a)
19714 return __builtin_aarch64_frecpxsf (__a);
19717 __extension__ extern __inline float64_t
19718 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19719 vrecpxd_f64 (float64_t __a)
19721 return __builtin_aarch64_frecpxdf (__a);
19725 /* vrev */
19727 __extension__ extern __inline poly8x8_t
19728 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19729 vrev16_p8 (poly8x8_t __a)
19731 return __builtin_shuffle (__a, (uint8x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
19734 __extension__ extern __inline int8x8_t
19735 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19736 vrev16_s8 (int8x8_t __a)
19738 return __builtin_shuffle (__a, (uint8x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
19741 __extension__ extern __inline uint8x8_t
19742 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19743 vrev16_u8 (uint8x8_t __a)
19745 return __builtin_shuffle (__a, (uint8x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
19748 __extension__ extern __inline poly8x16_t
19749 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19750 vrev16q_p8 (poly8x16_t __a)
19752 return __builtin_shuffle (__a,
19753 (uint8x16_t) { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 });
19756 __extension__ extern __inline int8x16_t
19757 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19758 vrev16q_s8 (int8x16_t __a)
19760 return __builtin_shuffle (__a,
19761 (uint8x16_t) { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 });
19764 __extension__ extern __inline uint8x16_t
19765 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19766 vrev16q_u8 (uint8x16_t __a)
19768 return __builtin_shuffle (__a,
19769 (uint8x16_t) { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 });
19772 __extension__ extern __inline poly8x8_t
19773 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19774 vrev32_p8 (poly8x8_t __a)
19776 return __builtin_shuffle (__a, (uint8x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
19779 __extension__ extern __inline poly16x4_t
19780 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19781 vrev32_p16 (poly16x4_t __a)
19783 return __builtin_shuffle (__a, (uint16x4_t) { 1, 0, 3, 2 });
19786 __extension__ extern __inline int8x8_t
19787 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19788 vrev32_s8 (int8x8_t __a)
19790 return __builtin_shuffle (__a, (uint8x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
19793 __extension__ extern __inline int16x4_t
19794 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19795 vrev32_s16 (int16x4_t __a)
19797 return __builtin_shuffle (__a, (uint16x4_t) { 1, 0, 3, 2 });
19800 __extension__ extern __inline uint8x8_t
19801 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19802 vrev32_u8 (uint8x8_t __a)
19804 return __builtin_shuffle (__a, (uint8x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
19807 __extension__ extern __inline uint16x4_t
19808 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19809 vrev32_u16 (uint16x4_t __a)
19811 return __builtin_shuffle (__a, (uint16x4_t) { 1, 0, 3, 2 });
19814 __extension__ extern __inline poly8x16_t
19815 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19816 vrev32q_p8 (poly8x16_t __a)
19818 return __builtin_shuffle (__a,
19819 (uint8x16_t) { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 });
19822 __extension__ extern __inline poly16x8_t
19823 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19824 vrev32q_p16 (poly16x8_t __a)
19826 return __builtin_shuffle (__a, (uint16x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
19829 __extension__ extern __inline int8x16_t
19830 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19831 vrev32q_s8 (int8x16_t __a)
19833 return __builtin_shuffle (__a,
19834 (uint8x16_t) { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 });
19837 __extension__ extern __inline int16x8_t
19838 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19839 vrev32q_s16 (int16x8_t __a)
19841 return __builtin_shuffle (__a, (uint16x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
19844 __extension__ extern __inline uint8x16_t
19845 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19846 vrev32q_u8 (uint8x16_t __a)
19848 return __builtin_shuffle (__a,
19849 (uint8x16_t) { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 });
19852 __extension__ extern __inline uint16x8_t
19853 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19854 vrev32q_u16 (uint16x8_t __a)
19856 return __builtin_shuffle (__a, (uint16x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
19859 __extension__ extern __inline float16x4_t
19860 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19861 vrev64_f16 (float16x4_t __a)
19863 return __builtin_shuffle (__a, (uint16x4_t) { 3, 2, 1, 0 });
19866 __extension__ extern __inline float32x2_t
19867 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19868 vrev64_f32 (float32x2_t __a)
19870 return __builtin_shuffle (__a, (uint32x2_t) { 1, 0 });
19873 __extension__ extern __inline poly8x8_t
19874 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19875 vrev64_p8 (poly8x8_t __a)
19877 return __builtin_shuffle (__a, (uint8x8_t) { 7, 6, 5, 4, 3, 2, 1, 0 });
19880 __extension__ extern __inline poly16x4_t
19881 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19882 vrev64_p16 (poly16x4_t __a)
19884 return __builtin_shuffle (__a, (uint16x4_t) { 3, 2, 1, 0 });
19887 __extension__ extern __inline int8x8_t
19888 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19889 vrev64_s8 (int8x8_t __a)
19891 return __builtin_shuffle (__a, (uint8x8_t) { 7, 6, 5, 4, 3, 2, 1, 0 });
19894 __extension__ extern __inline int16x4_t
19895 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19896 vrev64_s16 (int16x4_t __a)
19898 return __builtin_shuffle (__a, (uint16x4_t) { 3, 2, 1, 0 });
19901 __extension__ extern __inline int32x2_t
19902 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19903 vrev64_s32 (int32x2_t __a)
19905 return __builtin_shuffle (__a, (uint32x2_t) { 1, 0 });
19908 __extension__ extern __inline uint8x8_t
19909 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19910 vrev64_u8 (uint8x8_t __a)
19912 return __builtin_shuffle (__a, (uint8x8_t) { 7, 6, 5, 4, 3, 2, 1, 0 });
19915 __extension__ extern __inline uint16x4_t
19916 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19917 vrev64_u16 (uint16x4_t __a)
19919 return __builtin_shuffle (__a, (uint16x4_t) { 3, 2, 1, 0 });
19922 __extension__ extern __inline uint32x2_t
19923 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19924 vrev64_u32 (uint32x2_t __a)
19926 return __builtin_shuffle (__a, (uint32x2_t) { 1, 0 });
19929 __extension__ extern __inline float16x8_t
19930 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19931 vrev64q_f16 (float16x8_t __a)
19933 return __builtin_shuffle (__a, (uint16x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
19936 __extension__ extern __inline float32x4_t
19937 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19938 vrev64q_f32 (float32x4_t __a)
19940 return __builtin_shuffle (__a, (uint32x4_t) { 1, 0, 3, 2 });
19943 __extension__ extern __inline poly8x16_t
19944 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19945 vrev64q_p8 (poly8x16_t __a)
19947 return __builtin_shuffle (__a,
19948 (uint8x16_t) { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 });
19951 __extension__ extern __inline poly16x8_t
19952 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19953 vrev64q_p16 (poly16x8_t __a)
19955 return __builtin_shuffle (__a, (uint16x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
19958 __extension__ extern __inline int8x16_t
19959 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19960 vrev64q_s8 (int8x16_t __a)
19962 return __builtin_shuffle (__a,
19963 (uint8x16_t) { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 });
19966 __extension__ extern __inline int16x8_t
19967 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19968 vrev64q_s16 (int16x8_t __a)
19970 return __builtin_shuffle (__a, (uint16x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
19973 __extension__ extern __inline int32x4_t
19974 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19975 vrev64q_s32 (int32x4_t __a)
19977 return __builtin_shuffle (__a, (uint32x4_t) { 1, 0, 3, 2 });
19980 __extension__ extern __inline uint8x16_t
19981 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19982 vrev64q_u8 (uint8x16_t __a)
19984 return __builtin_shuffle (__a,
19985 (uint8x16_t) { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 });
19988 __extension__ extern __inline uint16x8_t
19989 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19990 vrev64q_u16 (uint16x8_t __a)
19992 return __builtin_shuffle (__a, (uint16x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
19995 __extension__ extern __inline uint32x4_t
19996 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19997 vrev64q_u32 (uint32x4_t __a)
19999 return __builtin_shuffle (__a, (uint32x4_t) { 1, 0, 3, 2 });
20002 /* vrnd */
20004 __extension__ extern __inline float32x2_t
20005 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20006 vrnd_f32 (float32x2_t __a)
20008 return __builtin_aarch64_btruncv2sf (__a);
20011 __extension__ extern __inline float64x1_t
20012 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20013 vrnd_f64 (float64x1_t __a)
20015 return vset_lane_f64 (__builtin_trunc (vget_lane_f64 (__a, 0)), __a, 0);
20018 __extension__ extern __inline float32x4_t
20019 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20020 vrndq_f32 (float32x4_t __a)
20022 return __builtin_aarch64_btruncv4sf (__a);
20025 __extension__ extern __inline float64x2_t
20026 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20027 vrndq_f64 (float64x2_t __a)
20029 return __builtin_aarch64_btruncv2df (__a);
20032 /* vrnda */
20034 __extension__ extern __inline float32x2_t
20035 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20036 vrnda_f32 (float32x2_t __a)
20038 return __builtin_aarch64_roundv2sf (__a);
20041 __extension__ extern __inline float64x1_t
20042 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20043 vrnda_f64 (float64x1_t __a)
20045 return vset_lane_f64 (__builtin_round (vget_lane_f64 (__a, 0)), __a, 0);
20048 __extension__ extern __inline float32x4_t
20049 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20050 vrndaq_f32 (float32x4_t __a)
20052 return __builtin_aarch64_roundv4sf (__a);
20055 __extension__ extern __inline float64x2_t
20056 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20057 vrndaq_f64 (float64x2_t __a)
20059 return __builtin_aarch64_roundv2df (__a);
20062 /* vrndi */
20064 __extension__ extern __inline float32x2_t
20065 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20066 vrndi_f32 (float32x2_t __a)
20068 return __builtin_aarch64_nearbyintv2sf (__a);
20071 __extension__ extern __inline float64x1_t
20072 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20073 vrndi_f64 (float64x1_t __a)
20075 return vset_lane_f64 (__builtin_nearbyint (vget_lane_f64 (__a, 0)), __a, 0);
20078 __extension__ extern __inline float32x4_t
20079 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20080 vrndiq_f32 (float32x4_t __a)
20082 return __builtin_aarch64_nearbyintv4sf (__a);
20085 __extension__ extern __inline float64x2_t
20086 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20087 vrndiq_f64 (float64x2_t __a)
20089 return __builtin_aarch64_nearbyintv2df (__a);
20092 /* vrndm */
20094 __extension__ extern __inline float32x2_t
20095 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20096 vrndm_f32 (float32x2_t __a)
20098 return __builtin_aarch64_floorv2sf (__a);
20101 __extension__ extern __inline float64x1_t
20102 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20103 vrndm_f64 (float64x1_t __a)
20105 return vset_lane_f64 (__builtin_floor (vget_lane_f64 (__a, 0)), __a, 0);
20108 __extension__ extern __inline float32x4_t
20109 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20110 vrndmq_f32 (float32x4_t __a)
20112 return __builtin_aarch64_floorv4sf (__a);
20115 __extension__ extern __inline float64x2_t
20116 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20117 vrndmq_f64 (float64x2_t __a)
20119 return __builtin_aarch64_floorv2df (__a);
20122 /* vrndn */
20124 __extension__ extern __inline float32_t
20125 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20126 vrndns_f32 (float32_t __a)
20128 return __builtin_aarch64_roundevensf (__a);
20131 __extension__ extern __inline float32x2_t
20132 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20133 vrndn_f32 (float32x2_t __a)
20135 return __builtin_aarch64_roundevenv2sf (__a);
20138 __extension__ extern __inline float64x1_t
20139 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20140 vrndn_f64 (float64x1_t __a)
20142 return (float64x1_t) {__builtin_aarch64_roundevendf (__a[0])};
20145 __extension__ extern __inline float32x4_t
20146 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20147 vrndnq_f32 (float32x4_t __a)
20149 return __builtin_aarch64_roundevenv4sf (__a);
20152 __extension__ extern __inline float64x2_t
20153 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20154 vrndnq_f64 (float64x2_t __a)
20156 return __builtin_aarch64_roundevenv2df (__a);
20159 /* vrndp */
20161 __extension__ extern __inline float32x2_t
20162 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20163 vrndp_f32 (float32x2_t __a)
20165 return __builtin_aarch64_ceilv2sf (__a);
20168 __extension__ extern __inline float64x1_t
20169 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20170 vrndp_f64 (float64x1_t __a)
20172 return vset_lane_f64 (__builtin_ceil (vget_lane_f64 (__a, 0)), __a, 0);
20175 __extension__ extern __inline float32x4_t
20176 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20177 vrndpq_f32 (float32x4_t __a)
20179 return __builtin_aarch64_ceilv4sf (__a);
20182 __extension__ extern __inline float64x2_t
20183 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20184 vrndpq_f64 (float64x2_t __a)
20186 return __builtin_aarch64_ceilv2df (__a);
20189 /* vrndx */
20191 __extension__ extern __inline float32x2_t
20192 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20193 vrndx_f32 (float32x2_t __a)
20195 return __builtin_aarch64_rintv2sf (__a);
20198 __extension__ extern __inline float64x1_t
20199 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20200 vrndx_f64 (float64x1_t __a)
20202 return vset_lane_f64 (__builtin_rint (vget_lane_f64 (__a, 0)), __a, 0);
20205 __extension__ extern __inline float32x4_t
20206 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20207 vrndxq_f32 (float32x4_t __a)
20209 return __builtin_aarch64_rintv4sf (__a);
20212 __extension__ extern __inline float64x2_t
20213 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20214 vrndxq_f64 (float64x2_t __a)
20216 return __builtin_aarch64_rintv2df (__a);
20219 /* vrshl */
20221 __extension__ extern __inline int8x8_t
20222 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20223 vrshl_s8 (int8x8_t __a, int8x8_t __b)
20225 return (int8x8_t) __builtin_aarch64_srshlv8qi (__a, __b);
20228 __extension__ extern __inline int16x4_t
20229 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20230 vrshl_s16 (int16x4_t __a, int16x4_t __b)
20232 return (int16x4_t) __builtin_aarch64_srshlv4hi (__a, __b);
20235 __extension__ extern __inline int32x2_t
20236 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20237 vrshl_s32 (int32x2_t __a, int32x2_t __b)
20239 return (int32x2_t) __builtin_aarch64_srshlv2si (__a, __b);
20242 __extension__ extern __inline int64x1_t
20243 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20244 vrshl_s64 (int64x1_t __a, int64x1_t __b)
20246 return (int64x1_t) {__builtin_aarch64_srshldi (__a[0], __b[0])};
20249 __extension__ extern __inline uint8x8_t
20250 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20251 vrshl_u8 (uint8x8_t __a, int8x8_t __b)
20253 return __builtin_aarch64_urshlv8qi_uus (__a, __b);
20256 __extension__ extern __inline uint16x4_t
20257 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20258 vrshl_u16 (uint16x4_t __a, int16x4_t __b)
20260 return __builtin_aarch64_urshlv4hi_uus (__a, __b);
20263 __extension__ extern __inline uint32x2_t
20264 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20265 vrshl_u32 (uint32x2_t __a, int32x2_t __b)
20267 return __builtin_aarch64_urshlv2si_uus (__a, __b);
20270 __extension__ extern __inline uint64x1_t
20271 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20272 vrshl_u64 (uint64x1_t __a, int64x1_t __b)
20274 return (uint64x1_t) {__builtin_aarch64_urshldi_uus (__a[0], __b[0])};
20277 __extension__ extern __inline int8x16_t
20278 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20279 vrshlq_s8 (int8x16_t __a, int8x16_t __b)
20281 return (int8x16_t) __builtin_aarch64_srshlv16qi (__a, __b);
20284 __extension__ extern __inline int16x8_t
20285 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20286 vrshlq_s16 (int16x8_t __a, int16x8_t __b)
20288 return (int16x8_t) __builtin_aarch64_srshlv8hi (__a, __b);
20291 __extension__ extern __inline int32x4_t
20292 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20293 vrshlq_s32 (int32x4_t __a, int32x4_t __b)
20295 return (int32x4_t) __builtin_aarch64_srshlv4si (__a, __b);
20298 __extension__ extern __inline int64x2_t
20299 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20300 vrshlq_s64 (int64x2_t __a, int64x2_t __b)
20302 return (int64x2_t) __builtin_aarch64_srshlv2di (__a, __b);
20305 __extension__ extern __inline uint8x16_t
20306 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20307 vrshlq_u8 (uint8x16_t __a, int8x16_t __b)
20309 return __builtin_aarch64_urshlv16qi_uus (__a, __b);
20312 __extension__ extern __inline uint16x8_t
20313 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20314 vrshlq_u16 (uint16x8_t __a, int16x8_t __b)
20316 return __builtin_aarch64_urshlv8hi_uus (__a, __b);
20319 __extension__ extern __inline uint32x4_t
20320 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20321 vrshlq_u32 (uint32x4_t __a, int32x4_t __b)
20323 return __builtin_aarch64_urshlv4si_uus (__a, __b);
20326 __extension__ extern __inline uint64x2_t
20327 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20328 vrshlq_u64 (uint64x2_t __a, int64x2_t __b)
20330 return __builtin_aarch64_urshlv2di_uus (__a, __b);
20333 __extension__ extern __inline int64_t
20334 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20335 vrshld_s64 (int64_t __a, int64_t __b)
20337 return __builtin_aarch64_srshldi (__a, __b);
20340 __extension__ extern __inline uint64_t
20341 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20342 vrshld_u64 (uint64_t __a, int64_t __b)
20344 return __builtin_aarch64_urshldi_uus (__a, __b);
20347 /* vrshr */
20349 __extension__ extern __inline int8x8_t
20350 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20351 vrshr_n_s8 (int8x8_t __a, const int __b)
20353 return (int8x8_t) __builtin_aarch64_srshr_nv8qi (__a, __b);
20356 __extension__ extern __inline int16x4_t
20357 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20358 vrshr_n_s16 (int16x4_t __a, const int __b)
20360 return (int16x4_t) __builtin_aarch64_srshr_nv4hi (__a, __b);
20363 __extension__ extern __inline int32x2_t
20364 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20365 vrshr_n_s32 (int32x2_t __a, const int __b)
20367 return (int32x2_t) __builtin_aarch64_srshr_nv2si (__a, __b);
20370 __extension__ extern __inline int64x1_t
20371 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20372 vrshr_n_s64 (int64x1_t __a, const int __b)
20374 return (int64x1_t) {__builtin_aarch64_srshr_ndi (__a[0], __b)};
20377 __extension__ extern __inline uint8x8_t
20378 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20379 vrshr_n_u8 (uint8x8_t __a, const int __b)
20381 return __builtin_aarch64_urshr_nv8qi_uus (__a, __b);
20384 __extension__ extern __inline uint16x4_t
20385 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20386 vrshr_n_u16 (uint16x4_t __a, const int __b)
20388 return __builtin_aarch64_urshr_nv4hi_uus (__a, __b);
20391 __extension__ extern __inline uint32x2_t
20392 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20393 vrshr_n_u32 (uint32x2_t __a, const int __b)
20395 return __builtin_aarch64_urshr_nv2si_uus (__a, __b);
20398 __extension__ extern __inline uint64x1_t
20399 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20400 vrshr_n_u64 (uint64x1_t __a, const int __b)
20402 return (uint64x1_t) {__builtin_aarch64_urshr_ndi_uus (__a[0], __b)};
20405 __extension__ extern __inline int8x16_t
20406 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20407 vrshrq_n_s8 (int8x16_t __a, const int __b)
20409 return (int8x16_t) __builtin_aarch64_srshr_nv16qi (__a, __b);
20412 __extension__ extern __inline int16x8_t
20413 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20414 vrshrq_n_s16 (int16x8_t __a, const int __b)
20416 return (int16x8_t) __builtin_aarch64_srshr_nv8hi (__a, __b);
20419 __extension__ extern __inline int32x4_t
20420 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20421 vrshrq_n_s32 (int32x4_t __a, const int __b)
20423 return (int32x4_t) __builtin_aarch64_srshr_nv4si (__a, __b);
20426 __extension__ extern __inline int64x2_t
20427 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20428 vrshrq_n_s64 (int64x2_t __a, const int __b)
20430 return (int64x2_t) __builtin_aarch64_srshr_nv2di (__a, __b);
20433 __extension__ extern __inline uint8x16_t
20434 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20435 vrshrq_n_u8 (uint8x16_t __a, const int __b)
20437 return __builtin_aarch64_urshr_nv16qi_uus (__a, __b);
20440 __extension__ extern __inline uint16x8_t
20441 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20442 vrshrq_n_u16 (uint16x8_t __a, const int __b)
20444 return __builtin_aarch64_urshr_nv8hi_uus (__a, __b);
20447 __extension__ extern __inline uint32x4_t
20448 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20449 vrshrq_n_u32 (uint32x4_t __a, const int __b)
20451 return __builtin_aarch64_urshr_nv4si_uus (__a, __b);
20454 __extension__ extern __inline uint64x2_t
20455 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20456 vrshrq_n_u64 (uint64x2_t __a, const int __b)
20458 return __builtin_aarch64_urshr_nv2di_uus (__a, __b);
20461 __extension__ extern __inline int64_t
20462 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20463 vrshrd_n_s64 (int64_t __a, const int __b)
20465 return __builtin_aarch64_srshr_ndi (__a, __b);
20468 __extension__ extern __inline uint64_t
20469 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20470 vrshrd_n_u64 (uint64_t __a, const int __b)
20472 return __builtin_aarch64_urshr_ndi_uus (__a, __b);
20475 /* vrsqrte. */
20477 __extension__ extern __inline float32_t
20478 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20479 vrsqrtes_f32 (float32_t __a)
20481 return __builtin_aarch64_rsqrtesf (__a);
20484 __extension__ extern __inline float64_t
20485 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20486 vrsqrted_f64 (float64_t __a)
20488 return __builtin_aarch64_rsqrtedf (__a);
20491 __extension__ extern __inline float32x2_t
20492 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20493 vrsqrte_f32 (float32x2_t __a)
20495 return __builtin_aarch64_rsqrtev2sf (__a);
20498 __extension__ extern __inline float64x1_t
20499 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20500 vrsqrte_f64 (float64x1_t __a)
20502 return (float64x1_t) {vrsqrted_f64 (vget_lane_f64 (__a, 0))};
20505 __extension__ extern __inline float32x4_t
20506 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20507 vrsqrteq_f32 (float32x4_t __a)
20509 return __builtin_aarch64_rsqrtev4sf (__a);
20512 __extension__ extern __inline float64x2_t
20513 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20514 vrsqrteq_f64 (float64x2_t __a)
20516 return __builtin_aarch64_rsqrtev2df (__a);
20519 /* vrsqrts. */
20521 __extension__ extern __inline float32_t
20522 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20523 vrsqrtss_f32 (float32_t __a, float32_t __b)
20525 return __builtin_aarch64_rsqrtssf (__a, __b);
20528 __extension__ extern __inline float64_t
20529 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20530 vrsqrtsd_f64 (float64_t __a, float64_t __b)
20532 return __builtin_aarch64_rsqrtsdf (__a, __b);
20535 __extension__ extern __inline float32x2_t
20536 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20537 vrsqrts_f32 (float32x2_t __a, float32x2_t __b)
20539 return __builtin_aarch64_rsqrtsv2sf (__a, __b);
20542 __extension__ extern __inline float64x1_t
20543 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20544 vrsqrts_f64 (float64x1_t __a, float64x1_t __b)
20546 return (float64x1_t) {vrsqrtsd_f64 (vget_lane_f64 (__a, 0),
20547 vget_lane_f64 (__b, 0))};
20550 __extension__ extern __inline float32x4_t
20551 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20552 vrsqrtsq_f32 (float32x4_t __a, float32x4_t __b)
20554 return __builtin_aarch64_rsqrtsv4sf (__a, __b);
20557 __extension__ extern __inline float64x2_t
20558 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20559 vrsqrtsq_f64 (float64x2_t __a, float64x2_t __b)
20561 return __builtin_aarch64_rsqrtsv2df (__a, __b);
20564 /* vrsra */
20566 __extension__ extern __inline int8x8_t
20567 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20568 vrsra_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
20570 return (int8x8_t) __builtin_aarch64_srsra_nv8qi (__a, __b, __c);
20573 __extension__ extern __inline int16x4_t
20574 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20575 vrsra_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
20577 return (int16x4_t) __builtin_aarch64_srsra_nv4hi (__a, __b, __c);
20580 __extension__ extern __inline int32x2_t
20581 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20582 vrsra_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
20584 return (int32x2_t) __builtin_aarch64_srsra_nv2si (__a, __b, __c);
20587 __extension__ extern __inline int64x1_t
20588 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20589 vrsra_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
20591 return (int64x1_t) {__builtin_aarch64_srsra_ndi (__a[0], __b[0], __c)};
20594 __extension__ extern __inline uint8x8_t
20595 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20596 vrsra_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
20598 return __builtin_aarch64_ursra_nv8qi_uuus (__a, __b, __c);
20601 __extension__ extern __inline uint16x4_t
20602 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20603 vrsra_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
20605 return __builtin_aarch64_ursra_nv4hi_uuus (__a, __b, __c);
20608 __extension__ extern __inline uint32x2_t
20609 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20610 vrsra_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
20612 return __builtin_aarch64_ursra_nv2si_uuus (__a, __b, __c);
20615 __extension__ extern __inline uint64x1_t
20616 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20617 vrsra_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
20619 return (uint64x1_t) {__builtin_aarch64_ursra_ndi_uuus (__a[0], __b[0], __c)};
20622 __extension__ extern __inline int8x16_t
20623 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20624 vrsraq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
20626 return (int8x16_t) __builtin_aarch64_srsra_nv16qi (__a, __b, __c);
20629 __extension__ extern __inline int16x8_t
20630 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20631 vrsraq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
20633 return (int16x8_t) __builtin_aarch64_srsra_nv8hi (__a, __b, __c);
20636 __extension__ extern __inline int32x4_t
20637 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20638 vrsraq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
20640 return (int32x4_t) __builtin_aarch64_srsra_nv4si (__a, __b, __c);
20643 __extension__ extern __inline int64x2_t
20644 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20645 vrsraq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
20647 return (int64x2_t) __builtin_aarch64_srsra_nv2di (__a, __b, __c);
20650 __extension__ extern __inline uint8x16_t
20651 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20652 vrsraq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
20654 return __builtin_aarch64_ursra_nv16qi_uuus (__a, __b, __c);
20657 __extension__ extern __inline uint16x8_t
20658 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20659 vrsraq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
20661 return __builtin_aarch64_ursra_nv8hi_uuus (__a, __b, __c);
20664 __extension__ extern __inline uint32x4_t
20665 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20666 vrsraq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
20668 return __builtin_aarch64_ursra_nv4si_uuus (__a, __b, __c);
20671 __extension__ extern __inline uint64x2_t
20672 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20673 vrsraq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
20675 return __builtin_aarch64_ursra_nv2di_uuus (__a, __b, __c);
20678 __extension__ extern __inline int64_t
20679 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20680 vrsrad_n_s64 (int64_t __a, int64_t __b, const int __c)
20682 return __builtin_aarch64_srsra_ndi (__a, __b, __c);
20685 __extension__ extern __inline uint64_t
20686 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20687 vrsrad_n_u64 (uint64_t __a, uint64_t __b, const int __c)
20689 return __builtin_aarch64_ursra_ndi_uuus (__a, __b, __c);
20692 #pragma GCC push_options
20693 #pragma GCC target ("+nothing+sha2")
20695 /* vsha1 */
20697 __extension__ extern __inline uint32x4_t
20698 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20699 vsha1cq_u32 (uint32x4_t __hash_abcd, uint32_t __hash_e, uint32x4_t __wk)
20701 return __builtin_aarch64_crypto_sha1cv4si_uuuu (__hash_abcd, __hash_e, __wk);
20704 __extension__ extern __inline uint32x4_t
20705 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20706 vsha1mq_u32 (uint32x4_t __hash_abcd, uint32_t __hash_e, uint32x4_t __wk)
20708 return __builtin_aarch64_crypto_sha1mv4si_uuuu (__hash_abcd, __hash_e, __wk);
20711 __extension__ extern __inline uint32x4_t
20712 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20713 vsha1pq_u32 (uint32x4_t __hash_abcd, uint32_t __hash_e, uint32x4_t __wk)
20715 return __builtin_aarch64_crypto_sha1pv4si_uuuu (__hash_abcd, __hash_e, __wk);
20718 __extension__ extern __inline uint32_t
20719 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20720 vsha1h_u32 (uint32_t __hash_e)
20722 return __builtin_aarch64_crypto_sha1hsi_uu (__hash_e);
20725 __extension__ extern __inline uint32x4_t
20726 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20727 vsha1su0q_u32 (uint32x4_t __w0_3, uint32x4_t __w4_7, uint32x4_t __w8_11)
20729 return __builtin_aarch64_crypto_sha1su0v4si_uuuu (__w0_3, __w4_7, __w8_11);
20732 __extension__ extern __inline uint32x4_t
20733 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20734 vsha1su1q_u32 (uint32x4_t __tw0_3, uint32x4_t __w12_15)
20736 return __builtin_aarch64_crypto_sha1su1v4si_uuu (__tw0_3, __w12_15);
20739 __extension__ extern __inline uint32x4_t
20740 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20741 vsha256hq_u32 (uint32x4_t __hash_abcd, uint32x4_t __hash_efgh, uint32x4_t __wk)
20743 return __builtin_aarch64_crypto_sha256hv4si_uuuu (__hash_abcd, __hash_efgh,
20744 __wk);
20747 __extension__ extern __inline uint32x4_t
20748 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20749 vsha256h2q_u32 (uint32x4_t __hash_efgh, uint32x4_t __hash_abcd, uint32x4_t __wk)
20751 return __builtin_aarch64_crypto_sha256h2v4si_uuuu (__hash_efgh, __hash_abcd,
20752 __wk);
20755 __extension__ extern __inline uint32x4_t
20756 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20757 vsha256su0q_u32 (uint32x4_t __w0_3, uint32x4_t __w4_7)
20759 return __builtin_aarch64_crypto_sha256su0v4si_uuu (__w0_3, __w4_7);
20762 __extension__ extern __inline uint32x4_t
20763 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20764 vsha256su1q_u32 (uint32x4_t __tw0_3, uint32x4_t __w8_11, uint32x4_t __w12_15)
20766 return __builtin_aarch64_crypto_sha256su1v4si_uuuu (__tw0_3, __w8_11,
20767 __w12_15);
20770 #pragma GCC pop_options
20772 /* vshl */
20774 __extension__ extern __inline int8x8_t
20775 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20776 vshl_n_s8 (int8x8_t __a, const int __b)
20778 return (int8x8_t) __builtin_aarch64_ashlv8qi (__a, __b);
20781 __extension__ extern __inline int16x4_t
20782 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20783 vshl_n_s16 (int16x4_t __a, const int __b)
20785 return (int16x4_t) __builtin_aarch64_ashlv4hi (__a, __b);
20788 __extension__ extern __inline int32x2_t
20789 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20790 vshl_n_s32 (int32x2_t __a, const int __b)
20792 return (int32x2_t) __builtin_aarch64_ashlv2si (__a, __b);
20795 __extension__ extern __inline int64x1_t
20796 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20797 vshl_n_s64 (int64x1_t __a, const int __b)
20799 return (int64x1_t) {__builtin_aarch64_ashldi (__a[0], __b)};
20802 __extension__ extern __inline uint8x8_t
20803 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20804 vshl_n_u8 (uint8x8_t __a, const int __b)
20806 return (uint8x8_t) __builtin_aarch64_ashlv8qi ((int8x8_t) __a, __b);
20809 __extension__ extern __inline uint16x4_t
20810 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20811 vshl_n_u16 (uint16x4_t __a, const int __b)
20813 return (uint16x4_t) __builtin_aarch64_ashlv4hi ((int16x4_t) __a, __b);
20816 __extension__ extern __inline uint32x2_t
20817 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20818 vshl_n_u32 (uint32x2_t __a, const int __b)
20820 return (uint32x2_t) __builtin_aarch64_ashlv2si ((int32x2_t) __a, __b);
20823 __extension__ extern __inline uint64x1_t
20824 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20825 vshl_n_u64 (uint64x1_t __a, const int __b)
20827 return (uint64x1_t) {__builtin_aarch64_ashldi ((int64_t) __a[0], __b)};
20830 __extension__ extern __inline int8x16_t
20831 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20832 vshlq_n_s8 (int8x16_t __a, const int __b)
20834 return (int8x16_t) __builtin_aarch64_ashlv16qi (__a, __b);
20837 __extension__ extern __inline int16x8_t
20838 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20839 vshlq_n_s16 (int16x8_t __a, const int __b)
20841 return (int16x8_t) __builtin_aarch64_ashlv8hi (__a, __b);
20844 __extension__ extern __inline int32x4_t
20845 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20846 vshlq_n_s32 (int32x4_t __a, const int __b)
20848 return (int32x4_t) __builtin_aarch64_ashlv4si (__a, __b);
20851 __extension__ extern __inline int64x2_t
20852 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20853 vshlq_n_s64 (int64x2_t __a, const int __b)
20855 return (int64x2_t) __builtin_aarch64_ashlv2di (__a, __b);
20858 __extension__ extern __inline uint8x16_t
20859 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20860 vshlq_n_u8 (uint8x16_t __a, const int __b)
20862 return (uint8x16_t) __builtin_aarch64_ashlv16qi ((int8x16_t) __a, __b);
20865 __extension__ extern __inline uint16x8_t
20866 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20867 vshlq_n_u16 (uint16x8_t __a, const int __b)
20869 return (uint16x8_t) __builtin_aarch64_ashlv8hi ((int16x8_t) __a, __b);
20872 __extension__ extern __inline uint32x4_t
20873 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20874 vshlq_n_u32 (uint32x4_t __a, const int __b)
20876 return (uint32x4_t) __builtin_aarch64_ashlv4si ((int32x4_t) __a, __b);
20879 __extension__ extern __inline uint64x2_t
20880 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20881 vshlq_n_u64 (uint64x2_t __a, const int __b)
20883 return (uint64x2_t) __builtin_aarch64_ashlv2di ((int64x2_t) __a, __b);
20886 __extension__ extern __inline int64_t
20887 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20888 vshld_n_s64 (int64_t __a, const int __b)
20890 return __builtin_aarch64_ashldi (__a, __b);
20893 __extension__ extern __inline uint64_t
20894 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20895 vshld_n_u64 (uint64_t __a, const int __b)
20897 return (uint64_t) __builtin_aarch64_ashldi (__a, __b);
20900 __extension__ extern __inline int8x8_t
20901 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20902 vshl_s8 (int8x8_t __a, int8x8_t __b)
20904 return __builtin_aarch64_sshlv8qi (__a, __b);
20907 __extension__ extern __inline int16x4_t
20908 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20909 vshl_s16 (int16x4_t __a, int16x4_t __b)
20911 return __builtin_aarch64_sshlv4hi (__a, __b);
20914 __extension__ extern __inline int32x2_t
20915 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20916 vshl_s32 (int32x2_t __a, int32x2_t __b)
20918 return __builtin_aarch64_sshlv2si (__a, __b);
20921 __extension__ extern __inline int64x1_t
20922 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20923 vshl_s64 (int64x1_t __a, int64x1_t __b)
20925 return (int64x1_t) {__builtin_aarch64_sshldi (__a[0], __b[0])};
20928 __extension__ extern __inline uint8x8_t
20929 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20930 vshl_u8 (uint8x8_t __a, int8x8_t __b)
20932 return __builtin_aarch64_ushlv8qi_uus (__a, __b);
20935 __extension__ extern __inline uint16x4_t
20936 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20937 vshl_u16 (uint16x4_t __a, int16x4_t __b)
20939 return __builtin_aarch64_ushlv4hi_uus (__a, __b);
20942 __extension__ extern __inline uint32x2_t
20943 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20944 vshl_u32 (uint32x2_t __a, int32x2_t __b)
20946 return __builtin_aarch64_ushlv2si_uus (__a, __b);
20949 __extension__ extern __inline uint64x1_t
20950 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20951 vshl_u64 (uint64x1_t __a, int64x1_t __b)
20953 return (uint64x1_t) {__builtin_aarch64_ushldi_uus (__a[0], __b[0])};
20956 __extension__ extern __inline int8x16_t
20957 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20958 vshlq_s8 (int8x16_t __a, int8x16_t __b)
20960 return __builtin_aarch64_sshlv16qi (__a, __b);
20963 __extension__ extern __inline int16x8_t
20964 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20965 vshlq_s16 (int16x8_t __a, int16x8_t __b)
20967 return __builtin_aarch64_sshlv8hi (__a, __b);
20970 __extension__ extern __inline int32x4_t
20971 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20972 vshlq_s32 (int32x4_t __a, int32x4_t __b)
20974 return __builtin_aarch64_sshlv4si (__a, __b);
20977 __extension__ extern __inline int64x2_t
20978 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20979 vshlq_s64 (int64x2_t __a, int64x2_t __b)
20981 return __builtin_aarch64_sshlv2di (__a, __b);
20984 __extension__ extern __inline uint8x16_t
20985 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20986 vshlq_u8 (uint8x16_t __a, int8x16_t __b)
20988 return __builtin_aarch64_ushlv16qi_uus (__a, __b);
20991 __extension__ extern __inline uint16x8_t
20992 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20993 vshlq_u16 (uint16x8_t __a, int16x8_t __b)
20995 return __builtin_aarch64_ushlv8hi_uus (__a, __b);
20998 __extension__ extern __inline uint32x4_t
20999 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21000 vshlq_u32 (uint32x4_t __a, int32x4_t __b)
21002 return __builtin_aarch64_ushlv4si_uus (__a, __b);
21005 __extension__ extern __inline uint64x2_t
21006 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21007 vshlq_u64 (uint64x2_t __a, int64x2_t __b)
21009 return __builtin_aarch64_ushlv2di_uus (__a, __b);
21012 __extension__ extern __inline int64_t
21013 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21014 vshld_s64 (int64_t __a, int64_t __b)
21016 return __builtin_aarch64_sshldi (__a, __b);
21019 __extension__ extern __inline uint64_t
21020 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21021 vshld_u64 (uint64_t __a, int64_t __b)
21023 return __builtin_aarch64_ushldi_uus (__a, __b);
21026 __extension__ extern __inline int16x8_t
21027 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21028 vshll_high_n_s8 (int8x16_t __a, const int __b)
21030 return __builtin_aarch64_sshll2_nv16qi (__a, __b);
21033 __extension__ extern __inline int32x4_t
21034 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21035 vshll_high_n_s16 (int16x8_t __a, const int __b)
21037 return __builtin_aarch64_sshll2_nv8hi (__a, __b);
21040 __extension__ extern __inline int64x2_t
21041 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21042 vshll_high_n_s32 (int32x4_t __a, const int __b)
21044 return __builtin_aarch64_sshll2_nv4si (__a, __b);
21047 __extension__ extern __inline uint16x8_t
21048 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21049 vshll_high_n_u8 (uint8x16_t __a, const int __b)
21051 return (uint16x8_t) __builtin_aarch64_ushll2_nv16qi ((int8x16_t) __a, __b);
21054 __extension__ extern __inline uint32x4_t
21055 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21056 vshll_high_n_u16 (uint16x8_t __a, const int __b)
21058 return (uint32x4_t) __builtin_aarch64_ushll2_nv8hi ((int16x8_t) __a, __b);
21061 __extension__ extern __inline uint64x2_t
21062 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21063 vshll_high_n_u32 (uint32x4_t __a, const int __b)
21065 return (uint64x2_t) __builtin_aarch64_ushll2_nv4si ((int32x4_t) __a, __b);
21068 __extension__ extern __inline int16x8_t
21069 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21070 vshll_n_s8 (int8x8_t __a, const int __b)
21072 return __builtin_aarch64_sshll_nv8qi (__a, __b);
21075 __extension__ extern __inline int32x4_t
21076 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21077 vshll_n_s16 (int16x4_t __a, const int __b)
21079 return __builtin_aarch64_sshll_nv4hi (__a, __b);
21082 __extension__ extern __inline int64x2_t
21083 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21084 vshll_n_s32 (int32x2_t __a, const int __b)
21086 return __builtin_aarch64_sshll_nv2si (__a, __b);
21089 __extension__ extern __inline uint16x8_t
21090 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21091 vshll_n_u8 (uint8x8_t __a, const int __b)
21093 return __builtin_aarch64_ushll_nv8qi_uus (__a, __b);
21096 __extension__ extern __inline uint32x4_t
21097 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21098 vshll_n_u16 (uint16x4_t __a, const int __b)
21100 return __builtin_aarch64_ushll_nv4hi_uus (__a, __b);
21103 __extension__ extern __inline uint64x2_t
21104 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21105 vshll_n_u32 (uint32x2_t __a, const int __b)
21107 return __builtin_aarch64_ushll_nv2si_uus (__a, __b);
21110 /* vshr */
21112 __extension__ extern __inline int8x8_t
21113 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21114 vshr_n_s8 (int8x8_t __a, const int __b)
21116 return (int8x8_t) __builtin_aarch64_ashrv8qi (__a, __b);
21119 __extension__ extern __inline int16x4_t
21120 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21121 vshr_n_s16 (int16x4_t __a, const int __b)
21123 return (int16x4_t) __builtin_aarch64_ashrv4hi (__a, __b);
21126 __extension__ extern __inline int32x2_t
21127 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21128 vshr_n_s32 (int32x2_t __a, const int __b)
21130 return (int32x2_t) __builtin_aarch64_ashrv2si (__a, __b);
21133 __extension__ extern __inline int64x1_t
21134 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21135 vshr_n_s64 (int64x1_t __a, const int __b)
21137 return (int64x1_t) {__builtin_aarch64_ashr_simddi (__a[0], __b)};
21140 __extension__ extern __inline uint8x8_t
21141 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21142 vshr_n_u8 (uint8x8_t __a, const int __b)
21144 return __builtin_aarch64_lshrv8qi_uus (__a, __b);
21147 __extension__ extern __inline uint16x4_t
21148 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21149 vshr_n_u16 (uint16x4_t __a, const int __b)
21151 return __builtin_aarch64_lshrv4hi_uus (__a, __b);
21154 __extension__ extern __inline uint32x2_t
21155 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21156 vshr_n_u32 (uint32x2_t __a, const int __b)
21158 return __builtin_aarch64_lshrv2si_uus (__a, __b);
21161 __extension__ extern __inline uint64x1_t
21162 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21163 vshr_n_u64 (uint64x1_t __a, const int __b)
21165 return (uint64x1_t) {__builtin_aarch64_lshr_simddi_uus ( __a[0], __b)};
21168 __extension__ extern __inline int8x16_t
21169 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21170 vshrq_n_s8 (int8x16_t __a, const int __b)
21172 return (int8x16_t) __builtin_aarch64_ashrv16qi (__a, __b);
21175 __extension__ extern __inline int16x8_t
21176 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21177 vshrq_n_s16 (int16x8_t __a, const int __b)
21179 return (int16x8_t) __builtin_aarch64_ashrv8hi (__a, __b);
21182 __extension__ extern __inline int32x4_t
21183 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21184 vshrq_n_s32 (int32x4_t __a, const int __b)
21186 return (int32x4_t) __builtin_aarch64_ashrv4si (__a, __b);
21189 __extension__ extern __inline int64x2_t
21190 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21191 vshrq_n_s64 (int64x2_t __a, const int __b)
21193 return (int64x2_t) __builtin_aarch64_ashrv2di (__a, __b);
21196 __extension__ extern __inline uint8x16_t
21197 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21198 vshrq_n_u8 (uint8x16_t __a, const int __b)
21200 return __builtin_aarch64_lshrv16qi_uus (__a, __b);
21203 __extension__ extern __inline uint16x8_t
21204 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21205 vshrq_n_u16 (uint16x8_t __a, const int __b)
21207 return __builtin_aarch64_lshrv8hi_uus (__a, __b);
21210 __extension__ extern __inline uint32x4_t
21211 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21212 vshrq_n_u32 (uint32x4_t __a, const int __b)
21214 return __builtin_aarch64_lshrv4si_uus (__a, __b);
21217 __extension__ extern __inline uint64x2_t
21218 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21219 vshrq_n_u64 (uint64x2_t __a, const int __b)
21221 return __builtin_aarch64_lshrv2di_uus (__a, __b);
21224 __extension__ extern __inline int64_t
21225 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21226 vshrd_n_s64 (int64_t __a, const int __b)
21228 return __builtin_aarch64_ashr_simddi (__a, __b);
21231 __extension__ extern __inline uint64_t
21232 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21233 vshrd_n_u64 (uint64_t __a, const int __b)
21235 return __builtin_aarch64_lshr_simddi_uus (__a, __b);
21238 /* vsli */
21240 __extension__ extern __inline int8x8_t
21241 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21242 vsli_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
21244 return (int8x8_t) __builtin_aarch64_ssli_nv8qi (__a, __b, __c);
21247 __extension__ extern __inline int16x4_t
21248 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21249 vsli_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
21251 return (int16x4_t) __builtin_aarch64_ssli_nv4hi (__a, __b, __c);
21254 __extension__ extern __inline int32x2_t
21255 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21256 vsli_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
21258 return (int32x2_t) __builtin_aarch64_ssli_nv2si (__a, __b, __c);
21261 __extension__ extern __inline int64x1_t
21262 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21263 vsli_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
21265 return (int64x1_t) {__builtin_aarch64_ssli_ndi (__a[0], __b[0], __c)};
21268 __extension__ extern __inline uint8x8_t
21269 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21270 vsli_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
21272 return __builtin_aarch64_usli_nv8qi_uuus (__a, __b, __c);
21275 __extension__ extern __inline uint16x4_t
21276 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21277 vsli_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
21279 return __builtin_aarch64_usli_nv4hi_uuus (__a, __b, __c);
21282 __extension__ extern __inline uint32x2_t
21283 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21284 vsli_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
21286 return __builtin_aarch64_usli_nv2si_uuus (__a, __b, __c);
21289 __extension__ extern __inline uint64x1_t
21290 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21291 vsli_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
21293 return (uint64x1_t) {__builtin_aarch64_usli_ndi_uuus (__a[0], __b[0], __c)};
21296 __extension__ extern __inline poly64x1_t
21297 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21298 vsli_n_p64 (poly64x1_t __a, poly64x1_t __b, const int __c)
21300 return (poly64x1_t) {__builtin_aarch64_ssli_ndi_ppps (__a[0], __b[0], __c)};
21303 __extension__ extern __inline int8x16_t
21304 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21305 vsliq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
21307 return (int8x16_t) __builtin_aarch64_ssli_nv16qi (__a, __b, __c);
21310 __extension__ extern __inline int16x8_t
21311 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21312 vsliq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
21314 return (int16x8_t) __builtin_aarch64_ssli_nv8hi (__a, __b, __c);
21317 __extension__ extern __inline int32x4_t
21318 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21319 vsliq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
21321 return (int32x4_t) __builtin_aarch64_ssli_nv4si (__a, __b, __c);
21324 __extension__ extern __inline int64x2_t
21325 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21326 vsliq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
21328 return (int64x2_t) __builtin_aarch64_ssli_nv2di (__a, __b, __c);
21331 __extension__ extern __inline uint8x16_t
21332 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21333 vsliq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
21335 return __builtin_aarch64_usli_nv16qi_uuus (__a, __b, __c);
21338 __extension__ extern __inline uint16x8_t
21339 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21340 vsliq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
21342 return __builtin_aarch64_usli_nv8hi_uuus (__a, __b, __c);
21345 __extension__ extern __inline uint32x4_t
21346 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21347 vsliq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
21349 return __builtin_aarch64_usli_nv4si_uuus (__a, __b, __c);
21352 __extension__ extern __inline uint64x2_t
21353 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21354 vsliq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
21356 return __builtin_aarch64_usli_nv2di_uuus (__a, __b, __c);
21359 __extension__ extern __inline poly64x2_t
21360 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21361 vsliq_n_p64 (poly64x2_t __a, poly64x2_t __b, const int __c)
21363 return __builtin_aarch64_ssli_nv2di_ppps (__a, __b, __c);
21366 __extension__ extern __inline int64_t
21367 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21368 vslid_n_s64 (int64_t __a, int64_t __b, const int __c)
21370 return __builtin_aarch64_ssli_ndi (__a, __b, __c);
21373 __extension__ extern __inline uint64_t
21374 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21375 vslid_n_u64 (uint64_t __a, uint64_t __b, const int __c)
21377 return __builtin_aarch64_usli_ndi_uuus (__a, __b, __c);
21380 /* vsqadd */
21382 __extension__ extern __inline uint8x8_t
21383 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21384 vsqadd_u8 (uint8x8_t __a, int8x8_t __b)
21386 return __builtin_aarch64_usqaddv8qi_uus (__a, __b);
21389 __extension__ extern __inline uint16x4_t
21390 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21391 vsqadd_u16 (uint16x4_t __a, int16x4_t __b)
21393 return __builtin_aarch64_usqaddv4hi_uus (__a, __b);
21396 __extension__ extern __inline uint32x2_t
21397 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21398 vsqadd_u32 (uint32x2_t __a, int32x2_t __b)
21400 return __builtin_aarch64_usqaddv2si_uus (__a, __b);
21403 __extension__ extern __inline uint64x1_t
21404 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21405 vsqadd_u64 (uint64x1_t __a, int64x1_t __b)
21407 return (uint64x1_t) {__builtin_aarch64_usqadddi_uus (__a[0], __b[0])};
21410 __extension__ extern __inline uint8x16_t
21411 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21412 vsqaddq_u8 (uint8x16_t __a, int8x16_t __b)
21414 return __builtin_aarch64_usqaddv16qi_uus (__a, __b);
21417 __extension__ extern __inline uint16x8_t
21418 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21419 vsqaddq_u16 (uint16x8_t __a, int16x8_t __b)
21421 return __builtin_aarch64_usqaddv8hi_uus (__a, __b);
21424 __extension__ extern __inline uint32x4_t
21425 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21426 vsqaddq_u32 (uint32x4_t __a, int32x4_t __b)
21428 return __builtin_aarch64_usqaddv4si_uus (__a, __b);
21431 __extension__ extern __inline uint64x2_t
21432 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21433 vsqaddq_u64 (uint64x2_t __a, int64x2_t __b)
21435 return __builtin_aarch64_usqaddv2di_uus (__a, __b);
21438 __extension__ extern __inline uint8_t
21439 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21440 vsqaddb_u8 (uint8_t __a, int8_t __b)
21442 return __builtin_aarch64_usqaddqi_uus (__a, __b);
21445 __extension__ extern __inline uint16_t
21446 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21447 vsqaddh_u16 (uint16_t __a, int16_t __b)
21449 return __builtin_aarch64_usqaddhi_uus (__a, __b);
21452 __extension__ extern __inline uint32_t
21453 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21454 vsqadds_u32 (uint32_t __a, int32_t __b)
21456 return __builtin_aarch64_usqaddsi_uus (__a, __b);
21459 __extension__ extern __inline uint64_t
21460 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21461 vsqaddd_u64 (uint64_t __a, int64_t __b)
21463 return __builtin_aarch64_usqadddi_uus (__a, __b);
21466 /* vsqrt */
21467 __extension__ extern __inline float32x2_t
21468 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21469 vsqrt_f32 (float32x2_t __a)
21471 return __builtin_aarch64_sqrtv2sf (__a);
21474 __extension__ extern __inline float32x4_t
21475 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21476 vsqrtq_f32 (float32x4_t __a)
21478 return __builtin_aarch64_sqrtv4sf (__a);
21481 __extension__ extern __inline float64x1_t
21482 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21483 vsqrt_f64 (float64x1_t __a)
21485 return (float64x1_t) { __builtin_aarch64_sqrtdf (__a[0]) };
21488 __extension__ extern __inline float64x2_t
21489 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21490 vsqrtq_f64 (float64x2_t __a)
21492 return __builtin_aarch64_sqrtv2df (__a);
21495 /* vsra */
21497 __extension__ extern __inline int8x8_t
21498 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21499 vsra_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
21501 return (int8x8_t) __builtin_aarch64_ssra_nv8qi (__a, __b, __c);
21504 __extension__ extern __inline int16x4_t
21505 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21506 vsra_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
21508 return (int16x4_t) __builtin_aarch64_ssra_nv4hi (__a, __b, __c);
21511 __extension__ extern __inline int32x2_t
21512 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21513 vsra_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
21515 return (int32x2_t) __builtin_aarch64_ssra_nv2si (__a, __b, __c);
21518 __extension__ extern __inline int64x1_t
21519 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21520 vsra_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
21522 return (int64x1_t) {__builtin_aarch64_ssra_ndi (__a[0], __b[0], __c)};
21525 __extension__ extern __inline uint8x8_t
21526 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21527 vsra_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
21529 return __builtin_aarch64_usra_nv8qi_uuus (__a, __b, __c);
21532 __extension__ extern __inline uint16x4_t
21533 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21534 vsra_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
21536 return __builtin_aarch64_usra_nv4hi_uuus (__a, __b, __c);
21539 __extension__ extern __inline uint32x2_t
21540 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21541 vsra_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
21543 return __builtin_aarch64_usra_nv2si_uuus (__a, __b, __c);
21546 __extension__ extern __inline uint64x1_t
21547 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21548 vsra_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
21550 return (uint64x1_t) {__builtin_aarch64_usra_ndi_uuus (__a[0], __b[0], __c)};
21553 __extension__ extern __inline int8x16_t
21554 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21555 vsraq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
21557 return (int8x16_t) __builtin_aarch64_ssra_nv16qi (__a, __b, __c);
21560 __extension__ extern __inline int16x8_t
21561 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21562 vsraq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
21564 return (int16x8_t) __builtin_aarch64_ssra_nv8hi (__a, __b, __c);
21567 __extension__ extern __inline int32x4_t
21568 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21569 vsraq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
21571 return (int32x4_t) __builtin_aarch64_ssra_nv4si (__a, __b, __c);
21574 __extension__ extern __inline int64x2_t
21575 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21576 vsraq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
21578 return (int64x2_t) __builtin_aarch64_ssra_nv2di (__a, __b, __c);
21581 __extension__ extern __inline uint8x16_t
21582 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21583 vsraq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
21585 return __builtin_aarch64_usra_nv16qi_uuus (__a, __b, __c);
21588 __extension__ extern __inline uint16x8_t
21589 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21590 vsraq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
21592 return __builtin_aarch64_usra_nv8hi_uuus (__a, __b, __c);
21595 __extension__ extern __inline uint32x4_t
21596 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21597 vsraq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
21599 return __builtin_aarch64_usra_nv4si_uuus (__a, __b, __c);
21602 __extension__ extern __inline uint64x2_t
21603 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21604 vsraq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
21606 return __builtin_aarch64_usra_nv2di_uuus (__a, __b, __c);
21609 __extension__ extern __inline int64_t
21610 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21611 vsrad_n_s64 (int64_t __a, int64_t __b, const int __c)
21613 return __builtin_aarch64_ssra_ndi (__a, __b, __c);
21616 __extension__ extern __inline uint64_t
21617 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21618 vsrad_n_u64 (uint64_t __a, uint64_t __b, const int __c)
21620 return __builtin_aarch64_usra_ndi_uuus (__a, __b, __c);
21623 /* vsri */
21625 __extension__ extern __inline int8x8_t
21626 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21627 vsri_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
21629 return (int8x8_t) __builtin_aarch64_ssri_nv8qi (__a, __b, __c);
21632 __extension__ extern __inline int16x4_t
21633 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21634 vsri_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
21636 return (int16x4_t) __builtin_aarch64_ssri_nv4hi (__a, __b, __c);
21639 __extension__ extern __inline int32x2_t
21640 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21641 vsri_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
21643 return (int32x2_t) __builtin_aarch64_ssri_nv2si (__a, __b, __c);
21646 __extension__ extern __inline int64x1_t
21647 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21648 vsri_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
21650 return (int64x1_t) {__builtin_aarch64_ssri_ndi (__a[0], __b[0], __c)};
21653 __extension__ extern __inline uint8x8_t
21654 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21655 vsri_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
21657 return __builtin_aarch64_usri_nv8qi_uuus (__a, __b, __c);
21660 __extension__ extern __inline uint16x4_t
21661 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21662 vsri_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
21664 return __builtin_aarch64_usri_nv4hi_uuus (__a, __b, __c);
21667 __extension__ extern __inline uint32x2_t
21668 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21669 vsri_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
21671 return __builtin_aarch64_usri_nv2si_uuus (__a, __b, __c);
21674 __extension__ extern __inline uint64x1_t
21675 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21676 vsri_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
21678 return (uint64x1_t) {__builtin_aarch64_usri_ndi_uuus (__a[0], __b[0], __c)};
21681 __extension__ extern __inline int8x16_t
21682 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21683 vsriq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
21685 return (int8x16_t) __builtin_aarch64_ssri_nv16qi (__a, __b, __c);
21688 __extension__ extern __inline int16x8_t
21689 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21690 vsriq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
21692 return (int16x8_t) __builtin_aarch64_ssri_nv8hi (__a, __b, __c);
21695 __extension__ extern __inline int32x4_t
21696 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21697 vsriq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
21699 return (int32x4_t) __builtin_aarch64_ssri_nv4si (__a, __b, __c);
21702 __extension__ extern __inline int64x2_t
21703 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21704 vsriq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
21706 return (int64x2_t) __builtin_aarch64_ssri_nv2di (__a, __b, __c);
21709 __extension__ extern __inline uint8x16_t
21710 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21711 vsriq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
21713 return __builtin_aarch64_usri_nv16qi_uuus (__a, __b, __c);
21716 __extension__ extern __inline uint16x8_t
21717 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21718 vsriq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
21720 return __builtin_aarch64_usri_nv8hi_uuus (__a, __b, __c);
21723 __extension__ extern __inline uint32x4_t
21724 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21725 vsriq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
21727 return __builtin_aarch64_usri_nv4si_uuus (__a, __b, __c);
21730 __extension__ extern __inline uint64x2_t
21731 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21732 vsriq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
21734 return __builtin_aarch64_usri_nv2di_uuus (__a, __b, __c);
21737 __extension__ extern __inline int64_t
21738 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21739 vsrid_n_s64 (int64_t __a, int64_t __b, const int __c)
21741 return __builtin_aarch64_ssri_ndi (__a, __b, __c);
21744 __extension__ extern __inline uint64_t
21745 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21746 vsrid_n_u64 (uint64_t __a, uint64_t __b, const int __c)
21748 return __builtin_aarch64_usri_ndi_uuus (__a, __b, __c);
21751 /* vst1 */
21753 __extension__ extern __inline void
21754 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21755 vst1_f16 (float16_t *__a, float16x4_t __b)
21757 __builtin_aarch64_st1v4hf (__a, __b);
21760 __extension__ extern __inline void
21761 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21762 vst1_f32 (float32_t *__a, float32x2_t __b)
21764 __builtin_aarch64_st1v2sf ((__builtin_aarch64_simd_sf *) __a, __b);
21767 __extension__ extern __inline void
21768 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21769 vst1_f64 (float64_t *__a, float64x1_t __b)
21771 *__a = __b[0];
21774 __extension__ extern __inline void
21775 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21776 vst1_p8 (poly8_t *__a, poly8x8_t __b)
21778 __builtin_aarch64_st1v8qi_sp ((__builtin_aarch64_simd_qi *) __a, __b);
21781 __extension__ extern __inline void
21782 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21783 vst1_p16 (poly16_t *__a, poly16x4_t __b)
21785 __builtin_aarch64_st1v4hi_sp ((__builtin_aarch64_simd_hi *) __a, __b);
21788 __extension__ extern __inline void
21789 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21790 vst1_p64 (poly64_t *__a, poly64x1_t __b)
21792 *__a = __b[0];
21795 __extension__ extern __inline void
21796 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21797 vst1_s8 (int8_t *__a, int8x8_t __b)
21799 __builtin_aarch64_st1v8qi ((__builtin_aarch64_simd_qi *) __a, __b);
21802 __extension__ extern __inline void
21803 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21804 vst1_s16 (int16_t *__a, int16x4_t __b)
21806 __builtin_aarch64_st1v4hi ((__builtin_aarch64_simd_hi *) __a, __b);
21809 __extension__ extern __inline void
21810 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21811 vst1_s32 (int32_t *__a, int32x2_t __b)
21813 __builtin_aarch64_st1v2si ((__builtin_aarch64_simd_si *) __a, __b);
21816 __extension__ extern __inline void
21817 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21818 vst1_s64 (int64_t *__a, int64x1_t __b)
21820 *__a = __b[0];
21823 __extension__ extern __inline void
21824 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21825 vst1_u8 (uint8_t *__a, uint8x8_t __b)
21827 __builtin_aarch64_st1v8qi_su ((__builtin_aarch64_simd_qi *) __a, __b);
21830 __extension__ extern __inline void
21831 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21832 vst1_u16 (uint16_t *__a, uint16x4_t __b)
21834 __builtin_aarch64_st1v4hi_su ((__builtin_aarch64_simd_hi *) __a, __b);
21837 __extension__ extern __inline void
21838 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21839 vst1_u32 (uint32_t *__a, uint32x2_t __b)
21841 __builtin_aarch64_st1v2si_su ((__builtin_aarch64_simd_si *) __a, __b);
21844 __extension__ extern __inline void
21845 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21846 vst1_u64 (uint64_t *__a, uint64x1_t __b)
21848 *__a = __b[0];
21851 /* vst1q */
21853 __extension__ extern __inline void
21854 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21855 vst1q_f16 (float16_t *__a, float16x8_t __b)
21857 __builtin_aarch64_st1v8hf (__a, __b);
21860 __extension__ extern __inline void
21861 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21862 vst1q_f32 (float32_t *__a, float32x4_t __b)
21864 __builtin_aarch64_st1v4sf ((__builtin_aarch64_simd_sf *) __a, __b);
21867 __extension__ extern __inline void
21868 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21869 vst1q_f64 (float64_t *__a, float64x2_t __b)
21871 __builtin_aarch64_st1v2df ((__builtin_aarch64_simd_df *) __a, __b);
21874 __extension__ extern __inline void
21875 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21876 vst1q_p8 (poly8_t *__a, poly8x16_t __b)
21878 __builtin_aarch64_st1v16qi_sp ((__builtin_aarch64_simd_qi *) __a, __b);
21881 __extension__ extern __inline void
21882 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21883 vst1q_p16 (poly16_t *__a, poly16x8_t __b)
21885 __builtin_aarch64_st1v8hi_sp ((__builtin_aarch64_simd_hi *) __a, __b);
21888 __extension__ extern __inline void
21889 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21890 vst1q_p64 (poly64_t *__a, poly64x2_t __b)
21892 __builtin_aarch64_st1v2di_sp ((__builtin_aarch64_simd_di *) __a, __b);
21895 __extension__ extern __inline void
21896 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21897 vst1q_s8 (int8_t *__a, int8x16_t __b)
21899 __builtin_aarch64_st1v16qi ((__builtin_aarch64_simd_qi *) __a, __b);
21902 __extension__ extern __inline void
21903 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21904 vst1q_s16 (int16_t *__a, int16x8_t __b)
21906 __builtin_aarch64_st1v8hi ((__builtin_aarch64_simd_hi *) __a, __b);
21909 __extension__ extern __inline void
21910 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21911 vst1q_s32 (int32_t *__a, int32x4_t __b)
21913 __builtin_aarch64_st1v4si ((__builtin_aarch64_simd_si *) __a, __b);
21916 __extension__ extern __inline void
21917 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21918 vst1q_s64 (int64_t *__a, int64x2_t __b)
21920 __builtin_aarch64_st1v2di ((__builtin_aarch64_simd_di *) __a, __b);
21923 __extension__ extern __inline void
21924 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21925 vst1q_u8 (uint8_t *__a, uint8x16_t __b)
21927 __builtin_aarch64_st1v16qi_su ((__builtin_aarch64_simd_qi *) __a, __b);
21930 __extension__ extern __inline void
21931 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21932 vst1q_u16 (uint16_t *__a, uint16x8_t __b)
21934 __builtin_aarch64_st1v8hi_su ((__builtin_aarch64_simd_hi *) __a, __b);
21937 __extension__ extern __inline void
21938 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21939 vst1q_u32 (uint32_t *__a, uint32x4_t __b)
21941 __builtin_aarch64_st1v4si_su ((__builtin_aarch64_simd_si *) __a, __b);
21944 __extension__ extern __inline void
21945 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21946 vst1q_u64 (uint64_t *__a, uint64x2_t __b)
21948 __builtin_aarch64_st1v2di_su ((__builtin_aarch64_simd_di *) __a, __b);
21951 /* vst1_lane */
21953 __extension__ extern __inline void
21954 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21955 vst1_lane_f16 (float16_t *__a, float16x4_t __b, const int __lane)
21957 *__a = __aarch64_vget_lane_any (__b, __lane);
21960 __extension__ extern __inline void
21961 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21962 vst1_lane_f32 (float32_t *__a, float32x2_t __b, const int __lane)
21964 *__a = __aarch64_vget_lane_any (__b, __lane);
21967 __extension__ extern __inline void
21968 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21969 vst1_lane_f64 (float64_t *__a, float64x1_t __b, const int __lane)
21971 *__a = __aarch64_vget_lane_any (__b, __lane);
21974 __extension__ extern __inline void
21975 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21976 vst1_lane_p8 (poly8_t *__a, poly8x8_t __b, const int __lane)
21978 *__a = __aarch64_vget_lane_any (__b, __lane);
21981 __extension__ extern __inline void
21982 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21983 vst1_lane_p16 (poly16_t *__a, poly16x4_t __b, const int __lane)
21985 *__a = __aarch64_vget_lane_any (__b, __lane);
21988 __extension__ extern __inline void
21989 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21990 vst1_lane_p64 (poly64_t *__a, poly64x1_t __b, const int __lane)
21992 *__a = __aarch64_vget_lane_any (__b, __lane);
21995 __extension__ extern __inline void
21996 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21997 vst1_lane_s8 (int8_t *__a, int8x8_t __b, const int __lane)
21999 *__a = __aarch64_vget_lane_any (__b, __lane);
22002 __extension__ extern __inline void
22003 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22004 vst1_lane_s16 (int16_t *__a, int16x4_t __b, const int __lane)
22006 *__a = __aarch64_vget_lane_any (__b, __lane);
22009 __extension__ extern __inline void
22010 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22011 vst1_lane_s32 (int32_t *__a, int32x2_t __b, const int __lane)
22013 *__a = __aarch64_vget_lane_any (__b, __lane);
22016 __extension__ extern __inline void
22017 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22018 vst1_lane_s64 (int64_t *__a, int64x1_t __b, const int __lane)
22020 *__a = __aarch64_vget_lane_any (__b, __lane);
22023 __extension__ extern __inline void
22024 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22025 vst1_lane_u8 (uint8_t *__a, uint8x8_t __b, const int __lane)
22027 *__a = __aarch64_vget_lane_any (__b, __lane);
22030 __extension__ extern __inline void
22031 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22032 vst1_lane_u16 (uint16_t *__a, uint16x4_t __b, const int __lane)
22034 *__a = __aarch64_vget_lane_any (__b, __lane);
22037 __extension__ extern __inline void
22038 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22039 vst1_lane_u32 (uint32_t *__a, uint32x2_t __b, const int __lane)
22041 *__a = __aarch64_vget_lane_any (__b, __lane);
22044 __extension__ extern __inline void
22045 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22046 vst1_lane_u64 (uint64_t *__a, uint64x1_t __b, const int __lane)
22048 *__a = __aarch64_vget_lane_any (__b, __lane);
22051 /* vst1q_lane */
22053 __extension__ extern __inline void
22054 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22055 vst1q_lane_f16 (float16_t *__a, float16x8_t __b, const int __lane)
22057 *__a = __aarch64_vget_lane_any (__b, __lane);
22060 __extension__ extern __inline void
22061 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22062 vst1q_lane_f32 (float32_t *__a, float32x4_t __b, const int __lane)
22064 *__a = __aarch64_vget_lane_any (__b, __lane);
22067 __extension__ extern __inline void
22068 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22069 vst1q_lane_f64 (float64_t *__a, float64x2_t __b, const int __lane)
22071 *__a = __aarch64_vget_lane_any (__b, __lane);
22074 __extension__ extern __inline void
22075 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22076 vst1q_lane_p8 (poly8_t *__a, poly8x16_t __b, const int __lane)
22078 *__a = __aarch64_vget_lane_any (__b, __lane);
22081 __extension__ extern __inline void
22082 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22083 vst1q_lane_p16 (poly16_t *__a, poly16x8_t __b, const int __lane)
22085 *__a = __aarch64_vget_lane_any (__b, __lane);
22088 __extension__ extern __inline void
22089 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22090 vst1q_lane_p64 (poly64_t *__a, poly64x2_t __b, const int __lane)
22092 *__a = __aarch64_vget_lane_any (__b, __lane);
22095 __extension__ extern __inline void
22096 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22097 vst1q_lane_s8 (int8_t *__a, int8x16_t __b, const int __lane)
22099 *__a = __aarch64_vget_lane_any (__b, __lane);
22102 __extension__ extern __inline void
22103 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22104 vst1q_lane_s16 (int16_t *__a, int16x8_t __b, const int __lane)
22106 *__a = __aarch64_vget_lane_any (__b, __lane);
22109 __extension__ extern __inline void
22110 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22111 vst1q_lane_s32 (int32_t *__a, int32x4_t __b, const int __lane)
22113 *__a = __aarch64_vget_lane_any (__b, __lane);
22116 __extension__ extern __inline void
22117 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22118 vst1q_lane_s64 (int64_t *__a, int64x2_t __b, const int __lane)
22120 *__a = __aarch64_vget_lane_any (__b, __lane);
22123 __extension__ extern __inline void
22124 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22125 vst1q_lane_u8 (uint8_t *__a, uint8x16_t __b, const int __lane)
22127 *__a = __aarch64_vget_lane_any (__b, __lane);
22130 __extension__ extern __inline void
22131 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22132 vst1q_lane_u16 (uint16_t *__a, uint16x8_t __b, const int __lane)
22134 *__a = __aarch64_vget_lane_any (__b, __lane);
22137 __extension__ extern __inline void
22138 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22139 vst1q_lane_u32 (uint32_t *__a, uint32x4_t __b, const int __lane)
22141 *__a = __aarch64_vget_lane_any (__b, __lane);
22144 __extension__ extern __inline void
22145 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22146 vst1q_lane_u64 (uint64_t *__a, uint64x2_t __b, const int __lane)
22148 *__a = __aarch64_vget_lane_any (__b, __lane);
22151 /* vst1x2 */
22153 __extension__ extern __inline void
22154 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22155 vst1_s64_x2 (int64_t * __a, int64x1x2_t __val)
22157 __builtin_aarch64_st1x2di ((__builtin_aarch64_simd_di *) __a, __val);
22160 __extension__ extern __inline void
22161 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22162 vst1_u64_x2 (uint64_t * __a, uint64x1x2_t __val)
22164 __builtin_aarch64_st1x2di_su ((__builtin_aarch64_simd_di *) __a, __val);
22167 __extension__ extern __inline void
22168 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22169 vst1_f64_x2 (float64_t * __a, float64x1x2_t __val)
22171 __builtin_aarch64_st1x2df ((__builtin_aarch64_simd_df *) __a, __val);
22174 __extension__ extern __inline void
22175 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22176 vst1_s8_x2 (int8_t * __a, int8x8x2_t __val)
22178 __builtin_aarch64_st1x2v8qi ((__builtin_aarch64_simd_qi *) __a, __val);
22181 __extension__ extern __inline void
22182 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22183 vst1_p8_x2 (poly8_t * __a, poly8x8x2_t __val)
22185 __builtin_aarch64_st1x2v8qi_sp ((__builtin_aarch64_simd_qi *) __a, __val);
22188 __extension__ extern __inline void
22189 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22190 vst1_s16_x2 (int16_t * __a, int16x4x2_t __val)
22192 __builtin_aarch64_st1x2v4hi ((__builtin_aarch64_simd_hi *) __a, __val);
22195 __extension__ extern __inline void
22196 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22197 vst1_p16_x2 (poly16_t * __a, poly16x4x2_t __val)
22199 __builtin_aarch64_st1x2v4hi_sp ((__builtin_aarch64_simd_hi *) __a, __val);
22202 __extension__ extern __inline void
22203 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22204 vst1_s32_x2 (int32_t * __a, int32x2x2_t __val)
22206 __builtin_aarch64_st1x2v2si ((__builtin_aarch64_simd_si *) __a, __val);
22209 __extension__ extern __inline void
22210 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22211 vst1_u8_x2 (uint8_t * __a, uint8x8x2_t __val)
22213 __builtin_aarch64_st1x2v8qi_su ((__builtin_aarch64_simd_qi *) __a, __val);
22216 __extension__ extern __inline void
22217 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22218 vst1_u16_x2 (uint16_t * __a, uint16x4x2_t __val)
22220 __builtin_aarch64_st1x2v4hi_su ((__builtin_aarch64_simd_hi *) __a, __val);
22223 __extension__ extern __inline void
22224 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22225 vst1_u32_x2 (uint32_t * __a, uint32x2x2_t __val)
22227 __builtin_aarch64_st1x2v2si_su ((__builtin_aarch64_simd_si *) __a, __val);
22230 __extension__ extern __inline void
22231 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22232 vst1_f16_x2 (float16_t * __a, float16x4x2_t __val)
22234 __builtin_aarch64_st1x2v4hf (__a, __val);
22237 __extension__ extern __inline void
22238 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22239 vst1_f32_x2 (float32_t * __a, float32x2x2_t __val)
22241 __builtin_aarch64_st1x2v2sf ((__builtin_aarch64_simd_sf *) __a, __val);
22244 __extension__ extern __inline void
22245 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22246 vst1_p64_x2 (poly64_t * __a, poly64x1x2_t __val)
22248 __builtin_aarch64_st1x2di_sp ((__builtin_aarch64_simd_di *) __a, __val);
22251 __extension__ extern __inline void
22252 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22253 vst1q_s8_x2 (int8_t * __a, int8x16x2_t __val)
22255 __builtin_aarch64_st1x2v16qi ((__builtin_aarch64_simd_qi *) __a, __val);
22258 __extension__ extern __inline void
22259 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22260 vst1q_p8_x2 (poly8_t * __a, poly8x16x2_t __val)
22262 __builtin_aarch64_st1x2v16qi_sp ((__builtin_aarch64_simd_qi *) __a, __val);
22265 __extension__ extern __inline void
22266 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22267 vst1q_s16_x2 (int16_t * __a, int16x8x2_t __val)
22269 __builtin_aarch64_st1x2v8hi ((__builtin_aarch64_simd_hi *) __a, __val);
22272 __extension__ extern __inline void
22273 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22274 vst1q_p16_x2 (poly16_t * __a, poly16x8x2_t __val)
22276 __builtin_aarch64_st1x2v8hi_sp ((__builtin_aarch64_simd_hi *) __a, __val);
22279 __extension__ extern __inline void
22280 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22281 vst1q_s32_x2 (int32_t * __a, int32x4x2_t __val)
22283 __builtin_aarch64_st1x2v4si ((__builtin_aarch64_simd_si *) __a, __val);
22286 __extension__ extern __inline void
22287 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22288 vst1q_s64_x2 (int64_t * __a, int64x2x2_t __val)
22290 __builtin_aarch64_st1x2v2di ((__builtin_aarch64_simd_di *) __a, __val);
22293 __extension__ extern __inline void
22294 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22295 vst1q_u8_x2 (uint8_t * __a, uint8x16x2_t __val)
22297 __builtin_aarch64_st1x2v16qi_su ((__builtin_aarch64_simd_qi *) __a, __val);
22300 __extension__ extern __inline void
22301 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22302 vst1q_u16_x2 (uint16_t * __a, uint16x8x2_t __val)
22304 __builtin_aarch64_st1x2v8hi_su ((__builtin_aarch64_simd_hi *) __a, __val);
22307 __extension__ extern __inline void
22308 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22309 vst1q_u32_x2 (uint32_t * __a, uint32x4x2_t __val)
22311 __builtin_aarch64_st1x2v4si_su ((__builtin_aarch64_simd_si *) __a, __val);
22314 __extension__ extern __inline void
22315 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22316 vst1q_u64_x2 (uint64_t * __a, uint64x2x2_t __val)
22318 __builtin_aarch64_st1x2v2di_su ((__builtin_aarch64_simd_di *) __a, __val);
22321 __extension__ extern __inline void
22322 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22323 vst1q_f16_x2 (float16_t * __a, float16x8x2_t __val)
22325 __builtin_aarch64_st1x2v8hf (__a, __val);
22328 __extension__ extern __inline void
22329 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22330 vst1q_f32_x2 (float32_t * __a, float32x4x2_t __val)
22332 __builtin_aarch64_st1x2v4sf ((__builtin_aarch64_simd_sf *) __a, __val);
22335 __extension__ extern __inline void
22336 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22337 vst1q_f64_x2 (float64_t * __a, float64x2x2_t __val)
22339 __builtin_aarch64_st1x2v2df ((__builtin_aarch64_simd_df *) __a, __val);
22342 __extension__ extern __inline void
22343 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22344 vst1q_p64_x2 (poly64_t * __a, poly64x2x2_t __val)
22346 __builtin_aarch64_st1x2v2di_sp ((__builtin_aarch64_simd_di *) __a, __val);
22349 /* vst1x3 */
22351 __extension__ extern __inline void
22352 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22353 vst1_s64_x3 (int64_t * __a, int64x1x3_t __val)
22355 __builtin_aarch64_st1x3di ((__builtin_aarch64_simd_di *) __a, __val);
22358 __extension__ extern __inline void
22359 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22360 vst1_u64_x3 (uint64_t * __a, uint64x1x3_t __val)
22362 __builtin_aarch64_st1x3di_su ((__builtin_aarch64_simd_di *) __a, __val);
22365 __extension__ extern __inline void
22366 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22367 vst1_f64_x3 (float64_t * __a, float64x1x3_t __val)
22369 __builtin_aarch64_st1x3df ((__builtin_aarch64_simd_df *) __a, __val);
22372 __extension__ extern __inline void
22373 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22374 vst1_s8_x3 (int8_t * __a, int8x8x3_t __val)
22376 __builtin_aarch64_st1x3v8qi ((__builtin_aarch64_simd_qi *) __a, __val);
22379 __extension__ extern __inline void
22380 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22381 vst1_p8_x3 (poly8_t * __a, poly8x8x3_t __val)
22383 __builtin_aarch64_st1x3v8qi_sp ((__builtin_aarch64_simd_qi *) __a, __val);
22386 __extension__ extern __inline void
22387 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22388 vst1_s16_x3 (int16_t * __a, int16x4x3_t __val)
22390 __builtin_aarch64_st1x3v4hi ((__builtin_aarch64_simd_hi *) __a, __val);
22393 __extension__ extern __inline void
22394 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22395 vst1_p16_x3 (poly16_t * __a, poly16x4x3_t __val)
22397 __builtin_aarch64_st1x3v4hi_sp ((__builtin_aarch64_simd_hi *) __a, __val);
22400 __extension__ extern __inline void
22401 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22402 vst1_s32_x3 (int32_t * __a, int32x2x3_t __val)
22404 __builtin_aarch64_st1x3v2si ((__builtin_aarch64_simd_si *) __a, __val);
22407 __extension__ extern __inline void
22408 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22409 vst1_u8_x3 (uint8_t * __a, uint8x8x3_t __val)
22411 __builtin_aarch64_st1x3v8qi_su ((__builtin_aarch64_simd_qi *) __a, __val);
22414 __extension__ extern __inline void
22415 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22416 vst1_u16_x3 (uint16_t * __a, uint16x4x3_t __val)
22418 __builtin_aarch64_st1x3v4hi_su ((__builtin_aarch64_simd_hi *) __a, __val);
22421 __extension__ extern __inline void
22422 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22423 vst1_u32_x3 (uint32_t * __a, uint32x2x3_t __val)
22425 __builtin_aarch64_st1x3v2si_su ((__builtin_aarch64_simd_si *) __a, __val);
22428 __extension__ extern __inline void
22429 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22430 vst1_f16_x3 (float16_t * __a, float16x4x3_t __val)
22432 __builtin_aarch64_st1x3v4hf ((__builtin_aarch64_simd_hf *) __a, __val);
22435 __extension__ extern __inline void
22436 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22437 vst1_f32_x3 (float32_t * __a, float32x2x3_t __val)
22439 __builtin_aarch64_st1x3v2sf ((__builtin_aarch64_simd_sf *) __a, __val);
22442 __extension__ extern __inline void
22443 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22444 vst1_p64_x3 (poly64_t * __a, poly64x1x3_t __val)
22446 __builtin_aarch64_st1x3di_sp ((__builtin_aarch64_simd_di *) __a, __val);
22449 __extension__ extern __inline void
22450 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22451 vst1q_s8_x3 (int8_t * __a, int8x16x3_t __val)
22453 __builtin_aarch64_st1x3v16qi ((__builtin_aarch64_simd_qi *) __a, __val);
22456 __extension__ extern __inline void
22457 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22458 vst1q_p8_x3 (poly8_t * __a, poly8x16x3_t __val)
22460 __builtin_aarch64_st1x3v16qi_sp ((__builtin_aarch64_simd_qi *) __a, __val);
22463 __extension__ extern __inline void
22464 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22465 vst1q_s16_x3 (int16_t * __a, int16x8x3_t __val)
22467 __builtin_aarch64_st1x3v8hi ((__builtin_aarch64_simd_hi *) __a, __val);
22470 __extension__ extern __inline void
22471 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22472 vst1q_p16_x3 (poly16_t * __a, poly16x8x3_t __val)
22474 __builtin_aarch64_st1x3v8hi_sp ((__builtin_aarch64_simd_hi *) __a, __val);
22477 __extension__ extern __inline void
22478 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22479 vst1q_s32_x3 (int32_t * __a, int32x4x3_t __val)
22481 __builtin_aarch64_st1x3v4si ((__builtin_aarch64_simd_si *) __a, __val);
22484 __extension__ extern __inline void
22485 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22486 vst1q_s64_x3 (int64_t * __a, int64x2x3_t __val)
22488 __builtin_aarch64_st1x3v2di ((__builtin_aarch64_simd_di *) __a,
22489 (int64x2x3_t) __val);
22492 __extension__ extern __inline void
22493 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22494 vst1q_u8_x3 (uint8_t * __a, uint8x16x3_t __val)
22496 __builtin_aarch64_st1x3v16qi_su ((__builtin_aarch64_simd_qi *) __a, __val);
22499 __extension__ extern __inline void
22500 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22501 vst1q_u16_x3 (uint16_t * __a, uint16x8x3_t __val)
22503 __builtin_aarch64_st1x3v8hi_su ((__builtin_aarch64_simd_hi *) __a, __val);
22506 __extension__ extern __inline void
22507 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22508 vst1q_u32_x3 (uint32_t * __a, uint32x4x3_t __val)
22510 __builtin_aarch64_st1x3v4si_su ((__builtin_aarch64_simd_si *) __a, __val);
22513 __extension__ extern __inline void
22514 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22515 vst1q_u64_x3 (uint64_t * __a, uint64x2x3_t __val)
22517 __builtin_aarch64_st1x3v2di_su ((__builtin_aarch64_simd_di *) __a, __val);
22520 __extension__ extern __inline void
22521 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22522 vst1q_f16_x3 (float16_t * __a, float16x8x3_t __val)
22524 __builtin_aarch64_st1x3v8hf ((__builtin_aarch64_simd_hf *) __a, __val);
22527 __extension__ extern __inline void
22528 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22529 vst1q_f32_x3 (float32_t * __a, float32x4x3_t __val)
22531 __builtin_aarch64_st1x3v4sf ((__builtin_aarch64_simd_sf *) __a, __val);
22534 __extension__ extern __inline void
22535 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22536 vst1q_f64_x3 (float64_t * __a, float64x2x3_t __val)
22538 __builtin_aarch64_st1x3v2df ((__builtin_aarch64_simd_df *) __a, __val);
22541 __extension__ extern __inline void
22542 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22543 vst1q_p64_x3 (poly64_t * __a, poly64x2x3_t __val)
22545 __builtin_aarch64_st1x3v2di_sp ((__builtin_aarch64_simd_di *) __a, __val);
22548 /* vst1(q)_x4. */
22550 __extension__ extern __inline void
22551 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22552 vst1_s8_x4 (int8_t * __a, int8x8x4_t __val)
22554 __builtin_aarch64_st1x4v8qi ((__builtin_aarch64_simd_qi *) __a, __val);
22557 __extension__ extern __inline void
22558 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22559 vst1q_s8_x4 (int8_t * __a, int8x16x4_t __val)
22561 __builtin_aarch64_st1x4v16qi ((__builtin_aarch64_simd_qi *) __a, __val);
22564 __extension__ extern __inline void
22565 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22566 vst1_s16_x4 (int16_t * __a, int16x4x4_t __val)
22568 __builtin_aarch64_st1x4v4hi ((__builtin_aarch64_simd_hi *) __a, __val);
22571 __extension__ extern __inline void
22572 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22573 vst1q_s16_x4 (int16_t * __a, int16x8x4_t __val)
22575 __builtin_aarch64_st1x4v8hi ((__builtin_aarch64_simd_hi *) __a, __val);
22578 __extension__ extern __inline void
22579 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22580 vst1_s32_x4 (int32_t * __a, int32x2x4_t __val)
22582 __builtin_aarch64_st1x4v2si ((__builtin_aarch64_simd_si *) __a, __val);
22585 __extension__ extern __inline void
22586 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22587 vst1q_s32_x4 (int32_t * __a, int32x4x4_t __val)
22589 __builtin_aarch64_st1x4v4si ((__builtin_aarch64_simd_si *) __a, __val);
22592 __extension__ extern __inline void
22593 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22594 vst1_u8_x4 (uint8_t * __a, uint8x8x4_t __val)
22596 __builtin_aarch64_st1x4v8qi_su ((__builtin_aarch64_simd_qi *) __a, __val);
22599 __extension__ extern __inline void
22600 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22601 vst1q_u8_x4 (uint8_t * __a, uint8x16x4_t __val)
22603 __builtin_aarch64_st1x4v16qi_su ((__builtin_aarch64_simd_qi *) __a, __val);
22606 __extension__ extern __inline void
22607 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22608 vst1_u16_x4 (uint16_t * __a, uint16x4x4_t __val)
22610 __builtin_aarch64_st1x4v4hi_su ((__builtin_aarch64_simd_hi *) __a, __val);
22613 __extension__ extern __inline void
22614 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22615 vst1q_u16_x4 (uint16_t * __a, uint16x8x4_t __val)
22617 __builtin_aarch64_st1x4v8hi_su ((__builtin_aarch64_simd_hi *) __a, __val);
22620 __extension__ extern __inline void
22621 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22622 vst1_u32_x4 (uint32_t * __a, uint32x2x4_t __val)
22624 __builtin_aarch64_st1x4v2si_su ((__builtin_aarch64_simd_si *) __a, __val);
22627 __extension__ extern __inline void
22628 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22629 vst1q_u32_x4 (uint32_t * __a, uint32x4x4_t __val)
22631 __builtin_aarch64_st1x4v4si_su ((__builtin_aarch64_simd_si *) __a, __val);
22634 __extension__ extern __inline void
22635 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22636 vst1_f16_x4 (float16_t * __a, float16x4x4_t __val)
22638 __builtin_aarch64_st1x4v4hf ((__builtin_aarch64_simd_hf *) __a, __val);
22641 __extension__ extern __inline void
22642 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22643 vst1q_f16_x4 (float16_t * __a, float16x8x4_t __val)
22645 __builtin_aarch64_st1x4v8hf ((__builtin_aarch64_simd_hf *) __a, __val);
22648 __extension__ extern __inline void
22649 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22650 vst1_f32_x4 (float32_t * __a, float32x2x4_t __val)
22652 __builtin_aarch64_st1x4v2sf ((__builtin_aarch64_simd_sf *) __a, __val);
22655 __extension__ extern __inline void
22656 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22657 vst1q_f32_x4 (float32_t * __a, float32x4x4_t __val)
22659 __builtin_aarch64_st1x4v4sf ((__builtin_aarch64_simd_sf *) __a, __val);
22662 __extension__ extern __inline void
22663 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22664 vst1_p8_x4 (poly8_t * __a, poly8x8x4_t __val)
22666 __builtin_aarch64_st1x4v8qi_sp ((__builtin_aarch64_simd_qi *) __a, __val);
22669 __extension__ extern __inline void
22670 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22671 vst1q_p8_x4 (poly8_t * __a, poly8x16x4_t __val)
22673 __builtin_aarch64_st1x4v16qi_sp ((__builtin_aarch64_simd_qi *) __a, __val);
22676 __extension__ extern __inline void
22677 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22678 vst1_p16_x4 (poly16_t * __a, poly16x4x4_t __val)
22680 __builtin_aarch64_st1x4v4hi_sp ((__builtin_aarch64_simd_hi *) __a, __val);
22683 __extension__ extern __inline void
22684 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22685 vst1q_p16_x4 (poly16_t * __a, poly16x8x4_t __val)
22687 __builtin_aarch64_st1x4v8hi_sp ((__builtin_aarch64_simd_hi *) __a, __val);
22690 __extension__ extern __inline void
22691 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22692 vst1_s64_x4 (int64_t * __a, int64x1x4_t __val)
22694 __builtin_aarch64_st1x4di ((__builtin_aarch64_simd_di *) __a, __val);
22697 __extension__ extern __inline void
22698 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22699 vst1_u64_x4 (uint64_t * __a, uint64x1x4_t __val)
22701 __builtin_aarch64_st1x4di_su ((__builtin_aarch64_simd_di *) __a, __val);
22704 __extension__ extern __inline void
22705 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22706 vst1_p64_x4 (poly64_t * __a, poly64x1x4_t __val)
22708 __builtin_aarch64_st1x4di_sp ((__builtin_aarch64_simd_di *) __a, __val);
22711 __extension__ extern __inline void
22712 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22713 vst1q_s64_x4 (int64_t * __a, int64x2x4_t __val)
22715 __builtin_aarch64_st1x4v2di ((__builtin_aarch64_simd_di *) __a, __val);
22718 __extension__ extern __inline void
22719 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22720 vst1q_u64_x4 (uint64_t * __a, uint64x2x4_t __val)
22722 __builtin_aarch64_st1x4v2di_su ((__builtin_aarch64_simd_di *) __a, __val);
22725 __extension__ extern __inline void
22726 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22727 vst1q_p64_x4 (poly64_t * __a, poly64x2x4_t __val)
22729 __builtin_aarch64_st1x4v2di_sp ((__builtin_aarch64_simd_di *) __a, __val);
22732 __extension__ extern __inline void
22733 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22734 vst1_f64_x4 (float64_t * __a, float64x1x4_t __val)
22736 __builtin_aarch64_st1x4df ((__builtin_aarch64_simd_df *) __a, __val);
22739 __extension__ extern __inline void
22740 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22741 vst1q_f64_x4 (float64_t * __a, float64x2x4_t __val)
22743 __builtin_aarch64_st1x4v2df ((__builtin_aarch64_simd_df *) __a, __val);
22746 /* vstn */
22748 __extension__ extern __inline void
22749 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22750 vst2_s64 (int64_t * __a, int64x1x2_t __val)
22752 __builtin_aarch64_st2di ((__builtin_aarch64_simd_di *) __a, __val);
22755 __extension__ extern __inline void
22756 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22757 vst2_u64 (uint64_t * __a, uint64x1x2_t __val)
22759 __builtin_aarch64_st2di_su ((__builtin_aarch64_simd_di *) __a, __val);
22762 __extension__ extern __inline void
22763 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22764 vst2_f64 (float64_t * __a, float64x1x2_t __val)
22766 __builtin_aarch64_st2df ((__builtin_aarch64_simd_df *) __a, __val);
22769 __extension__ extern __inline void
22770 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22771 vst2_s8 (int8_t * __a, int8x8x2_t __val)
22773 __builtin_aarch64_st2v8qi ((__builtin_aarch64_simd_qi *) __a, __val);
22776 __extension__ extern __inline void
22777 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22778 vst2_p8 (poly8_t * __a, poly8x8x2_t __val)
22780 __builtin_aarch64_st2v8qi_sp ((__builtin_aarch64_simd_qi *) __a, __val);
22783 __extension__ extern __inline void
22784 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22785 vst2_s16 (int16_t * __a, int16x4x2_t __val)
22787 __builtin_aarch64_st2v4hi ((__builtin_aarch64_simd_hi *) __a, __val);
22790 __extension__ extern __inline void
22791 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22792 vst2_p16 (poly16_t * __a, poly16x4x2_t __val)
22794 __builtin_aarch64_st2v4hi_sp ((__builtin_aarch64_simd_hi *) __a, __val);
22797 __extension__ extern __inline void
22798 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22799 vst2_s32 (int32_t * __a, int32x2x2_t __val)
22801 __builtin_aarch64_st2v2si ((__builtin_aarch64_simd_si *) __a, __val);
22804 __extension__ extern __inline void
22805 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22806 vst2_u8 (uint8_t * __a, uint8x8x2_t __val)
22808 __builtin_aarch64_st2v8qi_su ((__builtin_aarch64_simd_qi *) __a, __val);
22811 __extension__ extern __inline void
22812 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22813 vst2_u16 (uint16_t * __a, uint16x4x2_t __val)
22815 __builtin_aarch64_st2v4hi_su ((__builtin_aarch64_simd_hi *) __a, __val);
22818 __extension__ extern __inline void
22819 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22820 vst2_u32 (uint32_t * __a, uint32x2x2_t __val)
22822 __builtin_aarch64_st2v2si_su ((__builtin_aarch64_simd_si *) __a, __val);
22825 __extension__ extern __inline void
22826 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22827 vst2_f16 (float16_t * __a, float16x4x2_t __val)
22829 __builtin_aarch64_st2v4hf ((__builtin_aarch64_simd_hf *) __a, __val);
22832 __extension__ extern __inline void
22833 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22834 vst2_f32 (float32_t * __a, float32x2x2_t __val)
22836 __builtin_aarch64_st2v2sf ((__builtin_aarch64_simd_sf *) __a, __val);
22839 __extension__ extern __inline void
22840 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22841 vst2_p64 (poly64_t * __a, poly64x1x2_t __val)
22843 __builtin_aarch64_st2di_sp ((__builtin_aarch64_simd_di *) __a, __val);
22846 __extension__ extern __inline void
22847 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22848 vst2q_s8 (int8_t * __a, int8x16x2_t __val)
22850 __builtin_aarch64_st2v16qi ((__builtin_aarch64_simd_qi *) __a, __val);
22853 __extension__ extern __inline void
22854 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22855 vst2q_p8 (poly8_t * __a, poly8x16x2_t __val)
22857 __builtin_aarch64_st2v16qi_sp ((__builtin_aarch64_simd_qi *) __a, __val);
22860 __extension__ extern __inline void
22861 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22862 vst2q_s16 (int16_t * __a, int16x8x2_t __val)
22864 __builtin_aarch64_st2v8hi ((__builtin_aarch64_simd_hi *) __a, __val);
22867 __extension__ extern __inline void
22868 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22869 vst2q_p16 (poly16_t * __a, poly16x8x2_t __val)
22871 __builtin_aarch64_st2v8hi_sp ((__builtin_aarch64_simd_hi *) __a, __val);
22874 __extension__ extern __inline void
22875 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22876 vst2q_s32 (int32_t * __a, int32x4x2_t __val)
22878 __builtin_aarch64_st2v4si ((__builtin_aarch64_simd_si *) __a, __val);
22881 __extension__ extern __inline void
22882 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22883 vst2q_s64 (int64_t * __a, int64x2x2_t __val)
22885 __builtin_aarch64_st2v2di ((__builtin_aarch64_simd_di *) __a, __val);
22888 __extension__ extern __inline void
22889 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22890 vst2q_u8 (uint8_t * __a, uint8x16x2_t __val)
22892 __builtin_aarch64_st2v16qi_su ((__builtin_aarch64_simd_qi *) __a, __val);
22895 __extension__ extern __inline void
22896 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22897 vst2q_u16 (uint16_t * __a, uint16x8x2_t __val)
22899 __builtin_aarch64_st2v8hi_su ((__builtin_aarch64_simd_hi *) __a, __val);
22902 __extension__ extern __inline void
22903 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22904 vst2q_u32 (uint32_t * __a, uint32x4x2_t __val)
22906 __builtin_aarch64_st2v4si_su ((__builtin_aarch64_simd_si *) __a, __val);
22909 __extension__ extern __inline void
22910 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22911 vst2q_u64 (uint64_t * __a, uint64x2x2_t __val)
22913 __builtin_aarch64_st2v2di_su ((__builtin_aarch64_simd_di *) __a, __val);
22916 __extension__ extern __inline void
22917 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22918 vst2q_f16 (float16_t * __a, float16x8x2_t __val)
22920 __builtin_aarch64_st2v8hf ((__builtin_aarch64_simd_hf *) __a, __val);
22923 __extension__ extern __inline void
22924 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22925 vst2q_f32 (float32_t * __a, float32x4x2_t __val)
22927 __builtin_aarch64_st2v4sf ((__builtin_aarch64_simd_sf *) __a, __val);
22930 __extension__ extern __inline void
22931 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22932 vst2q_f64 (float64_t * __a, float64x2x2_t __val)
22934 __builtin_aarch64_st2v2df ((__builtin_aarch64_simd_df *) __a, __val);
22937 __extension__ extern __inline void
22938 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22939 vst2q_p64 (poly64_t * __a, poly64x2x2_t __val)
22941 __builtin_aarch64_st2v2di_sp ((__builtin_aarch64_simd_di *) __a, __val);
22944 __extension__ extern __inline void
22945 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22946 vst3_s64 (int64_t * __a, int64x1x3_t __val)
22948 __builtin_aarch64_st3di ((__builtin_aarch64_simd_di *) __a, __val);
22951 __extension__ extern __inline void
22952 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22953 vst3_u64 (uint64_t * __a, uint64x1x3_t __val)
22955 __builtin_aarch64_st3di_su ((__builtin_aarch64_simd_di *) __a, __val);
22958 __extension__ extern __inline void
22959 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22960 vst3_f64 (float64_t * __a, float64x1x3_t __val)
22962 __builtin_aarch64_st3df ((__builtin_aarch64_simd_df *) __a, __val);
22965 __extension__ extern __inline void
22966 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22967 vst3_s8 (int8_t * __a, int8x8x3_t __val)
22969 __builtin_aarch64_st3v8qi ((__builtin_aarch64_simd_qi *) __a, __val);
22972 __extension__ extern __inline void
22973 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22974 vst3_p8 (poly8_t * __a, poly8x8x3_t __val)
22976 __builtin_aarch64_st3v8qi_sp ((__builtin_aarch64_simd_qi *) __a, __val);
22979 __extension__ extern __inline void
22980 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22981 vst3_s16 (int16_t * __a, int16x4x3_t __val)
22983 __builtin_aarch64_st3v4hi ((__builtin_aarch64_simd_hi *) __a, __val);
22986 __extension__ extern __inline void
22987 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22988 vst3_p16 (poly16_t * __a, poly16x4x3_t __val)
22990 __builtin_aarch64_st3v4hi_sp ((__builtin_aarch64_simd_hi *) __a, __val);
22993 __extension__ extern __inline void
22994 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22995 vst3_s32 (int32_t * __a, int32x2x3_t __val)
22997 __builtin_aarch64_st3v2si ((__builtin_aarch64_simd_si *) __a, __val);
23000 __extension__ extern __inline void
23001 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23002 vst3_u8 (uint8_t * __a, uint8x8x3_t __val)
23004 __builtin_aarch64_st3v8qi_su ((__builtin_aarch64_simd_qi *) __a, __val);
23007 __extension__ extern __inline void
23008 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23009 vst3_u16 (uint16_t * __a, uint16x4x3_t __val)
23011 __builtin_aarch64_st3v4hi_su ((__builtin_aarch64_simd_hi *) __a, __val);
23014 __extension__ extern __inline void
23015 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23016 vst3_u32 (uint32_t * __a, uint32x2x3_t __val)
23018 __builtin_aarch64_st3v2si_su ((__builtin_aarch64_simd_si *) __a, __val);
23021 __extension__ extern __inline void
23022 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23023 vst3_f16 (float16_t * __a, float16x4x3_t __val)
23025 __builtin_aarch64_st3v4hf ((__builtin_aarch64_simd_hf *) __a, __val);
23028 __extension__ extern __inline void
23029 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23030 vst3_f32 (float32_t * __a, float32x2x3_t __val)
23032 __builtin_aarch64_st3v2sf ((__builtin_aarch64_simd_sf *) __a, __val);
23035 __extension__ extern __inline void
23036 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23037 vst3_p64 (poly64_t * __a, poly64x1x3_t __val)
23039 __builtin_aarch64_st3di_sp ((__builtin_aarch64_simd_di *) __a, __val);
23042 __extension__ extern __inline void
23043 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23044 vst3q_s8 (int8_t * __a, int8x16x3_t __val)
23046 __builtin_aarch64_st3v16qi ((__builtin_aarch64_simd_qi *) __a, __val);
23049 __extension__ extern __inline void
23050 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23051 vst3q_p8 (poly8_t * __a, poly8x16x3_t __val)
23053 __builtin_aarch64_st3v16qi_sp ((__builtin_aarch64_simd_qi *) __a, __val);
23056 __extension__ extern __inline void
23057 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23058 vst3q_s16 (int16_t * __a, int16x8x3_t __val)
23060 __builtin_aarch64_st3v8hi ((__builtin_aarch64_simd_hi *) __a, __val);
23063 __extension__ extern __inline void
23064 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23065 vst3q_p16 (poly16_t * __a, poly16x8x3_t __val)
23067 __builtin_aarch64_st3v8hi_sp ((__builtin_aarch64_simd_hi *) __a, __val);
23070 __extension__ extern __inline void
23071 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23072 vst3q_s32 (int32_t * __a, int32x4x3_t __val)
23074 __builtin_aarch64_st3v4si ((__builtin_aarch64_simd_si *) __a, __val);
23077 __extension__ extern __inline void
23078 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23079 vst3q_s64 (int64_t * __a, int64x2x3_t __val)
23081 __builtin_aarch64_st3v2di ((__builtin_aarch64_simd_di *) __a, __val);
23084 __extension__ extern __inline void
23085 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23086 vst3q_u8 (uint8_t * __a, uint8x16x3_t __val)
23088 __builtin_aarch64_st3v16qi_su ((__builtin_aarch64_simd_qi *) __a, __val);
23091 __extension__ extern __inline void
23092 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23093 vst3q_u16 (uint16_t * __a, uint16x8x3_t __val)
23095 __builtin_aarch64_st3v8hi_su ((__builtin_aarch64_simd_hi *) __a, __val);
23098 __extension__ extern __inline void
23099 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23100 vst3q_u32 (uint32_t * __a, uint32x4x3_t __val)
23102 __builtin_aarch64_st3v4si_su ((__builtin_aarch64_simd_si *) __a, __val);
23105 __extension__ extern __inline void
23106 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23107 vst3q_u64 (uint64_t * __a, uint64x2x3_t __val)
23109 __builtin_aarch64_st3v2di_su ((__builtin_aarch64_simd_di *) __a, __val);
23112 __extension__ extern __inline void
23113 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23114 vst3q_f16 (float16_t * __a, float16x8x3_t __val)
23116 __builtin_aarch64_st3v8hf ((__builtin_aarch64_simd_hf *) __a, __val);
23119 __extension__ extern __inline void
23120 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23121 vst3q_f32 (float32_t * __a, float32x4x3_t __val)
23123 __builtin_aarch64_st3v4sf ((__builtin_aarch64_simd_sf *) __a, __val);
23126 __extension__ extern __inline void
23127 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23128 vst3q_f64 (float64_t * __a, float64x2x3_t __val)
23130 __builtin_aarch64_st3v2df ((__builtin_aarch64_simd_df *) __a, __val);
23133 __extension__ extern __inline void
23134 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23135 vst3q_p64 (poly64_t * __a, poly64x2x3_t __val)
23137 __builtin_aarch64_st3v2di_sp ((__builtin_aarch64_simd_di *) __a, __val);
23140 __extension__ extern __inline void
23141 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23142 vst4_s64 (int64_t * __a, int64x1x4_t __val)
23144 __builtin_aarch64_st4di ((__builtin_aarch64_simd_di *) __a, __val);
23147 __extension__ extern __inline void
23148 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23149 vst4_u64 (uint64_t * __a, uint64x1x4_t __val)
23151 __builtin_aarch64_st4di_su ((__builtin_aarch64_simd_di *) __a, __val);
23154 __extension__ extern __inline void
23155 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23156 vst4_f64 (float64_t * __a, float64x1x4_t __val)
23158 __builtin_aarch64_st4df ((__builtin_aarch64_simd_df *) __a, __val);
23161 __extension__ extern __inline void
23162 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23163 vst4_s8 (int8_t * __a, int8x8x4_t __val)
23165 __builtin_aarch64_st4v8qi ((__builtin_aarch64_simd_qi *) __a, __val);
23168 __extension__ extern __inline void
23169 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23170 vst4_p8 (poly8_t * __a, poly8x8x4_t __val)
23172 __builtin_aarch64_st4v8qi_sp ((__builtin_aarch64_simd_qi *) __a, __val);
23175 __extension__ extern __inline void
23176 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23177 vst4_s16 (int16_t * __a, int16x4x4_t __val)
23179 __builtin_aarch64_st4v4hi ((__builtin_aarch64_simd_hi *) __a, __val);
23182 __extension__ extern __inline void
23183 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23184 vst4_p16 (poly16_t * __a, poly16x4x4_t __val)
23186 __builtin_aarch64_st4v4hi_sp ((__builtin_aarch64_simd_hi *) __a, __val);
23189 __extension__ extern __inline void
23190 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23191 vst4_s32 (int32_t * __a, int32x2x4_t __val)
23193 __builtin_aarch64_st4v2si ((__builtin_aarch64_simd_si *) __a, __val);
23196 __extension__ extern __inline void
23197 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23198 vst4_u8 (uint8_t * __a, uint8x8x4_t __val)
23200 __builtin_aarch64_st4v8qi_su ((__builtin_aarch64_simd_qi *) __a, __val);
23203 __extension__ extern __inline void
23204 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23205 vst4_u16 (uint16_t * __a, uint16x4x4_t __val)
23207 __builtin_aarch64_st4v4hi_su ((__builtin_aarch64_simd_hi *) __a, __val);
23210 __extension__ extern __inline void
23211 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23212 vst4_u32 (uint32_t * __a, uint32x2x4_t __val)
23214 __builtin_aarch64_st4v2si_su ((__builtin_aarch64_simd_si *) __a, __val);
23217 __extension__ extern __inline void
23218 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23219 vst4_f16 (float16_t * __a, float16x4x4_t __val)
23221 __builtin_aarch64_st4v4hf ((__builtin_aarch64_simd_hf *) __a, __val);
23224 __extension__ extern __inline void
23225 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23226 vst4_f32 (float32_t * __a, float32x2x4_t __val)
23228 __builtin_aarch64_st4v2sf ((__builtin_aarch64_simd_sf *) __a, __val);
23231 __extension__ extern __inline void
23232 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23233 vst4_p64 (poly64_t * __a, poly64x1x4_t __val)
23235 __builtin_aarch64_st4di_sp ((__builtin_aarch64_simd_di *) __a, __val);
23238 __extension__ extern __inline void
23239 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23240 vst4q_s8 (int8_t * __a, int8x16x4_t __val)
23242 __builtin_aarch64_st4v16qi ((__builtin_aarch64_simd_qi *) __a, __val);
23245 __extension__ extern __inline void
23246 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23247 vst4q_p8 (poly8_t * __a, poly8x16x4_t __val)
23249 __builtin_aarch64_st4v16qi_sp ((__builtin_aarch64_simd_qi *) __a, __val);
23252 __extension__ extern __inline void
23253 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23254 vst4q_s16 (int16_t * __a, int16x8x4_t __val)
23256 __builtin_aarch64_st4v8hi ((__builtin_aarch64_simd_hi *) __a, __val);
23259 __extension__ extern __inline void
23260 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23261 vst4q_p16 (poly16_t * __a, poly16x8x4_t __val)
23263 __builtin_aarch64_st4v8hi_sp ((__builtin_aarch64_simd_hi *) __a, __val);
23266 __extension__ extern __inline void
23267 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23268 vst4q_s32 (int32_t * __a, int32x4x4_t __val)
23270 __builtin_aarch64_st4v4si ((__builtin_aarch64_simd_si *) __a, __val);
23273 __extension__ extern __inline void
23274 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23275 vst4q_s64 (int64_t * __a, int64x2x4_t __val)
23277 __builtin_aarch64_st4v2di ((__builtin_aarch64_simd_di *) __a, __val);
23280 __extension__ extern __inline void
23281 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23282 vst4q_u8 (uint8_t * __a, uint8x16x4_t __val)
23284 __builtin_aarch64_st4v16qi_su ((__builtin_aarch64_simd_qi *) __a, __val);
23287 __extension__ extern __inline void
23288 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23289 vst4q_u16 (uint16_t * __a, uint16x8x4_t __val)
23291 __builtin_aarch64_st4v8hi_su ((__builtin_aarch64_simd_hi *) __a, __val);
23294 __extension__ extern __inline void
23295 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23296 vst4q_u32 (uint32_t * __a, uint32x4x4_t __val)
23298 __builtin_aarch64_st4v4si_su ((__builtin_aarch64_simd_si *) __a, __val);
23301 __extension__ extern __inline void
23302 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23303 vst4q_u64 (uint64_t * __a, uint64x2x4_t __val)
23305 __builtin_aarch64_st4v2di_su ((__builtin_aarch64_simd_di *) __a, __val);
23308 __extension__ extern __inline void
23309 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23310 vst4q_f16 (float16_t * __a, float16x8x4_t __val)
23312 __builtin_aarch64_st4v8hf ((__builtin_aarch64_simd_hf *) __a, __val);
23315 __extension__ extern __inline void
23316 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23317 vst4q_f32 (float32_t * __a, float32x4x4_t __val)
23319 __builtin_aarch64_st4v4sf ((__builtin_aarch64_simd_sf *) __a, __val);
23322 __extension__ extern __inline void
23323 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23324 vst4q_f64 (float64_t * __a, float64x2x4_t __val)
23326 __builtin_aarch64_st4v2df ((__builtin_aarch64_simd_df *) __a, __val);
23329 __extension__ extern __inline void
23330 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23331 vst4q_p64 (poly64_t * __a, poly64x2x4_t __val)
23333 __builtin_aarch64_st4v2di_sp ((__builtin_aarch64_simd_di *) __a, __val);
23336 __extension__ extern __inline void
23337 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23338 vstrq_p128 (poly128_t * __ptr, poly128_t __val)
23340 *__ptr = __val;
23343 /* vsub */
23345 __extension__ extern __inline int64_t
23346 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23347 vsubd_s64 (int64_t __a, int64_t __b)
23349 return __a - __b;
23352 __extension__ extern __inline uint64_t
23353 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23354 vsubd_u64 (uint64_t __a, uint64_t __b)
23356 return __a - __b;
23359 /* vtbx1 */
23361 __extension__ extern __inline int8x8_t
23362 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23363 vtbx1_s8 (int8x8_t __r, int8x8_t __tab, int8x8_t __idx)
23365 uint8x8_t __mask = vclt_u8 (vreinterpret_u8_s8 (__idx),
23366 vmov_n_u8 (8));
23367 int8x8_t __tbl = vtbl1_s8 (__tab, __idx);
23369 return vbsl_s8 (__mask, __tbl, __r);
23372 __extension__ extern __inline uint8x8_t
23373 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23374 vtbx1_u8 (uint8x8_t __r, uint8x8_t __tab, uint8x8_t __idx)
23376 uint8x8_t __mask = vclt_u8 (__idx, vmov_n_u8 (8));
23377 uint8x8_t __tbl = vtbl1_u8 (__tab, __idx);
23379 return vbsl_u8 (__mask, __tbl, __r);
23382 __extension__ extern __inline poly8x8_t
23383 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23384 vtbx1_p8 (poly8x8_t __r, poly8x8_t __tab, uint8x8_t __idx)
23386 uint8x8_t __mask = vclt_u8 (__idx, vmov_n_u8 (8));
23387 poly8x8_t __tbl = vtbl1_p8 (__tab, __idx);
23389 return vbsl_p8 (__mask, __tbl, __r);
23392 /* vtbx3 */
23394 __extension__ extern __inline int8x8_t
23395 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23396 vtbx3_s8 (int8x8_t __r, int8x8x3_t __tab, int8x8_t __idx)
23398 uint8x8_t __mask = vclt_u8 (vreinterpret_u8_s8 (__idx),
23399 vmov_n_u8 (24));
23400 int8x8_t __tbl = vtbl3_s8 (__tab, __idx);
23402 return vbsl_s8 (__mask, __tbl, __r);
23405 __extension__ extern __inline uint8x8_t
23406 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23407 vtbx3_u8 (uint8x8_t __r, uint8x8x3_t __tab, uint8x8_t __idx)
23409 uint8x8_t __mask = vclt_u8 (__idx, vmov_n_u8 (24));
23410 uint8x8_t __tbl = vtbl3_u8 (__tab, __idx);
23412 return vbsl_u8 (__mask, __tbl, __r);
23415 __extension__ extern __inline poly8x8_t
23416 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23417 vtbx3_p8 (poly8x8_t __r, poly8x8x3_t __tab, uint8x8_t __idx)
23419 uint8x8_t __mask = vclt_u8 (__idx, vmov_n_u8 (24));
23420 poly8x8_t __tbl = vtbl3_p8 (__tab, __idx);
23422 return vbsl_p8 (__mask, __tbl, __r);
23425 /* vtbx4 */
23427 __extension__ extern __inline int8x8_t
23428 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23429 vtbx4_s8 (int8x8_t __r, int8x8x4_t __tab, int8x8_t __idx)
23431 int8x16x2_t __temp;
23432 __temp.val[0] = vcombine_s8 (__tab.val[0], __tab.val[1]);
23433 __temp.val[1] = vcombine_s8 (__tab.val[2], __tab.val[3]);
23434 return __builtin_aarch64_qtbx2v8qi (__r, __temp, __idx);
23437 __extension__ extern __inline uint8x8_t
23438 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23439 vtbx4_u8 (uint8x8_t __r, uint8x8x4_t __tab, uint8x8_t __idx)
23441 uint8x16x2_t __temp;
23442 __temp.val[0] = vcombine_u8 (__tab.val[0], __tab.val[1]);
23443 __temp.val[1] = vcombine_u8 (__tab.val[2], __tab.val[3]);
23444 return __builtin_aarch64_qtbx2v8qi_uuuu (__r, __temp, __idx);
23447 __extension__ extern __inline poly8x8_t
23448 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23449 vtbx4_p8 (poly8x8_t __r, poly8x8x4_t __tab, uint8x8_t __idx)
23451 poly8x16x2_t __temp;
23452 __temp.val[0] = vcombine_p8 (__tab.val[0], __tab.val[1]);
23453 __temp.val[1] = vcombine_p8 (__tab.val[2], __tab.val[3]);
23454 return __builtin_aarch64_qtbx2v8qi_pppu (__r, __temp, __idx);
23457 /* vtrn */
23459 __extension__ extern __inline float16x4_t
23460 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23461 vtrn1_f16 (float16x4_t __a, float16x4_t __b)
23463 #ifdef __AARCH64EB__
23464 return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 1, 7, 3});
23465 #else
23466 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 2, 6});
23467 #endif
23470 __extension__ extern __inline float32x2_t
23471 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23472 vtrn1_f32 (float32x2_t __a, float32x2_t __b)
23474 #ifdef __AARCH64EB__
23475 return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
23476 #else
23477 return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
23478 #endif
23481 __extension__ extern __inline poly8x8_t
23482 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23483 vtrn1_p8 (poly8x8_t __a, poly8x8_t __b)
23485 #ifdef __AARCH64EB__
23486 return __builtin_shuffle (__a, __b, (uint8x8_t) {9, 1, 11, 3, 13, 5, 15, 7});
23487 #else
23488 return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 8, 2, 10, 4, 12, 6, 14});
23489 #endif
23492 __extension__ extern __inline poly16x4_t
23493 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23494 vtrn1_p16 (poly16x4_t __a, poly16x4_t __b)
23496 #ifdef __AARCH64EB__
23497 return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 1, 7, 3});
23498 #else
23499 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 2, 6});
23500 #endif
23503 __extension__ extern __inline int8x8_t
23504 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23505 vtrn1_s8 (int8x8_t __a, int8x8_t __b)
23507 #ifdef __AARCH64EB__
23508 return __builtin_shuffle (__a, __b, (uint8x8_t) {9, 1, 11, 3, 13, 5, 15, 7});
23509 #else
23510 return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 8, 2, 10, 4, 12, 6, 14});
23511 #endif
23514 __extension__ extern __inline int16x4_t
23515 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23516 vtrn1_s16 (int16x4_t __a, int16x4_t __b)
23518 #ifdef __AARCH64EB__
23519 return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 1, 7, 3});
23520 #else
23521 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 2, 6});
23522 #endif
23525 __extension__ extern __inline int32x2_t
23526 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23527 vtrn1_s32 (int32x2_t __a, int32x2_t __b)
23529 #ifdef __AARCH64EB__
23530 return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
23531 #else
23532 return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
23533 #endif
23536 __extension__ extern __inline uint8x8_t
23537 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23538 vtrn1_u8 (uint8x8_t __a, uint8x8_t __b)
23540 #ifdef __AARCH64EB__
23541 return __builtin_shuffle (__a, __b, (uint8x8_t) {9, 1, 11, 3, 13, 5, 15, 7});
23542 #else
23543 return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 8, 2, 10, 4, 12, 6, 14});
23544 #endif
23547 __extension__ extern __inline uint16x4_t
23548 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23549 vtrn1_u16 (uint16x4_t __a, uint16x4_t __b)
23551 #ifdef __AARCH64EB__
23552 return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 1, 7, 3});
23553 #else
23554 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 2, 6});
23555 #endif
23558 __extension__ extern __inline uint32x2_t
23559 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23560 vtrn1_u32 (uint32x2_t __a, uint32x2_t __b)
23562 #ifdef __AARCH64EB__
23563 return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
23564 #else
23565 return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
23566 #endif
23569 __extension__ extern __inline float16x8_t
23570 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23571 vtrn1q_f16 (float16x8_t __a, float16x8_t __b)
23573 #ifdef __AARCH64EB__
23574 return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 1, 11, 3, 13, 5, 15, 7});
23575 #else
23576 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 8, 2, 10, 4, 12, 6, 14});
23577 #endif
23580 __extension__ extern __inline float32x4_t
23581 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23582 vtrn1q_f32 (float32x4_t __a, float32x4_t __b)
23584 #ifdef __AARCH64EB__
23585 return __builtin_shuffle (__a, __b, (uint32x4_t) {5, 1, 7, 3});
23586 #else
23587 return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 4, 2, 6});
23588 #endif
23591 __extension__ extern __inline float64x2_t
23592 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23593 vtrn1q_f64 (float64x2_t __a, float64x2_t __b)
23595 #ifdef __AARCH64EB__
23596 return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
23597 #else
23598 return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
23599 #endif
23602 __extension__ extern __inline poly8x16_t
23603 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23604 vtrn1q_p8 (poly8x16_t __a, poly8x16_t __b)
23606 #ifdef __AARCH64EB__
23607 return __builtin_shuffle (__a, __b,
23608 (uint8x16_t) {17, 1, 19, 3, 21, 5, 23, 7, 25, 9, 27, 11, 29, 13, 31, 15});
23609 #else
23610 return __builtin_shuffle (__a, __b,
23611 (uint8x16_t) {0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30});
23612 #endif
23615 __extension__ extern __inline poly16x8_t
23616 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23617 vtrn1q_p16 (poly16x8_t __a, poly16x8_t __b)
23619 #ifdef __AARCH64EB__
23620 return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 1, 11, 3, 13, 5, 15, 7});
23621 #else
23622 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 8, 2, 10, 4, 12, 6, 14});
23623 #endif
23626 __extension__ extern __inline int8x16_t
23627 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23628 vtrn1q_s8 (int8x16_t __a, int8x16_t __b)
23630 #ifdef __AARCH64EB__
23631 return __builtin_shuffle (__a, __b,
23632 (uint8x16_t) {17, 1, 19, 3, 21, 5, 23, 7, 25, 9, 27, 11, 29, 13, 31, 15});
23633 #else
23634 return __builtin_shuffle (__a, __b,
23635 (uint8x16_t) {0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30});
23636 #endif
23639 __extension__ extern __inline int16x8_t
23640 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23641 vtrn1q_s16 (int16x8_t __a, int16x8_t __b)
23643 #ifdef __AARCH64EB__
23644 return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 1, 11, 3, 13, 5, 15, 7});
23645 #else
23646 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 8, 2, 10, 4, 12, 6, 14});
23647 #endif
23650 __extension__ extern __inline int32x4_t
23651 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23652 vtrn1q_s32 (int32x4_t __a, int32x4_t __b)
23654 #ifdef __AARCH64EB__
23655 return __builtin_shuffle (__a, __b, (uint32x4_t) {5, 1, 7, 3});
23656 #else
23657 return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 4, 2, 6});
23658 #endif
23661 __extension__ extern __inline int64x2_t
23662 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23663 vtrn1q_s64 (int64x2_t __a, int64x2_t __b)
23665 #ifdef __AARCH64EB__
23666 return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
23667 #else
23668 return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
23669 #endif
23672 __extension__ extern __inline uint8x16_t
23673 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23674 vtrn1q_u8 (uint8x16_t __a, uint8x16_t __b)
23676 #ifdef __AARCH64EB__
23677 return __builtin_shuffle (__a, __b,
23678 (uint8x16_t) {17, 1, 19, 3, 21, 5, 23, 7, 25, 9, 27, 11, 29, 13, 31, 15});
23679 #else
23680 return __builtin_shuffle (__a, __b,
23681 (uint8x16_t) {0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30});
23682 #endif
23685 __extension__ extern __inline uint16x8_t
23686 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23687 vtrn1q_u16 (uint16x8_t __a, uint16x8_t __b)
23689 #ifdef __AARCH64EB__
23690 return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 1, 11, 3, 13, 5, 15, 7});
23691 #else
23692 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 8, 2, 10, 4, 12, 6, 14});
23693 #endif
23696 __extension__ extern __inline uint32x4_t
23697 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23698 vtrn1q_u32 (uint32x4_t __a, uint32x4_t __b)
23700 #ifdef __AARCH64EB__
23701 return __builtin_shuffle (__a, __b, (uint32x4_t) {5, 1, 7, 3});
23702 #else
23703 return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 4, 2, 6});
23704 #endif
23707 __extension__ extern __inline poly64x2_t
23708 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23709 vtrn1q_p64 (poly64x2_t __a, poly64x2_t __b)
23711 #ifdef __AARCH64EB__
23712 return __builtin_shuffle (__a, __b, (poly64x2_t) {3, 1});
23713 #else
23714 return __builtin_shuffle (__a, __b, (poly64x2_t) {0, 2});
23715 #endif
23718 __extension__ extern __inline uint64x2_t
23719 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23720 vtrn1q_u64 (uint64x2_t __a, uint64x2_t __b)
23722 #ifdef __AARCH64EB__
23723 return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
23724 #else
23725 return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
23726 #endif
23729 __extension__ extern __inline float16x4_t
23730 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23731 vtrn2_f16 (float16x4_t __a, float16x4_t __b)
23733 #ifdef __AARCH64EB__
23734 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 6, 2});
23735 #else
23736 return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 5, 3, 7});
23737 #endif
23740 __extension__ extern __inline float32x2_t
23741 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23742 vtrn2_f32 (float32x2_t __a, float32x2_t __b)
23744 #ifdef __AARCH64EB__
23745 return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
23746 #else
23747 return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
23748 #endif
23751 __extension__ extern __inline poly8x8_t
23752 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23753 vtrn2_p8 (poly8x8_t __a, poly8x8_t __b)
23755 #ifdef __AARCH64EB__
23756 return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 0, 10, 2, 12, 4, 14, 6});
23757 #else
23758 return __builtin_shuffle (__a, __b, (uint8x8_t) {1, 9, 3, 11, 5, 13, 7, 15});
23759 #endif
23762 __extension__ extern __inline poly16x4_t
23763 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23764 vtrn2_p16 (poly16x4_t __a, poly16x4_t __b)
23766 #ifdef __AARCH64EB__
23767 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 6, 2});
23768 #else
23769 return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 5, 3, 7});
23770 #endif
23773 __extension__ extern __inline int8x8_t
23774 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23775 vtrn2_s8 (int8x8_t __a, int8x8_t __b)
23777 #ifdef __AARCH64EB__
23778 return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 0, 10, 2, 12, 4, 14, 6});
23779 #else
23780 return __builtin_shuffle (__a, __b, (uint8x8_t) {1, 9, 3, 11, 5, 13, 7, 15});
23781 #endif
23784 __extension__ extern __inline int16x4_t
23785 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23786 vtrn2_s16 (int16x4_t __a, int16x4_t __b)
23788 #ifdef __AARCH64EB__
23789 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 6, 2});
23790 #else
23791 return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 5, 3, 7});
23792 #endif
23795 __extension__ extern __inline int32x2_t
23796 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23797 vtrn2_s32 (int32x2_t __a, int32x2_t __b)
23799 #ifdef __AARCH64EB__
23800 return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
23801 #else
23802 return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
23803 #endif
23806 __extension__ extern __inline uint8x8_t
23807 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23808 vtrn2_u8 (uint8x8_t __a, uint8x8_t __b)
23810 #ifdef __AARCH64EB__
23811 return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 0, 10, 2, 12, 4, 14, 6});
23812 #else
23813 return __builtin_shuffle (__a, __b, (uint8x8_t) {1, 9, 3, 11, 5, 13, 7, 15});
23814 #endif
23817 __extension__ extern __inline uint16x4_t
23818 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23819 vtrn2_u16 (uint16x4_t __a, uint16x4_t __b)
23821 #ifdef __AARCH64EB__
23822 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 6, 2});
23823 #else
23824 return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 5, 3, 7});
23825 #endif
23828 __extension__ extern __inline uint32x2_t
23829 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23830 vtrn2_u32 (uint32x2_t __a, uint32x2_t __b)
23832 #ifdef __AARCH64EB__
23833 return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
23834 #else
23835 return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
23836 #endif
23839 __extension__ extern __inline float16x8_t
23840 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23841 vtrn2q_f16 (float16x8_t __a, float16x8_t __b)
23843 #ifdef __AARCH64EB__
23844 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 0, 10, 2, 12, 4, 14, 6});
23845 #else
23846 return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 9, 3, 11, 5, 13, 7, 15});
23847 #endif
23850 __extension__ extern __inline float32x4_t
23851 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23852 vtrn2q_f32 (float32x4_t __a, float32x4_t __b)
23854 #ifdef __AARCH64EB__
23855 return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 0, 6, 2});
23856 #else
23857 return __builtin_shuffle (__a, __b, (uint32x4_t) {1, 5, 3, 7});
23858 #endif
23861 __extension__ extern __inline float64x2_t
23862 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23863 vtrn2q_f64 (float64x2_t __a, float64x2_t __b)
23865 #ifdef __AARCH64EB__
23866 return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
23867 #else
23868 return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
23869 #endif
23872 __extension__ extern __inline poly8x16_t
23873 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23874 vtrn2q_p8 (poly8x16_t __a, poly8x16_t __b)
23876 #ifdef __AARCH64EB__
23877 return __builtin_shuffle (__a, __b,
23878 (uint8x16_t) {16, 0, 18, 2, 20, 4, 22, 6, 24, 8, 26, 10, 28, 12, 30, 14});
23879 #else
23880 return __builtin_shuffle (__a, __b,
23881 (uint8x16_t) {1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31});
23882 #endif
23885 __extension__ extern __inline poly16x8_t
23886 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23887 vtrn2q_p16 (poly16x8_t __a, poly16x8_t __b)
23889 #ifdef __AARCH64EB__
23890 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 0, 10, 2, 12, 4, 14, 6});
23891 #else
23892 return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 9, 3, 11, 5, 13, 7, 15});
23893 #endif
23896 __extension__ extern __inline int8x16_t
23897 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23898 vtrn2q_s8 (int8x16_t __a, int8x16_t __b)
23900 #ifdef __AARCH64EB__
23901 return __builtin_shuffle (__a, __b,
23902 (uint8x16_t) {16, 0, 18, 2, 20, 4, 22, 6, 24, 8, 26, 10, 28, 12, 30, 14});
23903 #else
23904 return __builtin_shuffle (__a, __b,
23905 (uint8x16_t) {1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31});
23906 #endif
23909 __extension__ extern __inline int16x8_t
23910 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23911 vtrn2q_s16 (int16x8_t __a, int16x8_t __b)
23913 #ifdef __AARCH64EB__
23914 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 0, 10, 2, 12, 4, 14, 6});
23915 #else
23916 return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 9, 3, 11, 5, 13, 7, 15});
23917 #endif
23920 __extension__ extern __inline int32x4_t
23921 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23922 vtrn2q_s32 (int32x4_t __a, int32x4_t __b)
23924 #ifdef __AARCH64EB__
23925 return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 0, 6, 2});
23926 #else
23927 return __builtin_shuffle (__a, __b, (uint32x4_t) {1, 5, 3, 7});
23928 #endif
23931 __extension__ extern __inline int64x2_t
23932 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23933 vtrn2q_s64 (int64x2_t __a, int64x2_t __b)
23935 #ifdef __AARCH64EB__
23936 return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
23937 #else
23938 return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
23939 #endif
23942 __extension__ extern __inline uint8x16_t
23943 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23944 vtrn2q_u8 (uint8x16_t __a, uint8x16_t __b)
23946 #ifdef __AARCH64EB__
23947 return __builtin_shuffle (__a, __b,
23948 (uint8x16_t) {16, 0, 18, 2, 20, 4, 22, 6, 24, 8, 26, 10, 28, 12, 30, 14});
23949 #else
23950 return __builtin_shuffle (__a, __b,
23951 (uint8x16_t) {1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31});
23952 #endif
23955 __extension__ extern __inline uint16x8_t
23956 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23957 vtrn2q_u16 (uint16x8_t __a, uint16x8_t __b)
23959 #ifdef __AARCH64EB__
23960 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 0, 10, 2, 12, 4, 14, 6});
23961 #else
23962 return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 9, 3, 11, 5, 13, 7, 15});
23963 #endif
23966 __extension__ extern __inline uint32x4_t
23967 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23968 vtrn2q_u32 (uint32x4_t __a, uint32x4_t __b)
23970 #ifdef __AARCH64EB__
23971 return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 0, 6, 2});
23972 #else
23973 return __builtin_shuffle (__a, __b, (uint32x4_t) {1, 5, 3, 7});
23974 #endif
23977 __extension__ extern __inline uint64x2_t
23978 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23979 vtrn2q_u64 (uint64x2_t __a, uint64x2_t __b)
23981 #ifdef __AARCH64EB__
23982 return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
23983 #else
23984 return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
23985 #endif
23989 __extension__ extern __inline poly64x2_t
23990 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23991 vtrn2q_p64 (poly64x2_t __a, poly64x2_t __b)
23993 #ifdef __AARCH64EB__
23994 return __builtin_shuffle (__a, __b, (poly64x2_t) {2, 0});
23995 #else
23996 return __builtin_shuffle (__a, __b, (poly64x2_t) {1, 3});
23997 #endif
24000 __extension__ extern __inline float16x4x2_t
24001 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24002 vtrn_f16 (float16x4_t __a, float16x4_t __b)
24004 return (float16x4x2_t) {vtrn1_f16 (__a, __b), vtrn2_f16 (__a, __b)};
24007 __extension__ extern __inline float32x2x2_t
24008 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24009 vtrn_f32 (float32x2_t __a, float32x2_t __b)
24011 return (float32x2x2_t) {vtrn1_f32 (__a, __b), vtrn2_f32 (__a, __b)};
24014 __extension__ extern __inline poly8x8x2_t
24015 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24016 vtrn_p8 (poly8x8_t __a, poly8x8_t __b)
24018 return (poly8x8x2_t) {vtrn1_p8 (__a, __b), vtrn2_p8 (__a, __b)};
24021 __extension__ extern __inline poly16x4x2_t
24022 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24023 vtrn_p16 (poly16x4_t __a, poly16x4_t __b)
24025 return (poly16x4x2_t) {vtrn1_p16 (__a, __b), vtrn2_p16 (__a, __b)};
24028 __extension__ extern __inline int8x8x2_t
24029 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24030 vtrn_s8 (int8x8_t __a, int8x8_t __b)
24032 return (int8x8x2_t) {vtrn1_s8 (__a, __b), vtrn2_s8 (__a, __b)};
24035 __extension__ extern __inline int16x4x2_t
24036 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24037 vtrn_s16 (int16x4_t __a, int16x4_t __b)
24039 return (int16x4x2_t) {vtrn1_s16 (__a, __b), vtrn2_s16 (__a, __b)};
24042 __extension__ extern __inline int32x2x2_t
24043 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24044 vtrn_s32 (int32x2_t __a, int32x2_t __b)
24046 return (int32x2x2_t) {vtrn1_s32 (__a, __b), vtrn2_s32 (__a, __b)};
24049 __extension__ extern __inline uint8x8x2_t
24050 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24051 vtrn_u8 (uint8x8_t __a, uint8x8_t __b)
24053 return (uint8x8x2_t) {vtrn1_u8 (__a, __b), vtrn2_u8 (__a, __b)};
24056 __extension__ extern __inline uint16x4x2_t
24057 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24058 vtrn_u16 (uint16x4_t __a, uint16x4_t __b)
24060 return (uint16x4x2_t) {vtrn1_u16 (__a, __b), vtrn2_u16 (__a, __b)};
24063 __extension__ extern __inline uint32x2x2_t
24064 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24065 vtrn_u32 (uint32x2_t __a, uint32x2_t __b)
24067 return (uint32x2x2_t) {vtrn1_u32 (__a, __b), vtrn2_u32 (__a, __b)};
24070 __extension__ extern __inline float16x8x2_t
24071 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24072 vtrnq_f16 (float16x8_t __a, float16x8_t __b)
24074 return (float16x8x2_t) {vtrn1q_f16 (__a, __b), vtrn2q_f16 (__a, __b)};
24077 __extension__ extern __inline float32x4x2_t
24078 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24079 vtrnq_f32 (float32x4_t __a, float32x4_t __b)
24081 return (float32x4x2_t) {vtrn1q_f32 (__a, __b), vtrn2q_f32 (__a, __b)};
24084 __extension__ extern __inline poly8x16x2_t
24085 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24086 vtrnq_p8 (poly8x16_t __a, poly8x16_t __b)
24088 return (poly8x16x2_t) {vtrn1q_p8 (__a, __b), vtrn2q_p8 (__a, __b)};
24091 __extension__ extern __inline poly16x8x2_t
24092 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24093 vtrnq_p16 (poly16x8_t __a, poly16x8_t __b)
24095 return (poly16x8x2_t) {vtrn1q_p16 (__a, __b), vtrn2q_p16 (__a, __b)};
24098 __extension__ extern __inline int8x16x2_t
24099 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24100 vtrnq_s8 (int8x16_t __a, int8x16_t __b)
24102 return (int8x16x2_t) {vtrn1q_s8 (__a, __b), vtrn2q_s8 (__a, __b)};
24105 __extension__ extern __inline int16x8x2_t
24106 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24107 vtrnq_s16 (int16x8_t __a, int16x8_t __b)
24109 return (int16x8x2_t) {vtrn1q_s16 (__a, __b), vtrn2q_s16 (__a, __b)};
24112 __extension__ extern __inline int32x4x2_t
24113 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24114 vtrnq_s32 (int32x4_t __a, int32x4_t __b)
24116 return (int32x4x2_t) {vtrn1q_s32 (__a, __b), vtrn2q_s32 (__a, __b)};
24119 __extension__ extern __inline uint8x16x2_t
24120 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24121 vtrnq_u8 (uint8x16_t __a, uint8x16_t __b)
24123 return (uint8x16x2_t) {vtrn1q_u8 (__a, __b), vtrn2q_u8 (__a, __b)};
24126 __extension__ extern __inline uint16x8x2_t
24127 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24128 vtrnq_u16 (uint16x8_t __a, uint16x8_t __b)
24130 return (uint16x8x2_t) {vtrn1q_u16 (__a, __b), vtrn2q_u16 (__a, __b)};
24133 __extension__ extern __inline uint32x4x2_t
24134 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24135 vtrnq_u32 (uint32x4_t __a, uint32x4_t __b)
24137 return (uint32x4x2_t) {vtrn1q_u32 (__a, __b), vtrn2q_u32 (__a, __b)};
24140 /* vtst */
24142 __extension__ extern __inline uint8x8_t
24143 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24144 vtst_s8 (int8x8_t __a, int8x8_t __b)
24146 return (uint8x8_t) ((__a & __b) != 0);
24149 __extension__ extern __inline uint16x4_t
24150 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24151 vtst_s16 (int16x4_t __a, int16x4_t __b)
24153 return (uint16x4_t) ((__a & __b) != 0);
24156 __extension__ extern __inline uint32x2_t
24157 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24158 vtst_s32 (int32x2_t __a, int32x2_t __b)
24160 return (uint32x2_t) ((__a & __b) != 0);
24163 __extension__ extern __inline uint64x1_t
24164 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24165 vtst_s64 (int64x1_t __a, int64x1_t __b)
24167 return (uint64x1_t) ((__a & __b) != __AARCH64_INT64_C (0));
24170 __extension__ extern __inline uint8x8_t
24171 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24172 vtst_u8 (uint8x8_t __a, uint8x8_t __b)
24174 return ((__a & __b) != 0);
24177 __extension__ extern __inline uint16x4_t
24178 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24179 vtst_u16 (uint16x4_t __a, uint16x4_t __b)
24181 return ((__a & __b) != 0);
24184 __extension__ extern __inline uint32x2_t
24185 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24186 vtst_u32 (uint32x2_t __a, uint32x2_t __b)
24188 return ((__a & __b) != 0);
24191 __extension__ extern __inline uint64x1_t
24192 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24193 vtst_u64 (uint64x1_t __a, uint64x1_t __b)
24195 return ((__a & __b) != __AARCH64_UINT64_C (0));
24198 __extension__ extern __inline uint8x16_t
24199 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24200 vtstq_s8 (int8x16_t __a, int8x16_t __b)
24202 return (uint8x16_t) ((__a & __b) != 0);
24205 __extension__ extern __inline uint16x8_t
24206 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24207 vtstq_s16 (int16x8_t __a, int16x8_t __b)
24209 return (uint16x8_t) ((__a & __b) != 0);
24212 __extension__ extern __inline uint32x4_t
24213 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24214 vtstq_s32 (int32x4_t __a, int32x4_t __b)
24216 return (uint32x4_t) ((__a & __b) != 0);
24219 __extension__ extern __inline uint64x2_t
24220 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24221 vtstq_s64 (int64x2_t __a, int64x2_t __b)
24223 return (uint64x2_t) ((__a & __b) != __AARCH64_INT64_C (0));
24226 __extension__ extern __inline uint8x16_t
24227 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24228 vtstq_u8 (uint8x16_t __a, uint8x16_t __b)
24230 return ((__a & __b) != 0);
24233 __extension__ extern __inline uint16x8_t
24234 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24235 vtstq_u16 (uint16x8_t __a, uint16x8_t __b)
24237 return ((__a & __b) != 0);
24240 __extension__ extern __inline uint32x4_t
24241 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24242 vtstq_u32 (uint32x4_t __a, uint32x4_t __b)
24244 return ((__a & __b) != 0);
24247 __extension__ extern __inline uint64x2_t
24248 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24249 vtstq_u64 (uint64x2_t __a, uint64x2_t __b)
24251 return ((__a & __b) != __AARCH64_UINT64_C (0));
24254 __extension__ extern __inline uint64_t
24255 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24256 vtstd_s64 (int64_t __a, int64_t __b)
24258 return (__a & __b) ? -1ll : 0ll;
24261 __extension__ extern __inline uint64_t
24262 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24263 vtstd_u64 (uint64_t __a, uint64_t __b)
24265 return (__a & __b) ? -1ll : 0ll;
24268 /* vuqadd */
24270 __extension__ extern __inline int8x8_t
24271 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24272 vuqadd_s8 (int8x8_t __a, uint8x8_t __b)
24274 return __builtin_aarch64_suqaddv8qi_ssu (__a, __b);
24277 __extension__ extern __inline int16x4_t
24278 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24279 vuqadd_s16 (int16x4_t __a, uint16x4_t __b)
24281 return __builtin_aarch64_suqaddv4hi_ssu (__a, __b);
24284 __extension__ extern __inline int32x2_t
24285 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24286 vuqadd_s32 (int32x2_t __a, uint32x2_t __b)
24288 return __builtin_aarch64_suqaddv2si_ssu (__a, __b);
24291 __extension__ extern __inline int64x1_t
24292 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24293 vuqadd_s64 (int64x1_t __a, uint64x1_t __b)
24295 return (int64x1_t) {__builtin_aarch64_suqadddi_ssu (__a[0], __b[0])};
24298 __extension__ extern __inline int8x16_t
24299 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24300 vuqaddq_s8 (int8x16_t __a, uint8x16_t __b)
24302 return __builtin_aarch64_suqaddv16qi_ssu (__a, __b);
24305 __extension__ extern __inline int16x8_t
24306 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24307 vuqaddq_s16 (int16x8_t __a, uint16x8_t __b)
24309 return __builtin_aarch64_suqaddv8hi_ssu (__a, __b);
24312 __extension__ extern __inline int32x4_t
24313 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24314 vuqaddq_s32 (int32x4_t __a, uint32x4_t __b)
24316 return __builtin_aarch64_suqaddv4si_ssu (__a, __b);
24319 __extension__ extern __inline int64x2_t
24320 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24321 vuqaddq_s64 (int64x2_t __a, uint64x2_t __b)
24323 return __builtin_aarch64_suqaddv2di_ssu (__a, __b);
24326 __extension__ extern __inline int8_t
24327 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24328 vuqaddb_s8 (int8_t __a, uint8_t __b)
24330 return __builtin_aarch64_suqaddqi_ssu (__a, __b);
24333 __extension__ extern __inline int16_t
24334 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24335 vuqaddh_s16 (int16_t __a, uint16_t __b)
24337 return __builtin_aarch64_suqaddhi_ssu (__a, __b);
24340 __extension__ extern __inline int32_t
24341 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24342 vuqadds_s32 (int32_t __a, uint32_t __b)
24344 return __builtin_aarch64_suqaddsi_ssu (__a, __b);
24347 __extension__ extern __inline int64_t
24348 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24349 vuqaddd_s64 (int64_t __a, uint64_t __b)
24351 return __builtin_aarch64_suqadddi_ssu (__a, __b);
24354 #define __DEFINTERLEAVE(op, rettype, intype, funcsuffix, Q) \
24355 __extension__ extern __inline rettype \
24356 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) \
24357 v ## op ## Q ## _ ## funcsuffix (intype a, intype b) \
24359 return (rettype) {v ## op ## 1 ## Q ## _ ## funcsuffix (a, b), \
24360 v ## op ## 2 ## Q ## _ ## funcsuffix (a, b)}; \
24363 #define __INTERLEAVE_LIST(op) \
24364 __DEFINTERLEAVE (op, float16x4x2_t, float16x4_t, f16,) \
24365 __DEFINTERLEAVE (op, float32x2x2_t, float32x2_t, f32,) \
24366 __DEFINTERLEAVE (op, poly8x8x2_t, poly8x8_t, p8,) \
24367 __DEFINTERLEAVE (op, poly16x4x2_t, poly16x4_t, p16,) \
24368 __DEFINTERLEAVE (op, int8x8x2_t, int8x8_t, s8,) \
24369 __DEFINTERLEAVE (op, int16x4x2_t, int16x4_t, s16,) \
24370 __DEFINTERLEAVE (op, int32x2x2_t, int32x2_t, s32,) \
24371 __DEFINTERLEAVE (op, uint8x8x2_t, uint8x8_t, u8,) \
24372 __DEFINTERLEAVE (op, uint16x4x2_t, uint16x4_t, u16,) \
24373 __DEFINTERLEAVE (op, uint32x2x2_t, uint32x2_t, u32,) \
24374 __DEFINTERLEAVE (op, float16x8x2_t, float16x8_t, f16, q) \
24375 __DEFINTERLEAVE (op, float32x4x2_t, float32x4_t, f32, q) \
24376 __DEFINTERLEAVE (op, poly8x16x2_t, poly8x16_t, p8, q) \
24377 __DEFINTERLEAVE (op, poly16x8x2_t, poly16x8_t, p16, q) \
24378 __DEFINTERLEAVE (op, int8x16x2_t, int8x16_t, s8, q) \
24379 __DEFINTERLEAVE (op, int16x8x2_t, int16x8_t, s16, q) \
24380 __DEFINTERLEAVE (op, int32x4x2_t, int32x4_t, s32, q) \
24381 __DEFINTERLEAVE (op, uint8x16x2_t, uint8x16_t, u8, q) \
24382 __DEFINTERLEAVE (op, uint16x8x2_t, uint16x8_t, u16, q) \
24383 __DEFINTERLEAVE (op, uint32x4x2_t, uint32x4_t, u32, q)
24385 /* vuzp */
24387 __extension__ extern __inline float16x4_t
24388 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24389 vuzp1_f16 (float16x4_t __a, float16x4_t __b)
24391 #ifdef __AARCH64EB__
24392 return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 7, 1, 3});
24393 #else
24394 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 2, 4, 6});
24395 #endif
24398 __extension__ extern __inline float32x2_t
24399 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24400 vuzp1_f32 (float32x2_t __a, float32x2_t __b)
24402 #ifdef __AARCH64EB__
24403 return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
24404 #else
24405 return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
24406 #endif
24409 __extension__ extern __inline poly8x8_t
24410 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24411 vuzp1_p8 (poly8x8_t __a, poly8x8_t __b)
24413 #ifdef __AARCH64EB__
24414 return __builtin_shuffle (__a, __b, (uint8x8_t) {9, 11, 13, 15, 1, 3, 5, 7});
24415 #else
24416 return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 2, 4, 6, 8, 10, 12, 14});
24417 #endif
24420 __extension__ extern __inline poly16x4_t
24421 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24422 vuzp1_p16 (poly16x4_t __a, poly16x4_t __b)
24424 #ifdef __AARCH64EB__
24425 return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 7, 1, 3});
24426 #else
24427 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 2, 4, 6});
24428 #endif
24431 __extension__ extern __inline int8x8_t
24432 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24433 vuzp1_s8 (int8x8_t __a, int8x8_t __b)
24435 #ifdef __AARCH64EB__
24436 return __builtin_shuffle (__a, __b, (uint8x8_t) {9, 11, 13, 15, 1, 3, 5, 7});
24437 #else
24438 return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 2, 4, 6, 8, 10, 12, 14});
24439 #endif
24442 __extension__ extern __inline int16x4_t
24443 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24444 vuzp1_s16 (int16x4_t __a, int16x4_t __b)
24446 #ifdef __AARCH64EB__
24447 return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 7, 1, 3});
24448 #else
24449 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 2, 4, 6});
24450 #endif
24453 __extension__ extern __inline int32x2_t
24454 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24455 vuzp1_s32 (int32x2_t __a, int32x2_t __b)
24457 #ifdef __AARCH64EB__
24458 return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
24459 #else
24460 return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
24461 #endif
24464 __extension__ extern __inline uint8x8_t
24465 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24466 vuzp1_u8 (uint8x8_t __a, uint8x8_t __b)
24468 #ifdef __AARCH64EB__
24469 return __builtin_shuffle (__a, __b, (uint8x8_t) {9, 11, 13, 15, 1, 3, 5, 7});
24470 #else
24471 return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 2, 4, 6, 8, 10, 12, 14});
24472 #endif
24475 __extension__ extern __inline uint16x4_t
24476 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24477 vuzp1_u16 (uint16x4_t __a, uint16x4_t __b)
24479 #ifdef __AARCH64EB__
24480 return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 7, 1, 3});
24481 #else
24482 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 2, 4, 6});
24483 #endif
24486 __extension__ extern __inline uint32x2_t
24487 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24488 vuzp1_u32 (uint32x2_t __a, uint32x2_t __b)
24490 #ifdef __AARCH64EB__
24491 return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
24492 #else
24493 return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
24494 #endif
24497 __extension__ extern __inline float16x8_t
24498 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24499 vuzp1q_f16 (float16x8_t __a, float16x8_t __b)
24501 #ifdef __AARCH64EB__
24502 return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 11, 13, 15, 1, 3, 5, 7});
24503 #else
24504 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 2, 4, 6, 8, 10, 12, 14});
24505 #endif
24508 __extension__ extern __inline float32x4_t
24509 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24510 vuzp1q_f32 (float32x4_t __a, float32x4_t __b)
24512 #ifdef __AARCH64EB__
24513 return __builtin_shuffle (__a, __b, (uint32x4_t) {5, 7, 1, 3});
24514 #else
24515 return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 2, 4, 6});
24516 #endif
24519 __extension__ extern __inline float64x2_t
24520 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24521 vuzp1q_f64 (float64x2_t __a, float64x2_t __b)
24523 #ifdef __AARCH64EB__
24524 return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
24525 #else
24526 return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
24527 #endif
24530 __extension__ extern __inline poly8x16_t
24531 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24532 vuzp1q_p8 (poly8x16_t __a, poly8x16_t __b)
24534 #ifdef __AARCH64EB__
24535 return __builtin_shuffle (__a, __b, (uint8x16_t)
24536 {17, 19, 21, 23, 25, 27, 29, 31, 1, 3, 5, 7, 9, 11, 13, 15});
24537 #else
24538 return __builtin_shuffle (__a, __b, (uint8x16_t)
24539 {0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30});
24540 #endif
24543 __extension__ extern __inline poly16x8_t
24544 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24545 vuzp1q_p16 (poly16x8_t __a, poly16x8_t __b)
24547 #ifdef __AARCH64EB__
24548 return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 11, 13, 15, 1, 3, 5, 7});
24549 #else
24550 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 2, 4, 6, 8, 10, 12, 14});
24551 #endif
24554 __extension__ extern __inline int8x16_t
24555 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24556 vuzp1q_s8 (int8x16_t __a, int8x16_t __b)
24558 #ifdef __AARCH64EB__
24559 return __builtin_shuffle (__a, __b,
24560 (uint8x16_t) {17, 19, 21, 23, 25, 27, 29, 31, 1, 3, 5, 7, 9, 11, 13, 15});
24561 #else
24562 return __builtin_shuffle (__a, __b,
24563 (uint8x16_t) {0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30});
24564 #endif
24567 __extension__ extern __inline int16x8_t
24568 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24569 vuzp1q_s16 (int16x8_t __a, int16x8_t __b)
24571 #ifdef __AARCH64EB__
24572 return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 11, 13, 15, 1, 3, 5, 7});
24573 #else
24574 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 2, 4, 6, 8, 10, 12, 14});
24575 #endif
24578 __extension__ extern __inline int32x4_t
24579 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24580 vuzp1q_s32 (int32x4_t __a, int32x4_t __b)
24582 #ifdef __AARCH64EB__
24583 return __builtin_shuffle (__a, __b, (uint32x4_t) {5, 7, 1, 3});
24584 #else
24585 return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 2, 4, 6});
24586 #endif
24589 __extension__ extern __inline int64x2_t
24590 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24591 vuzp1q_s64 (int64x2_t __a, int64x2_t __b)
24593 #ifdef __AARCH64EB__
24594 return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
24595 #else
24596 return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
24597 #endif
24600 __extension__ extern __inline uint8x16_t
24601 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24602 vuzp1q_u8 (uint8x16_t __a, uint8x16_t __b)
24604 #ifdef __AARCH64EB__
24605 return __builtin_shuffle (__a, __b,
24606 (uint8x16_t) {17, 19, 21, 23, 25, 27, 29, 31, 1, 3, 5, 7, 9, 11, 13, 15});
24607 #else
24608 return __builtin_shuffle (__a, __b,
24609 (uint8x16_t) {0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30});
24610 #endif
24613 __extension__ extern __inline uint16x8_t
24614 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24615 vuzp1q_u16 (uint16x8_t __a, uint16x8_t __b)
24617 #ifdef __AARCH64EB__
24618 return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 11, 13, 15, 1, 3, 5, 7});
24619 #else
24620 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 2, 4, 6, 8, 10, 12, 14});
24621 #endif
24624 __extension__ extern __inline uint32x4_t
24625 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24626 vuzp1q_u32 (uint32x4_t __a, uint32x4_t __b)
24628 #ifdef __AARCH64EB__
24629 return __builtin_shuffle (__a, __b, (uint32x4_t) {5, 7, 1, 3});
24630 #else
24631 return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 2, 4, 6});
24632 #endif
24635 __extension__ extern __inline uint64x2_t
24636 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24637 vuzp1q_u64 (uint64x2_t __a, uint64x2_t __b)
24639 #ifdef __AARCH64EB__
24640 return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
24641 #else
24642 return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
24643 #endif
24646 __extension__ extern __inline poly64x2_t
24647 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24648 vuzp1q_p64 (poly64x2_t __a, poly64x2_t __b)
24650 #ifdef __AARCH64EB__
24651 return __builtin_shuffle (__a, __b, (poly64x2_t) {3, 1});
24652 #else
24653 return __builtin_shuffle (__a, __b, (poly64x2_t) {0, 2});
24654 #endif
24657 __extension__ extern __inline float16x4_t
24658 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24659 vuzp2_f16 (float16x4_t __a, float16x4_t __b)
24661 #ifdef __AARCH64EB__
24662 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 6, 0, 2});
24663 #else
24664 return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 3, 5, 7});
24665 #endif
24668 __extension__ extern __inline float32x2_t
24669 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24670 vuzp2_f32 (float32x2_t __a, float32x2_t __b)
24672 #ifdef __AARCH64EB__
24673 return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
24674 #else
24675 return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
24676 #endif
24679 __extension__ extern __inline poly8x8_t
24680 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24681 vuzp2_p8 (poly8x8_t __a, poly8x8_t __b)
24683 #ifdef __AARCH64EB__
24684 return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 10, 12, 14, 0, 2, 4, 6});
24685 #else
24686 return __builtin_shuffle (__a, __b, (uint8x8_t) {1, 3, 5, 7, 9, 11, 13, 15});
24687 #endif
24690 __extension__ extern __inline poly16x4_t
24691 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24692 vuzp2_p16 (poly16x4_t __a, poly16x4_t __b)
24694 #ifdef __AARCH64EB__
24695 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 6, 0, 2});
24696 #else
24697 return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 3, 5, 7});
24698 #endif
24701 __extension__ extern __inline int8x8_t
24702 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24703 vuzp2_s8 (int8x8_t __a, int8x8_t __b)
24705 #ifdef __AARCH64EB__
24706 return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 10, 12, 14, 0, 2, 4, 6});
24707 #else
24708 return __builtin_shuffle (__a, __b, (uint8x8_t) {1, 3, 5, 7, 9, 11, 13, 15});
24709 #endif
24712 __extension__ extern __inline int16x4_t
24713 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24714 vuzp2_s16 (int16x4_t __a, int16x4_t __b)
24716 #ifdef __AARCH64EB__
24717 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 6, 0, 2});
24718 #else
24719 return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 3, 5, 7});
24720 #endif
24723 __extension__ extern __inline int32x2_t
24724 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24725 vuzp2_s32 (int32x2_t __a, int32x2_t __b)
24727 #ifdef __AARCH64EB__
24728 return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
24729 #else
24730 return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
24731 #endif
24734 __extension__ extern __inline uint8x8_t
24735 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24736 vuzp2_u8 (uint8x8_t __a, uint8x8_t __b)
24738 #ifdef __AARCH64EB__
24739 return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 10, 12, 14, 0, 2, 4, 6});
24740 #else
24741 return __builtin_shuffle (__a, __b, (uint8x8_t) {1, 3, 5, 7, 9, 11, 13, 15});
24742 #endif
24745 __extension__ extern __inline uint16x4_t
24746 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24747 vuzp2_u16 (uint16x4_t __a, uint16x4_t __b)
24749 #ifdef __AARCH64EB__
24750 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 6, 0, 2});
24751 #else
24752 return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 3, 5, 7});
24753 #endif
24756 __extension__ extern __inline uint32x2_t
24757 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24758 vuzp2_u32 (uint32x2_t __a, uint32x2_t __b)
24760 #ifdef __AARCH64EB__
24761 return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
24762 #else
24763 return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
24764 #endif
24767 __extension__ extern __inline float16x8_t
24768 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24769 vuzp2q_f16 (float16x8_t __a, float16x8_t __b)
24771 #ifdef __AARCH64EB__
24772 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 10, 12, 14, 0, 2, 4, 6});
24773 #else
24774 return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 3, 5, 7, 9, 11, 13, 15});
24775 #endif
24778 __extension__ extern __inline float32x4_t
24779 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24780 vuzp2q_f32 (float32x4_t __a, float32x4_t __b)
24782 #ifdef __AARCH64EB__
24783 return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 6, 0, 2});
24784 #else
24785 return __builtin_shuffle (__a, __b, (uint32x4_t) {1, 3, 5, 7});
24786 #endif
24789 __extension__ extern __inline float64x2_t
24790 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24791 vuzp2q_f64 (float64x2_t __a, float64x2_t __b)
24793 #ifdef __AARCH64EB__
24794 return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
24795 #else
24796 return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
24797 #endif
24800 __extension__ extern __inline poly8x16_t
24801 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24802 vuzp2q_p8 (poly8x16_t __a, poly8x16_t __b)
24804 #ifdef __AARCH64EB__
24805 return __builtin_shuffle (__a, __b,
24806 (uint8x16_t) {16, 18, 20, 22, 24, 26, 28, 30, 0, 2, 4, 6, 8, 10, 12, 14});
24807 #else
24808 return __builtin_shuffle (__a, __b,
24809 (uint8x16_t) {1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31});
24810 #endif
24813 __extension__ extern __inline poly16x8_t
24814 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24815 vuzp2q_p16 (poly16x8_t __a, poly16x8_t __b)
24817 #ifdef __AARCH64EB__
24818 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 10, 12, 14, 0, 2, 4, 6});
24819 #else
24820 return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 3, 5, 7, 9, 11, 13, 15});
24821 #endif
24824 __extension__ extern __inline int8x16_t
24825 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24826 vuzp2q_s8 (int8x16_t __a, int8x16_t __b)
24828 #ifdef __AARCH64EB__
24829 return __builtin_shuffle (__a, __b,
24830 (uint8x16_t) {16, 18, 20, 22, 24, 26, 28, 30, 0, 2, 4, 6, 8, 10, 12, 14});
24831 #else
24832 return __builtin_shuffle (__a, __b,
24833 (uint8x16_t) {1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31});
24834 #endif
24837 __extension__ extern __inline int16x8_t
24838 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24839 vuzp2q_s16 (int16x8_t __a, int16x8_t __b)
24841 #ifdef __AARCH64EB__
24842 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 10, 12, 14, 0, 2, 4, 6});
24843 #else
24844 return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 3, 5, 7, 9, 11, 13, 15});
24845 #endif
24848 __extension__ extern __inline int32x4_t
24849 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24850 vuzp2q_s32 (int32x4_t __a, int32x4_t __b)
24852 #ifdef __AARCH64EB__
24853 return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 6, 0, 2});
24854 #else
24855 return __builtin_shuffle (__a, __b, (uint32x4_t) {1, 3, 5, 7});
24856 #endif
24859 __extension__ extern __inline int64x2_t
24860 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24861 vuzp2q_s64 (int64x2_t __a, int64x2_t __b)
24863 #ifdef __AARCH64EB__
24864 return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
24865 #else
24866 return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
24867 #endif
24870 __extension__ extern __inline uint8x16_t
24871 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24872 vuzp2q_u8 (uint8x16_t __a, uint8x16_t __b)
24874 #ifdef __AARCH64EB__
24875 return __builtin_shuffle (__a, __b, (uint8x16_t)
24876 {16, 18, 20, 22, 24, 26, 28, 30, 0, 2, 4, 6, 8, 10, 12, 14});
24877 #else
24878 return __builtin_shuffle (__a, __b, (uint8x16_t)
24879 {1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31});
24880 #endif
24883 __extension__ extern __inline uint16x8_t
24884 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24885 vuzp2q_u16 (uint16x8_t __a, uint16x8_t __b)
24887 #ifdef __AARCH64EB__
24888 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 10, 12, 14, 0, 2, 4, 6});
24889 #else
24890 return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 3, 5, 7, 9, 11, 13, 15});
24891 #endif
24894 __extension__ extern __inline uint32x4_t
24895 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24896 vuzp2q_u32 (uint32x4_t __a, uint32x4_t __b)
24898 #ifdef __AARCH64EB__
24899 return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 6, 0, 2});
24900 #else
24901 return __builtin_shuffle (__a, __b, (uint32x4_t) {1, 3, 5, 7});
24902 #endif
24905 __extension__ extern __inline uint64x2_t
24906 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24907 vuzp2q_u64 (uint64x2_t __a, uint64x2_t __b)
24909 #ifdef __AARCH64EB__
24910 return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
24911 #else
24912 return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
24913 #endif
24916 __extension__ extern __inline poly64x2_t
24917 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24918 vuzp2q_p64 (poly64x2_t __a, poly64x2_t __b)
24920 #ifdef __AARCH64EB__
24921 return __builtin_shuffle (__a, __b, (poly64x2_t) {2, 0});
24922 #else
24923 return __builtin_shuffle (__a, __b, (poly64x2_t) {1, 3});
24924 #endif
24927 __INTERLEAVE_LIST (uzp)
24929 /* vzip */
24931 __extension__ extern __inline float16x4_t
24932 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24933 vzip1_f16 (float16x4_t __a, float16x4_t __b)
24935 #ifdef __AARCH64EB__
24936 return __builtin_shuffle (__a, __b, (uint16x4_t) {6, 2, 7, 3});
24937 #else
24938 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 1, 5});
24939 #endif
24942 __extension__ extern __inline float32x2_t
24943 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24944 vzip1_f32 (float32x2_t __a, float32x2_t __b)
24946 #ifdef __AARCH64EB__
24947 return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
24948 #else
24949 return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
24950 #endif
24953 __extension__ extern __inline poly8x8_t
24954 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24955 vzip1_p8 (poly8x8_t __a, poly8x8_t __b)
24957 #ifdef __AARCH64EB__
24958 return __builtin_shuffle (__a, __b, (uint8x8_t) {12, 4, 13, 5, 14, 6, 15, 7});
24959 #else
24960 return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 8, 1, 9, 2, 10, 3, 11});
24961 #endif
24964 __extension__ extern __inline poly16x4_t
24965 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24966 vzip1_p16 (poly16x4_t __a, poly16x4_t __b)
24968 #ifdef __AARCH64EB__
24969 return __builtin_shuffle (__a, __b, (uint16x4_t) {6, 2, 7, 3});
24970 #else
24971 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 1, 5});
24972 #endif
24975 __extension__ extern __inline int8x8_t
24976 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24977 vzip1_s8 (int8x8_t __a, int8x8_t __b)
24979 #ifdef __AARCH64EB__
24980 return __builtin_shuffle (__a, __b, (uint8x8_t) {12, 4, 13, 5, 14, 6, 15, 7});
24981 #else
24982 return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 8, 1, 9, 2, 10, 3, 11});
24983 #endif
24986 __extension__ extern __inline int16x4_t
24987 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24988 vzip1_s16 (int16x4_t __a, int16x4_t __b)
24990 #ifdef __AARCH64EB__
24991 return __builtin_shuffle (__a, __b, (uint16x4_t) {6, 2, 7, 3});
24992 #else
24993 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 1, 5});
24994 #endif
24997 __extension__ extern __inline int32x2_t
24998 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24999 vzip1_s32 (int32x2_t __a, int32x2_t __b)
25001 #ifdef __AARCH64EB__
25002 return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
25003 #else
25004 return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
25005 #endif
25008 __extension__ extern __inline uint8x8_t
25009 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25010 vzip1_u8 (uint8x8_t __a, uint8x8_t __b)
25012 #ifdef __AARCH64EB__
25013 return __builtin_shuffle (__a, __b, (uint8x8_t) {12, 4, 13, 5, 14, 6, 15, 7});
25014 #else
25015 return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 8, 1, 9, 2, 10, 3, 11});
25016 #endif
25019 __extension__ extern __inline uint16x4_t
25020 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25021 vzip1_u16 (uint16x4_t __a, uint16x4_t __b)
25023 #ifdef __AARCH64EB__
25024 return __builtin_shuffle (__a, __b, (uint16x4_t) {6, 2, 7, 3});
25025 #else
25026 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 1, 5});
25027 #endif
25030 __extension__ extern __inline uint32x2_t
25031 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25032 vzip1_u32 (uint32x2_t __a, uint32x2_t __b)
25034 #ifdef __AARCH64EB__
25035 return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
25036 #else
25037 return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
25038 #endif
25041 __extension__ extern __inline float16x8_t
25042 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25043 vzip1q_f16 (float16x8_t __a, float16x8_t __b)
25045 #ifdef __AARCH64EB__
25046 return __builtin_shuffle (__a, __b,
25047 (uint16x8_t) {12, 4, 13, 5, 14, 6, 15, 7});
25048 #else
25049 return __builtin_shuffle (__a, __b,
25050 (uint16x8_t) {0, 8, 1, 9, 2, 10, 3, 11});
25051 #endif
25054 __extension__ extern __inline float32x4_t
25055 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25056 vzip1q_f32 (float32x4_t __a, float32x4_t __b)
25058 #ifdef __AARCH64EB__
25059 return __builtin_shuffle (__a, __b, (uint32x4_t) {6, 2, 7, 3});
25060 #else
25061 return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 4, 1, 5});
25062 #endif
25065 __extension__ extern __inline float64x2_t
25066 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25067 vzip1q_f64 (float64x2_t __a, float64x2_t __b)
25069 #ifdef __AARCH64EB__
25070 return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
25071 #else
25072 return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
25073 #endif
25076 __extension__ extern __inline poly8x16_t
25077 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25078 vzip1q_p8 (poly8x16_t __a, poly8x16_t __b)
25080 #ifdef __AARCH64EB__
25081 return __builtin_shuffle (__a, __b, (uint8x16_t)
25082 {24, 8, 25, 9, 26, 10, 27, 11, 28, 12, 29, 13, 30, 14, 31, 15});
25083 #else
25084 return __builtin_shuffle (__a, __b, (uint8x16_t)
25085 {0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23});
25086 #endif
25089 __extension__ extern __inline poly16x8_t
25090 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25091 vzip1q_p16 (poly16x8_t __a, poly16x8_t __b)
25093 #ifdef __AARCH64EB__
25094 return __builtin_shuffle (__a, __b, (uint16x8_t)
25095 {12, 4, 13, 5, 14, 6, 15, 7});
25096 #else
25097 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 8, 1, 9, 2, 10, 3, 11});
25098 #endif
25101 __extension__ extern __inline int8x16_t
25102 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25103 vzip1q_s8 (int8x16_t __a, int8x16_t __b)
25105 #ifdef __AARCH64EB__
25106 return __builtin_shuffle (__a, __b, (uint8x16_t)
25107 {24, 8, 25, 9, 26, 10, 27, 11, 28, 12, 29, 13, 30, 14, 31, 15});
25108 #else
25109 return __builtin_shuffle (__a, __b, (uint8x16_t)
25110 {0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23});
25111 #endif
25114 __extension__ extern __inline int16x8_t
25115 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25116 vzip1q_s16 (int16x8_t __a, int16x8_t __b)
25118 #ifdef __AARCH64EB__
25119 return __builtin_shuffle (__a, __b, (uint16x8_t)
25120 {12, 4, 13, 5, 14, 6, 15, 7});
25121 #else
25122 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 8, 1, 9, 2, 10, 3, 11});
25123 #endif
25126 __extension__ extern __inline int32x4_t
25127 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25128 vzip1q_s32 (int32x4_t __a, int32x4_t __b)
25130 #ifdef __AARCH64EB__
25131 return __builtin_shuffle (__a, __b, (uint32x4_t) {6, 2, 7, 3});
25132 #else
25133 return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 4, 1, 5});
25134 #endif
25137 __extension__ extern __inline int64x2_t
25138 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25139 vzip1q_s64 (int64x2_t __a, int64x2_t __b)
25141 #ifdef __AARCH64EB__
25142 return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
25143 #else
25144 return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
25145 #endif
25148 __extension__ extern __inline uint8x16_t
25149 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25150 vzip1q_u8 (uint8x16_t __a, uint8x16_t __b)
25152 #ifdef __AARCH64EB__
25153 return __builtin_shuffle (__a, __b, (uint8x16_t)
25154 {24, 8, 25, 9, 26, 10, 27, 11, 28, 12, 29, 13, 30, 14, 31, 15});
25155 #else
25156 return __builtin_shuffle (__a, __b, (uint8x16_t)
25157 {0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23});
25158 #endif
25161 __extension__ extern __inline uint16x8_t
25162 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25163 vzip1q_u16 (uint16x8_t __a, uint16x8_t __b)
25165 #ifdef __AARCH64EB__
25166 return __builtin_shuffle (__a, __b, (uint16x8_t)
25167 {12, 4, 13, 5, 14, 6, 15, 7});
25168 #else
25169 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 8, 1, 9, 2, 10, 3, 11});
25170 #endif
25173 __extension__ extern __inline uint32x4_t
25174 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25175 vzip1q_u32 (uint32x4_t __a, uint32x4_t __b)
25177 #ifdef __AARCH64EB__
25178 return __builtin_shuffle (__a, __b, (uint32x4_t) {6, 2, 7, 3});
25179 #else
25180 return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 4, 1, 5});
25181 #endif
25184 __extension__ extern __inline uint64x2_t
25185 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25186 vzip1q_u64 (uint64x2_t __a, uint64x2_t __b)
25188 #ifdef __AARCH64EB__
25189 return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
25190 #else
25191 return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
25192 #endif
25195 __extension__ extern __inline poly64x2_t
25196 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25197 vzip1q_p64 (poly64x2_t __a, poly64x2_t __b)
25199 #ifdef __AARCH64EB__
25200 return __builtin_shuffle (__a, __b, (poly64x2_t) {3, 1});
25201 #else
25202 return __builtin_shuffle (__a, __b, (poly64x2_t) {0, 2});
25203 #endif
25206 __extension__ extern __inline float16x4_t
25207 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25208 vzip2_f16 (float16x4_t __a, float16x4_t __b)
25210 #ifdef __AARCH64EB__
25211 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 5, 1});
25212 #else
25213 return __builtin_shuffle (__a, __b, (uint16x4_t) {2, 6, 3, 7});
25214 #endif
25217 __extension__ extern __inline float32x2_t
25218 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25219 vzip2_f32 (float32x2_t __a, float32x2_t __b)
25221 #ifdef __AARCH64EB__
25222 return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
25223 #else
25224 return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
25225 #endif
25228 __extension__ extern __inline poly8x8_t
25229 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25230 vzip2_p8 (poly8x8_t __a, poly8x8_t __b)
25232 #ifdef __AARCH64EB__
25233 return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 0, 9, 1, 10, 2, 11, 3});
25234 #else
25235 return __builtin_shuffle (__a, __b, (uint8x8_t) {4, 12, 5, 13, 6, 14, 7, 15});
25236 #endif
25239 __extension__ extern __inline poly16x4_t
25240 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25241 vzip2_p16 (poly16x4_t __a, poly16x4_t __b)
25243 #ifdef __AARCH64EB__
25244 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 5, 1});
25245 #else
25246 return __builtin_shuffle (__a, __b, (uint16x4_t) {2, 6, 3, 7});
25247 #endif
25250 __extension__ extern __inline int8x8_t
25251 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25252 vzip2_s8 (int8x8_t __a, int8x8_t __b)
25254 #ifdef __AARCH64EB__
25255 return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 0, 9, 1, 10, 2, 11, 3});
25256 #else
25257 return __builtin_shuffle (__a, __b, (uint8x8_t) {4, 12, 5, 13, 6, 14, 7, 15});
25258 #endif
25261 __extension__ extern __inline int16x4_t
25262 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25263 vzip2_s16 (int16x4_t __a, int16x4_t __b)
25265 #ifdef __AARCH64EB__
25266 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 5, 1});
25267 #else
25268 return __builtin_shuffle (__a, __b, (uint16x4_t) {2, 6, 3, 7});
25269 #endif
25272 __extension__ extern __inline int32x2_t
25273 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25274 vzip2_s32 (int32x2_t __a, int32x2_t __b)
25276 #ifdef __AARCH64EB__
25277 return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
25278 #else
25279 return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
25280 #endif
25283 __extension__ extern __inline uint8x8_t
25284 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25285 vzip2_u8 (uint8x8_t __a, uint8x8_t __b)
25287 #ifdef __AARCH64EB__
25288 return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 0, 9, 1, 10, 2, 11, 3});
25289 #else
25290 return __builtin_shuffle (__a, __b, (uint8x8_t) {4, 12, 5, 13, 6, 14, 7, 15});
25291 #endif
25294 __extension__ extern __inline uint16x4_t
25295 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25296 vzip2_u16 (uint16x4_t __a, uint16x4_t __b)
25298 #ifdef __AARCH64EB__
25299 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 5, 1});
25300 #else
25301 return __builtin_shuffle (__a, __b, (uint16x4_t) {2, 6, 3, 7});
25302 #endif
25305 __extension__ extern __inline uint32x2_t
25306 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25307 vzip2_u32 (uint32x2_t __a, uint32x2_t __b)
25309 #ifdef __AARCH64EB__
25310 return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
25311 #else
25312 return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
25313 #endif
25316 __extension__ extern __inline float16x8_t
25317 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25318 vzip2q_f16 (float16x8_t __a, float16x8_t __b)
25320 #ifdef __AARCH64EB__
25321 return __builtin_shuffle (__a, __b,
25322 (uint16x8_t) {8, 0, 9, 1, 10, 2, 11, 3});
25323 #else
25324 return __builtin_shuffle (__a, __b,
25325 (uint16x8_t) {4, 12, 5, 13, 6, 14, 7, 15});
25326 #endif
25329 __extension__ extern __inline float32x4_t
25330 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25331 vzip2q_f32 (float32x4_t __a, float32x4_t __b)
25333 #ifdef __AARCH64EB__
25334 return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 0, 5, 1});
25335 #else
25336 return __builtin_shuffle (__a, __b, (uint32x4_t) {2, 6, 3, 7});
25337 #endif
25340 __extension__ extern __inline float64x2_t
25341 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25342 vzip2q_f64 (float64x2_t __a, float64x2_t __b)
25344 #ifdef __AARCH64EB__
25345 return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
25346 #else
25347 return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
25348 #endif
25351 __extension__ extern __inline poly8x16_t
25352 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25353 vzip2q_p8 (poly8x16_t __a, poly8x16_t __b)
25355 #ifdef __AARCH64EB__
25356 return __builtin_shuffle (__a, __b, (uint8x16_t)
25357 {16, 0, 17, 1, 18, 2, 19, 3, 20, 4, 21, 5, 22, 6, 23, 7});
25358 #else
25359 return __builtin_shuffle (__a, __b, (uint8x16_t)
25360 {8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31});
25361 #endif
25364 __extension__ extern __inline poly16x8_t
25365 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25366 vzip2q_p16 (poly16x8_t __a, poly16x8_t __b)
25368 #ifdef __AARCH64EB__
25369 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 0, 9, 1, 10, 2, 11, 3});
25370 #else
25371 return __builtin_shuffle (__a, __b, (uint16x8_t)
25372 {4, 12, 5, 13, 6, 14, 7, 15});
25373 #endif
25376 __extension__ extern __inline int8x16_t
25377 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25378 vzip2q_s8 (int8x16_t __a, int8x16_t __b)
25380 #ifdef __AARCH64EB__
25381 return __builtin_shuffle (__a, __b, (uint8x16_t)
25382 {16, 0, 17, 1, 18, 2, 19, 3, 20, 4, 21, 5, 22, 6, 23, 7});
25383 #else
25384 return __builtin_shuffle (__a, __b, (uint8x16_t)
25385 {8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31});
25386 #endif
25389 __extension__ extern __inline int16x8_t
25390 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25391 vzip2q_s16 (int16x8_t __a, int16x8_t __b)
25393 #ifdef __AARCH64EB__
25394 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 0, 9, 1, 10, 2, 11, 3});
25395 #else
25396 return __builtin_shuffle (__a, __b, (uint16x8_t)
25397 {4, 12, 5, 13, 6, 14, 7, 15});
25398 #endif
25401 __extension__ extern __inline int32x4_t
25402 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25403 vzip2q_s32 (int32x4_t __a, int32x4_t __b)
25405 #ifdef __AARCH64EB__
25406 return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 0, 5, 1});
25407 #else
25408 return __builtin_shuffle (__a, __b, (uint32x4_t) {2, 6, 3, 7});
25409 #endif
25412 __extension__ extern __inline int64x2_t
25413 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25414 vzip2q_s64 (int64x2_t __a, int64x2_t __b)
25416 #ifdef __AARCH64EB__
25417 return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
25418 #else
25419 return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
25420 #endif
25423 __extension__ extern __inline uint8x16_t
25424 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25425 vzip2q_u8 (uint8x16_t __a, uint8x16_t __b)
25427 #ifdef __AARCH64EB__
25428 return __builtin_shuffle (__a, __b, (uint8x16_t)
25429 {16, 0, 17, 1, 18, 2, 19, 3, 20, 4, 21, 5, 22, 6, 23, 7});
25430 #else
25431 return __builtin_shuffle (__a, __b, (uint8x16_t)
25432 {8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31});
25433 #endif
25436 __extension__ extern __inline uint16x8_t
25437 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25438 vzip2q_u16 (uint16x8_t __a, uint16x8_t __b)
25440 #ifdef __AARCH64EB__
25441 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 0, 9, 1, 10, 2, 11, 3});
25442 #else
25443 return __builtin_shuffle (__a, __b, (uint16x8_t)
25444 {4, 12, 5, 13, 6, 14, 7, 15});
25445 #endif
25448 __extension__ extern __inline uint32x4_t
25449 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25450 vzip2q_u32 (uint32x4_t __a, uint32x4_t __b)
25452 #ifdef __AARCH64EB__
25453 return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 0, 5, 1});
25454 #else
25455 return __builtin_shuffle (__a, __b, (uint32x4_t) {2, 6, 3, 7});
25456 #endif
25459 __extension__ extern __inline uint64x2_t
25460 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25461 vzip2q_u64 (uint64x2_t __a, uint64x2_t __b)
25463 #ifdef __AARCH64EB__
25464 return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
25465 #else
25466 return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
25467 #endif
25470 __extension__ extern __inline poly64x2_t
25471 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25472 vzip2q_p64 (poly64x2_t __a, poly64x2_t __b)
25474 #ifdef __AARCH64EB__
25475 return __builtin_shuffle (__a, __b, (poly64x2_t) {2, 0});
25476 #else
25477 return __builtin_shuffle (__a, __b, (poly64x2_t) {1, 3});
25478 #endif
25481 __INTERLEAVE_LIST (zip)
25483 #undef __INTERLEAVE_LIST
25484 #undef __DEFINTERLEAVE
25486 /* End of optimal implementations in approved order. */
25488 #pragma GCC pop_options
25490 /* ARMv8.2-A FP16 intrinsics. */
25492 #include "arm_fp16.h"
25494 #pragma GCC push_options
25495 #pragma GCC target ("+nothing+simd+fp16")
25497 /* ARMv8.2-A FP16 one operand vector intrinsics. */
25499 __extension__ extern __inline float16x4_t
25500 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25501 vabs_f16 (float16x4_t __a)
25503 return __builtin_aarch64_absv4hf (__a);
25506 __extension__ extern __inline float16x8_t
25507 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25508 vabsq_f16 (float16x8_t __a)
25510 return __builtin_aarch64_absv8hf (__a);
25513 __extension__ extern __inline uint16x4_t
25514 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25515 vceqz_f16 (float16x4_t __a)
25517 return __builtin_aarch64_cmeqv4hf_uss (__a, vdup_n_f16 (0.0f));
25520 __extension__ extern __inline uint16x8_t
25521 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25522 vceqzq_f16 (float16x8_t __a)
25524 return __builtin_aarch64_cmeqv8hf_uss (__a, vdupq_n_f16 (0.0f));
25527 __extension__ extern __inline uint16x4_t
25528 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25529 vcgez_f16 (float16x4_t __a)
25531 return __builtin_aarch64_cmgev4hf_uss (__a, vdup_n_f16 (0.0f));
25534 __extension__ extern __inline uint16x8_t
25535 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25536 vcgezq_f16 (float16x8_t __a)
25538 return __builtin_aarch64_cmgev8hf_uss (__a, vdupq_n_f16 (0.0f));
25541 __extension__ extern __inline uint16x4_t
25542 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25543 vcgtz_f16 (float16x4_t __a)
25545 return __builtin_aarch64_cmgtv4hf_uss (__a, vdup_n_f16 (0.0f));
25548 __extension__ extern __inline uint16x8_t
25549 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25550 vcgtzq_f16 (float16x8_t __a)
25552 return __builtin_aarch64_cmgtv8hf_uss (__a, vdupq_n_f16 (0.0f));
25555 __extension__ extern __inline uint16x4_t
25556 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25557 vclez_f16 (float16x4_t __a)
25559 return __builtin_aarch64_cmlev4hf_uss (__a, vdup_n_f16 (0.0f));
25562 __extension__ extern __inline uint16x8_t
25563 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25564 vclezq_f16 (float16x8_t __a)
25566 return __builtin_aarch64_cmlev8hf_uss (__a, vdupq_n_f16 (0.0f));
25569 __extension__ extern __inline uint16x4_t
25570 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25571 vcltz_f16 (float16x4_t __a)
25573 return __builtin_aarch64_cmltv4hf_uss (__a, vdup_n_f16 (0.0f));
25576 __extension__ extern __inline uint16x8_t
25577 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25578 vcltzq_f16 (float16x8_t __a)
25580 return __builtin_aarch64_cmltv8hf_uss (__a, vdupq_n_f16 (0.0f));
25583 __extension__ extern __inline float16x4_t
25584 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25585 vcvt_f16_s16 (int16x4_t __a)
25587 return __builtin_aarch64_floatv4hiv4hf (__a);
25590 __extension__ extern __inline float16x8_t
25591 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25592 vcvtq_f16_s16 (int16x8_t __a)
25594 return __builtin_aarch64_floatv8hiv8hf (__a);
25597 __extension__ extern __inline float16x4_t
25598 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25599 vcvt_f16_u16 (uint16x4_t __a)
25601 return __builtin_aarch64_floatunsv4hiv4hf ((int16x4_t) __a);
25604 __extension__ extern __inline float16x8_t
25605 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25606 vcvtq_f16_u16 (uint16x8_t __a)
25608 return __builtin_aarch64_floatunsv8hiv8hf ((int16x8_t) __a);
25611 __extension__ extern __inline int16x4_t
25612 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25613 vcvt_s16_f16 (float16x4_t __a)
25615 return __builtin_aarch64_lbtruncv4hfv4hi (__a);
25618 __extension__ extern __inline int16x8_t
25619 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25620 vcvtq_s16_f16 (float16x8_t __a)
25622 return __builtin_aarch64_lbtruncv8hfv8hi (__a);
25625 __extension__ extern __inline uint16x4_t
25626 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25627 vcvt_u16_f16 (float16x4_t __a)
25629 return __builtin_aarch64_lbtruncuv4hfv4hi_us (__a);
25632 __extension__ extern __inline uint16x8_t
25633 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25634 vcvtq_u16_f16 (float16x8_t __a)
25636 return __builtin_aarch64_lbtruncuv8hfv8hi_us (__a);
25639 __extension__ extern __inline int16x4_t
25640 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25641 vcvta_s16_f16 (float16x4_t __a)
25643 return __builtin_aarch64_lroundv4hfv4hi (__a);
25646 __extension__ extern __inline int16x8_t
25647 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25648 vcvtaq_s16_f16 (float16x8_t __a)
25650 return __builtin_aarch64_lroundv8hfv8hi (__a);
25653 __extension__ extern __inline uint16x4_t
25654 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25655 vcvta_u16_f16 (float16x4_t __a)
25657 return __builtin_aarch64_lrounduv4hfv4hi_us (__a);
25660 __extension__ extern __inline uint16x8_t
25661 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25662 vcvtaq_u16_f16 (float16x8_t __a)
25664 return __builtin_aarch64_lrounduv8hfv8hi_us (__a);
25667 __extension__ extern __inline int16x4_t
25668 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25669 vcvtm_s16_f16 (float16x4_t __a)
25671 return __builtin_aarch64_lfloorv4hfv4hi (__a);
25674 __extension__ extern __inline int16x8_t
25675 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25676 vcvtmq_s16_f16 (float16x8_t __a)
25678 return __builtin_aarch64_lfloorv8hfv8hi (__a);
25681 __extension__ extern __inline uint16x4_t
25682 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25683 vcvtm_u16_f16 (float16x4_t __a)
25685 return __builtin_aarch64_lflooruv4hfv4hi_us (__a);
25688 __extension__ extern __inline uint16x8_t
25689 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25690 vcvtmq_u16_f16 (float16x8_t __a)
25692 return __builtin_aarch64_lflooruv8hfv8hi_us (__a);
25695 __extension__ extern __inline int16x4_t
25696 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25697 vcvtn_s16_f16 (float16x4_t __a)
25699 return __builtin_aarch64_lfrintnv4hfv4hi (__a);
25702 __extension__ extern __inline int16x8_t
25703 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25704 vcvtnq_s16_f16 (float16x8_t __a)
25706 return __builtin_aarch64_lfrintnv8hfv8hi (__a);
25709 __extension__ extern __inline uint16x4_t
25710 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25711 vcvtn_u16_f16 (float16x4_t __a)
25713 return __builtin_aarch64_lfrintnuv4hfv4hi_us (__a);
25716 __extension__ extern __inline uint16x8_t
25717 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25718 vcvtnq_u16_f16 (float16x8_t __a)
25720 return __builtin_aarch64_lfrintnuv8hfv8hi_us (__a);
25723 __extension__ extern __inline int16x4_t
25724 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25725 vcvtp_s16_f16 (float16x4_t __a)
25727 return __builtin_aarch64_lceilv4hfv4hi (__a);
25730 __extension__ extern __inline int16x8_t
25731 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25732 vcvtpq_s16_f16 (float16x8_t __a)
25734 return __builtin_aarch64_lceilv8hfv8hi (__a);
25737 __extension__ extern __inline uint16x4_t
25738 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25739 vcvtp_u16_f16 (float16x4_t __a)
25741 return __builtin_aarch64_lceiluv4hfv4hi_us (__a);
25744 __extension__ extern __inline uint16x8_t
25745 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25746 vcvtpq_u16_f16 (float16x8_t __a)
25748 return __builtin_aarch64_lceiluv8hfv8hi_us (__a);
25751 __extension__ extern __inline float16x4_t
25752 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25753 vneg_f16 (float16x4_t __a)
25755 return -__a;
25758 __extension__ extern __inline float16x8_t
25759 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25760 vnegq_f16 (float16x8_t __a)
25762 return -__a;
25765 __extension__ extern __inline float16x4_t
25766 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25767 vrecpe_f16 (float16x4_t __a)
25769 return __builtin_aarch64_frecpev4hf (__a);
25772 __extension__ extern __inline float16x8_t
25773 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25774 vrecpeq_f16 (float16x8_t __a)
25776 return __builtin_aarch64_frecpev8hf (__a);
25779 __extension__ extern __inline float16x4_t
25780 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25781 vrnd_f16 (float16x4_t __a)
25783 return __builtin_aarch64_btruncv4hf (__a);
25786 __extension__ extern __inline float16x8_t
25787 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25788 vrndq_f16 (float16x8_t __a)
25790 return __builtin_aarch64_btruncv8hf (__a);
25793 __extension__ extern __inline float16x4_t
25794 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25795 vrnda_f16 (float16x4_t __a)
25797 return __builtin_aarch64_roundv4hf (__a);
25800 __extension__ extern __inline float16x8_t
25801 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25802 vrndaq_f16 (float16x8_t __a)
25804 return __builtin_aarch64_roundv8hf (__a);
25807 __extension__ extern __inline float16x4_t
25808 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25809 vrndi_f16 (float16x4_t __a)
25811 return __builtin_aarch64_nearbyintv4hf (__a);
25814 __extension__ extern __inline float16x8_t
25815 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25816 vrndiq_f16 (float16x8_t __a)
25818 return __builtin_aarch64_nearbyintv8hf (__a);
25821 __extension__ extern __inline float16x4_t
25822 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25823 vrndm_f16 (float16x4_t __a)
25825 return __builtin_aarch64_floorv4hf (__a);
25828 __extension__ extern __inline float16x8_t
25829 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25830 vrndmq_f16 (float16x8_t __a)
25832 return __builtin_aarch64_floorv8hf (__a);
25835 __extension__ extern __inline float16x4_t
25836 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25837 vrndn_f16 (float16x4_t __a)
25839 return __builtin_aarch64_roundevenv4hf (__a);
25842 __extension__ extern __inline float16x8_t
25843 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25844 vrndnq_f16 (float16x8_t __a)
25846 return __builtin_aarch64_roundevenv8hf (__a);
25849 __extension__ extern __inline float16x4_t
25850 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25851 vrndp_f16 (float16x4_t __a)
25853 return __builtin_aarch64_ceilv4hf (__a);
25856 __extension__ extern __inline float16x8_t
25857 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25858 vrndpq_f16 (float16x8_t __a)
25860 return __builtin_aarch64_ceilv8hf (__a);
25863 __extension__ extern __inline float16x4_t
25864 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25865 vrndx_f16 (float16x4_t __a)
25867 return __builtin_aarch64_rintv4hf (__a);
25870 __extension__ extern __inline float16x8_t
25871 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25872 vrndxq_f16 (float16x8_t __a)
25874 return __builtin_aarch64_rintv8hf (__a);
25877 __extension__ extern __inline float16x4_t
25878 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25879 vrsqrte_f16 (float16x4_t __a)
25881 return __builtin_aarch64_rsqrtev4hf (__a);
25884 __extension__ extern __inline float16x8_t
25885 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25886 vrsqrteq_f16 (float16x8_t __a)
25888 return __builtin_aarch64_rsqrtev8hf (__a);
25891 __extension__ extern __inline float16x4_t
25892 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25893 vsqrt_f16 (float16x4_t __a)
25895 return __builtin_aarch64_sqrtv4hf (__a);
25898 __extension__ extern __inline float16x8_t
25899 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25900 vsqrtq_f16 (float16x8_t __a)
25902 return __builtin_aarch64_sqrtv8hf (__a);
25905 /* ARMv8.2-A FP16 two operands vector intrinsics. */
25907 __extension__ extern __inline float16x4_t
25908 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25909 vadd_f16 (float16x4_t __a, float16x4_t __b)
25911 return __a + __b;
25914 __extension__ extern __inline float16x8_t
25915 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25916 vaddq_f16 (float16x8_t __a, float16x8_t __b)
25918 return __a + __b;
25921 __extension__ extern __inline float16x4_t
25922 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25923 vabd_f16 (float16x4_t __a, float16x4_t __b)
25925 return __builtin_aarch64_fabdv4hf (__a, __b);
25928 __extension__ extern __inline float16x8_t
25929 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25930 vabdq_f16 (float16x8_t __a, float16x8_t __b)
25932 return __builtin_aarch64_fabdv8hf (__a, __b);
25935 __extension__ extern __inline uint16x4_t
25936 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25937 vcage_f16 (float16x4_t __a, float16x4_t __b)
25939 return __builtin_aarch64_facgev4hf_uss (__a, __b);
25942 __extension__ extern __inline uint16x8_t
25943 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25944 vcageq_f16 (float16x8_t __a, float16x8_t __b)
25946 return __builtin_aarch64_facgev8hf_uss (__a, __b);
25949 __extension__ extern __inline uint16x4_t
25950 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25951 vcagt_f16 (float16x4_t __a, float16x4_t __b)
25953 return __builtin_aarch64_facgtv4hf_uss (__a, __b);
25956 __extension__ extern __inline uint16x8_t
25957 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25958 vcagtq_f16 (float16x8_t __a, float16x8_t __b)
25960 return __builtin_aarch64_facgtv8hf_uss (__a, __b);
25963 __extension__ extern __inline uint16x4_t
25964 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25965 vcale_f16 (float16x4_t __a, float16x4_t __b)
25967 return __builtin_aarch64_faclev4hf_uss (__a, __b);
25970 __extension__ extern __inline uint16x8_t
25971 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25972 vcaleq_f16 (float16x8_t __a, float16x8_t __b)
25974 return __builtin_aarch64_faclev8hf_uss (__a, __b);
25977 __extension__ extern __inline uint16x4_t
25978 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25979 vcalt_f16 (float16x4_t __a, float16x4_t __b)
25981 return __builtin_aarch64_facltv4hf_uss (__a, __b);
25984 __extension__ extern __inline uint16x8_t
25985 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25986 vcaltq_f16 (float16x8_t __a, float16x8_t __b)
25988 return __builtin_aarch64_facltv8hf_uss (__a, __b);
25991 __extension__ extern __inline uint16x4_t
25992 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25993 vceq_f16 (float16x4_t __a, float16x4_t __b)
25995 return __builtin_aarch64_cmeqv4hf_uss (__a, __b);
25998 __extension__ extern __inline uint16x8_t
25999 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26000 vceqq_f16 (float16x8_t __a, float16x8_t __b)
26002 return __builtin_aarch64_cmeqv8hf_uss (__a, __b);
26005 __extension__ extern __inline uint16x4_t
26006 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26007 vcge_f16 (float16x4_t __a, float16x4_t __b)
26009 return __builtin_aarch64_cmgev4hf_uss (__a, __b);
26012 __extension__ extern __inline uint16x8_t
26013 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26014 vcgeq_f16 (float16x8_t __a, float16x8_t __b)
26016 return __builtin_aarch64_cmgev8hf_uss (__a, __b);
26019 __extension__ extern __inline uint16x4_t
26020 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26021 vcgt_f16 (float16x4_t __a, float16x4_t __b)
26023 return __builtin_aarch64_cmgtv4hf_uss (__a, __b);
26026 __extension__ extern __inline uint16x8_t
26027 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26028 vcgtq_f16 (float16x8_t __a, float16x8_t __b)
26030 return __builtin_aarch64_cmgtv8hf_uss (__a, __b);
26033 __extension__ extern __inline uint16x4_t
26034 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26035 vcle_f16 (float16x4_t __a, float16x4_t __b)
26037 return __builtin_aarch64_cmlev4hf_uss (__a, __b);
26040 __extension__ extern __inline uint16x8_t
26041 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26042 vcleq_f16 (float16x8_t __a, float16x8_t __b)
26044 return __builtin_aarch64_cmlev8hf_uss (__a, __b);
26047 __extension__ extern __inline uint16x4_t
26048 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26049 vclt_f16 (float16x4_t __a, float16x4_t __b)
26051 return __builtin_aarch64_cmltv4hf_uss (__a, __b);
26054 __extension__ extern __inline uint16x8_t
26055 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26056 vcltq_f16 (float16x8_t __a, float16x8_t __b)
26058 return __builtin_aarch64_cmltv8hf_uss (__a, __b);
26061 __extension__ extern __inline float16x4_t
26062 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26063 vcvt_n_f16_s16 (int16x4_t __a, const int __b)
26065 return __builtin_aarch64_scvtfv4hi (__a, __b);
26068 __extension__ extern __inline float16x8_t
26069 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26070 vcvtq_n_f16_s16 (int16x8_t __a, const int __b)
26072 return __builtin_aarch64_scvtfv8hi (__a, __b);
26075 __extension__ extern __inline float16x4_t
26076 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26077 vcvt_n_f16_u16 (uint16x4_t __a, const int __b)
26079 return __builtin_aarch64_ucvtfv4hi_sus (__a, __b);
26082 __extension__ extern __inline float16x8_t
26083 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26084 vcvtq_n_f16_u16 (uint16x8_t __a, const int __b)
26086 return __builtin_aarch64_ucvtfv8hi_sus (__a, __b);
26089 __extension__ extern __inline int16x4_t
26090 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26091 vcvt_n_s16_f16 (float16x4_t __a, const int __b)
26093 return __builtin_aarch64_fcvtzsv4hf (__a, __b);
26096 __extension__ extern __inline int16x8_t
26097 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26098 vcvtq_n_s16_f16 (float16x8_t __a, const int __b)
26100 return __builtin_aarch64_fcvtzsv8hf (__a, __b);
26103 __extension__ extern __inline uint16x4_t
26104 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26105 vcvt_n_u16_f16 (float16x4_t __a, const int __b)
26107 return __builtin_aarch64_fcvtzuv4hf_uss (__a, __b);
26110 __extension__ extern __inline uint16x8_t
26111 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26112 vcvtq_n_u16_f16 (float16x8_t __a, const int __b)
26114 return __builtin_aarch64_fcvtzuv8hf_uss (__a, __b);
26117 __extension__ extern __inline float16x4_t
26118 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26119 vdiv_f16 (float16x4_t __a, float16x4_t __b)
26121 return __a / __b;
26124 __extension__ extern __inline float16x8_t
26125 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26126 vdivq_f16 (float16x8_t __a, float16x8_t __b)
26128 return __a / __b;
26131 __extension__ extern __inline float16x4_t
26132 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26133 vmax_f16 (float16x4_t __a, float16x4_t __b)
26135 return __builtin_aarch64_fmax_nanv4hf (__a, __b);
26138 __extension__ extern __inline float16x8_t
26139 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26140 vmaxq_f16 (float16x8_t __a, float16x8_t __b)
26142 return __builtin_aarch64_fmax_nanv8hf (__a, __b);
26145 __extension__ extern __inline float16x4_t
26146 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26147 vmaxnm_f16 (float16x4_t __a, float16x4_t __b)
26149 return __builtin_aarch64_fmaxv4hf (__a, __b);
26152 __extension__ extern __inline float16x8_t
26153 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26154 vmaxnmq_f16 (float16x8_t __a, float16x8_t __b)
26156 return __builtin_aarch64_fmaxv8hf (__a, __b);
26159 __extension__ extern __inline float16x4_t
26160 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26161 vmin_f16 (float16x4_t __a, float16x4_t __b)
26163 return __builtin_aarch64_fmin_nanv4hf (__a, __b);
26166 __extension__ extern __inline float16x8_t
26167 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26168 vminq_f16 (float16x8_t __a, float16x8_t __b)
26170 return __builtin_aarch64_fmin_nanv8hf (__a, __b);
26173 __extension__ extern __inline float16x4_t
26174 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26175 vminnm_f16 (float16x4_t __a, float16x4_t __b)
26177 return __builtin_aarch64_fminv4hf (__a, __b);
26180 __extension__ extern __inline float16x8_t
26181 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26182 vminnmq_f16 (float16x8_t __a, float16x8_t __b)
26184 return __builtin_aarch64_fminv8hf (__a, __b);
26187 __extension__ extern __inline float16x4_t
26188 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26189 vmul_f16 (float16x4_t __a, float16x4_t __b)
26191 return __a * __b;
26194 __extension__ extern __inline float16x8_t
26195 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26196 vmulq_f16 (float16x8_t __a, float16x8_t __b)
26198 return __a * __b;
26201 __extension__ extern __inline float16x4_t
26202 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26203 vmulx_f16 (float16x4_t __a, float16x4_t __b)
26205 return __builtin_aarch64_fmulxv4hf (__a, __b);
26208 __extension__ extern __inline float16x8_t
26209 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26210 vmulxq_f16 (float16x8_t __a, float16x8_t __b)
26212 return __builtin_aarch64_fmulxv8hf (__a, __b);
26215 __extension__ extern __inline float16x4_t
26216 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26217 vpadd_f16 (float16x4_t __a, float16x4_t __b)
26219 return __builtin_aarch64_faddpv4hf (__a, __b);
26222 __extension__ extern __inline float16x8_t
26223 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26224 vpaddq_f16 (float16x8_t __a, float16x8_t __b)
26226 return __builtin_aarch64_faddpv8hf (__a, __b);
26229 __extension__ extern __inline float16x4_t
26230 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26231 vpmax_f16 (float16x4_t __a, float16x4_t __b)
26233 return __builtin_aarch64_smax_nanpv4hf (__a, __b);
26236 __extension__ extern __inline float16x8_t
26237 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26238 vpmaxq_f16 (float16x8_t __a, float16x8_t __b)
26240 return __builtin_aarch64_smax_nanpv8hf (__a, __b);
26243 __extension__ extern __inline float16x4_t
26244 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26245 vpmaxnm_f16 (float16x4_t __a, float16x4_t __b)
26247 return __builtin_aarch64_smaxpv4hf (__a, __b);
26250 __extension__ extern __inline float16x8_t
26251 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26252 vpmaxnmq_f16 (float16x8_t __a, float16x8_t __b)
26254 return __builtin_aarch64_smaxpv8hf (__a, __b);
26257 __extension__ extern __inline float16x4_t
26258 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26259 vpmin_f16 (float16x4_t __a, float16x4_t __b)
26261 return __builtin_aarch64_smin_nanpv4hf (__a, __b);
26264 __extension__ extern __inline float16x8_t
26265 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26266 vpminq_f16 (float16x8_t __a, float16x8_t __b)
26268 return __builtin_aarch64_smin_nanpv8hf (__a, __b);
26271 __extension__ extern __inline float16x4_t
26272 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26273 vpminnm_f16 (float16x4_t __a, float16x4_t __b)
26275 return __builtin_aarch64_sminpv4hf (__a, __b);
26278 __extension__ extern __inline float16x8_t
26279 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26280 vpminnmq_f16 (float16x8_t __a, float16x8_t __b)
26282 return __builtin_aarch64_sminpv8hf (__a, __b);
26285 __extension__ extern __inline float16x4_t
26286 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26287 vrecps_f16 (float16x4_t __a, float16x4_t __b)
26289 return __builtin_aarch64_frecpsv4hf (__a, __b);
26292 __extension__ extern __inline float16x8_t
26293 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26294 vrecpsq_f16 (float16x8_t __a, float16x8_t __b)
26296 return __builtin_aarch64_frecpsv8hf (__a, __b);
26299 __extension__ extern __inline float16x4_t
26300 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26301 vrsqrts_f16 (float16x4_t __a, float16x4_t __b)
26303 return __builtin_aarch64_rsqrtsv4hf (__a, __b);
26306 __extension__ extern __inline float16x8_t
26307 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26308 vrsqrtsq_f16 (float16x8_t __a, float16x8_t __b)
26310 return __builtin_aarch64_rsqrtsv8hf (__a, __b);
26313 __extension__ extern __inline float16x4_t
26314 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26315 vsub_f16 (float16x4_t __a, float16x4_t __b)
26317 return __a - __b;
26320 __extension__ extern __inline float16x8_t
26321 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26322 vsubq_f16 (float16x8_t __a, float16x8_t __b)
26324 return __a - __b;
26327 /* ARMv8.2-A FP16 three operands vector intrinsics. */
26329 __extension__ extern __inline float16x4_t
26330 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26331 vfma_f16 (float16x4_t __a, float16x4_t __b, float16x4_t __c)
26333 return __builtin_aarch64_fmav4hf (__b, __c, __a);
26336 __extension__ extern __inline float16x8_t
26337 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26338 vfmaq_f16 (float16x8_t __a, float16x8_t __b, float16x8_t __c)
26340 return __builtin_aarch64_fmav8hf (__b, __c, __a);
26343 __extension__ extern __inline float16x4_t
26344 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26345 vfms_f16 (float16x4_t __a, float16x4_t __b, float16x4_t __c)
26347 return __builtin_aarch64_fnmav4hf (__b, __c, __a);
26350 __extension__ extern __inline float16x8_t
26351 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26352 vfmsq_f16 (float16x8_t __a, float16x8_t __b, float16x8_t __c)
26354 return __builtin_aarch64_fnmav8hf (__b, __c, __a);
26357 /* ARMv8.2-A FP16 lane vector intrinsics. */
26359 __extension__ extern __inline float16_t
26360 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26361 vfmah_lane_f16 (float16_t __a, float16_t __b,
26362 float16x4_t __c, const int __lane)
26364 return vfmah_f16 (__a, __b, __aarch64_vget_lane_any (__c, __lane));
26367 __extension__ extern __inline float16_t
26368 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26369 vfmah_laneq_f16 (float16_t __a, float16_t __b,
26370 float16x8_t __c, const int __lane)
26372 return vfmah_f16 (__a, __b, __aarch64_vget_lane_any (__c, __lane));
26375 __extension__ extern __inline float16x4_t
26376 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26377 vfma_lane_f16 (float16x4_t __a, float16x4_t __b,
26378 float16x4_t __c, const int __lane)
26380 return vfma_f16 (__a, __b, __aarch64_vdup_lane_f16 (__c, __lane));
26383 __extension__ extern __inline float16x8_t
26384 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26385 vfmaq_lane_f16 (float16x8_t __a, float16x8_t __b,
26386 float16x4_t __c, const int __lane)
26388 return vfmaq_f16 (__a, __b, __aarch64_vdupq_lane_f16 (__c, __lane));
26391 __extension__ extern __inline float16x4_t
26392 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26393 vfma_laneq_f16 (float16x4_t __a, float16x4_t __b,
26394 float16x8_t __c, const int __lane)
26396 return vfma_f16 (__a, __b, __aarch64_vdup_laneq_f16 (__c, __lane));
26399 __extension__ extern __inline float16x8_t
26400 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26401 vfmaq_laneq_f16 (float16x8_t __a, float16x8_t __b,
26402 float16x8_t __c, const int __lane)
26404 return vfmaq_f16 (__a, __b, __aarch64_vdupq_laneq_f16 (__c, __lane));
26407 __extension__ extern __inline float16x4_t
26408 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26409 vfma_n_f16 (float16x4_t __a, float16x4_t __b, float16_t __c)
26411 return vfma_f16 (__a, __b, vdup_n_f16 (__c));
26414 __extension__ extern __inline float16x8_t
26415 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26416 vfmaq_n_f16 (float16x8_t __a, float16x8_t __b, float16_t __c)
26418 return vfmaq_f16 (__a, __b, vdupq_n_f16 (__c));
26421 __extension__ extern __inline float16_t
26422 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26423 vfmsh_lane_f16 (float16_t __a, float16_t __b,
26424 float16x4_t __c, const int __lane)
26426 return vfmsh_f16 (__a, __b, __aarch64_vget_lane_any (__c, __lane));
26429 __extension__ extern __inline float16_t
26430 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26431 vfmsh_laneq_f16 (float16_t __a, float16_t __b,
26432 float16x8_t __c, const int __lane)
26434 return vfmsh_f16 (__a, __b, __aarch64_vget_lane_any (__c, __lane));
26437 __extension__ extern __inline float16x4_t
26438 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26439 vfms_lane_f16 (float16x4_t __a, float16x4_t __b,
26440 float16x4_t __c, const int __lane)
26442 return vfms_f16 (__a, __b, __aarch64_vdup_lane_f16 (__c, __lane));
26445 __extension__ extern __inline float16x8_t
26446 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26447 vfmsq_lane_f16 (float16x8_t __a, float16x8_t __b,
26448 float16x4_t __c, const int __lane)
26450 return vfmsq_f16 (__a, __b, __aarch64_vdupq_lane_f16 (__c, __lane));
26453 __extension__ extern __inline float16x4_t
26454 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26455 vfms_laneq_f16 (float16x4_t __a, float16x4_t __b,
26456 float16x8_t __c, const int __lane)
26458 return vfms_f16 (__a, __b, __aarch64_vdup_laneq_f16 (__c, __lane));
26461 __extension__ extern __inline float16x8_t
26462 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26463 vfmsq_laneq_f16 (float16x8_t __a, float16x8_t __b,
26464 float16x8_t __c, const int __lane)
26466 return vfmsq_f16 (__a, __b, __aarch64_vdupq_laneq_f16 (__c, __lane));
26469 __extension__ extern __inline float16x4_t
26470 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26471 vfms_n_f16 (float16x4_t __a, float16x4_t __b, float16_t __c)
26473 return vfms_f16 (__a, __b, vdup_n_f16 (__c));
26476 __extension__ extern __inline float16x8_t
26477 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26478 vfmsq_n_f16 (float16x8_t __a, float16x8_t __b, float16_t __c)
26480 return vfmsq_f16 (__a, __b, vdupq_n_f16 (__c));
26483 __extension__ extern __inline float16_t
26484 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26485 vmulh_lane_f16 (float16_t __a, float16x4_t __b, const int __lane)
26487 return __a * __aarch64_vget_lane_any (__b, __lane);
26490 __extension__ extern __inline float16x4_t
26491 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26492 vmul_lane_f16 (float16x4_t __a, float16x4_t __b, const int __lane)
26494 return vmul_f16 (__a, vdup_n_f16 (__aarch64_vget_lane_any (__b, __lane)));
26497 __extension__ extern __inline float16x8_t
26498 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26499 vmulq_lane_f16 (float16x8_t __a, float16x4_t __b, const int __lane)
26501 return vmulq_f16 (__a, vdupq_n_f16 (__aarch64_vget_lane_any (__b, __lane)));
26504 __extension__ extern __inline float16_t
26505 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26506 vmulh_laneq_f16 (float16_t __a, float16x8_t __b, const int __lane)
26508 return __a * __aarch64_vget_lane_any (__b, __lane);
26511 __extension__ extern __inline float16x4_t
26512 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26513 vmul_laneq_f16 (float16x4_t __a, float16x8_t __b, const int __lane)
26515 return vmul_f16 (__a, vdup_n_f16 (__aarch64_vget_lane_any (__b, __lane)));
26518 __extension__ extern __inline float16x8_t
26519 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26520 vmulq_laneq_f16 (float16x8_t __a, float16x8_t __b, const int __lane)
26522 return vmulq_f16 (__a, vdupq_n_f16 (__aarch64_vget_lane_any (__b, __lane)));
26525 __extension__ extern __inline float16x4_t
26526 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26527 vmul_n_f16 (float16x4_t __a, float16_t __b)
26529 return vmul_lane_f16 (__a, vdup_n_f16 (__b), 0);
26532 __extension__ extern __inline float16x8_t
26533 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26534 vmulq_n_f16 (float16x8_t __a, float16_t __b)
26536 return vmulq_laneq_f16 (__a, vdupq_n_f16 (__b), 0);
26539 __extension__ extern __inline float16_t
26540 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26541 vmulxh_lane_f16 (float16_t __a, float16x4_t __b, const int __lane)
26543 return vmulxh_f16 (__a, __aarch64_vget_lane_any (__b, __lane));
26546 __extension__ extern __inline float16x4_t
26547 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26548 vmulx_lane_f16 (float16x4_t __a, float16x4_t __b, const int __lane)
26550 return vmulx_f16 (__a, __aarch64_vdup_lane_f16 (__b, __lane));
26553 __extension__ extern __inline float16x8_t
26554 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26555 vmulxq_lane_f16 (float16x8_t __a, float16x4_t __b, const int __lane)
26557 return vmulxq_f16 (__a, __aarch64_vdupq_lane_f16 (__b, __lane));
26560 __extension__ extern __inline float16_t
26561 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26562 vmulxh_laneq_f16 (float16_t __a, float16x8_t __b, const int __lane)
26564 return vmulxh_f16 (__a, __aarch64_vget_lane_any (__b, __lane));
26567 __extension__ extern __inline float16x4_t
26568 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26569 vmulx_laneq_f16 (float16x4_t __a, float16x8_t __b, const int __lane)
26571 return vmulx_f16 (__a, __aarch64_vdup_laneq_f16 (__b, __lane));
26574 __extension__ extern __inline float16x8_t
26575 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26576 vmulxq_laneq_f16 (float16x8_t __a, float16x8_t __b, const int __lane)
26578 return vmulxq_f16 (__a, __aarch64_vdupq_laneq_f16 (__b, __lane));
26581 __extension__ extern __inline float16x4_t
26582 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26583 vmulx_n_f16 (float16x4_t __a, float16_t __b)
26585 return vmulx_f16 (__a, vdup_n_f16 (__b));
26588 __extension__ extern __inline float16x8_t
26589 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26590 vmulxq_n_f16 (float16x8_t __a, float16_t __b)
26592 return vmulxq_f16 (__a, vdupq_n_f16 (__b));
26595 /* ARMv8.2-A FP16 reduction vector intrinsics. */
26597 __extension__ extern __inline float16_t
26598 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26599 vmaxv_f16 (float16x4_t __a)
26601 return __builtin_aarch64_reduc_smax_nan_scal_v4hf (__a);
26604 __extension__ extern __inline float16_t
26605 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26606 vmaxvq_f16 (float16x8_t __a)
26608 return __builtin_aarch64_reduc_smax_nan_scal_v8hf (__a);
26611 __extension__ extern __inline float16_t
26612 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26613 vminv_f16 (float16x4_t __a)
26615 return __builtin_aarch64_reduc_smin_nan_scal_v4hf (__a);
26618 __extension__ extern __inline float16_t
26619 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26620 vminvq_f16 (float16x8_t __a)
26622 return __builtin_aarch64_reduc_smin_nan_scal_v8hf (__a);
26625 __extension__ extern __inline float16_t
26626 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26627 vmaxnmv_f16 (float16x4_t __a)
26629 return __builtin_aarch64_reduc_smax_scal_v4hf (__a);
26632 __extension__ extern __inline float16_t
26633 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26634 vmaxnmvq_f16 (float16x8_t __a)
26636 return __builtin_aarch64_reduc_smax_scal_v8hf (__a);
26639 __extension__ extern __inline float16_t
26640 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26641 vminnmv_f16 (float16x4_t __a)
26643 return __builtin_aarch64_reduc_smin_scal_v4hf (__a);
26646 __extension__ extern __inline float16_t
26647 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26648 vminnmvq_f16 (float16x8_t __a)
26650 return __builtin_aarch64_reduc_smin_scal_v8hf (__a);
26653 #pragma GCC pop_options
26655 /* AdvSIMD Dot Product intrinsics. */
26657 #pragma GCC push_options
26658 #pragma GCC target ("+nothing+dotprod")
26660 __extension__ extern __inline uint32x2_t
26661 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26662 vdot_u32 (uint32x2_t __r, uint8x8_t __a, uint8x8_t __b)
26664 return __builtin_aarch64_udot_prodv8qi_uuuu (__a, __b, __r);
26667 __extension__ extern __inline uint32x4_t
26668 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26669 vdotq_u32 (uint32x4_t __r, uint8x16_t __a, uint8x16_t __b)
26671 return __builtin_aarch64_udot_prodv16qi_uuuu (__a, __b, __r);
26674 __extension__ extern __inline int32x2_t
26675 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26676 vdot_s32 (int32x2_t __r, int8x8_t __a, int8x8_t __b)
26678 return __builtin_aarch64_sdot_prodv8qi (__a, __b, __r);
26681 __extension__ extern __inline int32x4_t
26682 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26683 vdotq_s32 (int32x4_t __r, int8x16_t __a, int8x16_t __b)
26685 return __builtin_aarch64_sdot_prodv16qi (__a, __b, __r);
26688 __extension__ extern __inline uint32x2_t
26689 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26690 vdot_lane_u32 (uint32x2_t __r, uint8x8_t __a, uint8x8_t __b, const int __index)
26692 return __builtin_aarch64_udot_lanev8qi_uuuus (__r, __a, __b, __index);
26695 __extension__ extern __inline uint32x2_t
26696 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26697 vdot_laneq_u32 (uint32x2_t __r, uint8x8_t __a, uint8x16_t __b,
26698 const int __index)
26700 return __builtin_aarch64_udot_laneqv8qi_uuuus (__r, __a, __b, __index);
26703 __extension__ extern __inline uint32x4_t
26704 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26705 vdotq_lane_u32 (uint32x4_t __r, uint8x16_t __a, uint8x8_t __b,
26706 const int __index)
26708 return __builtin_aarch64_udot_lanev16qi_uuuus (__r, __a, __b, __index);
26711 __extension__ extern __inline uint32x4_t
26712 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26713 vdotq_laneq_u32 (uint32x4_t __r, uint8x16_t __a, uint8x16_t __b,
26714 const int __index)
26716 return __builtin_aarch64_udot_laneqv16qi_uuuus (__r, __a, __b, __index);
26719 __extension__ extern __inline int32x2_t
26720 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26721 vdot_lane_s32 (int32x2_t __r, int8x8_t __a, int8x8_t __b, const int __index)
26723 return __builtin_aarch64_sdot_lanev8qi (__r, __a, __b, __index);
26726 __extension__ extern __inline int32x2_t
26727 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26728 vdot_laneq_s32 (int32x2_t __r, int8x8_t __a, int8x16_t __b, const int __index)
26730 return __builtin_aarch64_sdot_laneqv8qi (__r, __a, __b, __index);
26733 __extension__ extern __inline int32x4_t
26734 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26735 vdotq_lane_s32 (int32x4_t __r, int8x16_t __a, int8x8_t __b, const int __index)
26737 return __builtin_aarch64_sdot_lanev16qi (__r, __a, __b, __index);
26740 __extension__ extern __inline int32x4_t
26741 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26742 vdotq_laneq_s32 (int32x4_t __r, int8x16_t __a, int8x16_t __b, const int __index)
26744 return __builtin_aarch64_sdot_laneqv16qi (__r, __a, __b, __index);
26746 #pragma GCC pop_options
26748 #pragma GCC push_options
26749 #pragma GCC target ("+nothing+sm4")
26751 __extension__ extern __inline uint32x4_t
26752 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26753 vsm3ss1q_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
26755 return __builtin_aarch64_sm3ss1qv4si_uuuu (__a, __b, __c);
26758 __extension__ extern __inline uint32x4_t
26759 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26760 vsm3tt1aq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c, const int __imm2)
26762 return __builtin_aarch64_sm3tt1aqv4si_uuuus (__a, __b, __c, __imm2);
26765 __extension__ extern __inline uint32x4_t
26766 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26767 vsm3tt1bq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c, const int __imm2)
26769 return __builtin_aarch64_sm3tt1bqv4si_uuuus (__a, __b, __c, __imm2);
26772 __extension__ extern __inline uint32x4_t
26773 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26774 vsm3tt2aq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c, const int __imm2)
26776 return __builtin_aarch64_sm3tt2aqv4si_uuuus (__a, __b, __c, __imm2);
26779 __extension__ extern __inline uint32x4_t
26780 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26781 vsm3tt2bq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c, const int __imm2)
26783 return __builtin_aarch64_sm3tt2bqv4si_uuuus (__a, __b, __c, __imm2);
26786 __extension__ extern __inline uint32x4_t
26787 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26788 vsm3partw1q_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
26790 return __builtin_aarch64_sm3partw1qv4si_uuuu (__a, __b, __c);
26792 __extension__ extern __inline uint32x4_t
26793 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26794 vsm3partw2q_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
26796 return __builtin_aarch64_sm3partw2qv4si_uuuu (__a, __b, __c);
26799 __extension__ extern __inline uint32x4_t
26800 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26801 vsm4eq_u32 (uint32x4_t __a, uint32x4_t __b)
26803 return __builtin_aarch64_sm4eqv4si_uuu (__a, __b);
26806 __extension__ extern __inline uint32x4_t
26807 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26808 vsm4ekeyq_u32 (uint32x4_t __a, uint32x4_t __b)
26810 return __builtin_aarch64_sm4ekeyqv4si_uuu (__a, __b);
26813 #pragma GCC pop_options
26815 #pragma GCC push_options
26816 #pragma GCC target ("+nothing+sha3")
26818 __extension__ extern __inline uint64x2_t
26819 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26820 vsha512hq_u64 (uint64x2_t __a, uint64x2_t __b, uint64x2_t __c)
26822 return __builtin_aarch64_crypto_sha512hqv2di_uuuu (__a, __b, __c);
26825 __extension__ extern __inline uint64x2_t
26826 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26827 vsha512h2q_u64 (uint64x2_t __a, uint64x2_t __b, uint64x2_t __c)
26829 return __builtin_aarch64_crypto_sha512h2qv2di_uuuu (__a, __b, __c);
26832 __extension__ extern __inline uint64x2_t
26833 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26834 vsha512su0q_u64 (uint64x2_t __a, uint64x2_t __b)
26836 return __builtin_aarch64_crypto_sha512su0qv2di_uuu (__a, __b);
26839 __extension__ extern __inline uint64x2_t
26840 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26841 vsha512su1q_u64 (uint64x2_t __a, uint64x2_t __b, uint64x2_t __c)
26843 return __builtin_aarch64_crypto_sha512su1qv2di_uuuu (__a, __b, __c);
26846 __extension__ extern __inline uint8x16_t
26847 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26848 veor3q_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c)
26850 return __builtin_aarch64_eor3qv16qi_uuuu (__a, __b, __c);
26853 __extension__ extern __inline uint16x8_t
26854 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26855 veor3q_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
26857 return __builtin_aarch64_eor3qv8hi_uuuu (__a, __b, __c);
26860 __extension__ extern __inline uint32x4_t
26861 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26862 veor3q_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
26864 return __builtin_aarch64_eor3qv4si_uuuu (__a, __b, __c);
26867 __extension__ extern __inline uint64x2_t
26868 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26869 veor3q_u64 (uint64x2_t __a, uint64x2_t __b, uint64x2_t __c)
26871 return __builtin_aarch64_eor3qv2di_uuuu (__a, __b, __c);
26875 __extension__ extern __inline int8x16_t
26876 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26877 veor3q_s8 (int8x16_t __a, int8x16_t __b, int8x16_t __c)
26879 return __builtin_aarch64_eor3qv16qi (__a, __b, __c);
26882 __extension__ extern __inline int16x8_t
26883 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26884 veor3q_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
26886 return __builtin_aarch64_eor3qv8hi (__a, __b, __c);
26889 __extension__ extern __inline int32x4_t
26890 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26891 veor3q_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
26893 return __builtin_aarch64_eor3qv4si (__a, __b, __c);
26896 __extension__ extern __inline int64x2_t
26897 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26898 veor3q_s64 (int64x2_t __a, int64x2_t __b, int64x2_t __c)
26900 return __builtin_aarch64_eor3qv2di (__a, __b, __c);
26903 __extension__ extern __inline uint64x2_t
26904 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26905 vrax1q_u64 (uint64x2_t __a, uint64x2_t __b)
26907 return __builtin_aarch64_rax1qv2di_uuu (__a, __b);
26910 __extension__ extern __inline uint64x2_t
26911 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26912 vxarq_u64 (uint64x2_t __a, uint64x2_t __b, const int __imm6)
26914 return __builtin_aarch64_xarqv2di_uuus (__a, __b, __imm6);
26917 __extension__ extern __inline uint8x16_t
26918 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26919 vbcaxq_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c)
26921 return __builtin_aarch64_bcaxqv16qi_uuuu (__a, __b, __c);
26924 __extension__ extern __inline uint16x8_t
26925 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26926 vbcaxq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
26928 return __builtin_aarch64_bcaxqv8hi_uuuu (__a, __b, __c);
26931 __extension__ extern __inline uint32x4_t
26932 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26933 vbcaxq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
26935 return __builtin_aarch64_bcaxqv4si_uuuu (__a, __b, __c);
26938 __extension__ extern __inline uint64x2_t
26939 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26940 vbcaxq_u64 (uint64x2_t __a, uint64x2_t __b, uint64x2_t __c)
26942 return __builtin_aarch64_bcaxqv2di_uuuu (__a, __b, __c);
26945 __extension__ extern __inline int8x16_t
26946 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26947 vbcaxq_s8 (int8x16_t __a, int8x16_t __b, int8x16_t __c)
26949 return __builtin_aarch64_bcaxqv16qi (__a, __b, __c);
26952 __extension__ extern __inline int16x8_t
26953 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26954 vbcaxq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
26956 return __builtin_aarch64_bcaxqv8hi (__a, __b, __c);
26959 __extension__ extern __inline int32x4_t
26960 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26961 vbcaxq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
26963 return __builtin_aarch64_bcaxqv4si (__a, __b, __c);
26966 __extension__ extern __inline int64x2_t
26967 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26968 vbcaxq_s64 (int64x2_t __a, int64x2_t __b, int64x2_t __c)
26970 return __builtin_aarch64_bcaxqv2di (__a, __b, __c);
26973 #pragma GCC pop_options
26975 /* AdvSIMD Complex numbers intrinsics. */
26977 #pragma GCC push_options
26978 #pragma GCC target ("+nothing+fcma")
26980 #pragma GCC push_options
26981 #pragma GCC target ("+fp16")
26982 __extension__ extern __inline float16x4_t
26983 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26984 vcadd_rot90_f16 (float16x4_t __a, float16x4_t __b)
26986 return __builtin_aarch64_fcadd90v4hf (__a, __b);
26989 __extension__ extern __inline float16x8_t
26990 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26991 vcaddq_rot90_f16 (float16x8_t __a, float16x8_t __b)
26993 return __builtin_aarch64_fcadd90v8hf (__a, __b);
26996 __extension__ extern __inline float16x4_t
26997 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26998 vcadd_rot270_f16 (float16x4_t __a, float16x4_t __b)
27000 return __builtin_aarch64_fcadd270v4hf (__a, __b);
27003 __extension__ extern __inline float16x8_t
27004 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27005 vcaddq_rot270_f16 (float16x8_t __a, float16x8_t __b)
27007 return __builtin_aarch64_fcadd270v8hf (__a, __b);
27010 __extension__ extern __inline float16x4_t
27011 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27012 vcmla_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b)
27014 return __builtin_aarch64_fcmla0v4hf (__r, __a, __b);
27017 __extension__ extern __inline float16x8_t
27018 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27019 vcmlaq_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b)
27021 return __builtin_aarch64_fcmla0v8hf (__r, __a, __b);
27024 __extension__ extern __inline float16x4_t
27025 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27026 vcmla_lane_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b,
27027 const int __index)
27029 return __builtin_aarch64_fcmla_lane0v4hf (__r, __a, __b, __index);
27032 __extension__ extern __inline float16x4_t
27033 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27034 vcmla_laneq_f16 (float16x4_t __r, float16x4_t __a, float16x8_t __b,
27035 const int __index)
27037 return __builtin_aarch64_fcmla_laneq0v4hf (__r, __a, __b, __index);
27040 __extension__ extern __inline float16x8_t
27041 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27042 vcmlaq_lane_f16 (float16x8_t __r, float16x8_t __a, float16x4_t __b,
27043 const int __index)
27045 return __builtin_aarch64_fcmlaq_lane0v8hf (__r, __a, __b, __index);
27048 __extension__ extern __inline float16x8_t
27049 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27050 vcmlaq_rot90_lane_f16 (float16x8_t __r, float16x8_t __a, float16x4_t __b,
27051 const int __index)
27053 return __builtin_aarch64_fcmlaq_lane90v8hf (__r, __a, __b, __index);
27056 __extension__ extern __inline float16x4_t
27057 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27058 vcmla_rot90_laneq_f16 (float16x4_t __r, float16x4_t __a, float16x8_t __b,
27059 const int __index)
27061 return __builtin_aarch64_fcmla_laneq90v4hf (__r, __a, __b, __index);
27064 __extension__ extern __inline float16x4_t
27065 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27066 vcmla_rot90_lane_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b,
27067 const int __index)
27069 return __builtin_aarch64_fcmla_lane90v4hf (__r, __a, __b, __index);
27072 __extension__ extern __inline float16x8_t
27073 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27074 vcmlaq_rot90_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b)
27076 return __builtin_aarch64_fcmla90v8hf (__r, __a, __b);
27079 __extension__ extern __inline float16x4_t
27080 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27081 vcmla_rot90_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b)
27083 return __builtin_aarch64_fcmla90v4hf (__r, __a, __b);
27086 __extension__ extern __inline float16x8_t
27087 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27088 vcmlaq_laneq_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b,
27089 const int __index)
27091 return __builtin_aarch64_fcmla_lane0v8hf (__r, __a, __b, __index);
27094 __extension__ extern __inline float16x4_t
27095 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27096 vcmla_rot180_laneq_f16 (float16x4_t __r, float16x4_t __a, float16x8_t __b,
27097 const int __index)
27099 return __builtin_aarch64_fcmla_laneq180v4hf (__r, __a, __b, __index);
27102 __extension__ extern __inline float16x4_t
27103 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27104 vcmla_rot180_lane_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b,
27105 const int __index)
27107 return __builtin_aarch64_fcmla_lane180v4hf (__r, __a, __b, __index);
27110 __extension__ extern __inline float16x8_t
27111 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27112 vcmlaq_rot180_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b)
27114 return __builtin_aarch64_fcmla180v8hf (__r, __a, __b);
27117 __extension__ extern __inline float16x4_t
27118 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27119 vcmla_rot180_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b)
27121 return __builtin_aarch64_fcmla180v4hf (__r, __a, __b);
27124 __extension__ extern __inline float16x8_t
27125 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27126 vcmlaq_rot90_laneq_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b,
27127 const int __index)
27129 return __builtin_aarch64_fcmla_lane90v8hf (__r, __a, __b, __index);
27132 __extension__ extern __inline float16x8_t
27133 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27134 vcmlaq_rot270_laneq_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b,
27135 const int __index)
27137 return __builtin_aarch64_fcmla_lane270v8hf (__r, __a, __b, __index);
27140 __extension__ extern __inline float16x8_t
27141 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27142 vcmlaq_rot270_lane_f16 (float16x8_t __r, float16x8_t __a, float16x4_t __b,
27143 const int __index)
27145 return __builtin_aarch64_fcmlaq_lane270v8hf (__r, __a, __b, __index);
27148 __extension__ extern __inline float16x4_t
27149 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27150 vcmla_rot270_laneq_f16 (float16x4_t __r, float16x4_t __a, float16x8_t __b,
27151 const int __index)
27153 return __builtin_aarch64_fcmla_laneq270v4hf (__r, __a, __b, __index);
27156 __extension__ extern __inline float16x8_t
27157 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27158 vcmlaq_rot270_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b)
27160 return __builtin_aarch64_fcmla270v8hf (__r, __a, __b);
27163 __extension__ extern __inline float16x4_t
27164 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27165 vcmla_rot270_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b)
27167 return __builtin_aarch64_fcmla270v4hf (__r, __a, __b);
27170 __extension__ extern __inline float16x8_t
27171 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27172 vcmlaq_rot180_laneq_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b,
27173 const int __index)
27175 return __builtin_aarch64_fcmla_lane180v8hf (__r, __a, __b, __index);
27178 __extension__ extern __inline float16x8_t
27179 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27180 vcmlaq_rot180_lane_f16 (float16x8_t __r, float16x8_t __a, float16x4_t __b,
27181 const int __index)
27183 return __builtin_aarch64_fcmlaq_lane180v8hf (__r, __a, __b, __index);
27186 __extension__ extern __inline float16x4_t
27187 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27188 vcmla_rot270_lane_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b,
27189 const int __index)
27191 return __builtin_aarch64_fcmla_lane270v4hf (__r, __a, __b, __index);
27193 #pragma GCC pop_options
27195 __extension__ extern __inline float32x2_t
27196 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27197 vcadd_rot90_f32 (float32x2_t __a, float32x2_t __b)
27199 return __builtin_aarch64_fcadd90v2sf (__a, __b);
27202 __extension__ extern __inline float32x4_t
27203 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27204 vcaddq_rot90_f32 (float32x4_t __a, float32x4_t __b)
27206 return __builtin_aarch64_fcadd90v4sf (__a, __b);
27209 __extension__ extern __inline float64x2_t
27210 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27211 vcaddq_rot90_f64 (float64x2_t __a, float64x2_t __b)
27213 return __builtin_aarch64_fcadd90v2df (__a, __b);
27216 __extension__ extern __inline float32x2_t
27217 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27218 vcadd_rot270_f32 (float32x2_t __a, float32x2_t __b)
27220 return __builtin_aarch64_fcadd270v2sf (__a, __b);
27223 __extension__ extern __inline float32x4_t
27224 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27225 vcaddq_rot270_f32 (float32x4_t __a, float32x4_t __b)
27227 return __builtin_aarch64_fcadd270v4sf (__a, __b);
27230 __extension__ extern __inline float64x2_t
27231 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27232 vcaddq_rot270_f64 (float64x2_t __a, float64x2_t __b)
27234 return __builtin_aarch64_fcadd270v2df (__a, __b);
27237 __extension__ extern __inline float32x2_t
27238 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27239 vcmla_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b)
27241 return __builtin_aarch64_fcmla0v2sf (__r, __a, __b);
27244 __extension__ extern __inline float32x4_t
27245 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27246 vcmlaq_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b)
27248 return __builtin_aarch64_fcmla0v4sf (__r, __a, __b);
27251 __extension__ extern __inline float64x2_t
27252 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27253 vcmlaq_f64 (float64x2_t __r, float64x2_t __a, float64x2_t __b)
27255 return __builtin_aarch64_fcmla0v2df (__r, __a, __b);
27258 __extension__ extern __inline float32x2_t
27259 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27260 vcmla_lane_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b,
27261 const int __index)
27263 return __builtin_aarch64_fcmla_lane0v2sf (__r, __a, __b, __index);
27266 __extension__ extern __inline float32x2_t
27267 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27268 vcmla_laneq_f32 (float32x2_t __r, float32x2_t __a, float32x4_t __b,
27269 const int __index)
27271 return __builtin_aarch64_fcmla_laneq0v2sf (__r, __a, __b, __index);
27274 __extension__ extern __inline float32x4_t
27275 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27276 vcmlaq_lane_f32 (float32x4_t __r, float32x4_t __a, float32x2_t __b,
27277 const int __index)
27279 return __builtin_aarch64_fcmlaq_lane0v4sf (__r, __a, __b, __index);
27282 __extension__ extern __inline float32x4_t
27283 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27284 vcmlaq_laneq_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b,
27285 const int __index)
27287 return __builtin_aarch64_fcmla_lane0v4sf (__r, __a, __b, __index);
27290 __extension__ extern __inline float32x2_t
27291 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27292 vcmla_rot90_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b)
27294 return __builtin_aarch64_fcmla90v2sf (__r, __a, __b);
27297 __extension__ extern __inline float32x4_t
27298 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27299 vcmlaq_rot90_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b)
27301 return __builtin_aarch64_fcmla90v4sf (__r, __a, __b);
27304 __extension__ extern __inline float64x2_t
27305 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27306 vcmlaq_rot90_f64 (float64x2_t __r, float64x2_t __a, float64x2_t __b)
27308 return __builtin_aarch64_fcmla90v2df (__r, __a, __b);
27311 __extension__ extern __inline float32x2_t
27312 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27313 vcmla_rot90_lane_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b,
27314 const int __index)
27316 return __builtin_aarch64_fcmla_lane90v2sf (__r, __a, __b, __index);
27319 __extension__ extern __inline float32x2_t
27320 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27321 vcmla_rot90_laneq_f32 (float32x2_t __r, float32x2_t __a, float32x4_t __b,
27322 const int __index)
27324 return __builtin_aarch64_fcmla_laneq90v2sf (__r, __a, __b, __index);
27327 __extension__ extern __inline float32x4_t
27328 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27329 vcmlaq_rot90_lane_f32 (float32x4_t __r, float32x4_t __a, float32x2_t __b,
27330 const int __index)
27332 return __builtin_aarch64_fcmlaq_lane90v4sf (__r, __a, __b, __index);
27335 __extension__ extern __inline float32x4_t
27336 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27337 vcmlaq_rot90_laneq_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b,
27338 const int __index)
27340 return __builtin_aarch64_fcmla_lane90v4sf (__r, __a, __b, __index);
27343 __extension__ extern __inline float32x2_t
27344 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27345 vcmla_rot180_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b)
27347 return __builtin_aarch64_fcmla180v2sf (__r, __a, __b);
27350 __extension__ extern __inline float32x4_t
27351 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27352 vcmlaq_rot180_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b)
27354 return __builtin_aarch64_fcmla180v4sf (__r, __a, __b);
27357 __extension__ extern __inline float64x2_t
27358 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27359 vcmlaq_rot180_f64 (float64x2_t __r, float64x2_t __a, float64x2_t __b)
27361 return __builtin_aarch64_fcmla180v2df (__r, __a, __b);
27364 __extension__ extern __inline float32x2_t
27365 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27366 vcmla_rot180_lane_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b,
27367 const int __index)
27369 return __builtin_aarch64_fcmla_lane180v2sf (__r, __a, __b, __index);
27372 __extension__ extern __inline float32x2_t
27373 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27374 vcmla_rot180_laneq_f32 (float32x2_t __r, float32x2_t __a, float32x4_t __b,
27375 const int __index)
27377 return __builtin_aarch64_fcmla_laneq180v2sf (__r, __a, __b, __index);
27380 __extension__ extern __inline float32x4_t
27381 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27382 vcmlaq_rot180_lane_f32 (float32x4_t __r, float32x4_t __a, float32x2_t __b,
27383 const int __index)
27385 return __builtin_aarch64_fcmlaq_lane180v4sf (__r, __a, __b, __index);
27388 __extension__ extern __inline float32x4_t
27389 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27390 vcmlaq_rot180_laneq_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b,
27391 const int __index)
27393 return __builtin_aarch64_fcmla_lane180v4sf (__r, __a, __b, __index);
27396 __extension__ extern __inline float32x2_t
27397 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27398 vcmla_rot270_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b)
27400 return __builtin_aarch64_fcmla270v2sf (__r, __a, __b);
27403 __extension__ extern __inline float32x4_t
27404 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27405 vcmlaq_rot270_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b)
27407 return __builtin_aarch64_fcmla270v4sf (__r, __a, __b);
27410 __extension__ extern __inline float64x2_t
27411 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27412 vcmlaq_rot270_f64 (float64x2_t __r, float64x2_t __a, float64x2_t __b)
27414 return __builtin_aarch64_fcmla270v2df (__r, __a, __b);
27417 __extension__ extern __inline float32x2_t
27418 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27419 vcmla_rot270_lane_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b,
27420 const int __index)
27422 return __builtin_aarch64_fcmla_lane270v2sf (__r, __a, __b, __index);
27425 __extension__ extern __inline float32x2_t
27426 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27427 vcmla_rot270_laneq_f32 (float32x2_t __r, float32x2_t __a, float32x4_t __b,
27428 const int __index)
27430 return __builtin_aarch64_fcmla_laneq270v2sf (__r, __a, __b, __index);
27433 __extension__ extern __inline float32x4_t
27434 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27435 vcmlaq_rot270_lane_f32 (float32x4_t __r, float32x4_t __a, float32x2_t __b,
27436 const int __index)
27438 return __builtin_aarch64_fcmlaq_lane270v4sf (__r, __a, __b, __index);
27441 __extension__ extern __inline float32x4_t
27442 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27443 vcmlaq_rot270_laneq_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b,
27444 const int __index)
27446 return __builtin_aarch64_fcmla_lane270v4sf (__r, __a, __b, __index);
27449 #pragma GCC pop_options
27451 #pragma GCC push_options
27452 #pragma GCC target ("+nothing+fp16fml")
27454 __extension__ extern __inline float32x2_t
27455 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27456 vfmlal_low_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b)
27458 return __builtin_aarch64_fmlal_lowv2sf (__r, __a, __b);
27461 __extension__ extern __inline float32x2_t
27462 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27463 vfmlsl_low_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b)
27465 return __builtin_aarch64_fmlsl_lowv2sf (__r, __a, __b);
27468 __extension__ extern __inline float32x4_t
27469 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27470 vfmlalq_low_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b)
27472 return __builtin_aarch64_fmlalq_lowv4sf (__r, __a, __b);
27475 __extension__ extern __inline float32x4_t
27476 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27477 vfmlslq_low_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b)
27479 return __builtin_aarch64_fmlslq_lowv4sf (__r, __a, __b);
27482 __extension__ extern __inline float32x2_t
27483 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27484 vfmlal_high_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b)
27486 return __builtin_aarch64_fmlal_highv2sf (__r, __a, __b);
27489 __extension__ extern __inline float32x2_t
27490 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27491 vfmlsl_high_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b)
27493 return __builtin_aarch64_fmlsl_highv2sf (__r, __a, __b);
27496 __extension__ extern __inline float32x4_t
27497 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27498 vfmlalq_high_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b)
27500 return __builtin_aarch64_fmlalq_highv4sf (__r, __a, __b);
27503 __extension__ extern __inline float32x4_t
27504 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27505 vfmlslq_high_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b)
27507 return __builtin_aarch64_fmlslq_highv4sf (__r, __a, __b);
27510 __extension__ extern __inline float32x2_t
27511 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27512 vfmlal_lane_low_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b,
27513 const int __lane)
27515 return __builtin_aarch64_fmlal_lane_lowv2sf (__r, __a, __b, __lane);
27518 __extension__ extern __inline float32x2_t
27519 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27520 vfmlsl_lane_low_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b,
27521 const int __lane)
27523 return __builtin_aarch64_fmlsl_lane_lowv2sf (__r, __a, __b, __lane);
27526 __extension__ extern __inline float32x2_t
27527 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27528 vfmlal_laneq_low_f16 (float32x2_t __r, float16x4_t __a, float16x8_t __b,
27529 const int __lane)
27531 return __builtin_aarch64_fmlal_laneq_lowv2sf (__r, __a, __b, __lane);
27534 __extension__ extern __inline float32x2_t
27535 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27536 vfmlsl_laneq_low_f16 (float32x2_t __r, float16x4_t __a, float16x8_t __b,
27537 const int __lane)
27539 return __builtin_aarch64_fmlsl_laneq_lowv2sf (__r, __a, __b, __lane);
27542 __extension__ extern __inline float32x4_t
27543 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27544 vfmlalq_lane_low_f16 (float32x4_t __r, float16x8_t __a, float16x4_t __b,
27545 const int __lane)
27547 return __builtin_aarch64_fmlalq_lane_lowv4sf (__r, __a, __b, __lane);
27550 __extension__ extern __inline float32x4_t
27551 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27552 vfmlslq_lane_low_f16 (float32x4_t __r, float16x8_t __a, float16x4_t __b,
27553 const int __lane)
27555 return __builtin_aarch64_fmlslq_lane_lowv4sf (__r, __a, __b, __lane);
27558 __extension__ extern __inline float32x4_t
27559 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27560 vfmlalq_laneq_low_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b,
27561 const int __lane)
27563 return __builtin_aarch64_fmlalq_laneq_lowv4sf (__r, __a, __b, __lane);
27566 __extension__ extern __inline float32x4_t
27567 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27568 vfmlslq_laneq_low_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b,
27569 const int __lane)
27571 return __builtin_aarch64_fmlslq_laneq_lowv4sf (__r, __a, __b, __lane);
27574 __extension__ extern __inline float32x2_t
27575 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27576 vfmlal_lane_high_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b,
27577 const int __lane)
27579 return __builtin_aarch64_fmlal_lane_highv2sf (__r, __a, __b, __lane);
27582 __extension__ extern __inline float32x2_t
27583 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27584 vfmlsl_lane_high_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b,
27585 const int __lane)
27587 return __builtin_aarch64_fmlsl_lane_highv2sf (__r, __a, __b, __lane);
27590 __extension__ extern __inline float32x2_t
27591 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27592 vfmlal_laneq_high_f16 (float32x2_t __r, float16x4_t __a, float16x8_t __b,
27593 const int __lane)
27595 return __builtin_aarch64_fmlal_laneq_highv2sf (__r, __a, __b, __lane);
27598 __extension__ extern __inline float32x2_t
27599 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27600 vfmlsl_laneq_high_f16 (float32x2_t __r, float16x4_t __a, float16x8_t __b,
27601 const int __lane)
27603 return __builtin_aarch64_fmlsl_laneq_highv2sf (__r, __a, __b, __lane);
27606 __extension__ extern __inline float32x4_t
27607 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27608 vfmlalq_lane_high_f16 (float32x4_t __r, float16x8_t __a, float16x4_t __b,
27609 const int __lane)
27611 return __builtin_aarch64_fmlalq_lane_highv4sf (__r, __a, __b, __lane);
27614 __extension__ extern __inline float32x4_t
27615 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27616 vfmlslq_lane_high_f16 (float32x4_t __r, float16x8_t __a, float16x4_t __b,
27617 const int __lane)
27619 return __builtin_aarch64_fmlslq_lane_highv4sf (__r, __a, __b, __lane);
27622 __extension__ extern __inline float32x4_t
27623 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27624 vfmlalq_laneq_high_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b,
27625 const int __lane)
27627 return __builtin_aarch64_fmlalq_laneq_highv4sf (__r, __a, __b, __lane);
27630 __extension__ extern __inline float32x4_t
27631 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27632 vfmlslq_laneq_high_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b,
27633 const int __lane)
27635 return __builtin_aarch64_fmlslq_laneq_highv4sf (__r, __a, __b, __lane);
27638 #pragma GCC pop_options
27640 #pragma GCC push_options
27641 #pragma GCC target ("+nothing+simd+frintts")
27643 __extension__ extern __inline float32x2_t
27644 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27645 vrnd32z_f32 (float32x2_t __a)
27647 return __builtin_aarch64_frint32zv2sf (__a);
27650 __extension__ extern __inline float32x4_t
27651 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27652 vrnd32zq_f32 (float32x4_t __a)
27654 return __builtin_aarch64_frint32zv4sf (__a);
27657 __extension__ extern __inline float64x1_t
27658 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27659 vrnd32z_f64 (float64x1_t __a)
27661 return (float64x1_t)
27662 {__builtin_aarch64_frint32zdf (vget_lane_f64 (__a, 0))};
27665 __extension__ extern __inline float64x2_t
27666 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27667 vrnd32zq_f64 (float64x2_t __a)
27669 return __builtin_aarch64_frint32zv2df (__a);
27672 __extension__ extern __inline float32x2_t
27673 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27674 vrnd32x_f32 (float32x2_t __a)
27676 return __builtin_aarch64_frint32xv2sf (__a);
27679 __extension__ extern __inline float32x4_t
27680 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27681 vrnd32xq_f32 (float32x4_t __a)
27683 return __builtin_aarch64_frint32xv4sf (__a);
27686 __extension__ extern __inline float64x1_t
27687 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27688 vrnd32x_f64 (float64x1_t __a)
27690 return (float64x1_t) {__builtin_aarch64_frint32xdf (vget_lane_f64 (__a, 0))};
27693 __extension__ extern __inline float64x2_t
27694 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27695 vrnd32xq_f64 (float64x2_t __a)
27697 return __builtin_aarch64_frint32xv2df (__a);
27700 __extension__ extern __inline float32x2_t
27701 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27702 vrnd64z_f32 (float32x2_t __a)
27704 return __builtin_aarch64_frint64zv2sf (__a);
27707 __extension__ extern __inline float32x4_t
27708 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27709 vrnd64zq_f32 (float32x4_t __a)
27711 return __builtin_aarch64_frint64zv4sf (__a);
27714 __extension__ extern __inline float64x1_t
27715 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27716 vrnd64z_f64 (float64x1_t __a)
27718 return (float64x1_t) {__builtin_aarch64_frint64zdf (vget_lane_f64 (__a, 0))};
27721 __extension__ extern __inline float64x2_t
27722 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27723 vrnd64zq_f64 (float64x2_t __a)
27725 return __builtin_aarch64_frint64zv2df (__a);
27728 __extension__ extern __inline float32x2_t
27729 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27730 vrnd64x_f32 (float32x2_t __a)
27732 return __builtin_aarch64_frint64xv2sf (__a);
27735 __extension__ extern __inline float32x4_t
27736 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27737 vrnd64xq_f32 (float32x4_t __a)
27739 return __builtin_aarch64_frint64xv4sf (__a);
27742 __extension__ extern __inline float64x1_t
27743 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27744 vrnd64x_f64 (float64x1_t __a)
27746 return (float64x1_t) {__builtin_aarch64_frint64xdf (vget_lane_f64 (__a, 0))};
27749 __extension__ extern __inline float64x2_t
27750 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27751 vrnd64xq_f64 (float64x2_t __a)
27753 return __builtin_aarch64_frint64xv2df (__a);
27756 #pragma GCC pop_options
27758 #include "arm_bf16.h"
27760 #pragma GCC push_options
27761 #pragma GCC target ("+nothing+bf16")
27763 __extension__ extern __inline bfloat16x4_t
27764 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27765 vset_lane_bf16 (bfloat16_t __elem, bfloat16x4_t __vec, const int __index)
27767 return __aarch64_vset_lane_any (__elem, __vec, __index);
27770 __extension__ extern __inline bfloat16x8_t
27771 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27772 vsetq_lane_bf16 (bfloat16_t __elem, bfloat16x8_t __vec, const int __index)
27774 return __aarch64_vset_lane_any (__elem, __vec, __index);
27777 __extension__ extern __inline bfloat16_t
27778 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27779 vget_lane_bf16 (bfloat16x4_t __a, const int __b)
27781 return __aarch64_vget_lane_any (__a, __b);
27784 __extension__ extern __inline bfloat16_t
27785 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27786 vgetq_lane_bf16 (bfloat16x8_t __a, const int __b)
27788 return __aarch64_vget_lane_any (__a, __b);
27791 __extension__ extern __inline bfloat16x4_t
27792 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27793 vcreate_bf16 (uint64_t __a)
27795 return (bfloat16x4_t) __a;
27798 __extension__ extern __inline bfloat16x8_t
27799 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27800 vcombine_bf16 (bfloat16x4_t __a, bfloat16x4_t __b)
27802 return __builtin_aarch64_combinev4bf (__a, __b);
27805 /* vdup */
27807 __extension__ extern __inline bfloat16x4_t
27808 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27809 vdup_n_bf16 (bfloat16_t __a)
27811 return (bfloat16x4_t) {__a, __a, __a, __a};
27814 __extension__ extern __inline bfloat16x8_t
27815 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27816 vdupq_n_bf16 (bfloat16_t __a)
27818 return (bfloat16x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
27821 __extension__ extern __inline bfloat16x4_t
27822 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27823 vdup_lane_bf16 (bfloat16x4_t __a, const int __b)
27825 return vdup_n_bf16 (__aarch64_vget_lane_any (__a, __b));
27828 __extension__ extern __inline bfloat16x4_t
27829 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27830 vdup_laneq_bf16 (bfloat16x8_t __a, const int __b)
27832 return vdup_n_bf16 (__aarch64_vget_lane_any (__a, __b));
27835 __extension__ extern __inline bfloat16x8_t
27836 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27837 vdupq_lane_bf16 (bfloat16x4_t __a, const int __b)
27839 return vdupq_n_bf16 (__aarch64_vget_lane_any (__a, __b));
27842 __extension__ extern __inline bfloat16x8_t
27843 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27844 vdupq_laneq_bf16 (bfloat16x8_t __a, const int __b)
27846 return vdupq_n_bf16 (__aarch64_vget_lane_any (__a, __b));
27849 __extension__ extern __inline bfloat16_t
27850 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27851 vduph_lane_bf16 (bfloat16x4_t __a, const int __b)
27853 return __aarch64_vget_lane_any (__a, __b);
27856 __extension__ extern __inline bfloat16_t
27857 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27858 vduph_laneq_bf16 (bfloat16x8_t __a, const int __b)
27860 return __aarch64_vget_lane_any (__a, __b);
27863 /* vld */
27865 __extension__ extern __inline bfloat16x4_t
27866 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27867 vld1_bf16 (const bfloat16_t *__a)
27869 return (bfloat16x4_t) __builtin_aarch64_ld1v4bf (__a);
27872 __extension__ extern __inline bfloat16x8_t
27873 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27874 vld1q_bf16 (const bfloat16_t *__a)
27876 return __builtin_aarch64_ld1v8bf (__a);
27879 __extension__ extern __inline bfloat16x4x2_t
27880 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27881 vld1_bf16_x2 (const bfloat16_t *__a)
27883 return __builtin_aarch64_ld1x2v4bf ((const __builtin_aarch64_simd_bf *) __a);
27886 __extension__ extern __inline bfloat16x8x2_t
27887 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27888 vld1q_bf16_x2 (const bfloat16_t *__a)
27890 return __builtin_aarch64_ld1x2v8bf (
27891 (const __builtin_aarch64_simd_bf *) __a);
27894 __extension__ extern __inline bfloat16x4x3_t
27895 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27896 vld1_bf16_x3 (const bfloat16_t *__a)
27898 return __builtin_aarch64_ld1x3v4bf ((const __builtin_aarch64_simd_bf *) __a);
27901 __extension__ extern __inline bfloat16x8x3_t
27902 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27903 vld1q_bf16_x3 (const bfloat16_t *__a)
27905 return __builtin_aarch64_ld1x3v8bf ((const __builtin_aarch64_simd_bf *) __a);
27907 __extension__ extern __inline bfloat16x4x4_t
27908 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27909 vld1_bf16_x4 (const bfloat16_t *__a)
27911 return __builtin_aarch64_ld1x4v4bf ((const __builtin_aarch64_simd_bf *) __a);
27914 __extension__ extern __inline bfloat16x8x4_t
27915 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27916 vld1q_bf16_x4 (const bfloat16_t *__a)
27918 return __builtin_aarch64_ld1x4v8bf ((const __builtin_aarch64_simd_bf *) __a);
27921 __extension__ extern __inline bfloat16x4_t
27922 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27923 vld1_lane_bf16 (const bfloat16_t *__src, bfloat16x4_t __vec, const int __lane)
27925 return __aarch64_vset_lane_any (*__src, __vec, __lane);
27928 __extension__ extern __inline bfloat16x8_t
27929 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27930 vld1q_lane_bf16 (const bfloat16_t *__src, bfloat16x8_t __vec, const int __lane)
27932 return __aarch64_vset_lane_any (*__src, __vec, __lane);
27935 __extension__ extern __inline bfloat16x4_t
27936 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27937 vld1_dup_bf16 (const bfloat16_t* __a)
27939 return vdup_n_bf16 (*__a);
27942 __extension__ extern __inline bfloat16x8_t
27943 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27944 vld1q_dup_bf16 (const bfloat16_t* __a)
27946 return vdupq_n_bf16 (*__a);
27949 __extension__ extern __inline bfloat16x4x2_t
27950 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27951 vld2_bf16 (const bfloat16_t * __a)
27953 return __builtin_aarch64_ld2v4bf (__a);
27956 __extension__ extern __inline bfloat16x8x2_t
27957 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27958 vld2q_bf16 (const bfloat16_t * __a)
27960 return __builtin_aarch64_ld2v8bf ((const __builtin_aarch64_simd_bf *) __a);
27963 __extension__ extern __inline bfloat16x4x2_t
27964 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27965 vld2_dup_bf16 (const bfloat16_t * __a)
27967 return __builtin_aarch64_ld2rv4bf ((const __builtin_aarch64_simd_bf *) __a);
27970 __extension__ extern __inline bfloat16x8x2_t
27971 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27972 vld2q_dup_bf16 (const bfloat16_t * __a)
27974 return __builtin_aarch64_ld2rv8bf ((const __builtin_aarch64_simd_bf *) __a);
27977 __extension__ extern __inline bfloat16x4x3_t
27978 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27979 vld3_bf16 (const bfloat16_t * __a)
27981 return __builtin_aarch64_ld3v4bf ((const __builtin_aarch64_simd_bf *) __a);
27984 __extension__ extern __inline bfloat16x8x3_t
27985 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27986 vld3q_bf16 (const bfloat16_t * __a)
27988 return __builtin_aarch64_ld3v8bf ((const __builtin_aarch64_simd_bf *) __a);
27991 __extension__ extern __inline bfloat16x4x3_t
27992 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27993 vld3_dup_bf16 (const bfloat16_t * __a)
27995 return __builtin_aarch64_ld3rv4bf ((const __builtin_aarch64_simd_bf *) __a);
27998 __extension__ extern __inline bfloat16x8x3_t
27999 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28000 vld3q_dup_bf16 (const bfloat16_t * __a)
28002 return __builtin_aarch64_ld3rv8bf ((const __builtin_aarch64_simd_bf *) __a);
28005 __extension__ extern __inline bfloat16x4x4_t
28006 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28007 vld4_bf16 (const bfloat16_t * __a)
28009 return __builtin_aarch64_ld4v4bf ((const __builtin_aarch64_simd_bf *) __a);
28012 __extension__ extern __inline bfloat16x8x4_t
28013 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28014 vld4q_bf16 (const bfloat16_t * __a)
28016 return __builtin_aarch64_ld4v8bf ((const __builtin_aarch64_simd_bf *) __a);
28019 __extension__ extern __inline bfloat16x4x4_t
28020 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28021 vld4_dup_bf16 (const bfloat16_t * __a)
28023 return __builtin_aarch64_ld4rv4bf ((const __builtin_aarch64_simd_bf *) __a);
28026 __extension__ extern __inline bfloat16x8x4_t
28027 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28028 vld4q_dup_bf16 (const bfloat16_t * __a)
28030 return __builtin_aarch64_ld4rv8bf ((const __builtin_aarch64_simd_bf *) __a);
28033 /* vst */
28035 __extension__ extern __inline void
28036 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28037 vst1_bf16 (bfloat16_t *__a, bfloat16x4_t __b)
28039 __builtin_aarch64_st1v4bf (__a, __b);
28042 __extension__ extern __inline void
28043 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28044 vst1_bf16_x2 (bfloat16_t * __a, bfloat16x4x2_t __val)
28046 __builtin_aarch64_st1x2v4bf (__a, __val);
28049 __extension__ extern __inline void
28050 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28051 vst1q_bf16_x2 (bfloat16_t * __a, bfloat16x8x2_t __val)
28053 __builtin_aarch64_st1x2v8bf (__a, __val);
28056 __extension__ extern __inline void
28057 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28058 vst1_bf16_x3 (bfloat16_t * __a, bfloat16x4x3_t __val)
28060 __builtin_aarch64_st1x3v4bf ((__builtin_aarch64_simd_bf *) __a, __val);
28063 __extension__ extern __inline void
28064 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28065 vst1q_bf16_x3 (bfloat16_t * __a, bfloat16x8x3_t __val)
28067 __builtin_aarch64_st1x3v8bf ((__builtin_aarch64_simd_bf *) __a, __val);
28070 __extension__ extern __inline void
28071 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28072 vst1_bf16_x4 (bfloat16_t * __a, bfloat16x4x4_t __val)
28074 __builtin_aarch64_st1x4v4bf ((__builtin_aarch64_simd_bf *) __a, __val);
28077 __extension__ extern __inline void
28078 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28079 vst1q_bf16_x4 (bfloat16_t * __a, bfloat16x8x4_t __val)
28081 __builtin_aarch64_st1x4v8bf ((__builtin_aarch64_simd_bf *) __a, __val);
28084 __extension__ extern __inline void
28085 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28086 vst1q_bf16 (bfloat16_t *__a, bfloat16x8_t __b)
28088 __builtin_aarch64_st1v8bf (__a, __b);
28091 __extension__ extern __inline void
28092 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28093 vst1_lane_bf16 (bfloat16_t *__a, bfloat16x4_t __b, const int __lane)
28095 *__a = __aarch64_vget_lane_any (__b, __lane);
28098 __extension__ extern __inline void
28099 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28100 vst1q_lane_bf16 (bfloat16_t *__a, bfloat16x8_t __b, const int __lane)
28102 *__a = __aarch64_vget_lane_any (__b, __lane);
28105 __extension__ extern __inline void
28106 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28107 vst2_bf16 (bfloat16_t * __a, bfloat16x4x2_t __val)
28109 __builtin_aarch64_st2v4bf (__a, __val);
28112 __extension__ extern __inline void
28113 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28114 vst2q_bf16 (bfloat16_t * __a, bfloat16x8x2_t __val)
28116 __builtin_aarch64_st2v8bf (__a, __val);
28119 __extension__ extern __inline void
28120 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28121 vst3_bf16 (bfloat16_t * __a, bfloat16x4x3_t __val)
28123 __builtin_aarch64_st3v4bf ((__builtin_aarch64_simd_bf *) __a, __val);
28126 __extension__ extern __inline void
28127 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28128 vst3q_bf16 (bfloat16_t * __a, bfloat16x8x3_t __val)
28130 __builtin_aarch64_st3v8bf ((__builtin_aarch64_simd_bf *) __a, __val);
28133 __extension__ extern __inline void
28134 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28135 vst4_bf16 (bfloat16_t * __a, bfloat16x4x4_t __val)
28137 __builtin_aarch64_st4v4bf ((__builtin_aarch64_simd_bf *) __a, __val);
28140 __extension__ extern __inline void
28141 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28142 vst4q_bf16 (bfloat16_t * __a, bfloat16x8x4_t __val)
28144 __builtin_aarch64_st4v8bf ((__builtin_aarch64_simd_bf *) __a, __val);
28147 __extension__ extern __inline float32x2_t
28148 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28149 vbfdot_f32 (float32x2_t __r, bfloat16x4_t __a, bfloat16x4_t __b)
28151 return __builtin_aarch64_bfdotv2sf (__r, __a, __b);
28154 __extension__ extern __inline float32x4_t
28155 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28156 vbfdotq_f32 (float32x4_t __r, bfloat16x8_t __a, bfloat16x8_t __b)
28158 return __builtin_aarch64_bfdotv4sf (__r, __a, __b);
28161 __extension__ extern __inline float32x2_t
28162 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28163 vbfdot_lane_f32 (float32x2_t __r, bfloat16x4_t __a, bfloat16x4_t __b,
28164 const int __index)
28166 return __builtin_aarch64_bfdot_lanev2sf (__r, __a, __b, __index);
28169 __extension__ extern __inline float32x4_t
28170 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28171 vbfdotq_lane_f32 (float32x4_t __r, bfloat16x8_t __a, bfloat16x4_t __b,
28172 const int __index)
28174 return __builtin_aarch64_bfdot_lanev4sf (__r, __a, __b, __index);
28177 __extension__ extern __inline float32x2_t
28178 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28179 vbfdot_laneq_f32 (float32x2_t __r, bfloat16x4_t __a, bfloat16x8_t __b,
28180 const int __index)
28182 return __builtin_aarch64_bfdot_laneqv2sf (__r, __a, __b, __index);
28185 __extension__ extern __inline float32x4_t
28186 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28187 vbfdotq_laneq_f32 (float32x4_t __r, bfloat16x8_t __a, bfloat16x8_t __b,
28188 const int __index)
28190 return __builtin_aarch64_bfdot_laneqv4sf (__r, __a, __b, __index);
28193 __extension__ extern __inline float32x4_t
28194 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28195 vbfmmlaq_f32 (float32x4_t __r, bfloat16x8_t __a, bfloat16x8_t __b)
28198 return __builtin_aarch64_bfmmlaqv4sf (__r, __a, __b);
28201 __extension__ extern __inline float32x4_t
28202 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28203 vbfmlalbq_f32 (float32x4_t __r, bfloat16x8_t __a, bfloat16x8_t __b)
28205 return __builtin_aarch64_bfmlalbv4sf (__r, __a, __b);
28208 __extension__ extern __inline float32x4_t
28209 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28210 vbfmlaltq_f32 (float32x4_t __r, bfloat16x8_t __a, bfloat16x8_t __b)
28212 return __builtin_aarch64_bfmlaltv4sf (__r, __a, __b);
28215 __extension__ extern __inline float32x4_t
28216 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28217 vbfmlalbq_lane_f32 (float32x4_t __r, bfloat16x8_t __a, bfloat16x4_t __b,
28218 const int __index)
28220 return __builtin_aarch64_bfmlalb_lanev4sf (__r, __a, __b, __index);
28223 __extension__ extern __inline float32x4_t
28224 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28225 vbfmlaltq_lane_f32 (float32x4_t __r, bfloat16x8_t __a, bfloat16x4_t __b,
28226 const int __index)
28228 return __builtin_aarch64_bfmlalt_lanev4sf (__r, __a, __b, __index);
28231 __extension__ extern __inline float32x4_t
28232 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28233 vbfmlalbq_laneq_f32 (float32x4_t __r, bfloat16x8_t __a, bfloat16x8_t __b,
28234 const int __index)
28236 return __builtin_aarch64_bfmlalb_lane_qv4sf (__r, __a, __b, __index);
28239 __extension__ extern __inline float32x4_t
28240 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28241 vbfmlaltq_laneq_f32 (float32x4_t __r, bfloat16x8_t __a, bfloat16x8_t __b,
28242 const int __index)
28244 return __builtin_aarch64_bfmlalt_lane_qv4sf (__r, __a, __b, __index);
28247 __extension__ extern __inline float32x4_t
28248 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28249 vcvt_f32_bf16 (bfloat16x4_t __a)
28251 return __builtin_aarch64_vbfcvtv4bf (__a);
28254 __extension__ extern __inline float32x4_t
28255 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28256 vcvtq_low_f32_bf16 (bfloat16x8_t __a)
28258 return __builtin_aarch64_vbfcvtv8bf (__a);
28261 __extension__ extern __inline float32x4_t
28262 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28263 vcvtq_high_f32_bf16 (bfloat16x8_t __a)
28265 return __builtin_aarch64_vbfcvt_highv8bf (__a);
28268 __extension__ extern __inline bfloat16x4_t
28269 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28270 vcvt_bf16_f32 (float32x4_t __a)
28272 return __builtin_aarch64_bfcvtnv4bf (__a);
28275 __extension__ extern __inline bfloat16x8_t
28276 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28277 vcvtq_low_bf16_f32 (float32x4_t __a)
28279 return __builtin_aarch64_bfcvtn_qv8bf (__a);
28282 __extension__ extern __inline bfloat16x8_t
28283 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28284 vcvtq_high_bf16_f32 (bfloat16x8_t __inactive, float32x4_t __a)
28286 return __builtin_aarch64_bfcvtn2v8bf (__inactive, __a);
28289 __extension__ extern __inline bfloat16x4_t
28290 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28291 vcopy_lane_bf16 (bfloat16x4_t __a, const int __lane1,
28292 bfloat16x4_t __b, const int __lane2)
28294 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
28295 __a, __lane1);
28298 __extension__ extern __inline bfloat16x8_t
28299 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28300 vcopyq_lane_bf16 (bfloat16x8_t __a, const int __lane1,
28301 bfloat16x4_t __b, const int __lane2)
28303 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
28304 __a, __lane1);
28307 __extension__ extern __inline bfloat16x4_t
28308 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28309 vcopy_laneq_bf16 (bfloat16x4_t __a, const int __lane1,
28310 bfloat16x8_t __b, const int __lane2)
28312 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
28313 __a, __lane1);
28316 __extension__ extern __inline bfloat16x8_t
28317 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28318 vcopyq_laneq_bf16 (bfloat16x8_t __a, const int __lane1,
28319 bfloat16x8_t __b, const int __lane2)
28321 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
28322 __a, __lane1);
28325 __extension__ extern __inline bfloat16x4x2_t
28326 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
28327 vld2_lane_bf16 (const bfloat16_t * __ptr, bfloat16x4x2_t __b, const int __c)
28329 return __builtin_aarch64_ld2_lanev4bf (
28330 (__builtin_aarch64_simd_bf *) __ptr, __b, __c);
28333 __extension__ extern __inline bfloat16x8x2_t
28334 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
28335 vld2q_lane_bf16 (const bfloat16_t * __ptr, bfloat16x8x2_t __b, const int __c)
28337 return __builtin_aarch64_ld2_lanev8bf (
28338 (__builtin_aarch64_simd_bf *) __ptr, __b, __c);
28341 __extension__ extern __inline bfloat16x4x3_t
28342 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
28343 vld3_lane_bf16 (const bfloat16_t * __ptr, bfloat16x4x3_t __b, const int __c)
28345 return __builtin_aarch64_ld3_lanev4bf (
28346 (__builtin_aarch64_simd_bf *) __ptr, __b, __c);
28349 __extension__ extern __inline bfloat16x8x3_t
28350 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
28351 vld3q_lane_bf16 (const bfloat16_t * __ptr, bfloat16x8x3_t __b, const int __c)
28353 return __builtin_aarch64_ld3_lanev8bf (
28354 (__builtin_aarch64_simd_bf *) __ptr, __b, __c);
28357 __extension__ extern __inline bfloat16x4x4_t
28358 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
28359 vld4_lane_bf16 (const bfloat16_t * __ptr, bfloat16x4x4_t __b, const int __c)
28361 return __builtin_aarch64_ld4_lanev4bf (
28362 (__builtin_aarch64_simd_bf *) __ptr, __b, __c);
28365 __extension__ extern __inline bfloat16x8x4_t
28366 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
28367 vld4q_lane_bf16 (const bfloat16_t * __ptr, bfloat16x8x4_t __b, const int __c)
28369 return __builtin_aarch64_ld4_lanev8bf (
28370 (__builtin_aarch64_simd_bf *) __ptr, __b, __c);
28373 __extension__ extern __inline void
28374 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28375 vst2_lane_bf16 (bfloat16_t *__ptr, bfloat16x4x2_t __val, const int __lane)
28377 __builtin_aarch64_st2_lanev4bf ((__builtin_aarch64_simd_bf *) __ptr, __val,
28378 __lane);
28381 __extension__ extern __inline void
28382 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28383 vst2q_lane_bf16 (bfloat16_t *__ptr, bfloat16x8x2_t __val, const int __lane)
28385 __builtin_aarch64_st2_lanev8bf ((__builtin_aarch64_simd_bf *) __ptr, __val,
28386 __lane);
28389 __extension__ extern __inline void
28390 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28391 vst3_lane_bf16 (bfloat16_t *__ptr, bfloat16x4x3_t __val, const int __lane)
28393 __builtin_aarch64_st3_lanev4bf ((__builtin_aarch64_simd_bf *) __ptr, __val,
28394 __lane);
28397 __extension__ extern __inline void
28398 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28399 vst3q_lane_bf16 (bfloat16_t *__ptr, bfloat16x8x3_t __val, const int __lane)
28401 __builtin_aarch64_st3_lanev8bf ((__builtin_aarch64_simd_bf *) __ptr, __val,
28402 __lane);
28405 __extension__ extern __inline void
28406 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28407 vst4_lane_bf16 (bfloat16_t *__ptr, bfloat16x4x4_t __val, const int __lane)
28409 __builtin_aarch64_st4_lanev4bf ((__builtin_aarch64_simd_bf *) __ptr, __val,
28410 __lane);
28413 __extension__ extern __inline void
28414 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28415 vst4q_lane_bf16 (bfloat16_t *__ptr, bfloat16x8x4_t __val, const int __lane)
28417 __builtin_aarch64_st4_lanev8bf ((__builtin_aarch64_simd_bf *) __ptr, __val,
28418 __lane);
28421 #pragma GCC pop_options
28423 /* AdvSIMD 8-bit Integer Matrix Multiply (I8MM) intrinsics. */
28425 #pragma GCC push_options
28426 #pragma GCC target ("+nothing+i8mm")
28428 __extension__ extern __inline int32x2_t
28429 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28430 vusdot_s32 (int32x2_t __r, uint8x8_t __a, int8x8_t __b)
28432 return __builtin_aarch64_usdot_prodv8qi_suss (__a, __b, __r);
28435 __extension__ extern __inline int32x4_t
28436 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28437 vusdotq_s32 (int32x4_t __r, uint8x16_t __a, int8x16_t __b)
28439 return __builtin_aarch64_usdot_prodv16qi_suss (__a, __b, __r);
28442 __extension__ extern __inline int32x2_t
28443 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28444 vusdot_lane_s32 (int32x2_t __r, uint8x8_t __a, int8x8_t __b, const int __index)
28446 return __builtin_aarch64_usdot_lanev8qi_ssuss (__r, __a, __b, __index);
28449 __extension__ extern __inline int32x2_t
28450 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28451 vusdot_laneq_s32 (int32x2_t __r, uint8x8_t __a, int8x16_t __b,
28452 const int __index)
28454 return __builtin_aarch64_usdot_laneqv8qi_ssuss (__r, __a, __b, __index);
28457 __extension__ extern __inline int32x4_t
28458 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28459 vusdotq_lane_s32 (int32x4_t __r, uint8x16_t __a, int8x8_t __b,
28460 const int __index)
28462 return __builtin_aarch64_usdot_lanev16qi_ssuss (__r, __a, __b, __index);
28465 __extension__ extern __inline int32x4_t
28466 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28467 vusdotq_laneq_s32 (int32x4_t __r, uint8x16_t __a, int8x16_t __b,
28468 const int __index)
28470 return __builtin_aarch64_usdot_laneqv16qi_ssuss (__r, __a, __b, __index);
28473 __extension__ extern __inline int32x2_t
28474 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28475 vsudot_lane_s32 (int32x2_t __r, int8x8_t __a, uint8x8_t __b, const int __index)
28477 return __builtin_aarch64_sudot_lanev8qi_sssus (__r, __a, __b, __index);
28480 __extension__ extern __inline int32x2_t
28481 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28482 vsudot_laneq_s32 (int32x2_t __r, int8x8_t __a, uint8x16_t __b,
28483 const int __index)
28485 return __builtin_aarch64_sudot_laneqv8qi_sssus (__r, __a, __b, __index);
28488 __extension__ extern __inline int32x4_t
28489 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28490 vsudotq_lane_s32 (int32x4_t __r, int8x16_t __a, uint8x8_t __b,
28491 const int __index)
28493 return __builtin_aarch64_sudot_lanev16qi_sssus (__r, __a, __b, __index);
28496 __extension__ extern __inline int32x4_t
28497 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28498 vsudotq_laneq_s32 (int32x4_t __r, int8x16_t __a, uint8x16_t __b,
28499 const int __index)
28501 return __builtin_aarch64_sudot_laneqv16qi_sssus (__r, __a, __b, __index);
28504 /* Matrix Multiply-Accumulate. */
28506 __extension__ extern __inline int32x4_t
28507 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28508 vmmlaq_s32 (int32x4_t __r, int8x16_t __a, int8x16_t __b)
28510 return __builtin_aarch64_simd_smmlav16qi (__r, __a, __b);
28513 __extension__ extern __inline uint32x4_t
28514 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28515 vmmlaq_u32 (uint32x4_t __r, uint8x16_t __a, uint8x16_t __b)
28517 return __builtin_aarch64_simd_ummlav16qi_uuuu (__r, __a, __b);
28520 __extension__ extern __inline int32x4_t
28521 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28522 vusmmlaq_s32 (int32x4_t __r, uint8x16_t __a, int8x16_t __b)
28524 return __builtin_aarch64_simd_usmmlav16qi_ssus (__r, __a, __b);
28527 #pragma GCC pop_options
28529 __extension__ extern __inline poly8x8_t
28530 __attribute ((__always_inline__, __gnu_inline__, __artificial__))
28531 vadd_p8 (poly8x8_t __a, poly8x8_t __b)
28533 return __a ^ __b;
28536 __extension__ extern __inline poly16x4_t
28537 __attribute ((__always_inline__, __gnu_inline__, __artificial__))
28538 vadd_p16 (poly16x4_t __a, poly16x4_t __b)
28540 return __a ^ __b;
28543 __extension__ extern __inline poly64x1_t
28544 __attribute ((__always_inline__, __gnu_inline__, __artificial__))
28545 vadd_p64 (poly64x1_t __a, poly64x1_t __b)
28547 return __a ^ __b;
28550 __extension__ extern __inline poly8x16_t
28551 __attribute ((__always_inline__, __gnu_inline__, __artificial__))
28552 vaddq_p8 (poly8x16_t __a, poly8x16_t __b)
28554 return __a ^ __b;
28557 __extension__ extern __inline poly16x8_t
28558 __attribute ((__always_inline__, __gnu_inline__, __artificial__))
28559 vaddq_p16 (poly16x8_t __a, poly16x8_t __b)
28561 return __a ^__b;
28564 __extension__ extern __inline poly64x2_t
28565 __attribute ((__always_inline__, __gnu_inline__, __artificial__))
28566 vaddq_p64 (poly64x2_t __a, poly64x2_t __b)
28568 return __a ^ __b;
28571 __extension__ extern __inline poly128_t
28572 __attribute ((__always_inline__, __gnu_inline__, __artificial__))
28573 vaddq_p128 (poly128_t __a, poly128_t __b)
28575 return __a ^ __b;
28578 #undef __aarch64_vget_lane_any
28580 #undef __aarch64_vdup_lane_any
28581 #undef __aarch64_vdup_lane_f16
28582 #undef __aarch64_vdup_lane_f32
28583 #undef __aarch64_vdup_lane_f64
28584 #undef __aarch64_vdup_lane_p8
28585 #undef __aarch64_vdup_lane_p16
28586 #undef __aarch64_vdup_lane_s8
28587 #undef __aarch64_vdup_lane_s16
28588 #undef __aarch64_vdup_lane_s32
28589 #undef __aarch64_vdup_lane_s64
28590 #undef __aarch64_vdup_lane_u8
28591 #undef __aarch64_vdup_lane_u16
28592 #undef __aarch64_vdup_lane_u32
28593 #undef __aarch64_vdup_lane_u64
28594 #undef __aarch64_vdup_laneq_f16
28595 #undef __aarch64_vdup_laneq_f32
28596 #undef __aarch64_vdup_laneq_f64
28597 #undef __aarch64_vdup_laneq_p8
28598 #undef __aarch64_vdup_laneq_p16
28599 #undef __aarch64_vdup_laneq_s8
28600 #undef __aarch64_vdup_laneq_s16
28601 #undef __aarch64_vdup_laneq_s32
28602 #undef __aarch64_vdup_laneq_s64
28603 #undef __aarch64_vdup_laneq_u8
28604 #undef __aarch64_vdup_laneq_u16
28605 #undef __aarch64_vdup_laneq_u32
28606 #undef __aarch64_vdup_laneq_u64
28607 #undef __aarch64_vdupq_lane_f16
28608 #undef __aarch64_vdupq_lane_f32
28609 #undef __aarch64_vdupq_lane_f64
28610 #undef __aarch64_vdupq_lane_p8
28611 #undef __aarch64_vdupq_lane_p16
28612 #undef __aarch64_vdupq_lane_s8
28613 #undef __aarch64_vdupq_lane_s16
28614 #undef __aarch64_vdupq_lane_s32
28615 #undef __aarch64_vdupq_lane_s64
28616 #undef __aarch64_vdupq_lane_u8
28617 #undef __aarch64_vdupq_lane_u16
28618 #undef __aarch64_vdupq_lane_u32
28619 #undef __aarch64_vdupq_lane_u64
28620 #undef __aarch64_vdupq_laneq_f16
28621 #undef __aarch64_vdupq_laneq_f32
28622 #undef __aarch64_vdupq_laneq_f64
28623 #undef __aarch64_vdupq_laneq_p8
28624 #undef __aarch64_vdupq_laneq_p16
28625 #undef __aarch64_vdupq_laneq_s8
28626 #undef __aarch64_vdupq_laneq_s16
28627 #undef __aarch64_vdupq_laneq_s32
28628 #undef __aarch64_vdupq_laneq_s64
28629 #undef __aarch64_vdupq_laneq_u8
28630 #undef __aarch64_vdupq_laneq_u16
28631 #undef __aarch64_vdupq_laneq_u32
28632 #undef __aarch64_vdupq_laneq_u64
28634 #endif